Tải bản đầy đủ (.pdf) (127 trang)

Phân tích thiết kế hệ thống thời gian thực

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.88 MB, 127 trang )



1

























ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ





Lê Thị Hồng Hà





PHÂN TÍCH THIẾT KẾ
HỆ THỐNG THỜI GIAN THỰC






Nghành: Công nghệ thông tin
Mã số: 1.01.10



LUẬN VĂN THẠC SĨ




NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS. Đoàn Văn Ban









Hà Nội - 2007


3

MỤC LỤC
LỜI CAM ĐOAN 2
MỤC LỤC 3
DANH MỤC CÁC TỪ VIẾT TẮT 5
DANH MỤC CÁC BẢNG BIỂU 6
DANH MỤC CÁC HÌNH VẼ 8
MỞ ĐẦU 12
CHƯƠNG 1 - HỆ THỐNG THỜI GIAN THỰC 14
1.1. Hệ thống thời gian thực 14
1.1.1. Khái niệm 14
1.2.2. Phân loại 15
1.1.3. Đặc trưng 17
1.1.4. Xử lý thời gian thực 19
1.1.5. Ứng dụng 20
1.2. Hệ điều hành thời gian thực 21
1.2.1. Định nghĩa về hệ điều hành thời gian thực 21
1.2.2. Một số đặc tính hiệu năng của hệ điều hành thời gian thực 22
1.2.3. Các dịch vụ và chức năng thời gian thực 23
1.2.4. Một số vấn đề cần quan tâm trong thiết kế hệ điều hành thời gian thực 24

1.2.5. Một số tiêu chuẩn liên quan đến hệ điều hành thời gian thực 28
1.2.6. Phân loại hệ điều hành thời gian thực 28
1.2.7. Một số hệ điều hành thời gian thực tiêu biểu 29
1.3. Nền tảng phần cứng 30
1.4. Ngôn ngữ lập trình cho hệ thống thời gian thực 31
1.4.1. Tổng quan về ngôn ngữ lập trình cho hệ thống thời gian thực 31
1.4.2. Các đặc điểm của ngôn ngữ lập trình thời gian thực 31
1.5. Truyền thông thời gian thực 32
1.5.1. Giới thiệu 32
1.5.2. Xử lý lời gọi RTC 32
1.5.3. Giao thức khởi tạo phiên SIP 33
1.5.4. Giao thức mô tả phiên SDP 45
1.5.5. Giao thức truyền thông thời gian thực 46
1.6. Cơ sở dữ liệu thời gian thực 52
1.6.1. Tổng quan 52
1.6.2. Duy trì tính nhất quán 52


4

1.6.3. Ràng buộc thời gian 53
1.6.4. Hệ quản trị cơ sở dữ liệu thời gian thực 53
1.7. Kết luận 54
CHƯƠNG 2 - NGÔN NGỮ MÔ HÌNH HOÁ UML 56
2.1. Giới thiệu 56
2.2. Kiến trúc của UML 58
2.3. Mô hình khái niệm của UML 59
2.3.1. Các khối xây dựng (building blocks 59
2.3.2. Các quy tắc của UML 67
2.3.3. Các kỹ thuật chung của UML 67

2.4. Kết luận 69
CHƯƠNG 3 - TIẾN TRÌNH ROPES 70
3.1. Giới thiệu 70
3.2. Các pha 73
3.2.1. Phân tích 73
3.2.2. Thiết kế 79
3.2.3. Cài đặt và kiểm thử đơn vị 82
3.2.4. Kiểm thử hệ thống 83
3.3. Kết luận 84
CHƯƠNG 4 - PHÂN TÍCH THIẾT KẾ HỆ THỐNG KIỂM SOÁT
KHÔNG LƯU 85
4.1. Giới thiệu 85
4.1.1. Tại sao chọn hệ thống kiểm soát không lưu? 85
4.1.2. Mô tả hoạt động của hệ thống kiểm soát không lưu 85
4.2. Phân tích hệ thống 95
4.2.1. Các thuật ngữ 95
4.2.2. Phân tích yêu cầu 97
4.2.3. Phân tích cấu trúc 111
4.2.4. Phân tích hành vi 118
4.3. Thiết kế 119
4.4. Kết luận 123
KẾT LUẬN 124
TÀI LIỆU THAM KHẢO 125



5

DANH MỤC CÁC TỪ VIẾT TẮT



Từ viết tắt
Tiếng Anh
Tiếng Việt
ARTCC
Air Route Traffic Control Centers

ATCSCC
Air Traffic Control System
Command Center

ATCT
Air Traffic Tontrol Tower
Tháp điều khiển không lưu
FSS
Flight Service Station
Trạm dịch vụ bay
IP
Internet Protocol
Giao thức Internet
ROPES
Rapid Object-Oriented Process
for Embedded Systems
Tiến trình phát triển hướng đối
tượng cho các hệ thống nhúng
RTC
Real–Time Communication
Truyền thông thời gian thực
RTCP


Real-Time Transport Control
Protocol
Giao thức điều khiển truyền thông
thời gian thực
RTP
Real-Time Transport Protocol
Giao thức truyền thông thời gian
thực
SDP
Session Description Protocol
Giao thức mô tả phiên
SIP
Session Initiation Protocol
Giao thức khởi tạo phiên SIP
TCP
Transmition Control Protocol
Giao thức điều khiển
TRACON
Terminal Radar Approach Control

UDP
User Datagram Protocol

UML
Unified Modeling Language
Ngôn ngữ mô hình hoá hợp nhất









6

DANH MỤC CÁC BẢNG BIỂU

Bảng
Tên bảng
Trang
Bảng 1.1.
SIP Servers
34
Bảng 1.2.
SIP User Agents
34
Bảng 1.3.
Các phần của thông báo SIP
38
Bảng 1.4.
Cú pháp của Start Line
38
Bảng 1.5.
Các phương thức SIP và chức năng của chúng
39
Bảng 1.6.
Một số định dạng của SIP URL
40
Bảng 1.7.

Các mã trạng thái SIP Response
41
Bảng 1.8.
Nội dung SIP Response
42
Bảng 1.9.
SIP Headers
44
Bảng 1.10.
Các mô tả SDP
45
Bảng 1.11.
Giao thức gói RTP
47
Bảng 1.12.
Các kiểu gói RTCP
48
Bảng 1.13.
Cấu trúc của RR và SR
49
Bảng 1.14.
Cấu trúc khối báo cáo RTCP
51
Bảng 3.1.
Các vật phẩm thu được của phân tích yêu cầu
76
Bảng 3.2.
Các vật phẩm thu được của phân tích hệ thống
77
Bảng 3.3.

Các vật phẩm thu được của phân tích đối tượng
79
Bảng 3.4.
Các vật phẩm thu được của thiết kế kiến trúc
81
Bảng 4.1.
Các thuật ngữ của hệ thống kiểm soát không lưu
96
Bảng 4.2.
Các tác nhân của hệ thống
98
Bảng 4.3
Các ca sử dụng của hệ thống
99
Bảng 4.4.
Các sự kiện của hệ thống
101


7

Bảng 4.5.
Luồng sự kiện chính của ca sử dụng ―locate track‖
102
Bảng 4.6.
Luồng sự kiện chính của ca sử dụng ―identify aircraft‖
105
Bảng 4.7.
Luồng sự kiện chính của ca sử dụng ―create the flight plan‖
108

Bảng 4.8.
Luồng sự kiện chính ca sử dụng ―create flight progress trip‖
110
Bảng 4.9.
Các danh từ trong mô tả hệ thống
112
Bảng 4.10.
Các đối tượng thế giới thực
113
Bảng 4.11.
Các thiết bị vật lý
113
Bảng 4.12.
Các trừu tượng quan trọng
114


8

DANH MỤC CÁC HÌNH VẼ

Hình
Tên
Trang
Hình 1.1.
Hệ thống thời gian thực cứng và mềm
16
Hình 1.2.
Hệ thống phi thời gian thực, hệ thống thời gian thực cứng và hệ
thống thời gian thực mềm.

16
Hình 1.3.
Trễ đáp ứng sự kiện
22
Hình 1.4.
Độ lệch chu kỳ
23
Hình 1.5.
Ví dụ về đảo ưu tiên
26
Hình 1.6.
Sự đoạt quyền: (a) không hỗ trợ; (b) có hỗ trợ
26
Hình 1.7.
Hệ điều hành thời gian thực thuần tuý
28
Hình 1.8.
Hệ điều hành thời gian thực mở rộng từ các hệ điều hành khác
29
Hình 1.9.
Đóng gói RTCP.
33
Hình 1.10.
Luồng sự kiện một phiên SIP trực tiếp giữa các user agent
35
Hình 1.11.
Luồng sự kiện một phiên SIP có Proxy Server.
35
Hình 1.12.
Luồng sự kiện một phiên SIP với Registrar Server.

36
Hình 1.13.
Luồng sự kiện một phiên SIP với Redirect Server.
36
Hình 1.14.
Một kiến trúc SIP
37
Hình 1.15.
Cấu trúc gói RTP.
47
Hình 1.16.
Cấu trúc gói RR
48
Hình 1.17.
Cấu trúc gói SR
49
Hình 1.18.
Cấu trúc header của RTCP RR và SR
49
Hình 1.19.
Thông tin user agent gửi trong RTCP
50
Hình 1.20.
Cấu trúc khối báo cáo RTCP
51
Hình 2.1.
Các khung nhìn UML
58



9

Hình 2.2.
Biểu diễn lớp
59
Hình 2.3.
Biểu diễn cộng tác
59
Hình 2.4.
Biểu diễn giao diện
59
Hình 2.5.
Biểu diễn ca sử dụng
60
Hình 2.6.
Biểu diễn lớp hoạt động
60
Hình 2.7.
Biểu diễn thành phần
60
Hình 2.8.
Biểu diễn nút
61
Hình 2.9.
Biểu diễn thông báo
61
Hình 2.10.
Biểu diễn chú thích
61
Hình 2.11.

Biểu diễn quan hệ phụ thuộc
62
Hình 2.12.
Biểu điễn quan hệ kết hợp
62
Hình 2.13.
Biểu diễn quan hệ tập hợp
62
Hình 2.14.
Biểu diễn quan hệ hợp thành
62
Hình 2.15.
Biểu diễn quan hệ tổng quát hóa
62
Hình 2.16.
Biểu diễn quan hệ hiện thực hóa
62
Hình 2.17.
Các biểu đồ trong UML
63
Hình 2.18.
Biểu đồ ca sử dụng
63
Hình 2.19.
Biểu đồ lớp
64
Hình 2.20.
Biểu đồ đối tượng
64
Hình 2.21.

Biểu đồ thành phần
65
Hình 2.22.
Biểu đồ triển khai
65
Hình 2.23.
Biểu đồ hoạt động
66
Hình 2.24.
Biểu đồ trạng thái
66
Hình 2.25.
Biểu đồ cộng tác và biểu đồ tuần tự
66


10

Hình 3.1.
Các pha và luồng công việc trong ROPES.
71
Hình 3.2.
Các vật phẩm được tạo ra trong tiến trình ROPES.
72
Hình 3.3.
Pha phân tích trong ROPES.
73
Hình 3.4.
Pha thiết kế trong ROPES.
80

Hình 3.5.
Pha biên dịch và kiểm thử đơn vị trong ROPES.
82
Hình 3.6.
Pha kiểm thử hệ thống trong ROPES.
83
Hình 4.1.
Kiểm soát viên không lưu trong một tháp sân bay.
86
Hình 4.2.
Không gian nước Mỹ.
87
Hình 4.3.
Mô tả sơ lược hành trình của một chuyến bay thương mại.
89
Hình 4.4.
Một máy bay chạy trượt trên đường băng theo hướng dẫn từ
kiểm soát viên mặt đất.
90
Hình 4.5.
Các hành lang khởi hành và tiếp cận giao thông phía Tây của
không gian TRACON khu vực cảng San Francisco.
91
Hình 4.6.
Sơ đồ một hệ thống kiểm soát không lưu.
92
Hình 4.7.
Phối hợp viên trung tâm xem xét các hiển thị của TMA.
93
Hình 4.8.

Hàng lang khởi hành và tiếp cận trong không gian TRACON
khu vực phía Đông sân bay.
94
Hình 4.9.
Các kiểm soát viên không lưu trong tháp điều khiển điều khiển
việc cất cánh, hạ cánh và giao thông trên mặt đất bằng radar và
các công cụ trực quan.
95
Hình 4.10.
Biểu đồ ca sử dụng nhóm các ca sử dụng điều khiển trên đường
bay.
100
Hình 4.11.
Biểu đồ ca sử dụng nhóm các ca sử dụng quản lý cất và hạ cánh.
100
Hình 4.12.
Biểu đồ tuần tự hệ thống ca sử dụng ―Locate track‖.
103
Hình 4.13.
Biểu đồ tuần tự đối tượng ca sử dụng ―Locate track‖.
104
Hình 4.14.
Biểu đồ tuần tự hệ thống ca sử dụng ―Identify Aircraft‖
106


11

Hình 4.15
Biểu đồ tuần tự đối tượng ca sử dụng ―Identify Aircraft‖

107
Hình 4.16
Biểu đồ tuần tự hệ thống ca sử dụng ―create the flight plan‖
108
Hình 4.17
Biểu đồ lớp phân tích thực thi ca sử dụng ―Create Flight Plan‖
109
Hình 4.18.
Biểu đồ tuần tự đối tượng ca sử dụng ―Create Flight Plan‖
109
Hình 4.19
Biểu đồ tuần tự hệ thống ca sử dụng ―create flight progress trip‖
110
Hình 4.20
Biểu đồ tuần tự đối tượng ca sử dụng ―create flight progress trip‖
111
Hình 4.21
Biểu đồ lớp nhóm ca sử dụng liên quan đến quản lý bay
115
Hình 4.22
Biểu đồ miền quản lý máy bay
116
Hình 4.23
Miền quản lý máy bay và Miền giám sát máy bay
117
Hình 4.24
Miền quản lý máy bay và Miền hiển thị (Display Domain)
118
Hình 4.25
Biểu đồ cộng tác phát hiện vi phạm khoảng cách.

118
Hình 4.26
Biểu đồ hoạt động ca sử dụng ――identify aircraft‖
119
Hình 4.27
Giao diện ca sử dụng ―create flight plan‖
120
Hình 4.28
Giao diện chọn một dữ mục sân bay
121
Hình 4.29
Hiển thị một đường bay
123
Hình 4.30
Một hành trình bay
124


12

MỞ ĐẦU
Xã hội càng phát triển, công nghệ thông tin càng giữa vị trí quan trọng trong đời
sống và kỹ thuật. Cùng với xu hướng phát triển của công nghệ thông tin, việc xây
dựng các hệ thống thời gian thực, đặc biệt là các hệ thống điều khiển trở thành một
vấn đề tất yếu, một nhu cầu cấp thiết.
Không có hệ thống điều khiển nào có thể hoạt động bình thường nếu như nó
không đáp ứng được các yêu cầu về thời gian, bất kể là hệ thống điều khiển nhiệt độ,
điều khiển áp suất, điều khiển lưu lượng hay điều khiển chuyển động. Tất cả các hệ
thống điều khiển đều là các hệ thống thời gian thực.
Hệ thống thời gian thực được ứng dụng phổ biến trong rất nhiều lĩnh vực, như

thương mại, quân đội, y tế, giáo dục, cơ sở hạ tầng,… và hiện nay đang phát triển rất
mạnh mẽ.
Hệ thống kiểm soát không lưu (Air Traffic Control System) là một ví dụ tiêu
biểu cho hệ thống thời gian thực bởi rất nhiều lý do. Trước hết, hệ thống kiểm soát
không lưu là một ứng dụng quan trọng, phức tạp, phổ biến và có mặt ở hầu hết các
nước trên thế giới. Hơn nữa, hệ thống này mang đầy đủ các đặc trưng của một hệ
thống thời gian thực. Và cuối cùng, các bộ phận của hệ thống này có thể tách ra để
minh họa cho các ý tưởng kỹ thuật khác nhau.
Giao thông phát triển, số lượng máy bay tăng, số lượng các chuyến bay trong
không phân một nước và giữa các nước tăng nhanh, do đó yêu cầu có hệ thống kiểm
soát không lưu hoạt động để điều khiển giao thông hàng không trở thành nhu cầu
không của riêng quốc gia nào.
Mục tiêu của luận văn này là tìm hiểu các vấn đề về hệ thống thời gian thực,
ngôn ngữ mô hình hoá UML, tiến trình phát triển phần mềm cho các hệ thống thời
gian thực ROPES và sử dụng tiến trình này để phân tích thiết kế hệ thống kiểm soát
không lưu.
Luận văn được trình bày trong bốn chương với nội dung mỗi chương như sau:
Chương 1 giới thiệu hệ thống thời gian thực: khái niệm, phân loại, đặc trưng, ứng
dụng và các vấn đề thời gian thực liên quan như hệ điều phần thời gian thực, cơ sở dữ


13

liệu thời gian thực, truyền thông thời gian thực, ngôn ngữ lập trình thời gian thực, yêu
cầu phần cứng cho một hệ thống thời gian thực.
Tiếp theo, Chương 2 trình bày những vấn đề cơ bản của ngôn ngữ mô hình hoá
hợp nhất UML gồm các ký hiệu, các đặc trưng, các mô hình
Trong Chương 3, sẽ giới thiệu tiến trình phát triển các phần mềm ROPES, một
tiến trình được sử dụng khá hiệu quả để phát triển hệ thống thời gian thực sử dụng các
ký hiệu UML, sẽ trình bày mô hình tiến trình, các pha, các hoạt động và các vật phẩm

thu được trong từng pha.
Chương 4 tìm hiểu hệ thống kiểm soát không lưu, tầm quan trọng, hoạt động và
mô hình của một hệ thống kiểm soát không lưu, phân tích và thiết kế một hệ thống
kiểm soát không lưu đơn giản sử dụng tiến trình phát triển ROPES.
Chắc chắn, luận văn còn có những thiếu sót trong nội dung cũng như trong trình
bày. Tác giả của luận văn rất mong nhận được sự đóng góp ý kiến của các thầy cô giáo
và của các anh/chị học viên.


14

CHƢƠNG 1 - HỆ THỐNG THỜI GIAN THỰC

1.1. Hệ thống thời gian thực
1.1.1. Khái niệm
Trong các tài liệu cũng như trong thực tế, khái niệm thời gian thực và hệ thống
thời gian thực không phải lúc nào cũng được hiểu một cách thống nhất. Nhiều người
cho rằng, hệ thống thời gian thực là một hệ thống phải làm việc với yêu cầu thời gian
rất nhanh (trong phạm vi một vài micro-giây gì đó), ví dụ các hệ thống điều khiển tay
máy, điều khiển động cơ, Không ít ý kiến cho rằng, khái niệm thời gian thực luôn
gắn với các hệ nhúng và điều khiển thời gian thực là một vấn đề của riêng điều khiển
nhúng, tức là các giải pháp sử dụng vi điều khiển, Lại cũng có quan niệm cho rằng
thời gian thực là thời gian tuyệt đối, hệ thống thời gian thực là một hệ thống có khả
năng làm việc với thời gian tuyệt đối theo giờ-phút-giây của ngày tháng. Vậy chúng ta
nên hiểu như thế nào đây?
Một quan điểm được ủng hộ và trích dẫn nhiều nhất là của Stankovic [Sta96]:
“Hệ thống thời gian thực là hệ thống mà tính đúng đắn của nó không chỉ phụ
thuộc vào các kết quả logic nó tạo ra mà còn phụ thuộc vào thời điểm các kết quả đó
được tạo ra”.
Như vậy, 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ả, hệ thống có lỗi khi yêu cầu về thời gian không được thoả mãn.
Trong một bài báo nổi tiếng khác [Sta88], Stankovic cũng đã chỉ ra một số quan
niệm sai lầm về khái niệm thời gian thực. Ví dụ, khái niệm hệ thống thời gian thực
không đồng nghĩa với khái niệm hệ xử lý tốc độ cao, xử lý nhanh. Nếu ta cho rằng,
phải là các ứng dụng điều khiển có yêu cầu thời gian tính toán rất nhanh mới gọi là
điều khiển thời gian thực, thì một câu hỏi sẽ được đặt ra là: như thế nào mới được gọi
là nhanh? Ta có thể thống nhất là, cỡ một vài micro-giây là rất nhanh, tuy nhiên nếu
một vài chục micro-giây thì sao, một trăm micro-giây thì sao? Nếu một trăm micro-
giây mới gọi là nhanh, thì 101, 102, có nhanh không? Các hệ thống điều khiển với
chu kỳ trích mẫu 5ms, 6 ms, 7ms có được gọi là hệ thống thời gian thực hay không?


15

1.2.2. Phân loại
Về cơ bản, chương trình có tính thời gian thực phải có khả năng phản ứng lại các
sự kiện trong môi trường mà hệ thống làm việc trong khoảng thời gian nhất định cho
trước. Những hệ thống như vậy được gọi là hệ thống "điều khiển sự kiện" và có thể
được mô tả bằng thời gian trễ tính từ khi sự kiện xảy ra tới khi hệ thống có hoạt động
phản ứng lại sự kiện đó.
Thời gian thực, mặt khác, đòi hỏi một giới hạn cao hơn về thời gian trễ, được gọi
là "thời hạn lập lịch" (scheduling deadline) hoặc gọi tắt là thời hạn. Hệ thống thời gian
thực thường được phân thành hai loại: hệ thống thời gian thực cứng (hard real-time
system) và hệ thống thời gian thực mềm (soft real- time system).
Hệ thống thời gian thực cứng là hệ thống mà các hành động của nó phải không
bao giờ được vi phạm các ràng buộc thời gian trong đó có thời hạn lập lịch, hệ thống
phải tiếp nhận và nắm bắt được thời hạn lập lịch của nó tại mọi thời điểm. Hệ thống có
lỗi hoặc sai sót trong việc tiếp nhận thời hạn sẽ gây ra các hậu quả rất nghiêm trọng,
thiệt hại về vật chất, gây ảnh hưởng xấu đến sức khoẻ, đời sống của con người, thậm

chí chết người. Với hệ thống thời gian thực cứng, dữ liệu trễ là dữ liệu tồi. Một ví dụ
về hệ thống thời gian thực cứng là hệ thống kiểm soát không lưu. Trong hệ thống này,
một phân phối đường bay, thời gian cất cánh, thời gian hạ cánh không hợp lý, không
đúng lúc có thể gây ra tai nạn máy bay mà hậu quả của nó khó mà lường trước được.
Một ví dụ khác, máy hỗ trợ nhịp tim cho bệnh nhân khi phẫu thuật. Thuật toán điều
khiển phụ thuộc vào thời gian nhịp tim của người bệnh, nếu thời gian này bị trễ, tính
mạng của người bệnh sẽ bị ảnh hưởng.
Ngược lại, hệ thống thời gian thực mềm là hệ thống có các ràng buộc về thời
gian, tuy nhiên, trong trường hợp các ràng buộc này bị vi phạm, tức là thời gian trả lời
của hệ thống vượt quá thời hạn đặt ra, hệ thống vẫn hoạt động được tiếp và kết quả nó
tạo ra bị giảm ―giá trị‖ theo một nghĩa nào đó. Nói cách khác, những kết quả tạo ra
không đúng hạn tuy không hữu ích/không làm hài lòng người sử dụng bằng khi nó
được tạo ra đúng hạn nhưng vẫn được chấp nhận. Chúng ta mong muốn hệ thống phản
ứng lại các sự kiện trong thời gian cho phép nhưng không có gì thực sự nghiêm trọng
xảy ra nếu hệ thống thỉnh thoảng bị trễ. Lỗi về mặt thời gian có thể chỉ đơn giản là dẫn
đến hậu quả giảm độ tin cậy của đối tượng đối với hệ thống mà không có hậu quả thê
thảm nào khác xảy ra. Mạng lưới thu ngân tự động của ngân hàng là ví dụ rõ nhất cho
hệ thống thời gian thực mềm. Mạng rút tiền tự động ATM là hệ thống thời gian thực?
Chẳng ai dám đánh cược cả. Khi bạn đưa thẻ ATM vào máy, bạn mong là máy sẽ phản


16

ứng lại trong vòng 1 hay 2 giây. Nhưng nếu nó lâu hơn thế, điều tồi tệ nhất có thể xảy
ra là bạn sốt ruột và thấy khó chịu vì cái máy đó.












Hình 1.1. Hệ thống thời gian thực cứng và mềm
Trên thực tế có rất nhiều hệ thống phối hợp cả hai loại trên, trong đó, một phần
nào đó của hệ thống làm việc dựa trên hệ thống thời gian thực cứng, một số phần khác
lại dựa trên hệ thống thời gian thực mềm.
Ta có thể quan niệm hệ thống thời gian thực cứng là hệ thống phải thỏa mãn các
ràng buộc cứng về thời gian - ràng buộc thời gian không được phép vi phạm. Tương
tự, hệ thống thời gian thực mềm là hệ thống phải thỏa các ràng buộc mềm về thời gian
- ràng buộc thời gian được phép vi phạm, nhưng các vi phạm sẽ làm giảm giá trị của
kết quả. Một hệ thống có thể có cả các ràng buộc cứng lẫn ràng buộc mềm về thời
gian.





Hình 1.2. Hệ thống phi thời gian thực, hệ thống thời gian thực cứng và hệ thống
thời gian thực mềm.
Giá trị
Thời gian
mềm
cứng
- +

Thời hạn lập lịch

Thời gian
thực mềm
Phi thời
gian thực
Thời gian
thực cứng
Mô phỏng
máy tính
Giao diện
người sử dụng
Internet
video
Điều khiển
mạch
Viễn
thông
Điều
khiển bay
Động cơ
điện


17

1.1.3. Đặc trƣng
Đặc trưng đầu tiên của hệ thống thời gian thực là ràng buộc thời gian (timing
constraint) hay tính phản ứng nhanh. Hệ thống phải xử lý thông tin một cách nhanh
chóng để có thể đưa ra kết quả một cách kịp thời. Một chương trình không những phải
đưa ra kết quả tính toán đúng mà còn phải đưa ra kết quả đúng thời gian. Hay nói một
cách khác, tính đúng đắn của một chương trình không chỉ phụ thuộc vào kết quả tính

toán logic mà còn phụ thuộc vào thời gian mà kết quả này được sinh ra. Tổng quát
hơn, phần mềm thời gian thực phải thỏa mãn các khẳng định (assertion) thời gian,
khẳng định này bao gồm cả quan hệ đối với thời gian tuyệt đối và thời gian tương đối.
Cách xác nhận đơn giản nhất và phổ biến nhất là một mốc tới hạn (thời hạn) - giới hạn
về thời gian tương đối hoặc tuyệt đối mà một tính toán phải hoàn thành. Ví dụ, trong
hệ thống điều khiển robot, có thể có một thời hạn hoặc một giới hạn giữa thời gian một
robot đang di chuyển cảm thấy một vật cản trên đường đi và thời gian actuator, chẳng
hạn bộ điều khiển chuyển hướng, được kích hoạt để di chuyển robot theo hướng an
toàn hơn.
Đặc trưng thứ hai của hệ thống thời gian thực là tính đồng thời (concurrency). Hệ
thống phải có khả năng phản ứng và xử lý đồng thời nhiều sự kiện diễn ra. Có thể,
cùng một lúc một bộ điều khiển được yêu cầu thực hiện nhiều vòng điều chỉnh, giám
sát ngưỡng giá trị nhiều đầu vào, cảnh giới trạng thái làm việc của một số động cơ. Đa
số các hệ thống thời gian thực thực hiện một hoặc một tập nhỏ các nhiệm vụ mức cao.
Sự thực thi các nhiệm vụ mức cao này yêu cầu đồng thời nhiều hoạt động mức thấp
hơn. Và đây được gọi là tính đồng thời, các hệ thống máy tính sử dụng tính đồng thời
để cải thiện thực thi và điều này hoàn toàn có thể thực hiện được trong cả các hệ thống
đơn và đa bộ xử lý. Các hệ thống gồm một bộ xử lý chỉ có thể thực hiện được một
công việc tại một thời điểm, chúng thực hiện chiến lược lập lịch để điều khiển khi các
nhiệm vụ thực thi. Còn trong các hệ thống đa bộ xử lý, các bộ xử lý thực thi không
đồng bộ, từng bộ xử lý riêng lẻ tạo lập một số luồng giả trùng hợp, chỉ một luồng đơn
có thể được thực hiện tại một thời điểm bất kỳ đã cho, nhưng các luồng hoạt động thay
đổi theo một số chiến lược lập lịch. Nhiều hệ thống cũng sử dụng tính đồng thời như
một mô hình để mô tả các hoạt động song song về mặt logic, ngay cả khi các hoạt
động này được thực thi bằng cách xen kẽ từng hành động trên một bộ xử lý đơn. Hơn
nữa, các hệ thống thời gian thực cũng phải giải quyết tính đồng thời về vật lý vốn có
và các trùng hợp này là một bộ phận của thế giới thực mà hệ thống được kết nối. Các
tín hiệu đến từ môi trường có thể đến đồng thời; tách rời theo quy luật tự nhiên và các
hành động đồng thời có thể được giám sát và điều khiển bởi một hệ thống máy tính



18

đơn; cần thiết phải biết thời điểm tín hiệu được nhận; và các tín hiệu ra có thể phải
được phát tại thời điểm xấp xỉ với ràng buộc thời gian.
Thiết kế hệ thống trở nên đặc biệt khó khăn khi hệ thống là tổ hợp của các vấn đề
trùng hợp về thời gian. Trong một bài báo minh họa các chương trình thời gian thực,
Wirth77 đã định nghĩa một cách không hình thức mô hình độ phức tạp chương trình:
mức đầu tiên hay mức thấp nhất của độ phức tạp phần mềm (mức có độ phức tạp nhỏ
nhất) là các chương trình tuần tự, mức tiếp theo là các đa chương trình tạo cảm giác
song song bởi các nhân tố thời gian (khử tính liên tục tai mức cao hơn), thực thi các
chương trình song song, mức cao nhất và có độ phức tạp lớn nhất là các chương trình
thời gian thực.
Đặc trưng thứ ba của các hệ thống thời gian thực là tầm quan trọng và ý nghĩa
của độ tin cậy (reliability) và dung thứ lỗi (fault tolerance). Độ tin cậy là độ đo mức độ
xảy ra lỗi của một hệ thống. Hay nói một cách khác, độ tin cậy là xác suất hệ thống
thực thi hiệu quả trong một chu kỳ thời gian. Khoảng chấp nhận lỗi liên quan đến việc
nhận ra và xử lý lỗi. Lỗi xảy ra có thể phải trả giá rất đắt và nguy hiểm, ví dụ, chết
người, mất tiền… Tuy nhiên, không có một hệ thống nào là tuyệt đối đáng tin cậy và
lỗi luôn luôn là một phần của hệ thống. Vì vậy, vấn đề quan trọng là tránh xảy ra lỗi
nếu có thể được bằng các kỹ thuật đáng tin cậy, thích hợp, …, với chi phí thấp hơn rất
nhiều so với chi phí cần đến khi lỗi xảy ra.
Đặc trưng thứ tư của hệ thống thời gian thực là tính chuyên biệt. Nếu như hầu hết
các hệ thống máy tính truyền thống được xây dựng để sử dụng cho các mục đích
chung, nghĩa là các hệ thống này thực hiện một vài ứng dụng trong cùng một khoảng
thời gian và các ứng dụng này thường không được biết trước đối với các nhà thiết kế
hệ thống; thì các hệ thống thời gian thực thường là các ứng dụng đặc thù (application)
và độc lập, đơn lẻ (stand-alone), nghĩa là tất cả các phần mềm, kể cả hệ điều hành,
hoàn toàn phù hợp với ứng dụng cụ thể.
Với các hệ thống thời gian thực, nhiều ứng dụng và cấu hình do một hoặc nhiều

người trực tiếp điều khiển và giám sát các hành vi của hệ thống, do đó, giao diện
người máy phải được thiết kế rất cẩn thận để tránh các lỗi do con người tạo ra.
Đặc trưng cuối cùng của hệ thống thời gian thực liên quan đến kiểm thử (testing)
và xác thực (certification). Vì chi phí liên quan đến lỗi cao, thật sự không khả thi khi
kiểm thử và gỡ lỗi các hệ thống trong các môi trường thực tế. Thay vào đó, người ta
phải sử dụng mô phỏng, kiểm thử các hệ thống con, đặc tả cẩn thận, phân tích toàn
diện các thiết kế, …, để phát hiện và xử lý lỗi.


19

1.1.4. 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, tính đồng thời 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ý tương 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 hệ thống 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ình thức trên đây thì hình thức xử lý tương tranh có vai trò chủ chốt.
Mặc dù hệ thống điều khiển có thể có nhiều trạm, và mỗi trạm có thể là một hệ đa vi
xử lý, số lượng các quá trình tính toán cần thực hiện thường bao giờ cũng lớn hơn số

lượng vi xử lý. Trong khi một vi xử lý không thể thực hiện song song nhiều lệnh, nó
phải phân chia thời gian để thực hiện xen kẽ nhiều nhiệm vụ khác nhau theo thứ tự tùy
theo mức ưu tiên và phương pháp lập lịch.
Trong các hệ thống điều khiển, khái niệm tác vụ (task) cũng hay được sử dụng
bên cạnh quá trình tính toán. Có thể nói, tác vụ 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). Các dạng tác vụ qui định trong chuẩn IEC 61131-3 (Programmable
Controllers – Part3: Programming Languages). Ví dụ, một tác vụ thực hiện nhiệm vụ
điều khiển cho một hoặc nhiều mạch vòng kín có chu kỳ trích mẫu giống nhau. Hoặc,
một tác vụ 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. Tác vụ 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.


20

1.1.5. Ứng dụng
Có thể nói, tất các các hệ thống điều khiển là hệ thời gian thực. Ngược lại, một số
lớn các hệ thống thời gian thực là các hệ thống điều khiển. Không có hệ thống điều
khiển nào có thể hoạt động bình thường nếu như nó không đáp ứng được các yêu cầu
về thời gian, bất kể là hệ thống điều khiển nhiệt độ, điều khiển áp suất, điều khiển lưu
lượng hay điều khiển chuyển động. Một bộ điều khiển phải đưa ra được tín hiệu điều
khiển kịp thời sau một thời gian nhận được tín hiệu đo để đưa quá trình kỹ thuật về
trạng thái mong muốn. Một mạng truyền thông trong một hệ thống điều khiển có tính
năng thời gian thực phải có khả năng truyền tin một cách tin cậy và kịp thời đối với
các yêu cầu của các bộ điều khiển, các thiết bị vào/ra, các thiết bị đo và thiết bị chấp
hành. Tính năng thời gian thực của một hệ thống điều khiển phân tán không chỉ phụ
thuộc vào tính năng thời gian thực của từng thành phần trong hệ thống, mà còn phụ
thuộc vào sự phối hợp hoạt động giữa các thành phần đó.
Hệ thống thời gian thực được ứng dụng phổ biến trong rất nhiều lĩnh vực, như

thương mại, quân đội, y tế, giáo dục, cơ sở hạ tầng,… và hiện nay đang phát triển rất
mạnh mẽ. Ta có thể kể ra một số lĩnh vực ứng dụng tiêu biểu:
- Các hệ thống phương tiện như: xe ô tô, xe điện ngầm, máy bay, tàu hỏa, tàu
thủy, ….
- Hệ thống điều khiển giao thông trên đường cao tốc, không phận, đường ray,
đường dành riêng cho tàu biển, …, ví dụ, hệ thống kiểm soát không lưu
- Hệ thống điều khiển trong các nhà máy: như nhà máy năng lượng, nhà máy hóa
chất và các nhà máy sản xuất bia và nước uống có ga, ….
- Hệ thống y tế như hệ thống chữa bệnh bằng bức xạ, giám sát bệnh nhân, phục
hồi nhịp đập bình thường của tim.
- Hệ thống vũ khí quân sự sử dụng trong quân đội tạo các vũ khí cháy nổ, hiệu
chỉnh tín hiệu, ….
- Hệ thống chế tạo sử dụng robot.
- Hệ thống xử lý các luồng Video và Audio.



21

1.2. Hệ điều hành thời gian thực
Các hệ thống thông thường thường nhằm các mục tiêu: tính chính xác, tính hiệu
quả, năng lực thực hiện trung bình ở mức có thể chấp nhận được; trong khi đó các hệ
thống thời gian thực, một số tiêu chí được đề cao: tính chính xác, tính kịp thời, hoạt
động phải có tính nhất quán.
Hệ điều hành trong các hệ thống thời gian thực cũng có các chức năng giống như
các chức năng của hệ điều hành thông thường, điểm khác là các hệ điều hành thời gian
thực phải có các đặc điểm thoả mãn các tiêu chí của các hệ thống thời gian thực.
Yêu cầu đầu tiên đối với một hệ điều hành thời gian thực là khả năng dự đoán
trước (predictibility). Yêu cầu thứ hai là có thể nhận biết và điều khiển tất cả các
thành phần hệ thống; trong các hệ điều hành truyền thống, phần lớn phần cứng và hệ

thống là ẩn hoặc khá trừu tượng đối với người sử dụng hoặc các nhà thiết kế ứng dụng;
tuy nhiên người sử dụng các hệ điều hành thời gian thực phải truy cập và điều khiển
được các hành vi của các thành phần hệ thống để bảo đảm tính tiên đoán được. Yêu
cầu thứ ba nên đạt được đó là hệ điều hành thời gian thực nên là hệ thống mở, nghĩa là
hệ thống định nghĩa một tập các cơ chế mềm dẻo, phù hợp chứ không tập trung vào
các chiến lược cụ thể.
Trước đây các ứng dụng thời gian thực thường đơn giản, được thiết kế và thực
hiện trên các phần cứng đặc thù, ngày nay, các ứng dụng thời gian thực được sử dụng
rộng rãi hơn và cũng phức tạp hơn rất nhiều. Để có thể cung cấp được các hàm chức
năng phức tạp, sự linh hoạt cao và độ tin cậy cho các ứng dụng thời gian thực thì các
ứng dụng này không thể chạy trên các phần cứng đặc thù nữa, một hệ điều hành thời
gian thực là một đòi hỏi cần thiết để có thể thoả mãn được các yêu cầu đó.
1.2.1. Định nghĩa về hệ điều hành thời gian thực
Chuẩn POSIX 1003.1 định nghĩa: ―tính thời gian thực trong các hệ điều hành
thời gian thực: là khả năng của hệ điều hành có thể cung cấp cho các dịch vụ đòi hỏi
các đáp ứng có yêu cầu ràng buộc về thời gian‖.
Các ràng buộc về thời gian khác nhau trong các hệ thống tính toán khác nhau có
thể từ vài giây đến mức s. Để có thể thoả mãn các đòi hỏi của các hệ thống thời gian
thực, một hệ điều hành thời gian thực cần phải: đơn giản, nhỏ gọn, tiên đoán được và
dự đoán được trường hợp xấu nhất. Hệ điều hành cũng phân loại thành hệ điều hành
thời gian thực cứng và hệ điều hành thời gian thực mềm tương ứng với sự phân loại
các hệ thống thời gian thực.


22

1.2.2. Một số đặc tính hiệu năng của hệ điều hành thời gian thực
Tính chất sống còn của một hệ điều hành thời gian thực là hệ điều hành sẽ đáp
ứng thế nào đối với các sự kiện bên trong và bên ngoài để đáp ứng tính kịp thời và tính
tiên đoán được được phản ánh ra ngoài thông qua 2 thông số của hệ điều hành là: độ

trễ đáp ứng sự kiện (event latency) và độ lệch chu kỳ (periodic jitter), đây cũng là các
thông số cơ bản để đánh giá hệ điều hành là có tính thời gian thực. Độ trễ đáp ứng sự
kiện là khoảng thời gian được tính từ khi sự kiện xảy ra đến khi sự kiện được xử lý bởi
những mã lệnh phục vụ đầu tiên. Các sự kiện có thể sinh ra do các ngắt cứng hoặc từ
các ngắt mềm tạo ra bởi chính hệ điều hành. Độ trễ đáp ứng sự kiện được biểu diễn
trong Hình 1.3. Trong trường hợp do ngắt từ phần cứng, độ trễ là khoảng thời gian từ
khi bị ngắt đến thời gian mà mã lệnh phục vụ ngắt đầu tiên được xử lý. Trong trường
hợp hệ điều hành phát sinh ra các sự kiện thông qua các ngắt mềm, độ trễ là khoảng
thời gian từ khi tín hiệu được phát ra đến khi mã lệnh đầu tiên của trình phục vụ ngắt
mềm đó được xử lý.

Hình 1.3. Trễ đáp ứng sự kiện
Độ lệch chu kỳ là sự thay đổi của chu kỳ đáp ứng đối với các sự kiện xảy ra có
chu kỳ cố định. Độ lệch chu kỳ được chỉ ra như trong Hình 1.4. Công việc xử lý lặp có
chu kỳ cố định (fixed cycle) này có trong hầu hết các thiết bị điều khiển có tích hợp
chức năng lấy mẫu theo thời gian. Các thuật toán điều khiển đưa ra các quyết định phụ
thuộc vào các mẫu này, nếu có sự xê dịch của các xử lý này thì các quyết định đưa ra
có thể tác động đến hệ thống không như yêu cầu mong muốn
Tính kịp thời và tính tiên đoán được là hai yêu cầu quan trọng nhất mà mỗi hệ
điều hành thời gian thực cần thoả mãn. Tính kịp thời của hệ điều hành thường bị ảnh
hưởng trực tiếp của phân hệ lập lịch, tính tiên đoán được lại bị ảnh hưởng của các yếu
tố: Các hoạt động ngắt, vào/ra, đồng bộ, truyền thông nội bộ (IPC), quản lý bộ nhớ và
cả phân hệ lập lịch.
Độ trễ sự kiện
Yêu cầu sự kiện
Độ trễ chu kỳ
Điểm bắt đầu luồng dịch vụ


23



Hình 1.4. Độ lệch chu kỳ

1.2.3. Các dịch vụ và chức năng thời gian thực
Chức năng quan trọng nhất là các chức năng truy cập và điều khiển thời gian
tương đối và tuyệt đối, ví dụ các thao tác độc lập và thiết lập đồng hồ, hoặc làm trễ
thời gian.
Tập dịch vụ thứ hai là quản lý luồng và tiến trình, bao gồm các thao tác tạo và
khởi tạo, kích hoạt, và kết thúc các tác vụ thời gian thực.
Tập dịch vụ thứ ba là các dịch vụ giải quyết ngoại lệ, các dịch vụ này cung cấp
các thao tác để tạo và thiết kế ngoại lệ, định nghĩa các phương thức giải quyết ngoại lệ
thích hợp.
Các tiêu chuẩn quản lý thiết bị phần cứng thường không được chấp nhận đối với
các ứng dụng. Tuy nhiên, các tiêu chuẩn này là cần đối với các hệ thống thời gian thực
để điều khiển và truy cập tới các bộ cảm biển (sensor), bộ điều khiển (controller), đồng
hồ (timer) và các thiết bị vào – ra truyền thống.
Các dịch vụ mạng thời gian thực là các phần mềm thực hiện truyền thông. Các cơ
chế và giao thức truyền thông có các ràng buộc dự đoán được và đáng tin cậy hơn
trong các hệ điều hành truyền thống – các thông báo phải được nhận đúng thời gian, kể
cả khi có lỗi phần cứng.
Các dịch vụ tệp cũng cần được quan tâm. Các tệp thời gian thực có thể được lưu
trũ trong bộ nhớ chính để tránh các vấn đề về truy cập và lỗi có thể có.
Độ lệch chu kỳ
Độ lệch chu kỳ
Thời gian cố định
Thời gian cố định


24


1.2.4. Một số vấn đề cần quan tâm trong thiết kế hệ điều hành thời gian thực
1. Lập lịch (scheduling)
Việc lập lịch xảy ra dưới tác động của các ngắt cứng, các ngắt mềm hay do một
số sự kiện khác được quy định trước. Nói chung, việc lập lịch trong một hệ điều hành
hướng tới một số mục tiêu: Tính công bằng trong chia sẻ tài nguyên, tính hiệu quả,
khả năng đáp ứng, giảm thiểu thời gian chờ xử lý, thông lượng cực đại, Tuy nhiên
không có bộ lập lịch nào thoả mãn đồng thời được các đòi hỏi trên, tuỳ theo mô trường
ứng dụng mà bộ lập lịch sẽ ưu tiên mục tiêu nào đó. Chẳng hạn mục tiêu một hệ điều
hành thông thường hướng tới là tính hiệu quả, sự chia sẻ tài nguyên công bằng và đạt
được thông lượng cao nhất. Một hệ điều hành hướng đến các mục tiêu thời gian thực
lại coi tính hiệu quả, tính khả năng dự đoán trước (Predictability) và tính kịp thời
(Timeliness) đóng vai trò quan trọng. Với các hệ nhúng thì lại hướng đến mục tiêu gọn
nhẹ, tiêu thụ ít năng lượng Có rất nhiều thuật toán đánh lịch thời gian thực nhưng chỉ
một số trong số chúng được hỗ trợ bởi các hệ điều hành thời gian thực.
Để tổ chức việc thực hiện các tác vụ được hiệu quả, một hệ điều hành thời gian
thực cần các phương pháp lập lịch. Trước hết, cơ chế lập lịch thực hiện cho các tác vụ
có thể được thực hiện theo hai cách:
- Lập lịch tĩnh: thứ tự thực hiện các tác vụ không thay đổi và được xác định trước
khi hệ thống đi vào hoạt động.
- Lập lịch động: hệ điều hành xác định lịch sau khi hệ thống đã đi vào hoạt động.
Sau khi xác định được cơ chế lập lịch, hệ điều hành cần sử dụng một chiến lược
lập lịch để á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 tác vụ đế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 tác vụ được đặt các mức
ưu tiên cố định hoặc có thể thay đổi nếu cần.
- Chen hàng (Preemptive): chọn một tác vụ để thực hiện trước các tác vụ khác.
- Không chen hàng (Non-preemptive): 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 sau:


25

- Ưu tiên theo tỷ xuất (Rate monotonic): tác vụ nào càng diễn ra thường xuyên
càng được ưu tiên.
- Ưu tiên theo thời hạn: tác vụ nào càng gấp, có thời hạn cuối càng sớm càng
được ưu tiên.
- Ưu tiên thời hạn cuối (Least laxity): tác vụ nào có tỷ lệ thời gian tính toán/thời
hạn cuối cùng (thời hạn) càng lớn càng được ưu tiên.
Bên cạnh phương pháp lập lịch, cơ chế xử lý thời còn đặt ra nhiều vấn đề khác
nữa như quản lý và đồng bộ hóa việc sử dụng tài nguyên, giao tiếp liên quá trình,
2. Ƣu tiên (priority)
Tác vụ nào sẽ được chọn để chạy tiếp theo? Đây là vấn đề bộ lập lịch cần giải
quyết căn cứ trên chính sách do người thiết kế hệ điều hành đặt ra. Trong các hệ thống
đơn nhiệm đầu tiên, các công việc được xếp hàng xử lý tuần tự. Trong các hệ thống
chia sẻ thời gian tiếp theo, thời gian được chia sẻ giữa các ứng dụng, mỗi ứng dụng sẽ
chiếm quyền điều khiển CPU trong một khoảng thời gian nhất định (timeslice). Trong
thời gian dành cho mình, tác vụ có thể nhường quyền điều khiển cho tác vụ khác do
phải đợi các truy xuất vào/ra chậm. Ở đây, việc xếp lịch xử lý không có cơ chế ưu tiên,
các công việc được đối xử như nhau
Khi việc lập lịch có tính đến sự ưu tiên nghĩa là công việc tiếp theo được chọn
phụ thuộc vào tính chất của công việc đó. Sự ưu tiên cũng dựa trên các nguyên tắc
khác nhau như: tác vụ đến trước sẽ được phục vụ trước; việc ngắn nhất được phục vụ
trước; việc có ưu tiên cao được phục vụ trước; việc có thời hạn gần nhất sẽ được phục
vụ trước. Việc gán mức ưu tiên có thể tĩnh hoặc động
3. Đảo ƣu tiên (priority inversion)
Một tác vụ có mức ưu tiên cao có thể bị chặn lại khi nó đang chạy hoặc sẵn sàng

chạy nhưng phải đợi việc sử dụng tài nguyên do các tác vụ có ưu tiên thấp khác đang
kiểm soát (Hình 1.5), đây gọi là hiện tượng đảo ưu tiên.
Để giải quyết trường hợp này, một số kỹ thuật được đưa vào như PIP (Priority
Inheritance Protocol) và PCP (Priority Ceiling Protocol).



26


Hình 1.5. Ví dụ về đảo ƣu tiên
4. Sự đoạt quyền (preemtion)
Sự đoạt quyền được biểu diễn trong hình dưới. Với các HĐH được thiết kế
không hỗ trợ khả năng đoạt quyền (hay non-preemptive nhân), khi một tác vụ đang
chạy ở chế độ nhân sẽ không thể bị dừng bởi các tác vụ nhân hay các tác vụ user khác,
Sau ISR, tác vụ cũ tiếp tục chạy (Hình 1.6).












Tác vụ 1 chen hàng tác vụ 3 (3)
Tác vụ 3 nhận Semaphore (2)

Đảo ƣu tiên
Tác vụ 1 (H)
Tác vụ 2 (M)
Tác vụ 3 (L)
Tác vụ 1 cố gắng nhận Semaphore (5)
Khôi phục tác vụ 3 (9)
Tác vụ 3 giải phóng Semaphore (11)
Tác vụ 2 chen hàng tác vụ 3 (7)
Hình 1.6. Sự đoạt quyền: (a) không hỗ trợ


Tác vụ ưu tiên thấp
Tác vụ ưu tiên cao
ISR đặt trạng thái cho tác
vụ ưu tiên cao là Ready
Tác vụ ưu tiên thấp
giải phóng CPU

×