1.8.1. Thiết kế hệ thống thời gian thực [14]
Thiết kế RTS đề cập đến vấn đề làm thế nào những ràng buộc thời gian thực có thể đƣợc cài đặt trong phần cứng, phần mềm hoặc cả hai. Thông thƣờng RTS đƣợc thiết kế nhƣ sau: một tập những đặc tả hệ thống, bao gồm cả những ràng buộc thời gian thực, đƣợc đặc tả bởi nhà thiết kế.
Một phƣơng pháp luận tổng hợp dùng nhiều loại mô hình hệ thống, mô hình thực hiện, mô hình đánh giá, mô hình khảo sát, để thiết kế hệ thống thỏa mãn tất cả những đặc tả hệ thống. Khâu thiết kế cuối cùng phải đƣợc kiểm tra, xác nhận thông qua sự mô phỏng, kiểm thử.
- 24 -
Trong thiết kế RTS ta phải chú trọng đến ba lĩnh vực quan trọng đó là lịch biểu thời gian thực, thiết kế phần cứng và thiết kế phần mềm thời gian thực.
1.8.1.1. Lịch biểu thời gian thực
Trong RTS thƣờng phải xử lý những nhiệm vụ đồng thời khác nhau. Lịch biểu thời gian thực đƣợc định nghĩa để ấn định thời gian thực hiện chính xác cho một tập những nhiệm vụ thời gian thực cũng nhƣ những ràng buộc tạm thời. Trong đó các thành phần chu kỳ, pha, hạn định, quyền ƣu tiên, những yêu cầu tài nguyên phải đƣợc thỏa mãn.
Một nhiệm vụ là một dãy hữu hạn của các bƣớc tính thực hiện vài hành động
của RTS và có thể đặc trƣng bởi thời gian thực hiện, hạn định (deadline) của nó.
Những nhiệm vụ định kỳ là những nhiệm vụ thực hiện lặp lại trong một chu kỳ thời gian. Mỗi trƣờng hợp thực hiện của nhiệm vụ định kỳ gọi là một công việc của nhiệm vụ đó.
Lịch biểu có thể là dựa vào thời gian (time-driven) hay theo quyền ưu tiên
(priority-driven). Một giải thuật lập lịch time-driven định rõ thời gian thực hiện
chính xác của tất cả các nhiệm vụ. Một giải thuật lập lịch priority-driven gán
quyền ƣu tiên cho những nhiệm vụ và định rõ nhiệm vụ nào sẽ đƣợc thực hiện tại một thời điểm đặc biệt dựa vào quyền ƣu tiên của nó.
1.8.1.2. Thiết kế phần cứng
Potkonjak and Wolf [13] gần đây đã phát triển một chiến lƣợc tổng hợp giải quyết đa nhiệm những vấn đề phức tạp.
Mỗi tiến trình ban đầu đƣợc xem nhƣ một miền tiến trình đơn. Hệ thống tổng hợp ở mức cao của Hyper đã có sự đánh giá thông qua ba loại tài nguyên phần cứng: những đơn vị thực hiện, sự nối kết, các thanh ghi. Sự đánh giá sau đó đƣợc thực hiện trên mỗi phần tài nguyên phần cứng và tính khả thi của những ràng buộc thời gian. Trong miền xử lý đơn, sự đánh giá gia tăng của Hyper-LP đƣợc thực hiện cho tất cả các thành phần phần cứng và có đƣợc sự triển khai toàn diện. Và đã loại bỏ đƣợc giải pháp không có tính khả thi. Cuối cùng, đã sử dụng đƣợc tiến trình đơn đầy đủ và những lịch biểu mức nhiệm vụ bằng việc sử dụng bộ lập lịch Hyper và bộ lập lịch mức nhiệm vụ.
- 25 -
1.8.1.3. Thiết kế phần mềm
Thiết kế phần mềm thời gian thực là phải giải quyết những vấn đề thời gian thực đó là vấn đề lập lịch, tức là một tập những nhiệm vụ phải đƣợc lập lịch trên một tập những bộ xử lý thỏa mãn đồng thời những ràng buộc thời gian thực và sử dụng hiệu quả nhất có thể những tài nguyên bộ nhớ và bộ xử lý. Bài toán giải quyết vấn đề lập lịch là một một bài toán thuộc NP-complete. Sau đây, sẽ giới thiệu các chiến lƣợc lập lịch cho phần mềm.
1.8.1.3.1. Tổng hợp phần mềm hình thức
Việc lập lịch cho phần mềm có thể căn cứ vào sự tính toán dữ liệu, những cấu trúc điều khiển trong một sự đặc tả hệ thống. Để có đƣợc một kỹ thuật lập
lịch có thể kết hợp ba dạng lập lịch sau: lập lịch tĩnh (static) đƣợc dùng để khai
thác những phụ thuộc cố định giữa các khối của sự hoạt động. Thứ hai là lập lịch
bán tĩnh (quasi-static) dùng để chỉ rõ những hoạt động phụ thuộc dữ liệu trong
xét theo tỉ lệ lập lịch. Thứ ba là lập lịch động (dynamic) có thể đƣợc sử dụng để
xác định nên thực hiện những nhiệm vụ nào.
Việc tổng hợp thực hiện phần mềm trong một bộ xử lý đơn, vẫn đang tiếp tục nghiên cứu. Buck đã đề xuất một giải thuật tính toán lập lịch quasi-static dựa vào mô hình luồng dữ liệu logic (Boolean Data Flow). Theon và các đồng nghiệp đã đề xuất một kỹ thuật khai thác thông tin tĩnh trong việc đặc tả và trích ra từ một sự mô tả ràng buộc của các cụm trong những luồng của hệ thống lập lịch tĩnh.
1.8.1.3.2. Những khung ứng dụng hƣớng đối tƣợng
Một mô hình khác của phát triển phần mềm cho những hệ thống thời gian thực là những khung ứng dụng hƣớng đối tƣợng (OOAF). Một OOAF là một ứng dụng có thể dùng lại, có thể dùng chung, và có thể dùng để đặc tả những ứng dụng của khách hàng.
1.8.1.3.3. Hệ điều hành thời gian thực
Cuối cùng là hệ điều hành thời gian thực (RTOS), đƣợc tách rời và có các phiên bản tối ƣu của các hệ điều hành chia sẻ thời gian. RTOS có những nét đặc trƣng sau: chuyển mạch ngữ cảnh nhanh, kích thƣớc nhỏ gọn, hồi đáp nhanh cho các ngắt bên ngoài, tối thiểu các khoảng thời gian của ngắt lỗi, không có bộ nhớ ảo, mã và dữ liệu chỉ ở trong bộ nhớ, và sự tích lũy dữ liệu nhanh thông qua các
- 26 -
dãy tập tin riêng biệt [12]. RTOS kernel duy trì một đồng hồ thời gian thực, cung cấp các cơ chế lập lịch ƣu tiên, cung cấp những đồng hồ báo thức đặc biệt, và cho phép các tác vụ tạm ngƣng hay lấy lại quyền thực hiện. Trong các RTOS kernel phổ biến là đa tác vụ và truyền thông giữa các tác vụ (inter-task communication) và đạt đƣợc sự đồng bộ theo những dạng chuẩn nhƣ các hộp thƣ (mailboxes), các sự kiện, các tín hiệu, và các cờ lệnh (semaphores).