Các trạm điều khiển trong một hệ điều khiển phân tán bao giờ cũng hoạt động dựa trên nền một hệ điều hành thời gian thực. Hệ điều hành thời gian thực là một hệ điều hành hỗ trợ các chương trình ứng dụng xử lý thời gian thực. Bản thân hệ điều hành thời gian thực cũng là một hệ thời gian thực theo đúng nghĩa của nó, vì vậy cũng có các đặc điểm tiêu biểu đã đề cập. Một hệ điều hành thời gian thực bao giờ cũng là một hệ đa nhiệm (multi-tasking), hỗ trợ xử lý cạnh trạnh hoặc/và xử lý song song. Lập lịch, đồng bộ hóa q trình và giao tiếp liên q trình là các khái niệm quan trọng trong một hệ điều hành thời gian thực.
Phương pháp lập lịch (Scheduling)
Việc lập lịch thực hiện cho các task có thể được thực hiện theo hai cách: • Lập lệnh tĩnh: thứ tự thực hiện các q trình tính tốn khơng thay đổi
mà được xác đình trước.
• Lập lệnh ₫ộng: hệ điều hành xác định lệnh trước hoặc sau khi q trình
tính tốn đã bắt đầu.
Tuy nhiên, ta cần có một sách lược lập lệnh (strategy) để áp dụng đối với từng tình huống cụ thể. Có thể chọn một trong những cách sau:
• FIFO (First In First Out): một tiến trình đến trước sẽ được thực hiện trước.
• Mức ưu tiên cố ₫ịnh/₫ộng: tại cùng một thời điểm, các tiến trình được đặt
â 2005, Hng Minh Sn ã Preemptive: cũn gi l chen hàng, tức là chọn một tiến trình để thực
hiện trước các tiến trình khác.
• Non - Preemptive: khơng chen hàng. Các tiến trình được thực hiện bình
thường dựa trên mức ưu tiên của chúng.
Việc tính mức ưu tiên của mỗi tiến trình được thực hiện theo một trong số các thuật toán lập lịch sau:
• Rate monotonic: càng thường xuyên càng được ưu tiên.
• Deadline monotonic: càng gấp càng được ưu tiên.
• Least laxity: tỷ lệ thời gian tính tốn/thời hạn cuối cùng(deadline) càng
lớn càng được ưu tiên.
Đồng bộ hố q trình
Khi các q trình tính tốn cùng sử dụng một tài nguyên loại trừ lẫn nhau như một vùng nhớ, cổng vào/ra, hoặc chúng phụ thuộc lẫn vào nhau ví dụ q trình 1 chờ kết quả của quá trình 2... sẽ rất dễ dẫn đến tình trạng tắc nghẽn (Deadlock), hay tạo ra một tình huống chạy ₫ua (Race Condition). Do
vậy việc đồng bộ hố các q trình là điều cần thiết. Có thể thực hiện việc này theo các phương pháp sau: • Mutex (Mutual exclusion)
• Critical Section • Semaphone • Monitor
Giao tiếp liên q trình
Giao tiếp liên quá trình là giao tiếp giữa các q trình tính tốn thuộc cùng một hệ điều hành trên một máy. Có hai loại:
• Giữa các Thread thuộc cùng một Process: sử dụng các biến tồn cục. • Giữa các Process khác nhau hoặc giữa các Thread thuộc các Process
khác nhau: sử dụng các phương pháp như shared memory, slot, pipes, mailbox, files...