13:15:17
BÀI 3: PHẦN MỀM HỆ THỐNG
NHÚNG
1. Hệ thống thời gian thực
2. Lập lịch (scheduling)
Bài 3
1
13:21:53
Hệ thống thời gian thực
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
Bài 3
2
1
13:21:53
Hệ thống thời gian thực
Chuyển vùng trong hệ thống viễn thông
phải được hoàn tất
trong thời gian đủ nhỏ
để người dùng không
cảm thấy gián đoạn
tạm thời
Bài 3
3
13:21:53
Hệ thống thời gian thực
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
Bài 3
4
2
13:21:53
Hệ thống thời gian thực
Phân loại tác vụ thời gian thực
Tác vụ cứng: phải thực hiện trước thời hạn yêu cầu.
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.
Bài 3
5
13:21:53
Lập lịch cho tác vụ
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.
Bài 3
6
3
13:21:53
Lập lịch cho tác vụ
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ê.
Bài 3
7
13:21:53
Lập lịch cho tác vụ
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, ..., pn là 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
Bài 3
8
4
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)
T1
Thời gian bắt đầu của T2
0
T2
3
T3
10
T4
12
T5
17
T5
T4
T3
T2
T1
0
Thời gian yêu cầu của T2
10
3
12
17
Bài 3
9
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.
Một tác vụ phải thực hiện xong trong 1 khung
max{ei} F
F: kích thước khung
M/F = số nguyên
M: kích thước chu kỳ chính
2F – gcd(F,pi) di
t: thời điểm đến của tác vụ sau
min(t) = gcd(F,pi)
thời điểm bắt đầu của khung
Bài 3
10
5
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
F = 2, 4, 5, 10, 20
M = LCM(4,5,20,20) = 20
M/F = số nguyên
2F – gcd(F,pi) di
F = 20:
T1: 2*20 – gcd(20,4) = 20 - 4 4
F = 10:
T1: 2*10 – gcd(10,4) = 20 - 2 4
Bà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)
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
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
Bài 3
12
6
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
0
2
4
20
10
Bà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
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
3.2. Thực hiện như 3.1 với tập:
T1 (e1 = 5, p1 = 20), T2 (e2 = 9, p2 = 25)
T3 (e3 = 5, p3 = 100), T4 (e4 = 10, p4=100)
Bài 3
14
7
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
F = 5, 10, 20
M/F = số nguyên
2F – gcd(F,pi) di
F = 20:
T1: 2*20 – gcd(20,4) = 20 - 4 4
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
Bà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
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
Bài 3
16
8
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)
Bài 3
17
13:21:53
Lập lịch hướng sự kiện (event-driven scheduling):
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.
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.
Một hệ thống thời gian thực có n tác vụ phía trên: T1, T2, ..., Tn và một
tác vụ nền TB
Thời gian hoàn thành của tác vụ nền:
=
Bài 3
1−∑
18
9
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)
=
T1
1−∑
=
1000
= 10000
10 20
1−
+
20 50
T2
TB
0
T11 – T21 – T12 – T21 – T13 – T22 – T14 – T22 – T15 - TB
Bà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), thời gian chuyển tác vụ là 0.1.
T1
=
1−∑
T2
=
1000
= 11364
10.2 20.1
1−
+
20
50
TB
0.1 10.2 20.1
9.8
0
10.1
20
T11 - T21 - T12
40.1 50.2 60
50.6
9.8
0.4
30.2
70.1 80
90.1
100
91.1
50.7
91.2
60.1 70.2 80.1 90.2
30.1 40 50.1
- T21 - T13 - T21 - T22 - T14 - T22 - T15 - T22 - TB
20
Bài 3
10
13:21:53
Lập lịch hướng sự kiện (event-driven scheduling):
Lập lịch F-B (Foreground – Background)
3.3.
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
1. Tính thời gian hoàn thành tác vụ nền TB.
2. Vẽ sơ đồ thực hiện
Bài 3
21
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:
min
,
≤1
Bài 3
22
11
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 = 1, p1 = 4), T2 (e2 = 2, p2 = 5)
T3 (e3 = 1, p3 = 20), T4 (e4 = 2, p4=20)
min
T41
T31
T21
=
,
1 2 1
2
+ +
+
= 0.8 < 1
4 5 20 20
T1
T41
T31
T11 T21
0
1
T2
T41 T41 T41
T31 T12 T22
3
4
5
T3
T41
7
có thể lập lịch theo EDF
T41
T4
T31
T21
T41
T13 T41 T
23
8
9
T14
10 11
12
T24 T11
13
15 16
Bài 3
T11
17
20
23
13:21:53
Lập lịch hướng sự kiện (event-driven scheduling):
Lập lịch EDF (Earliest Deadline First)
3.4.
T1 (e1 = 2, p1 = 5), T2 (e2 = 1, p2 = 3), T3 (e3 = 3, p3 = 16)
1. Kiểm tra tính khả thi theo EDF.
2. Vẽ sơ đồ thực hiện
Bài 3
24
12
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)
T1 > T2 > T3 > T4
T
T2
T41 1
T31
T41
T21 T31
T41
T11 T21 T
31
0
1
3
T3
T4
T
T41 41
T
T31 31
T12 T22
4
5
T41
T32
T41 T41
T31 T13 T41 T23
7
8
9 10
T41
T32 T41
T14 T
32
12
Bài 3
13
T42
T33
T41
T24
T41
T41
T24 T15 T24 T
41
15
16 17
18
T25
T16
20
25
13