Một hệ thống thời gian thực là một hệ thống mà sự hoạt động tin cậy của nó không chỉ phụ thuộc vào sự chính xác của kết quả, mà còn phụ thuộc vào thời điểm đưa ra kết quả để phản ứng với sự kiện bên ngoài. Hệ thống có lỗi khi thời gian yêu cầu không được thoả mãn.
Một hệ thống thời gian thực có các đặc điểm tiêu biểu sau:
- Tính bị động: Hệ thống phải phản ứng với các sự kiện xuất hiện vào các thời điểm không biết trước.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
- Tính nhanh nhạy: Hệ thống phải xử lý thông tin một cách nhanh chóng để có thể đưa ra kết quả phản ứng một cách kịp thời.
- Tính tiền định: Dự đoán trước được thời gian phản ứng tiêu biểu, thời gian phản ứng chậm nhất cũng như trình tự đưa ra các phản ứng.
Tuy tính nhanh nhạy là một đặc điểm tiêu biểu, nhưng một hệ thống có tính năng thời gian thực không nhất thiết phải có đáp ứng thật nhanh mà quan trọng hơn là phải có phản ứng kịp thời đối với các yêu cầu, tác động bên ngoài.
1.6.2 Xử lý thời gian thực.
Xử lý thời gian thực là hình thức xử lý thông tin trong một hệ thống để đảm bảo tính năng thời gian thực của nó. Như vậy, xử lý thời gian thực cũng có các đặc điểm tiêu biểu nêu trên như tính bị động, tính nhanh nhạy và tính tiền định. Để có thể phản ứng với nhiều sự kiện diễn ra cùng một lúc, một hệ thống xử lý thời gian thực sử dụng các quá trình tính toán đồng thời.
Quá trình tính toán là một tiến trình thực hiện một hoặc một phần chương trình tuần tự do hệ điều hành quản lý trên một máy tính, có thể tồn tại đồng thời với các quá trình khác kể cả trong thời gian thực hiện lệnh và thời gian xếp hàng chờ đợi thực hiện.
Các hình thức tổ chức các quá trình tính toán đồng thời:
- Xử lý cạnh tranh: Nhiều quá trình tính toán chia sẻ thời gian xử lý thông tin của một bộ xử lý.
- Xử lý song song: Các quá trình tính toán được phân chia thực hiện song song trên nhiều bộ xử lý của một máy tính.
- Xử lý phân tán: Mỗi quá trình tính toán được thực hiện riêng trên một máy tính. Trong các hệ thống điều khiển, khái niệm task cũng hay được sử dụng bên cạnh quá trình tính toán. Có thể nói, task là một nhiệm vụ xử lý thông tin trong hệ thống, có thể thực hiện theo cơ chế tuần hoàn (periodic task) hoặc theo sự kiện (event task). Ví dụ, một task thực hiện nhiệm vụ điều khiển cho một hoặc nhiều
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
mạch vòng kín có chu kỳ trích mẫu giống nhau. Hoặc, một task có thể thực hiện nhiệm vụ điều khiển logic, điều khiển trình tự theo các sự kiện xảy ra. Task có thể thực hiện dưới dạng một quá trình tính toán duy nhất, hoặc một dãy các quá trình tính toán khác nhau.
1.6.3 Hệ điều hành đa nhiệm và các ứng dụng thời gian thực
* Đơn nhiệm/Đa nhiệm
Đơn nhiệm là chỉ làm một nhiệm vụ nào đó, còn đa nhiệm là có thể cùng một khoảng thời gian nào đó có thể làm được nhiều nhiệm vụ.
* Hệ điều hành đơn nhiệm/đa nhiệm
Hệ điều hành đơn nhiệm là hệ điều hành mà trong đó các chương trình phải được chạy lần lượt, còn hệ điều hành đa nhiệm thì ngược lại, hiện nay trong công nghiệp người ta dùng hệ điều hành đa nhiệm.
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 đa nhiệm và các ứng dụng 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. Hỗ trợ xử lý cạnh trạnh hoặc/và xử lý song song. Lập lịch, đồng bộ hóa quá trình và giao tiếp liên quá 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 quá trình tính toá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 quá trình tính toán đã bắt đầu.
Đồng bộ hoá quá trình
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Khi các quá trình tính toá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ụ quá 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ộ hoá các quá trình là điều cần thiết.
Giao tiếp liên quá trình
Giao tiếp liên quá trình là giao tiếp giữa các quá trình tính toá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 toàn cục.
- Giữa các Process khác nhau hoặc giữa các Thread thuộc các Process.
1.6.4 Xử lý phân tán
Xử lý phân tán giúp nâng cao năng lực xử lý thông tin của một hệ thống, góp phần cải thiện tính năng thời gian thực, nâng cao độ tin cậy và tính linh hoạt của hệ thống.
Cần phân biệt rõ giữa ứng dụng mạng và ứng dụng phân tán. Trong một ứng dụng mạng, các chương trình trên mỗi trạm tồn tại hoàn toàn độc lập với nhau và việc giao tiếp giữa chúng được thực hiện qua cơ chế ―hiện‖. Web là một ứng dụng mạng tiêu biểu. Trong một ứng dụng phân tán, các chương trình trên các trạm hợp tác chặt chẽ với nhau thông qua cơ chế giao tiếp ngầm (implicit communication) để cùng thực hiện một nhiệm vụ tổng thể của hệ thống. Chức năng điều khiển trong một hệ điều khiển phân tán được thực hiện dưới dạng một ứng dụng phân tán.
Các vấn đề của xử lý phân tán - Phân chia và phối hợp nhiệm vụ - Giao tiếp giữa các trạm
- Đồng bộ hóa các quá trình xử lý phân tán - Dự phòng, khắc phục lỗi
Các kiến trúc xử lý phân tán
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Kiến trúc Master/Slave
• Các chức năng xử lý thông tin được phân chia trên nhiều trạm tớ
• Một trạm chủ phối hợp hoạt động của nhiều trạm tớ
• Các trạm tớ có vai trò, nhiệm vụ tương tự như nhau (tuy với các đối tượng khác nhau)
• Các trạm tớ có thể giao tiếp trực tiếp, hoặc không Kiến trúc Client/Server
• Chức năng xử lý thông tin được phân chia thành hai phần khác nhau, phần sử dụng chung cho nhiều bài toán được thực hiện trên các server, phần riêng thực hiện trên từng client.
• Giữa các client không cần thiết có giao tiếp trực tiếp
• Vai trò chủ động trong giao tiếp thuộc về client Kiến trúc bình đẳng
• Các trạm có vai trò bình đẳng, phối hợp hoạt động trực tiếp với nhau không qua trung gian
Kiến trúc tự trị
• Các trạm có vai trò bình đẳng, có thể hoạt động tương đối độc lập nhưng sự phối hợp hoạt động tạo hiệu quả cao nhất.
• Ví dụ tiêu biểu: Kiến trúc điều khiển thông minh các hệ thống đèn tín hiệu giao thông.