Bài 3 3Hệ thống thời gian thực 13:21:53 Chuyển vùng trong hệ thống viễn thông trong thời gian đủ nhỏ để người dùng không cảm thấy gián đoạn tạm thời Hệ thống thời gian thực 13:21:53 Yêu
Trang 11 Hệ thống thời gian thực
2 Lập lịch (scheduling)
BÀI 3: PHẦN MỀM HỆ THỐNG
NHÚNG
1 Bài 3
13:15:17
Hệ thống thời gian thực
13:21:53
Một hệ thống được gọi là một hệ thống thời gian thực khi cần một biểu
thức định lượng thời gian để mô tả các hành vi của hệ thống
Trạm làm việc phải hoàn thành công việc trước khi sản
phẩm kế tiếp di chuyển vào
Trang 2Bài 3 3
Hệ thống thời gian thực
13:21:53
Chuyển vùng trong hệ thống viễn thông
trong thời gian đủ nhỏ
để người dùng không cảm thấy gián đoạn tạm thời
Hệ thống thời gian thực
13:21:53
Yêu cầu của hệ thống thời gian thực
Thời gian: Thời gian thực hiện để đảm bảo hệ thống có thể hoạt động.
Chính xác: bao gồm cả kết quả và thời gian thực hiện.
An toàn: tính an toàn và độ tin cậy của hệ thống.
Đồng thời: cần phải đáp ứng sự kiện độc lập trong thời gian rất ngắn.
Cấu trúc phân phối
Tiêu chuẩn tác vụ (task): xác định khả năng thực hiện của một
tác vụ
Ổn định
Trang 3Bài 3 5
Hệ thống thời gian thực
13:21:53
Tác vụ cứng: phải thực hiện trước thời hạn yêu cầu
Phân loại tác vụ thời gian thực
Tác vụ cứng không cần hoàn thành trong thời gian ngắn
nhất có mà phải hoàn thành trong thời gian quy định trước
Tác vụ dẻo: tất cả các tác vụ phải thực hiện trước thời gian
quy định
Khi tác vụ không hoàn thành đúng thời hạn, hệ thống không
thất bại, kết quả cuối chỉ bị bỏ đi
Tác vụ mềm: dùng thời gian đáp ứng trung bình.
Lập lịch cho tác vụ
13:21:53
Tác vụ định kỳ: là tác vụ lặp đi lặp lại sau một khoảng thời gian cố
định
Ti(φi, pi, ei, di)
i: thời điểm bắt đầu thực hiện lần đầu tiên
pi : chu kỳ
ei: thời gian thực hiện dài nhất
di : thời gian yêu cầu hoàn thành
Tác vụ không thường xuyên: xảy ra ở thời điểm ngẫu nhiên
Ti(ei, gi, di)
gi: thời gian tối thiểu giữa hai tác vụ liên tiếp
Trang 4Bài 3 7
Tác vụ không định kỳ: gần tương tự như tác vụ không
thường xuyên, có thể phát sinh ở thời điểm ngẫu nhiên
gi có thể là 0, nghĩa là hai hoặc nhiều trường hợp của một tác
vụ không định kỳ có thể xảy ra cùng một lúc
Thời gian yêu cầu hoàn thành của tác vụ không định kỳ ở
dạng giá trị trung bình hoặc thống kê
Lập lịch cho tác vụ
13:21:53
Lập lịch cho tác vụ
13:21:53
Lập lịch điều khiển bằng clock (clock-driven scheduling):
xác định thời điểm thực hiện tác vụ kế tiếp thông qua ngắt từ xung clock
Lập lịch bằng bảng
Tính toán trước thời gian chạy các tác vụ, và lưu trữ trong một bảng
Một tập ST = {Ti} gồm N tác vụ cần lập lịch, thì các mục trong
bảng sẽ tự lặp lại sau khoảng thời gian LCM (p1, p2,…,pn) trong đó
p1, p2, , pnlà chu kỳ của T1, T2, , Tn
T1(5, 20ms), T2(20, 100ms), T3(30, 250ms) LCM(20,100,250) = 1000ms
chỉ cần lập bảng trong 1000 ms
Trang 5Bài 3 9
13:21:53
Lập lịch điều khiển bằng clock (clock-driven scheduling):
Lập lịch bằng bảng
Tác vụ Thời gian bắt đầu (ms)
10 T1
T2
T3
12
T4
17
T5 Thời gian bắt đầu của T2
Thời gian yêu cầu của T2
13:21:53
Lập lịch điều khiển bằng clock (clock-driven scheduling):
Lập lịch tuần hoàn
Lưu trữ cho một chu kỳ chính
Chu kỳ chính được chia thành một hoặc nhiều khung
max{ei} F
M/F = số nguyên
2F – gcd(F,pi) di
min(t) = gcd(F,pi)
F: kích thước khung M: kích thước chu kỳ chính
t: thời điểm đến của tác vụ sau thời điểm bắt đầu của khung Một tác vụ phải thực hiện xong trong 1 khung
Trang 6Bài 3 11
13:21:53
Lập lịch điều khiển bằng clock (clock-driven scheduling):
Lập lịch tuần hoàn
T1(e1 = 1, p1= 4), T2(e2= 1,5, p2= 5)
T3(e3= 1, p3 = 20), T4(e4= 1,5, p4=20)
F max{ei} F 1,5
M = LCM(4,5,20,20) = 20
M/F = số nguyên
F = 2, 4, 5, 10, 20
2F – gcd(F,pi) di
F = 10: T1: 2*10 – gcd(10,4) = 20 - 2 4
13:21:53
Lập lịch điều khiển bằng clock (clock-driven scheduling):
Lập lịch tuần hoàn
2F – gcd(F,pi) di F = 5: T1: 2*5 – gcd(5,4) = 10 - 1 4
F = 4: T2: 2*4 – gcd(4,5) = 8 - 1 5
T1(e1 = 1, p1= 4), T2(e2= 1,5, p2= 5)
T3(e3= 1, p3 = 20), T4(e4= 1,5, p4=20)
F = 2: T1: 2*2 – gcd(2,4) = 4 - 2 4
T2: 2*2 – gcd(2,5) = 4 - 1 5 T3: 2*2 – gcd(2,20) = 4 - 2 20 T4: 2*2 – gcd(2,20) = 4 - 2 20 Kết luận: F = 2
Trang 7Bài 3 13
13:21:53
Lập lịch điều khiển bằng clock (clock-driven scheduling):
Lập lịch tuần hoàn
T1(e1 = 1, p1= 4), T2(e2= 1,5, p2= 5)
T3(e3= 1, p3 = 20), T4(e4= 1,5, p4=20)
T1
T2
T3
T4
4
13:21:53
Lập lịch điều khiển bằng clock (clock-driven scheduling):
Lập lịch tuần hoàn
3.1.
T1(e1 = 2, p1= 6), T2(e2= 3, p2= 12)
T3(e3= 4, p3 = 18)
1 Xác định kích thước khung
2 Vẽ sơ đồ thực hiện
T1(e1 = 5, p1= 20), T2(e2= 9, p2= 25)
T3(e3= 5, p3 = 100), T4(e4= 10, p4=100)
3.2 Thực hiện như 3.1 với tập:
Trang 8Bài 3 15
13:21:53
Lập lịch điều khiển bằng clock (clock-driven scheduling):
Lập lịch tuần hoàn
T1(e1= 1, p1 = 4), T2(e2= 2, p2= 5), T3 (e3= 5, p3= 20)
F ≥ max{ei} = 5
M = LCM (4, 5, 20) = 20
M/F = số nguyên
F = 5, 10, 20
2F – gcd(F,pi) di
F = 10: T1: 2*10 – gcd(10,4) = 20 - 2 4
F = 5: T1: 2*5 – gcd(5,4) = 10 - 1 4 không có trường hợp nào thỏa mãn
13:21:53
Lập lịch điều khiển bằng clock (clock-driven scheduling):
Lập lịch tuần hoàn
Thực hiện tách T3 thành hai nhiệm vụ con:
T3.1(20, 3, 20), T3.2(20, 2, 20)
T1(4, 1, 4), T2(5, 2, 5)
T3.1(20, 3, 20), T3.2(20, 2, 20)
F = 4
Trang 9Bài 3 17
13:21:53
Lập lịch điều khiển bằng clock (clock-driven scheduling):
Lập lịch tuần hoàn
T1(4, 1, 4), T2(5, 2, 7)
T3.1(20, 3, 20), T3.2(20, 2, 20)
13:21:53
Lập lịch hướng sự kiện (event-driven scheduling):
Lập lịch F-B (Foreground – Background)
Các tác vụ không thường xuyên, không tuần hoàn được chạy nền
Đối với các tác vụ phía trên, ở các điểm lập lịch, tác vụ có độ ưu
tiên cao nhất sẽ được thực hiện
Khi không có tác vụ nào đang chạy, tác vụ nền sẽ được thực hiện
1 − ∑
Một hệ thống thời gian thực có n tác vụ phía trên: T1, T2, , Tnvà một
tác vụ nền TB
Các điểm lập lịch xác định bằng ngắt sự kiện ngoại trừ
ngắt từ xung clock
Trang 10Bài 3 19
13:21:53
Lập lịch hướng sự kiện (event-driven scheduling):
Lập lịch F-B (Foreground – Background)
T1(e1 = 10, p1= 20), T2(e2= 20, p2= 50): T1 ưu tiên hơn T2
TB(eB= 1000)
=
1000
1 − 1020+2050
= 10000
0
– T21
T11 – T12 – T21 – T13 – T22– T14 – T22 – T15- TB
T1
T2
TB
13:21:53
Lập lịch hướng sự kiện (event-driven scheduling):
Lập lịch F-B (Foreground – Background)
T1(e1 = 10, p1= 20), T2(e2= 20, p2= 50): T1 ưu tiên hơn T2
TB(eB= 1000), thời gian chuyển tác vụ là 0.1
=
1000
1 − 10.220 +20.150
= 11364
0
0.1
10.1
10.2
20
20.1
30.1
30.2
40
40.1
50.1
50.2 50.6
50.7 60
60.1
70.1
70.2
80
80.1
90.1
90.2
91.1
91.2 100
T11 - T21 - T12 - T21 - T13 - T21- T22- T14- T22- T15 - T22- TB
9.8 9.8 0.4
T2
TB
T1
Trang 11Bài 3 21
13:21:53
Lập lịch hướng sự kiện (event-driven scheduling):
Lập lịch F-B (Foreground – Background)
T1(e1= 2, p1 = 10), T2(e2= 3, p2= 15), T3 (e3= 3, p3= 30),
TB(eB= 200)
Mức ưu tiên: T1 > T2 > T3
3.3.
1 Tính thời gian hoàn thành tác vụ nền TB
2 Vẽ sơ đồ thực hiện
13:21:53
Lập lịch hướng sự kiện (event-driven scheduling):
Lập lịch EDF (Earliest Deadline First)
Tại các điểm lập lịch, tác vụ có thời hạn ngắn nhất được đưa lên trước
Một tập hợp các tác vụ có thể lập lịch theo EDF nếu:
Trang 12Bài 3 23
T1(e1 = 1, p1= 4), T2(e2= 2, p2= 5)
T3(e3= 1, p3 = 20), T4(e4= 2, p4=20)
13:21:53
Lập lịch hướng sự kiện (event-driven scheduling):
Lập lịch EDF (Earliest Deadline First)
1
4+
2
5+
1
20+
2
T11
T21
T31
T41
4
T21
T31
T41
T31
T41
T12
T41
5
T22
T41
7
T41
8
T13
T41
9
T41
10
T23
T14
T24
16
T11
T11
T21
T31
T41
T2
13:21:53
Lập lịch hướng sự kiện (event-driven scheduling):
Lập lịch EDF (Earliest Deadline First)
T1(e1= 2, p1 = 5), T2(e2= 1, p2= 3), T3 (e3= 3, p3= 16)
3.4.
1 Kiểm tra tính khả thi theo EDF
2 Vẽ sơ đồ thực hiện
Trang 13Bài 3 25
13:21:53
Lập lịch hướng sự kiện (event-driven scheduling):
Lập lịch RMA (Rate Monotonic Algorithm)
Tác vụ có chu kỳ thấp nhất sẽ có ưu tiên cao nhất
T1(e1 = 1, p1= 4), T2(e2= 2, p2= 5)
T3(e3= 2, p3 = 10), T4(e4= 3, p4=20)
T2
0
T11
T21
T31
T41
1
T1 > T2> T3> T4
T21
T31
T41
3
T31
T41
4
T12
T31
T41
T22
T31
T41
T31
T41
8
T13
T41
9
T41
10
T23
T32
T41
T14
T32
T41
T32
T41
15
T24
T41
16
T15
T24
T41
17
T24
T41
18
T41
20
T16
T25
T33
T42