CÁC CHIẾN LƯỢC ĐIỀU PHỐI
FIFO (FCFS)
Xoay vòng (Round Robin)
Theo độ ưu tiên
Công việc ngắn nhất (SJF)
Nhiều mức độ ưu tiên
1
FCFS (First comes first served)
Ready List
C
B
A
CPU
Tiến trình vào RL lâu nhất được chọn
trước
Theo thứ tự vào RL
Độc quyền
Ready List
C
B
CPU
C
CPU
Ready List
2
Minh họa fcfs
P
TarriveRL
CPU burst
P
TT
WT
P1
0
24
P1
24
0
P2
1
3
P2
27-1
24-1
P3
2
3
P3
30-2
27-2
AvgWT = (23+25)/3 = 16
P1
0
P2
24
0: P1 vào RL
P1 dùng CPU
1: P2 vào RL
2: P3 vào RL
P3
27
24: P1 kết thúc
P2 dùng CPU
27: P2 kết thúc
P3 dùng CPU
3
ROUND ROBIN (RR)
Điều phối theo nguyên tắc FCFS
Mỗi tiến trình chỉ sử dụng một lượng q cho mỗi lần sử dụng CPU
Quantum/
Time slice
Ready List
C
B
A
CPU
B
CPU
B được giao quyền sử dụng CPU
C
CPU
C được giao quyền sử dụng CPU
A chỉ chiếm CPU trong q ms
Ready List
A
C
trong q ms kế tiếp
Ready List
B
A
trong q ms kế tiếp
4
MINH HỌA RR VỚI Q = 4
P
TarriveRL
CPU burst
P
TT
WT
P1
0
24
P1
30
0+(10-4)
P2
1
3
P2
7-1
4-1
P3
2
3
P3
10-2
7-2
AvgWT = (6+3+5)/3 = 4.66
P1
0
P2
4
P3
7
P1
10
0:00 P1 vào, P1 dùng CPU
0:01 P2 vào (đợi)
0:02 P3 vào (đợi)
0:04 P1 hết lượt, P2 dùng CPU
P1
14
P1
18
P1
22
P1
26
30
0:07 P2 dừng, P3 dùng CPU
0:10 P3 dừng, P1 dùng CPU
0:14 P1 vẫn chiếm CPU
…
5
MINH HỌA RR VỚI Q = 4
P
TarriveRL
P1
0
4
3
P3
12
3
0
P1
4
RL
Tranh chấp vò trí trong RL : “Chung thủy”
1.
2.
3.
24
P2
P1
CPU burst
P2
8
P : running -> ready
P : blocked -> ready
P: new
->ready
Không phải luôn luôn có thứ tự điều phối P1 P2 P3
P4P1 P2 P3 P4...
P1
11
0:04 P2 P1
P3
15
P1
18
P1
22
26
30
“Có mới nới cũ”
0:8 P2 P1
0:00 P1
0:04
P1
?
0:11 P1
“õChung thủy”
0:04 P1 P2
6
0:15 P3 P1
0:18 P1
MINH HỌA SJF (ĐỘC QUYỀN) (2)
P
TarriveRL
CPU burst
P
TT
WT
P1
0
24
P1
24
0
P2
1
3
P2
29-1
26-1
P3
1
2
P3
26-1
24-1
AvgWT = (24+22)/3 = 15.33
P1
P3
0
24
0:00 P1 vào, P1 dùng CPU
0:01 P2 vào
P2
26
29
0:24 P1 kết thúc, P3 dùng CPU
0:26 P3 dừng, P2 dùng CPU
7
0:01 P3 vào
0:29 P2 dừng
MINH HỌA SJF (KHÔNG ĐỘC QUYỀN) (1)
P
TarriveRL
CPU burst
P
TT
WT
P1
0
24
P1
30
0+(7-1)
P2
1
3
P2
4-1
0
P3
2
3
P3
7-2
4-2
AvgWT = (6+0+2)/3 = 2.66
P1
0
P2
1
P3
4
P1
7
0:00 P1 vào, P1 dùng CPU
0:01 P2 vào (độ ưu tiên cao hơn P1)
30
0:4 P2 kết thúc, P3 dùng CPU
0:7 P3 dừng, P1 dùng CPU
8
P2 dành quyền dùng CPU
0:30 P1 dừng
MINH HỌA SJF (KHÔNG ĐỘC QUYỀN) (2)
P
TarriveRL
CPU burst
P
TT
WT
P1
0
24
P1
33
0+(10-1)
P2
1
5
P2
5
0
P3
3
4
P3
7
6-3
AvgWT = (9+0+3)/3 = 4
P1
0
P2
1
P2
3
P3
6
P1
10
0:00 P1 vào, P1 dùng CPU
0:01 P2 vào (độ ưu tiên cao hơn P1)
P2 dành quyền dùng CPU
0:03 P3 vào (độ ưu tiên < P2)
P2 dành quyền dùng CPU
33
0:6 P2 kết thúc, P3 dùng CPU
0:10 P3 dừng, P1 dùng CPU
0:33 P1 dừng
9
Minh họa SJF (nhiều chu kỳ CPU)
P
TarriveRL
CPU1
IO1
IO1
burst
R
T
CPU2 burst
IO2
IO2
R
T
P1
0
5
R1
2
2
R2
2
P2
2
1
R1
10
1
R1
4
P3
10
8
R2
1
0
Null
0
CPU
P1
0
P2
2
P1
3
R1
P3
6
10
P2
13
P2
3
P3
14
P1
15
P1
13
P3
17
21
P2
15
19
R2
10
P1
17
P3
19
21
22
Bài tập: Hãy điều phối
CPU: SJF không độc quyền. R1,R2: FIFO
Tiến trình
Thời điểm vào
Ready list
IO lần 1
IO lần 2
CPU1
CPU2
Thời gian
Thiết bị
Thời gian
Thiết bị
P1
0
8
5
R1
1
0
Null
P2
2
1
8
R2
2
5
R1
P3
10
6
5
R1
2
3
R2
P4
11
3
20
R2
0
0
Null
11