Tải bản đầy đủ (.doc) (161 trang)

Cac He Thong TGThuc ppsx

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 (2.82 MB, 161 trang )

Chương 1: Giới thiệu về hệ thống thời gian thực 3
1.1 Các thuật ngữ 3
1.1.1 Các khái niệm về hệ thống. 3
1.1.2 Định nghĩa thời gian thực 6
1.1.3 Các sự kiện và Tính tiền định 10
1.1.4 Tận dụng CPU 13
1.2 Các vấn đề về thiết kế Hệ thời gian thực ( RTS) 15
1.3 Ví dụ về RTS 17
1.4 Những nhận thức sai về RTS hay gặp 20
1.5 Lược sử 21
1.5.1 Những tiến bộ về lý thuyết 21
1.5.2 Các hệ thống ban đầu 22
1.5.3 Phát triển phần cứng 22
1.5.4 Phầm mềm ban đầu 23
1.5.5 Hỗ trợ của hệ điều hành thương mại 24
1.6 Một số khái niệm cơ bản trong lập lịch tác vụ thời gian thực 26
1.6.1 Mô tả tác vụ 26
1.6.2. Lập lịch: khái niệm, thuật toán và đặc điểm 33
1.6.3 Lập lịch trong hệ điều hành cổ điển 38
1.6.4 Minh hoạ lập lịch thời gian thực 42
Chương 2: Lập lịch các tác vụ độc lập 43
2.1 Các thuật toán online cơ bản cho các tác vụ có chu kỳ 44
2.1.1 Lập lịch đơn nguyên tỷ lệ 45
2.1.2 Thuật toán đảo ngược deadline (hay đơn nguyên deadline) 52
2.1.3 Các thuật toán gán độ ưu tiên động 53
2.2 Lập lịch các tập tác vụ kết hợp 57
2.2.1 Lập lịch các tác vụ không có chu kỳ mềm 57
2.2.2 Lập lịch tác vụ không có chu kỳ cứng 66
2.3 Bài tập 70
Chương 3. Lập lịch các tác vụ phụ thuộc 71
3.1 Các tác vụ với các quan hệ trước sau (quan hệ thứ tự) 71


3.1.1 Các ràng buộc thứ tự và cac thuật toán độ ưu tiên cố định 73
3.1.2 Ràng buộc thứ tự và thuật toán thời hạn sớm nhất trước 74
3.1.3 Ví dụ 75
3.2 Các tác vụ chia sẻ tài nguyên quan trọng 76
3.2.1 Đánh giá thời gian phản hồi của tác vụ 77
3.2.2 Hiện tượng đảo độ ưu tiên ( Priority inversion phenomenon) 81
3.2.3 Hiện tượng deadlock (tắc nghẽn) 83
3.2.4 Các giao thức truy xuất tài nguyên chia sẻ 85
3.2.5 Kết luận 90
3.3 Bài tập 93
Chương 4. Lập lịch kiểm soát quá tải 94
4.1 Các kỹ thuật lập lịch trong điều kiện quá tải. 94
4.2 Kiểm soát tập tác vụ có các tham số thời gian biến đổi 94
4.2.1 Các mô hình cụ thể cho các ứng dụng với tác vụ thực thi biến đổi 96
4.2.2 Mô hình thích nghi on-line 97
4.2.3 Kỹ thuật chấp nhận lỗi 99
1
4.3 Kiểm soát tình trạng quá tải với các tập tác vụ kết hợp 104
4.3.1 Các chính sách sử dụng giá trị độ quan trọng 104
4.3.2 Ví dụ 108
Chương 5. Phân tích thiết kế hệ thống thời gian thực với UML Real Time Profile
112
5.1 UML profiles 112
5.1.1 Các Stereotype 113
5.1.2 Các giá trị đính kèm 114
5.1.3 Profile 117
5.2 “RT UML” profile 117
5.2.1 Subprofile Mô hình tài nguyên chung 121
5.2.2 Subprofile Mô hình hóa thời gian. 126
5.2.3 Concurrency Modelling Subprofile 134

5.2.4 Subprofile Mô hình hóa khả năng lập lịch được 138
5.2.5 Subprofile Mô hình hóa hiệu quả 150
2
Chương 1: Giới thiệu về hệ thống thời gian thực
Xét một hệ thống mà dữ liệu cần được xử lý thường xuyên và đúng thời
điểm. Ví dụ như một máy bay sử dụng một dãy các xung gia tốc kế để xác định vị
trí của nó. Thêm vào đó, các hệ thống khác các hệ thống hàng không cần tới phản
hồi tức thì, nhanh với các sự kiện xảy ra không thường xuyên, như việc nhiệt độ
vượt quá mức độ cho phép trong một nhà máy điện nguyên tử. Chúng ta có thể hiểu
rằng các sự kiện này đòi hỏi xử lý thời gian thực.
Bây giờ chúng ta xét một tình huống mà một khách hàng tiếp cận một quầy
lễ tân tại một sân bay để mua vé bay từ New York tới Boston, chuyến bay đó sẽ
bay trong vòng 5 phút nữa. Nhân viên bán vé điền các thông tin phù hợp vào máy
tính và vài giây sau một vé cho phép khách hàng lên máy bay được hoàn tất. Đây
có phải là hệ thống thời gian thực không?
Thực ra, cả 3 hệ thống – máy bay, nhà máy điện nguyên tử, và hệ thống ở
quầy bán vé đề là thời gian thực vì chúng phải xử lý thông tin trong một khoảng
thời gian cụ thể nào đó hoặc là hệ thống sẽ không hoàn thành được nhiệm vụ. Mặc
dù những ví dụ này chỉ đưa ra một định nghĩa cảm tính về một hệ thời gian thực,
nhưng chúng có thể giúp chúng ta định nghĩa chi tiết hơn về hệ thời gian thực sau
này. Bài học hôm nay giúp chúng ta trả lời câu hỏi trên: Một hệ thống có phải là
thời gian thực hay không, định nghĩa một số thuật ngữ và giới thiệu một số vấn đề
liên quan sẽ được nghiên cứu sâu hơn trong môn học này.
1.1 Các thuật ngữ
Định nghĩa về hệ thời gian thực có thể rất đa dạng phụ thuộc vào nguồn tài
liệu tham khảo được dùng. Các định nghĩa sau được thu thập và tinh chỉnh sao cho
dễ hiểu và phù hợp với nội dung của môn học này. Những định nghĩa này phù hợp
với những kỹ sư làm việc thực tế, nhưng có thể không phù hợp với các nhà nghiên
cứu lý thuyết.
1.1.1 Các khái niệm về hệ thống.

Phần cứng của một máy tính đa năng giải quyết các vấn đề bằng cách thực
thi lặp lại các đoạn lệnh, thường được gọi là phần mềm. Phần mềm thường được
phân chia thành các chương trình hệ thống và chương trình ứng dụng.
3
Các chương trình hệ thống bao gồm phần mềm giao tiếp với phần cứng máy
tính máy tính như: bộ phân lịch trình, các bộ điều khiển thiết bị, các bộ điều vận và
các chương trình đóng vai trò là các công cụ cho phép phát triển các chương trình
ứng dụng. Các công cụ này bao gồm chương trình dịch (chuyển đổi ngôn ngữ lập
trình sang hợp ngữ); assebler (dịch hợp ngữ sang mã máy); vác các linker (chuẩn bị
mã máy để thực thi). Một hệ điều hành là một tập hợp các chương trình hệ thống
quản lý tài nguyên vật lý của máy tính. Vì vậy mà một hệ điều hành thời gian thực
là một chương trình hệ thống.
Các chương trình ứng dụng là các chương trình được viết để giải những bài
toán cụ thể, như là chuẩn bị các bảng lương, hóa đơn và định hướng đường đi.
Khái niệm hệ thống là tâm điểm của công nghệ phần mềm. Nó được định
nghĩa như sau: Hệ thống là một ánh xạ từ một tập đầu vào tới một tập đầu ra.
Khi mà không quan tâm tới chi tiết bên trong của hệ thống, chúng ta có thể
xem ánh xạ đó như một hộp đen với một hay nhiều đầu vào và đưa ra một hay
nhiều đầu ra:
Hình 1.1: Hệ thống máy tính với n đầu vào, m đầu ra
Bất kỳ một thực thể trong thế giới thực nào cũng đều có thể mô hình thành
một hệ thống. Trong các hệ thống tính toán, đầu vào biểu diễn bởi dữ liệu số từ các
thiết bị phần cứng và từ các phần mềm khác. Các đầu vào thường liên quan tới các
bộ cảm ứng, các camera, và các thiết bị khác cung cấp các đầu vào tuần tự, các đầu
vào này sau đó được chuyển đổi thành các dữ liệu kỹ thuật số, hoặc chúng cung cấp
đầu vào dưới dạng digital trực tiếp. Đầu ra kỹ thuật số của hệ thống máy tính có thể
4
được chuyển đổi thành đầu ra tuần tự để điều khiển phần cứng bên ngoài như các
bộ phát động hay các bộ trình diễn (hình 1.2).
Hình 1.2: Hệ thống điều khiển thời gian thực điển hình bao gồm các đầu vào

từ các bộ cảm ứng, các thiết bị ghi hình và đưa ra các tín hiệu điều khiến và thông
tin hiểu thị.
Mô hình hóa một hệ thời gian thực như hình 1.2 thì hơi khác so với mô hình
truyền thống của một hệ thời gian thực như hình 1.3. Mô hình truyền thống xem hệ
thời gian thực là một chuỗi các công việc cần được xếp lịch và có thể dự đoán
trước hoạt động của hệ thống. Mô hình sau thì đơn giản và nó bỏ qua sự phức tạp
của các nguồn đầu vào và phần cứng. Hơn nữa, cần quan tâm tới những yếu tốt
khác của công nghệ phần mềm được ẩn trong mô hình 1.3.
Hình 1.3: biểu diễn cơ bản của một hệ thời gian thực, xét một tập các công
việc cần được xếp lịch và đưa ra lịch biểu (schedule) cho các công việc đó.
5
Xem lại hình 1.2 chúng ta thấy có sự trễ nhất định giữa đầu vào (kích thích)
và việc xuất hiện đầu ra (đáp ứng). Nó có thể được định nghĩa như sau:
Khoảng thời gian trễ giữa việc biểu diễn một tập đầu vào trên một hệ thống
(các (tín hiệu) kích thích) và việc đưa ra được một hành động cần thiết (đáp ứng),
bao gồm sự có mặt của tất cả các đầu ra được gọi là thời gian đáp ứng của hệ
thống.
Thời gian đáp ứng của hệ thống cần phải nhanh như thế nào phụ thuộc vào
mục tiêu của hệ thống.
1.1.2 Định nghĩa thời gian thực
Các định nghĩa ở trên cung cấp cho chúng ta tiền đề để định nghĩa một hệ
thời gian thực.
Một hệ thời gian thực là một hệ thống phải thỏa mãn các ràng buộc
tường minh về thời gian đáp ứng hoặc sẽ có nguy cơ gặp phải những hậu quả
nghiêm trọng, thậm chí thất bại của hệ thống.
Như thế nào là một hệ thống thất bại? Trong trường hợp của một hệ thống
phóng tên lửa hay một nhà máy điện nguyên tử, chúng ta có thể dễ dàng nhận ra sự
nghiêm trọng của thất bại nếu chúng xảy ra. Với những hệ thống khác, như một
máy ATM, khái niệm thất bại không rõ ràng bằng thất bại trong các hệ thống trên.
Từ đây chúng ta hiểu thất bại là sự mất khả năng hoạt động của hệ thống. Cụ thể

hơn:
Một hệ thống thất bại là một hệ thống không thể thỏa mã một hay một số
yêu cầu được đề cập trong phần đặc tả hệ thống.
Chúng ta thấy rằng các đặc tả chính xác về hoạt động của hệ thống, các tiêu
chuẩn đánh giá và các ràng buộc thời gian của hệ thống có vai trò quan trọng.
Chúng ta sẽ thảo luận về vấn đề này sau.
Có nhiều định nghĩa khác về thời gian thực tồn tại, phụ thuộc vào tài liệu mà
bạn đọc, nhưng nhìn chúng tất cả các định nghĩa đều nói rằng hệ thống phải thỏa
mãn các ràng buộc về thời hạn để được xem là hoạt động chính xác. Ví dụ một định
nghĩa khác có thể được phát biểu như sau:
Một hệ thời gian thực là một hệ thống mà sự chính xác logic của nó được
dựa trên cả sự chính xác của đầu ra và sự đúng thời điểm của chúng.
6
Các hệ thời gian thực thường là hệ tương tác hay hệ nhúng. Các hệ tương tác
là những hệ mà việc xếp lịch trình bị tác động bởi kết quả tương tác với môi
trường, ví dụ như một hệ thống điều khiển cháy phụ thuộc vào kết quả tương tác
với các nút được nhấn bởi người phi công. Các hệ nhúng là những hệ được tìm thấy
trong các hệ thống không phải là một máy tính. Ví dụ như một xe ô tô hiện đại
chứa nhiều máy tính nhúng điều khiển việc phun xăng, bung túi khí, kiểm soát kẹt
phanh, kiểm soát không khí trong xe và các thiết bị khác nữa. Ngày nay nhiều thiết
bị dùng trong nhà như tivi, hệ thống âm thanh, máy giặt và thậm chí đồ chơi cũng
chứa các máy tính nhúng. Rõ ràng là các hệ thống phức tạp như máy bay, tàu vũ
trụ, và các máy công nghiệp phải chứa nhiều hệ thống máy tính tương tác, và
nhúng khác nhau.
Cả 3 hệ thống được đề cập ở trên đều thỏa mãn các tiêu chuẩn của một hệ
thời gian thực. Một máy bay phải xử lý dữ liệu từ gia tốc kế trong một khoảng thời
gian nào đó phụ thuộc vào các đặc tả của máy bay, ví dụ như cứ 10 mili giây một
lần. Không làm được việc đó có thể làm cho máy bay xác định sai vị trí, đường
bay, thông báo tốc độ không chính xác và làm cho máy bay đi sai đường, thậm chi
gây ra tai nạn. Với một bài toán lò phản ứng hạt nhân, không đáp ứng nhanh có thể

làm nóng chảy lò phản ứng. Cuối cùng một hệ thống bán vé máy bay phải phản
ứng với lượng lớn khách hàng trong một khoảng thời gian chấp nhận được (ít nhất
là trước khi máy bay cất cánh). Tóm lại, một hệ thống không nhất thiết phải xử lý
dữ liệu trong các khoảng mili giây mới được gọi là hệ thời gian thực, nó chỉ đơn
giản phải có các ràng buộc về thời gian đáp ứng.
Khi nào một hệ thống được xem là thời gian thực?
Người ta có thể lập luận rằng tất cả các hệ thống thực tế đều là hệ thời gian
thực. Thậm chí là một hệ thống xử lý bó (theo lô), ví dụ như xử lý điểm ở cuối học
kỳ, hay là hệ thống tính lương hàng tháng cũng được gọi là thời gian thực. Mặc dù
hệ thống không có các thời gian đáp ứng theo ngày, tuần, nhưng nó cũng phải phản
hồi trong một khoảng thời gian nhất định, và có thể gây ra những vấn đề về tài
chính hoặc học thuật. Thập chí là một bộ soạn thảo cũng nên phải hồi các lệnh
trong một khoảng thời gian chấp nhận được (ví dụ như 1 giây), hay nó sẽ khiến
7
người dùng không dùng nó nữa. Hầu hết các tài liệu đều gọi những hệ thống như
vậy là các hệ thống thời gian thực mềm.
Một hệ thống thời gian thực mềm là một hệ thống mà kết quả của nó
giảm đi chứ không mất đi khi không thỏa mãn các ràng buộc về thời gian đáp
ứng.
Ngược lại, các hệ thống thời gian thực cứng là các hệ thống mà nếu
không thỏa mãn được các ràng buộc về thời gian đáp ứng có thể gây ra những
thảm họa thực sự.
Một vài ví dụ về các hệ thống thời gian thực cứng, mềm và vững(firm).
Phân loại
hệ thời
gian thực
Giải thích
Máy ATM Mềm Nếu như không đạt được các thời hạn sẽ
không tạo ra các thất bại nghiêm trọng
của hệ thống, nó chỉ giảm hiệu quả của

hệ thống mà thôi, giảm sự thỏa mãn của
khách hàng
Bộ điều khiển định hướng
nhúng dùng cho robot nhặt
cỏ
Vững Nếu như không thỏa mãn các thời hạn
định hướng quan trọng có thể làm cho
robot thay đổi hướng đi không ngừng,
mất kiểm soát và phá hoại mùa màng
Hệ thống kiểm soát các vũ
khí điện tử hàng không
trong đó việc nhấn một nút
có thể kích hoạt/phóng một
tên lửa không nối không
Cứng Việc không thỏa mãn được các thời hạn
để phóng tên lửa trong một khoảng thời
gian nhất định sau khi ấn nút cho thể
làm chệch mục tiêu, và sẽ gây ra thảm
họa.
Các hệ thống thời gian thực vững là những hệ thống mà những thời hạn cố
định có thể không được thỏa mãn nhưng không gây ra hậu quả nghiêm trọng.
Một hệ thống thời gian thực vững là một hệ thống cho phép không thỏa
mãn một số thời hạn, khi không thỏa mãn một số thời hạn sẽ không gây ra sự
8
thất bại toàn bộ, nhưng nếu không thỏa mãn quá nhiều có thể gây ra thảm họa
thực sự cho hệ thống.
Chú ý rằng có nhiều cách hiểu và phân loại các hệ thống mềm, cứng và vững
khác nhau. Ví dụ như trường hợp máy ATM, nếu như không thỏa mãn quá nhiều
thời hạn sẽ dẫn tới khách hàng không thỏa mãn và có thể làm cho kinh doanh tụt
dốc và nguy hại tới hoạt động của ngân hàng. Như vậy một hệ thống có thể được

phân loại mềm, vững, cứng tùy thuộc vào việc chúng ta quan niệm và xây dựng các
tình huống hỗ trợ như thế nào. Việc đưa ra các yêu cầu về hệ thống một cách cẩn
thận sẽ giúp chúng ta xác định được những mong đợi về thời hạn đúng đắn. Trong
bất kỳ trường hợp nào, mục tiêu chủ đạo của các hệ thống thời gian thực là tìm
cách chuyển các thời hạn cứng sang vững, và vững sang mềm.
Chúng ta sẽ chủ yếu quan tâm tới các hệ thời gian thực cứng, vì vậy khi nói
tới hệ thời gian thực chúng ta hiểu là đang đề cập tới hệ thời gian thực (nhúng)
cứng, nếu không sẽ được chỉ rõ là đang nói tới hệ nào.
Bản chất của thời gian
Khi nghiên cứu các hệ thời gian thực chúng ta cần phải nghiên cứu tới bản
chất của thời gian, vì các thời hạn tồn tại rất ngắn mà thôi. Nhưng chúng ta gặp
phải câu hỏi: Các thời hạn xuất phát từ đâu? Nói chung các thời hạn nảy sinh từ các
hiện tượng vật lý mà hệ thống điều khiển. Ví dụ trong hệ thống hiển thị hoạt ảnh,
các ảnh phải được cập nhật khoảng 30 khung hình trong một giây. Trong hệ thống
định hướng/dò đường các thông tin gia tốc kế phải được đọc với một tỉ lệ dựa trên
tốc độ tối đa của phương tiện. Trong một số trường hợp, các hệ thống có các thời
hạn dựa vào các dự đoán. Vấn đề trong các trường hợp này là các ràng buộc không
được đáp ứng có thể xuất hiện. Đây là một vấn đề hết sức cơ bản trong việc thiết kế
hệ thời gian thực: hiểu được cơ sở và bản chất của các ràng buộc về thời gian để từ
đó có thể xử lý chúng hiệu quả.
Có nhiều hệ thống thời gian thực tận dụng việc lấy nhãn thời gian
(timestamp) và đồng hồ toàn cầu để đồng bộ hóa, khởi tạo một tác vụ và đánh dấu
dữ liệu. Cần chú ý rằng các đồng hồ nhiều khi cũng chạy sai, và cần được điều
chỉnh. Hơn thế, cũng có những lỗi về kỹ thuật số với các đồng hồ mà chúng ta cần
xem xét khi sử dụng việc lấy nhãn thời gian (time – stamping).
9
1.1.3 Các sự kiện và Tính tiền định
Trong các hệ thống phần mềm, một thay đổi về trạng thái tạo ra một thay đổi
luồng điều khiển của chương trình máy tính. Hãy xét hình 1.4. Khối quyết định
được biểu diễn bởi một hình thoi, muốn nói rằng luồng lệnh của chương trình có

thể đi theo 1 trong 2 hướng tùy thuộc vào phản hồi đang mong đợi. Các lệnh if-
then, goto và case trong bất kỳ ngôn ngữ nào biểu diễn một sự thay đổi có thể xảy
ra trong luồng điều khiển. Việc gọi hàm trong C hay một số ngôn ngữ khác biểu
diễn các thay đổi của luồng điều khiển. Trong các ngôn ngữ lập trình hướng đối
tượng, việc tạo ra một thể hiện của đối tượng hay gọi một phương thức tạo ra một
thay đổi trong luồng điều khiển tuần tự.
Hình 1.4: Một lưu đồ đơn giản dùng hình thoi biểu diễn một nhánh như
một sự thay đổi luồng điều khiến
Tóm lại, chúng ta có thể định nghĩa như sau:
Bất kỳ sự việc nào làm cho chương trình chuyển hướng không tuần tự
được coi là một thay đổi của dòng điều khiển, và được gọi là một sự kiện.
Trong lý thuyết lập lịch (scheduling theory), thời điểm giải phóng một công
việc giống như một sự kiện.
Thời gian giải phóng là thời điểm một thể hiện của tác vụ được lập lịch
sẵn sàng chạy, và nó thường đi cùng với một ngắt.
Các sự kiện hơi khác một chút so với các công việc, sự kiện có thể được tạo
ra bởi những ngắt, cũng như những rẽ nhánh có điều kiện và không có điều kiện.
10
Các sự kiện đồng bộ và không đồng bộ
Một sự kiện có thể là đồng bộ (synchronous) hoặc không đồng bộ
(asynchronous). Các sự kiện đồng bộ là những sự kiện xảy ra tại những thời điểm
được dự đoán trước trong dòng điều khiển, giống như những hộp quyết định trong
lưu đồ trong hình 1.4. Sự thay đổi luồng điều khiển được biểu diễn bởi một lệnh rẽ
nhánh có điều kiện, hoặc bởi một sự ngắt nội bộ có thể được lường trước, nhưng
không phải luôn xảy ra.
Những sự kiện không đồng bộ xảy ra ở những thời điểm không dự đoán
trước được ở trong dòng điều khiển, và thường gây ra bởi những nguồn bên ngoài.
Một chiếc đồng hồ rao động định kỳ 5 mili giây không phải là một sự kiện đồng bộ.
Trong khi nó biểu diễn một sự kiện mang tính định kỳ, thậm chí là chiếc đồng hồ
có thể chuyển kim chính xác mỗi 5 mili giây mà không hề dịch chuyển sai lệch một

chút nào (về mặt vật lý là không thể) thì thời điểm kim đồng hồ dịch chuyển trong
dòng điều khiển cũng còn phụ thuộc vào nhiều yếu tố. Những yếu tố này có thể bao
gồm thời gian đồng hồ bắt đầu là tương đối so với chương trình, và việc truyền tín
hiệu cũng bị trễ ngay trong hệ thống máy tính. Một kỹ sư không bao giờ có thể đếm
được số lần đồng hồ nhảy kim chính xác ở tốc độ đã được định trước, và vì vậy một
sự kiện được điều khiển bởi đồng hồ phải được xem là không đồng bộ.
Các sự kiện không xảy ra ở các khoảng thời gian đồng đều được gọi là các
sự kiện không theo chu kỳ (aperiodic). Các sự kiện không theo chu kỳ và thường
xảy ra rất ít lần được gọi là các sự kiện rời (sporadic) (lâu lâu mới xảy ra một lần).
Bảng 1.2 đặc trưng cho việc lấy mẫu các sự kiện.
Bảng 1.2 Phân loại sự kiện và ví dụ
Sự kiện theo chu kỳ Sự kiện không theo chu
kỳ
Sự kiện rời
Đồng bộ Mã vòng Lệnh rẽ nhánh điển hình Lệnh rẽ nhánh, ví dụ
như khôi phục lỗi
Các xử lý được xếp lịch
trình bởi đồng hồ nội bộ
Thu thập rác Các bẫy
Không đồng
bộ
Các ngắt sinh ra bởi
đồng hồ
Các ngắt thường xuyên,
nhưng không xảy ra ở
những thời điểm cố
định
Các ngoại lệ sinh ra
từ bên ngoài (Các sự
kiện ngẫu nhiên)

Chú ý: Nhiều mục này sẽ được thảo luận ở phần sau, hoặc có tìm thấy ở
phần glossary.
11
Ví dụ, một ngắt được sinh ra bởi một đồng hồ từ bên ngoài biểu diễn một sự
kiện có chu kỳ nhưng không phải là một sự kiện đồng bộ. Một sự kiện có chu kỳ
nhưng không đồng bộ là một sự kiện được biểu diễn bởi một dãy các lời gọi các tác
vụ và được lặp lại, có tính chu kỳ, còn được biết đến như mã vòng (cyclic code).
Một lệnh rẽ nhánh có điều kiện hoặc không có điều kiện mà không phải là một
phần của một khối mã chạy lặp đi lặp lại định kỳ được gọi là một sự kiện đồng bộ
nhưng không có chu kỳ. Một lệnh rẽ nhánh xảy ra ít, ví dụ như khi xuất hiệt một
điều kiện ngoại lệ thì vừa được gọi là sự kiện rời vừa được gọi là sự kiện đồng bộ.
Cuối cùng, các ngắt được sinh ra không thường xuyên (ngẫu nhiên) bởi một thiết bị
bên ngoài được gọi là một sự kiện không đồng bộ không chu kỳ hoặc rời, phụ
thuộc vào việc ngắt được sinh ra thường xuyên hay không so với đồng hồ hệ thống.
Tính tiền định (tất định)
Trong bất kỳ hệ thống nào, hệ thống nhúng không phải là ngoại lệ, việc duy
trì điều khiển là rất quan trọng. Với một hệ thống vật lý bất kỳ có những trạng thái
nào đó tồn tại mà hệ thống không kiểm soát được, khi đó phần mềm điều khiển
phải cố gắng tránh những trạng thái đó. Ví dụ như một hệ thống dẫn đường máy
bay nào đó, việc quay nhanh 180
0
có thể gây ra mất kiểm soát hồi chuyển. Phần
mềm phải có khả năng đoán trước được và ngăn chặn tình huống này.
Một đặc tính khác của hệ thống phần mềm điều khiển là CPU liên tục lấy và
thực thi mã lệnh từ vùng nhớ chương trình, chứ không lấy từ các vùng nhớ dữ liệu
hay vùng nhớ không mong đợi. Việc lấy lệnh từ vùng nhớ không mong đợi có thể
xảy ra với những hệ thống được kiểm thử không tốt và là thảm họa cho hệ thống đó
mà không hề có hi vọng phục hồi.
Phần mềm điều khiển hệ thời gian thực và phần cứng đi kèm bất kỳ được
duy trì khi có thể dự đoán trước được trạng thái tiếp theo của hệ thống dựa trên tập

dữ liệu vào và trạng thái trước đó. Nói cách khác, mục tiêu là dự đoán hệ thống sẽ
cư xử thế nào trong mọi tình huống có thể xảy ra.
Một hệ thống được xem là có tính tiền định nếu như với mỗi trạng thái có
thể xuất hiện và mỗi tập đầu vào, hệ thống có thể đưa một tập đầu ra duy nhất
và trạng thái tiếp theo.
12
Tính tiền định sự kiện có nghĩa là các trạng thái kế tiếp và các đầu ra của hệ
thống đã được định trước tương ứng với mỗi tập đầu vào gây ra các sự kiện. Vậy,
một hệ thống có tính tiền định là một hệ thống có tính tiền định sự kiện. Mặc dù
khó có thể quyết định một hệ thống là tiền định khi chỉ dựa vào các đầu vào gây ra
các sự kiện, do vậy tiền định sự kiện không có nghĩa là tiền định.
Cũng cần chú ý rằng rất khó để có thể thiết kế các hệ thống hoàn toàn có
tính tiền định sự kiện, chúng ta không thể tránh khỏi việc kết thúc quá trình thiết kế
bằng một hệ thống không tiền định. Nhưng cũng rất khó để chủ động thiết kế một
hệ thống không tiền định. Tình huống này nảy sinh do sự khó khăn trong việc thiết
kết các bộ sinh số ngẫu nhiên hoàn toàn. Ví dụ như khi chúng ta thiết kế các hệ
thống máy đánh bạc, chúng ta mong muốn xây dựng những hệ thống chủ động
không tiền định.
Nếu như trong một hệ thống tiền định thời gian đáp ứng của mỗi tập đầu ra
được xác định trước thì hệ thống cũng biểu diễn một tiền định theo thời gian.
Một lợi ích của thiết kế các hệ thống tiền định là có thể đảm bảo rằng hệ
thống sẽ có khả năng phản hồi ở bất kỳ thời điểm nào, và với hệ thống tiền định
theo thời gian, chúng ta biết khi nào chúng sẽ phản hồi.
1.1.4 Tận dụng CPU
Thuật ngữ cuối cùng và quan trọng nhất cần phải định nghĩa là một công cụ
cho phép đo được hoạt động của hệ thời gian thực. Vì trong mô hình von
Neumann, CPU liên tục lấy, giải mã, và thực thi các lệnh khi nào nó còn có nguồn
điện, như vậy CPU sẽ thực thi các lệnh bất kỳ, có thể các lệnh không chạy được,
cách lệnh không liên quan tới việc thỏa mãn các thời hạn. Định lượng thời gian sử
dụng để thực hiện tiến trình nhàn rỗi theo cách nào đó thể hiện thời gian xử lý đã

dùng là bao nhiêu?
Hệ số tận dụng CPU hay hệ số thời gian tải (time loading) U là một đơn vị
tính theo phần trăm của các xử lý không phải nhàn rỗi.
Một hệ thống được gọi là quá tải thời gian nếu U > 100%. Các hệ thống mà
CPU được dùng quá nhiều cũng không tốt vì rất khó thêm các thay đổi và các công
việc nảy sinh vào hệ thống mà không gây ra quá tải. Các hệ thống không được tận
dụng đúng mức cũng không hẳn là tốt, vì điều này nói lên rằng hệ thống còn có thể
13
được chạy với phần mềm rẻ hơn. Khi mà mức độ tận dụng 50% là phổ biến cho
những sản phẩm mới, chúng ta có thể dùng mức độ 80% cho những hệ thống ít có
biến động lớn. Tuy nhiên 70% là mục tiêu mà chúng ta đặt ra cho U trong hầu hết
các hệ thống thời gian thực khi các tác vụ là theo chu kỳ và độc lập nhau. Bảng 1.3
cung cấp một tóm tắt về việc tận dụng CPU ở một số cấp độ và các tình huống
tương ứng.
Hệ số U
(%)
Kiểu Ứng dụng điển hình
0 – 25 Vượt qua sức mạnh xử lý
nhiều – CPU quá mạnh so với
nhu cầu
Nhiều ứng dụng khác nhau
26 – 50 Rất an toàn Nhiều ứng dụng khác nhau
51 – 68 An toàn Nhiều ứng dụng khác nhau
69 Giới hạn lý thuyết Hệ nhúng
70 – 82 Nghi vấn Hệ nhúng
83 – 99 Nguy hiểm Hệ nhúng
100+ Quá tải Các hệ chạy quá nặng
Bảng 1.3: tận dụng CPU trong một số ứng dụng và kiểu ứng dụng tương
ứng.
U được tính bằng cách tính tổng của các nhân tố tham gia vào tận dụng ở

mỗi tác vụ. Giả sử một hệ thống có n tác vụ có chu kỳ (periodic task), n ≥ 1, mỗi
tác vụ có khoảng thời gian thực thi là p
i
, và tần số thực thi là f
i
= 1/p
i
. Nếu tác vụ i
có thời gia thực thi (hoặc được dự đoán là có thời gian thực thi) trong trường hợp
xấu nhất là e
i
thì hệ số tố tận dụng u
i
cho tác vụ e
i
là:
u
i
= e
i
/p
i
. (1.1)
Khi đó mức độ tận dụng của toàn hệ thống là:
(1.2)
Chú ý rằng thời hạn cho một tác vụ có tính chu kỳ thứ i, d
i
, thường là chu
kỳ tiếp theo hoặc khoảng thời gian tiếp theo và là một nhân tố rất quan trọng trong
thiết kế và nhân tố bị ràng buộc bởi e

i
. Việc xác định e
i
cho dù là trước hoặc sau khi
14
mã đã được viết đều có thể trở nên rất khó khăn, và trong nhiều trường hợp là
không thể xác định. Trong trường hợp đó buộc phải ước lượng. Với những tác vụ
không có tính chu kỳ (aperiodic) và các tác vụ rời (sporadic) thì u
i
được tính bằng
cách giả sử khoảng thời gian thực thi tồi nhất, thường là trễ trong trường hợp tồi
nhất giữa các lần xảy ra sự kiện. Sự xấp xỉ như vậy có thể làm tăng nhanh yếu tố
tận dụng (sử dụng CPU) một cách không cần thiết hoặc có thể dẫn tới tự tin quá
mức vì xu hướng “không nên lo lắng nhiều” về đóng góp thừa của nó. Người ta đã
phát hiện ra rằng tần số xuất hiện cao hơn mức đã được phân bổ dẫn tới quá tải về
thời gian và sự thất bại của hệ thống (system failure).
Yếu tố tận dụng khác với lượng đầu vào CPU, lượng đầu vào CPU được tính
bởi số lệnh macro/giây mà có thể được xử lý dựa trên một tập lệnh được xác định
trước. Số đo này thường được sử dụng để so sánh “mã lực” của CPU cho một ứng
dụng cụ thể.
Việc chọn thời hạn cho tác vụ, tính toán và giảm thời gian thực thi và những
yếu tố khác ảnh hưởng việc tận dụng CPU sẽ được thảo luận chi tiết hơn ở phần
sau.
1.2 Các vấn đề về thiết kế Hệ thời gian thực ( RTS)
RTS là một nhánh con phức tạp của công nghệ về hệ thống máy tính và nó
bị ảnh hưởng nhiều bởi lý thuyết điều khiển, công nghệ phần mềm và vận trù học
(thông qua lý thuyết lập lịch – scheduling theory). Hình 1.5 minh họa một số lĩnh
vực của KHMT và Kỹ thuật điện tử có ảnh hưởng tới thiết kế và phân tích của
RTS. Bởi vì thế công nghệ RTS có tính liên ngành cao và được xem như một lĩnh
vực nhỏ cần nghiên cứu chuyên xâu.

15
Việc thiết kế và thực thi RTS đòi hỏi phải quan tâm tới nhiều vấn đề. Những
vấn đề đó bao gồm:
 Việc lựa chọn phần cứng và phần mềm, đánh giá sự thỏa hiệp cần thiết để
có được một lời giải có chi phí hợp lý, liên quan tới hệ thống tính toán phân tán, và
những vấn đề về xong xong và đồng bộ.
 Đặc tả và thiết kế RTS và việc biểu diễn chính xác các hành động phụ
thuộc thời gian (temporal behavior).
 Hiểu được các sắc thái của các ngôn ngữ lập trình (NNLT) và các ứng
dụng thời gian thực (TGT) khi NNLT được dịch sang mã máy.
 Tối đa khả năng chịu lỗi và độ tin cậy của hệ thống thông qua thiết kế chi
tiết cẩn thận.
 Việc thiết kế và kiểm soát các lần kiểm thử và việc lựa chọn công cụ phát
triển và kiểm thử.
 Tận dụng công nhệ và khả năng tương kết của các hệ thống mở. Một hệ
thống mở là một tập hợp lớn các ứng dụng được viết độc lập tương tác với nhau để
hoạt động như một hệ thống được tích hợp. Ví dụ như một số phiên bản của hệ điều
16
hành mở Linux đã sử dụng ứng dụng thời gian thực. Khả năng tương kết có thể
được định lượng theo khả năng tuân theo những tiêu chuẩn của hệ mở như chuẩn
thời gian thực CORBA.
 Cuối cùng, việc định lượng và dự đoán thời gian phản hổi và giảm thiểu
thời gian đó. Tiến hành phân tích khả năng xếp lịch, có nghĩa là xác định và đảm
bảo thỏa mãn các thời hạn. Đây là tâm điểm của hầu hết các lý thuyết xếp lịch.
Các kỹ thuật sử dụng cho các RTS cứng cũng có thể được sử dụng cho các
loại hệ thống khác để mang lại những cải thiện về hiệu quả và tốc độ. Đây là một
trong những lý do chúng ta nên nghiên cứu về RTS.
1.3 Ví dụ về RTS
Chúng ta có thể thấy sự có mặt phổ biến của các hệ thống thời gian thực
nhúng, chúng ta có thể tìm thấy chúng trong các thiết bị gia dụng và đồ chơi.

Chúng ta có thể tham khảo như trong bảng 1.4.
Bảng 1.4: Một số lĩnh vực ứng dụng của RTS
Lĩnh vực Ứng dụng
Hàng không Định hướng đường bay
Multimedia Trò chơi
Thiết bị mô phỏng/mô hình hóa
Y tế Phẫu thuật robot
Phẫu thuật từ xa
Các hệ thống công
nghiệp
Các đường dây sản xuất sử dụng
robot
Hệ thống tự động theo dõi/giám
sát
Dân sự Điều khiển thang máy
Các hệ thống tự động hóa
Trong phần tiếp theo chúng ta sẽ nghiên cứu chi tiết hơn về một số ứng dụng
RTS. Chúng ta xét việc định lượng quán tính cho hệ thống của một máy bay. Đặc
tả phần mềm nêu rằng phần mềm sẽ nhận các xung gia tốc kế x, y, và z trong
khoảng mỗi 10 mili giây từ các thiết bị phần cứng nào đó. Phần mềm sẽ quyết định
17
việc tăng tốc theo mỗi hướng và xoay (roll), độ dốc (pitch) và độ trệch đường bay
(yaw) của máy bay. Hình 1.6 minh họa các di chuyển này.
Hình 1.6
Phần mềm cũng nhận được thông tin về nhiệt độ ở tần xuất 1 giây. Nhiệm vụ
của phần mềm là tính toán véc tơ vận tốc chính xác dựa vào định hướng, thông tin
đọc được từ gia tốc kế và các nhân tố liên quan khác như nhiệt độ với tần xuất 40
mili giây. Hệ thống phải đưa ra được các véc tơ tăng tốc, tốc độ và vị trí chính xác
lên màn hình của phi công trong mỗi khoảng 40 mili giây nhưng sử dụng một đồng
hồ khác.

Những tác vụ này thực thi ở những tần xuất khác nhau trong hệ thống định
lượng quán tính và cần phải truyền thông và đồng bộ. Các thông tin đọc được từ gia
tốc kế phải liên quan tới thời gian và tương quan với nhau, có nghĩa là không thể
chộn xung gia tốc x ở thời điểm t với các xung y và z ở thời điểm t + 1. Đây là
những vấn đề quan trọng trong thiết kế hệ thống này.
Tiếp đến chúng ta xét một hệ thống giám sát cho một dây chuyền hạt nhân,
nó sẽ kiểm soát 3 sự kiện thông qua ngắt. Sự kiện đầu tiên được kích hoạt bởi một
trong số các tín hiệu ở nhiều điểm an ninh khác nhau, tín hiệu đó cho biết có sự xâp
nhập an ninh. Hệ thống phải phản hồi lại tín hiệu này trong vòng 1 giây. Sự kiện
thứ 2 (và là sự kiện quan trọng nhất) là nó chỉ ra rằng lõi hạt nhân đạt tới sự quá tải
về nhiệt độ. Tín hiệu này phải được trả lời/giải quyết trong vòng 1 miligiây. Cuối
cùng là việc cập nhật thông tin cho một màn hình điều khiển khoảng 30 lần mỗi
18
giây. Hệ thống dây chuyền hạt nhân yêu cầu một kỹ thuật để đảm bảo rằng chỉ số
“Sắp xảy ra nóng chảy lõi hạt nhân” có thể ngắt bất kỳ tiến trình nào khác. Làm sao
để đạt được việc này?
Chúng ta có thể xem xét lại hệ thống đặt vé máy bay đã đề cập ở trên. Người
quản lý quyết định rằng để tránh việc xếp hàng dài và sự không hài lòng của khách
hàng, thời gian hồi đáp (từ khi nhận được yêu cầu đặt vé tới khi xử lý xong yêu
cầu) không vượt quá 15 giây, và không được phép xẩy ra tình trạng thiếu vé (giả
định). Tại một thời điểm bất kỳ, một số đại lý có thể cùng truy xuất cơ sở dữ liệu và
có thể đồng thời đặt vé cùng chuyến bay. Khi này các kỹ thuật khóa bản ghi dữ liệu
và truyền thông cần được sử dụng để tránh việc thay đổi cơ sở dữ liệu chứa thông
tin đặt vé bởi nhiều hơn một đối tượng đồng thời. Việc này được hoàn thành như
thế nào?
Bây giờ chúng ta xét một hệ thống máy tính điều khiển tất cả các khía cạnh
của việc đóng gói các bình nước xốt mì ống khi chúng chạy dọc đường băng tải.
Các bình trống được qua lò vi sóng để khử trùng. Có một máy cho phép đưa một
lượng chính xác nước xốt vào bình khi chúng đi qua máy này. Tại một trạm khác
các bình được đóng nắp. Dĩ nhiên sẽ có một màn hình điều khiển cung cấp hình

ảnh về hoạt động của dây chuyền. Có rất nhiều sự kiện có thể diễn biến khi có các
điều kiện ngoại lệ như băng chuyền bị tắc nghẽn, một bình nào đó bị đầy tràn, hay
vỡ. Nếu như băng chuyền chạy quá nhanh thì bình sẽ đi qua điểm đích quá nhanh.
Do đó mà có nhiều sự kiện đồng bộ và không đồng bộ cần phải được giải quyết.
Trong ví dụ cuối cùng chúng ta sẽ xét một hệ thống sử dụng để điều khiển
một tập các đèn giao thông ở điểm giao 4 chiều (Bắc, Nam, Đông, Tây). Hệ thống
này điều khiển các đèn cho xe cơ giới và người đi bộ tại một ngã tư của một thành
phố lớn. Đầu vào có thể lấy được từ các sensor dưới mặt đất, các nút cho người đi
đường nhấn, hay những camera hay thiết bị nhận tín hiệu khác. Các đèn giao thông
cần phải hoạt động đồng bộ nhưng phải phản ứng với các sự kiện không đồng bộ
(như người đi bộ ấn một nút để qua đường). Việc không hoạt động hợp lý có thể
gây ra tai nạn và thậm chí là thương vong.
19
1.4 Những nhận thức sai về RTS hay gặp
Để hiểu được bản chất của RTS, chúng ta cũng nên biết một số nhận thức sai
về RTS thường gặp. Chúng ta có thể tóm tắt như sau:
1. Các hệ thống thời gian thực đồng nghĩa với các hệ thống nhanh.
2. Phân tích đơn nguyên tỷ lệ (rate-monotonic) đã giải quyết vấn đề thời
gian thực.
3. Có những phương pháp được chấp nhận toàn cầu cho việc đặc tả và thiết
kế các RTS.
4. Không cần phải thiết kế các hệ điều hành thời gian thực từ đầu vì đã có
nhiều sản phẩm trên thị trường
5. Việc nghiên cứu RTS chủ yếu là nghiên cứu về (lý thuyết) xếp lịch
(scheduling).
Nhận thức sai lầm đầu tiên, RTS là những hệ thống nhanh, xuất phát từ sự
thật rằng nhiều hệ thống thời gian thực cứng phải đáp ứng với ràng buộc là các thời
hạn trong những khoảng 1/10 miligiây, ví dụ như hệ thống định hướng máy bay.
Nhưng những hệ thống như hệ thống nước xốt mì ở trên có thể các bình di chuyển
dọc theo băng chuyền qua một điểm cho trước trong mỗi khoảng 2 giây. Hệ thống

đặt vé máy bay có thời hạn là 15 giây. Những thời hạn như vậy không phải là
nhanh, nhưng đáp ứng được chúng sẽ mang lại thành công cho hệ thống.
Nhận thức sai lầm thứ 2, các hệ thống đơn nguyên tỷ lệ đưa gia lời giải cho
việc xây dựng các hệ thống thời gian thực. Các hệ thống đơn nguyên tỷ lệ - một hệ
thống mang tính chu kỳ (periodic system) trong đó ưu tiên ngắt được xác định sao
cho tần suất thực thi cao hơn thì sẽ có ưu tiên ngắt cao hơn – hệ thống này nhận
được quan tâm nhiều từ những năm 1970. Trong khi chúng đưa ra định hướng thiết
kế RTS và cũng có nhiều lý thuyết hỗ trợ cho chúng thì chúng cũng không phải là
thuốc chữa bách bệnh. Các hệ thống đơn nguyên tỷ lệ sẽ được nghiên cứu kỹ hơn
sau này.
Còn nhận thức sai lầm thứ 3 thì sao? Thật không may là tới nay vẫn chưa có
những phương pháp được chấp nhận toàn cầu và được chứng minh đầy đủ cho việc
thiết kế và đặc tả RTS. Vấn đề này không phải là thất bại của những nhà khoa học
hay thất bại của lĩnh vực công nghiệp phần mềm mà do việc quá khó để bao trùm
toàn bộ các lời giải. Sau hơn 30 năm nghiên cứu chúng ta vẫn chưa có một phương
20
pháp nào trả lời tất cả các vấn đề của việc thiết kế và đặc tả thời gian thực trong
mọi bối cảnh.
Nhận thức sai lầm thứ 4 là không cần phải xây dựng một hệ điều hành thời
gian thực hoàn toàn mới. Hiện tại đã có một số hệ điều hành thời gian thực có tính
thương mại, chi phí hợp lý, phổ biến, nhưng chúng không phải là liều thuốc chữa
bách bệnh.
Cuối cùng, việc nghiên cứu lý thuyết lập lịch có thể tương đối khó để học từ
góc cạnh kỹ thuật, hầu hết các kết quả đã được xuất bản đòi hỏi phải đơn giản hóa
những yêu cầu thực tế hay là giải thích rõ nhằm áp dụng lý thuyết. Trong môn học
này chúng ta không đề cập nhiều tới những vấn đề lý thuyết chuyên sâu.
1.5 Lược sử
Lịch sử của RTS, đặc trưng với sự phát triển của nó ở US, không gắn kết
chặt chẽ với sự phát triển của máy tính. Các hệ thống thời gian thực hiện đại như
những hệ thống điều khiển nhà máy điện nguyên tử, điều khiển vũ khí trên máy bay

quân sự, hay thiết bị giám sát y tế khá phức tạp, nhưng có một số đặc trưng của các
hệ thống được phát triển từ những năm 1940 tới những năm 1960.
1.5.1 Những tiến bộ về lý thuyết
Khá nhiều lý thuyết về RTS có được từ những nguyên tắc như trình bày ở
hình 1.5. Cụ thể, các khía cạnh của vận trù học, nổi lên từ cuối những năm 1940 và
các hệ thống sếp hàng nổi lên đầu những năm 1950 đã có ảnh hưởng tới hầu hết các
kết quả lý thuyết liên quan RTS.
Tác giả James Martin xuất bản một trong những cuốn sách đầu tiên và ảnh
hưởng khá nhiều tới RTS. Cuốn sách của ông là tiền đề cho nhiều cuốn sách sau
đó, và ảnh hưởng của vận trù học (lập lịch) và các hệ thống sếp hàng có thể được
tìm thấy trong những cuốn sách đó. Việc nghiên cứu những cuốn sách đó cũng khá
thú vị khi mà thời gian đó phần cứng còn nhiều hạn chế. Vào năm 1973 Liu và
Layland xuất bản kết quả của họ về lý thuyết đơn nguyên tỷ lệ. Trong khoảng 30
năm sau đó đã có những điều chỉnh để lý thuyết này có thể được sử dụng và trở
thành một lý thuyết thực tế hơn cho thiết kế cách hệ thống trong thực tế.
21
Những năm 1980 và 1990 xuất hiện nhiều kết quả nghiên cứu lý thuyết cải
thiện khả năng dự đoán (predictability) và độ tin cậy (reliability) của RTS và việc
giải quyết các vấn đề liên quan tới các hệ thống đa xử lý. Ngày nay, có tương đối ít
nhóm nghiên cứu về các vấn đề của lập lịch và phân tích hiệu quả và có nhiều
nhóm kỹ sư hệ thống nghiên cứu các vấn đề liên quan tới việc cài đặt các hệ thống
thực tế. Một bài báo quan trọng của Stankovic mô tả một số khó khăn trong việc
tiến hành nghiên cứu RTS- ngay cả khi chúng ta hạn chế hệ thống tương đối nhiều
thì hầu hết các bài toán liên quan tới lập lịch rất khó để có thể giải bằng các kỹ
thuật giải tích.
1.5.2 Các hệ thống ban đầu
Nguồn gốc của tính toán thời gian thực không rõ ràng. Có lẽ nó xuất phát từ
một dự án tên Whirlwind, một bộ mô phỏng chuyến bay phát triển bởi IBM cho
Hải quân Mỹ năm 1947, hay là dự án SAGE hệ thống phòng thủ hàng không nối
đất bán tự động phát triển bởi Không quân mỹ những năm 1950. Cả hai dự án đáp

ứng yêu cầu là một hệ thời gian thực theo những tiêu chí thời nay. Ngoài những
đóng góp cho vấn đề thời gian thực, dự án Whirlwind còn có cả việc sử dụng bộ
nhớ lõi ferit và một dạng chương trình dịch ngôn ngữ bậc cao, nó là nền tảng cho
Fortran.
Những hệ thống thời gian thực ban đầu khác được sử dụng cho việc đặt vé
máy bay như SABRE (phát triển bởi American Airlines 1959), hay những ứng
dụng cho điều khiển tiến trình, sau đó chương trình Không gian Quốc gia cung cấp
nhiều cơ hội hơn cho việc phát triển RTS cho điều khiển và đo lường từ xa trong
các tàu vũ trụ. Sự phát triển nhanh chóng của RTS bắt đầu từ những năm 1960 và
sau đó xuất hiện đồng thời sự quan tâm của những hệ thống thời gian thực phi quân
sự và những thiết bị hỗ trợ tốt cho việc xử lý thời gian thực.
1.5.3 Phát triển phần cứng
Những bộ vi xử lý yếu và chậm và những hạn chế về bộ nhớ đã tạo ra nhiều
khó khăn cho các hệ thống ban đầu. Whirwind giới thiệu bộ nhớ lõi ferit với nhiều
cải thiện đột phá so với những kỹ thuật trước đó.
22
Vào những năm 1950 việc ngắt không đồng bộ được giới thiệu và được xem
như là một chuẩn trong Univac Scientific 1103A. Giữa những năm 1950 chứng
kiến một sự tăng đáng kể về tốc độ và độ phức tạp của những máy tính số quy mô
lớn được thiết kế cho tính toán khoa học nhưng không tăng về kích thước. Những
sự phát triển này tạo điều kiện thuận lợi để áp dụng tính toán thời gian thực trong
các hệ thống điều khiển. Những phát triển đó đặc biệt được chú ý trong việc phát
triển SAGE của IBM.
Vào những năm 1960 và 1970 những tiến bộ trong mức độ tích hợp và tốc
độ xử lý nâng cao phạm vi các bài toán thời gian thực có thể giải được. Vào 1965
người ta ước tính có khoảng 350 hệ thống điều khiển thời gian thực tồn tại.
Vào những năm 1980 và 1990 có sự xuất hiện những hệ thống đa xử lý và
những kiến trúc không phải là Von Neumann và được sử dụng trong các ứng dụng
thời gian thực.
Cuối cùng vào những năm 1990 và 2000, có sự xuất hiện những xu hướng

mới trong các hệ thống nhúng thời gian thực trong các mặt hàng tiêu dùng và các
thiết bị có thể truy cập web. Sự có mặt của những bộ xử lý nhỏ với bộ nhớ và chức
năng giới hạn đã giảm bớt những thử thách cho những nhà thiết kế hệ thời gian
thực trước đó.
1.5.4 Phầm mềm ban đầu
Những RTS ban đầu được viết bởi hợp ngữ, và sau đó là ngôn ngữ bậc cao.
Như chúng ta đã đề cập ở trên, Whirlwind sử dụng một dạng của ngôn ngữ bậc cao
gọi là chương trình dịch đại số nhằm đơn giản hóa mã. Những hệ thống sau này sử
dụng Fortran, CMS-2 và JOVIAL. Chúng là những ngôn ngữ được Hải quân và
Không quân Mỹ ưa chuộng.
Vào những năm 1970 Bộ quốc phòng Hoa Kỳ có nhiệm vụ phát triển một
ngôn ngữ mà tất cả các dịch vụ có thể sử dụng và ngôn ngữ này phải cung cấp
những cấu trúc ngôn ngữ bậc cao cho việc lập trình thời gian thực. Sau một quá
trình lựa chọn và tinh chỉnh Ada xuất hiện như một chuẩn vào 1983. Vào 1995 một
bản mới, được cải tiến hơn được ra đời đó là Ada 95.
Ngày nay chỉ có một số ít hệ thống được phát triển bằng Ada 95. Hầu hết
các hệ thống được viết bằng C hay C++ hay hợp ngữ hoặc Fortran. Trong vòng vài
23
năm trở lại đây có sự chuyển hướng sử dụng phương pháp và ngôn ngữ lập trình
HĐT như Java trong các hệ thời gian thực nhúng. Tất nhiên là tùy từng hoàn cảnh
có thể sử dụng ngôn ngữ khác nhau.
1.5.5 Hỗ trợ của hệ điều hành thương mại
Hệ điều hành thương mại đầu tiên được thiết kế cho máy mainframe. IBM
phát triển Basic Executive vào 1962, BE có những phương pháp lập lịch thời gian
thực đa dạng khác nhau. Vào 1963 BE II có chương trình hệ thống/người dùng đi
kèm đĩa.
Giữa 1970 những hệ thống máy tính nhỏ xuất hiện ở nhiều môi trường kỹ
thuật khác nhau. Cùng với đó nhiều hệ điều hành thời gian thực được phát triển bởi
những nhà sản xuất máy tính nhỏ. Đáng chú ý có dòng thực thi đa nhiệm thời gian
thực phát triển bởi Digital Equipment Cooperation cho PDP – 11 và dòng thực thi

thời gian thực của HP cho hệ điều hành của dòng sản phẩm HP 2000.
Cuối những năm 1970 và đầu những năm 1980 hệ điều hành cho dòng máy
có vi xử lý đầu tiên ra đời. Trong số những hệ điều hành này có thể kể tới RMX –
80, MROS 68K, VRTX và một số khác. Trong vòng 20 năm qua có nhiều HĐH
thời gian thực ra đời và cũng có khánhiều biến mất.
Bảng 1.5 là một số sự kiện quan trọng trong lĩnh vực RTS tại Mỹ:
Năm Thương hiệu Đơn vị phát
triển
Sản phẩm
phát triển để
Những đổi mới đáng
chú ý
1947 Whirlwind MIT/ Hải
quân US
Mô phỏng
bay
Bộ nhớ lõi ferit, thời
gian hồi đáp thực
1957 SAGE IBM Phòng thủ
trên không
Được thiết kế riêng
cho thời gian thực
1958 Scientific
1103A
Univac Mục đích
chung chung
Ngắt phần cứng
1959 SABRE IBM Đặt vé máy
bay
Chính sách hub-go-

ahead
1962 Basic
Executive
IBM Mục đích
chung
Thực thi thời gian thực
đầu tiên
1963 Basic
Executive II
IBM Mục đích
chung
Lập lịch thời gian thực
đa dạng, các chương
24
trình hệ thống và
người dùng trên đĩa
cứng
1970s RSX, RTE DEC, HP Hệ điều hành
thời gian thực
Chạy trên máy tính
nhỏ
1973 Hệ thống đơn
nguyên tỷ lệ
Liu và
Layland
Lý thuyết Đạt tới cận trên trong
việc sử dụng những hệ
thống có thể lập lịch
được
1980s RMX-80,

MROS 68K,
VRTX,
Đa dạng Hệ điều hành
thời gian thực
Chạy trên các vi xử lý
1983 Ada 83 Bộ quốc
phòng US
NNLT Mục tiêu là sử dụng
cho các RTS, hệ
nhúng, hệ tối yếu (rất
quan trọng)
1995 Ada 95 Cộng đồng NNLT Cải tiến của Ada 83
25

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×