CHƯƠNG
CHƯƠNG
4: L
4: L
Ậ
Ậ
P L
P L
Ị
Ị
CH BI
CH BI
Ể
Ể
U CPU
U CPU
CPU
CPU
Scheduling
Scheduling
5.2
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 2, 2005
N
N
Ộ
Ộ
I DUNG
I DUNG
Các khái niệmcơ sở
Các tiêu chuẩnlậplịch biểu
Các thuật toán lậplịch biểu
Lậplịch biểu đa processors
Lậplịch biểuthờigianthực (Real-Time Scheduling)
Các ví dụ HĐH
Đánh giá thuật toán
5.3
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 2, 2005
C
C
Á
Á
C KH
C KH
Á
Á
I NI
I NI
Ệ
Ệ
M CƠ S
M CƠ S
Ở
Ở
Sử dụng CPU cực đạinhận đượcbởi đachương
Chu kỳ CPU-I/O (CPU–I/O Burst Cycle) – sự thựchiện quá trình
gồmchukỳ thựchiệnCPU vàchờ I/O
Sự phân tán CPU burst
5.4
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 2, 2005
DÃY LUÂN PHIÊN C
DÃY LUÂN PHIÊN C
Á
Á
C CHU K
C CHU K
Ỳ
Ỳ
CPU V
CPU V
À
À
CHU
CHU
K
K
Ỳ
Ỳ
I/O
I/O
5.5
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 2, 2005
BI
BI
Ể
Ể
U Đ
U Đ
Ồ
Ồ
TH
TH
Ờ
Ờ
I GIAN CHU K
I GIAN CHU K
Ỳ
Ỳ
CPU
CPU
5.6
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 2, 2005
B
B
Ộ
Ộ
Đ
Đ
Ị
Ị
NH TH
NH TH
Ờ
Ờ
I CPU
I CPU
Chọn trong các quá trình sẵn sàng một quá trình và cấp CPU cho
nó
Quyếtdịnh lậplịch biểuCPU xảyrakhimột quá trình :
1. Chuyểntừ trạng thái running sang trạng thái waiting
2. Chuyểntừ trạng thái running sang trạng thái ready
3. Chuyểntừ trạng thái waiting sang trạng thái ready
4. Kết thúc
Lậplịch biểu cho 1 và 4 là không trưng dụng (nonpreemptive)
Lậplịch biểucònlạilàtrưng dụng (preemptive)
5.7
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 2, 2005
B
B
Ộ
Ộ
ĐI
ĐI
Ề
Ề
U V
U V
Ậ
Ậ
N
N
Module điềuvậnchuyển điềukhiển CPU cho quá trình đượcchọn
bởibộđịnh thờingắnhạn, bao gồm:
z Chuyểnngữ cảnh
z Chuyển sang phương thúc user
z Nhảy đếnvị trí đúng trong chương trình người dùng để bắt đầu
lạichương trình này
Tiềm ẩn điềuvận (Dispatch latency) –thờigianbộđiềuvậnngưng
một quá trình và khởi động một quá trình khác
5.8
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 2, 2005
C
C
Á
Á
C TIÊU CHU
C TIÊU CHU
Ẩ
Ẩ
N L
N L
Ậ
Ậ
P L
P L
Ị
Ị
CH BI
CH BI
Ể
Ể
U
U
Sự sử dụng CPU: Làm cho CPU bậnrộnnhư có thể
Năng lựctruyền qua (throughput): số quá trình hoàn tấtsự
thựchiệncủa chúng trong một đơnvị thờigian
Thời gian quay vòng (Turnaround time) – lượng thờigian
thựchiệnmột quá trình
Thờigianchờ (Waiting time) – lượng thờigianmột quá
trình phảichờ trong hàng đợi ready
Thờigianđáp ứng (Response time) – lượng thờigiantừ
khi mộtyêucầu được đệ trình đếnkhiđáp ứng đầutiên
đượcsinhra
5.9
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 2, 2005
C
C
Á
Á
C TIÊU CHU
C TIÊU CHU
Ẩ
Ẩ
N T
N T
Ố
Ố
I ƯU
I ƯU
Max sự sử dụng CPU
Max throughput
Min turnaround time
Min waiting time
Min response time
5.10
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 2, 2005
First
First
-
-
Come, First
Come, First
-
-
Served (FCFS)
Served (FCFS)
Process Burst Time
P
1
24
P
2
3
P
3
3
Giả sử các quá trình đếntheothứ tự: P
1
, P
2
, P
3
Biểu đồ Gantt cho lịch biểu:
Waiting time: đốivới P
1
= 0; P
2
= 24; P
3
= 27
Waiting time trung bình: (0 + 24 + 27)/3 = 17
P
1
P
2
P
3
24 27 300
5.11
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 2, 2005
FCFS (Cont.)
FCFS (Cont.)
Giả sử các quá trình đếntheothứ tự:
P
2
, P
3
, P
1
Biểu đồ Gantt cho lịch biểu:
Waiting time đốivới P
1
= 6;P
2
= 0
;
P
3
= 3
Average waiting time: (6 + 0 + 3)/3 = 3
Tốthơn nhiềuso vớitrường hợptrước
Hiệu ứng đoàn xe: quá trình ngắn đi sau quá trình dài
P
1
P
3
P
2
63300
5.12
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 2, 2005
Shortest
Shortest
-
-
Job
Job
-
-
First (SJF)
First (SJF)
Kếthợpvớimỗi quá trình độ dài chu kỳ CPU của nó. Sử dụng các
độ dài này để lậplịch biểu quá trình vớithờigianngắnnhất
Hai sơđồ:
z Không trưng dụng: mỗikhiCPU đượcgánchomột quá trình,
nó không bị trưng dụng đếntận khi hoàn tấtchukỳ CPU của
nó
z Trưng dụng: Nếumột quá trình mới đếncóchukỳ CPU ngắn
hơnthờigiancònlạicủa quá trình đang thựchiện, trưng dụng
CPU của quá trình đang thựchiện, cấp CPU cho quá trình mới
đến. Sơđồnày đượcbiếtdướitên:
Shortest-Remaining-Time-First (SRTF)
SJF là tối ưuvớinghĩanóchothờigianchờ trung bình cựctiểu đối
vớitập đã cho các quá trình
5.13
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 2, 2005
Process Arrival Time Burst Time
P
1
0.0 7
P
2
2.0 4
P
3
4.0 1
P
4
5.0 4
SJF không trưng dụng
Thờigianchờ trung bình = (0 + 6 + 3 + 7)/4 = 4
V
V
Í
Í
D
D
Ụ
Ụ
SJF KHÔNG TRƯNG D
SJF KHÔNG TRƯNG D
Ụ
Ụ
NG
NG
P
1
P
3
P
2
73160
P
4
8 12
5.14
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 2, 2005
V
V
Í
Í
D
D
Ụ
Ụ
SJF TRƯNG D
SJF TRƯNG D
Ụ
Ụ
NG
NG
Process Arrival Time Burst Time
P
1
0.0 7
P
2
2.0 4
P
3
4.0 1
P
4
5.0 4
SJF trưng dụng
Thờigianchờ trung bình = (9 + 1 + 0 +2)/4 = 3
P
1
P
3
P
2
42
11
0
P
4
5 7
P
2
P
1
16
5.15
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 2, 2005
X
X
Á
Á
C Đ
C Đ
Ị
Ị
NH Đ
NH Đ
Ộ
Ộ
D
D
À
À
I CHU K
I CHU K
Ỳ
Ỳ
CPU K
CPU K
Ế
Ế
TI
TI
Ế
Ế
P
P
Chỉ có thểướclượng độ dài
Sử dụng độ dài cùa các chu kỳ CPU trước đó, ướclượng độ dài
chu kỳ CPU kế tiếptheotrungbìnhmũ:
-t
n
= độ dài chu kỳ CPU thứ n
- τ
n
= độ dài ướclượng chu kỳ CPU thứ n
- α: 0 ≤α≤ 1
- độ dài ướclượng chu kỳ CPU thứ n+1 đượcxácđịnh:
(
)
.1
1 nnn
t
τ
α
α
τ
−
+
=
+
5.16
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 2, 2005
TIÊN ĐO
TIÊN ĐO
Á
Á
N Đ
N Đ
Ộ
Ộ
D
D
À
À
I CHU K
I CHU K
Ỳ
Ỳ
CPU K
CPU K
Ế
Ế
TI
TI
Ế
Ế
P
P
5.17
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 2, 2005
V
V
Í
Í
D
D
Ụ
Ụ
TRUNG BÌNH M
TRUNG BÌNH M
Ũ
Ũ
α =0
z τ
n+1
= τ
n
z Lịch sử gần không được tính đến
α =1
z τ
n+1
= t
n
z Chỉ chu kỳ CPU hiệntại được tính đến
Triển khai công thức, ta được:
τ
n+1
= α t
n
+(1 - α)α t
n -1
+ …
+(1 - α )
j
α t
n -j
+ …
+(1 - α )
n +1
τ
0
5.18
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 2, 2005
L
L
Ậ
Ậ
P L
P L
Ị
Ị
CH BI
CH BI
Ể
Ể
U ƯU TIÊN
U ƯU TIÊN
Mỗi quá trình đượcgánchomộtsốưutiên(mộtsố nguyên)
CPU đượccấpchoquátrìnhvới độ ưutiêncaonhất (thông
thường sốưutiênnhỏ = độ ưutiêncao)
z Trưng dụng
z Không trưng dụng
SJF là lậplịch biểu ưu tiên trong đóquátrìnhcóchukỳ CPU tiên
đoán ngắnnhấtcóđộ ưutiêncaonhất
Vấn đề: Sự chết đói – quá trình có độ ưutiênthấpnhấtcóthể
không bao giờđượcthựchiện
Giải pháp: tăng độ ưu tiên cho quá trình theo thờigian
5.19
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 2, 2005
Round Robin (RR)
Round Robin (RR)
Mỗi quá trình nhận đượcmột đơnvị thờigian(nhỏ) - time
quantum , thông thường 10-100 milliseconds. Sau khoảng thời
gian này, quá trình bị lấylạiCPU vàđược đưavàocuốihàng
đợisẵn sàng.
Nếu có n quá trình trong hàng đợisẵn sàng, time quantum là q,
khi đóthờigianchờ củamỗi quá trình không quá (n-1)q.
Hiệunăng
z q lớn ⇒ FIFO
z q nhỏ ⇒ tổng phí chuyểnngữ cảnh cao ⇒ q phải đủ lớn
5.20
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 2, 2005
V
V
Í
Í
D
D
Ụ
Ụ
RR
RR
v
v
ớ
ớ
i
i
Time Quantum = 20
Time Quantum = 20
Process Burst Time
P
1
53
P
2
17
P
3
68
P
4
24
Biểu đồ Gantt:
Thông thường, So vớiSJF, thời gian quay vòng trung bình của RR
cao hơn, nhưng thờigianđáp ứng trung bình của RR tốthơn
P
1
P
2
P
3
P
4
P
1
P
3
P
4
P
1
P
3
P
3
0 20 37 57 77 97 117 121 134 154 162
5.21
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 2, 2005
TIME QUANTUM V
TIME QUANTUM V
À
À
TH
TH
Ờ
Ờ
I GIAN CHUY
I GIAN CHUY
Ể
Ể
N
N
NG
NG
Ữ
Ữ
C
C
Ả
Ả
NH
NH
5.22
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 2, 2005
TH
TH
Ờ
Ờ
I GIAN QUAY VÒNG V
I GIAN QUAY VÒNG V
Ớ
Ớ
I TIME QUANTUM
I TIME QUANTUM
5.23
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 2, 2005
H
H
À
À
NG Đ
NG Đ
Ợ
Ợ
I ĐA M
I ĐA M
Ứ
Ứ
C
C
Hàng đợisẵn sàng đượcphânhoạch thành một các hàng đợi:
foreground (interactive)
background (batch)
Mỗihàngđợicóthuật toán lậplịch biểuriêngcủanó
z foreground – RR
z background – FCFS
Lậplịch biểu được làm giữa các hàng đợi
z Lậplịch biểu ưutiêncốđịnh (phụcvụ tấtcả quá trình trong
foreground sau đómới đến các quá trình trong background).
Có thể gây nên chết đói.
z Lát thời gian: mỗihàngđợinhậnmộtlượng thờigianCPU nhất
định để lậplịch biểu cho các quá trình củanó(vídụ 80% thời
gian cho hàng đợi foreground với RR, 20% cho background với
FCFS)
5.24
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 2, 2005
L
L
Ậ
Ậ
P L
P L
Ị
Ị
CH BI
CH BI
Ể
Ể
U H
U H
À
À
NG Đ
NG Đ
Ợ
Ợ
I ĐA M
I ĐA M
Ứ
Ứ
C
C
5.25
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 2, 2005
H
H
À
À
NG Đ
NG Đ
Ợ
Ợ
I PH
I PH
Ả
Ả
N H
N H
Ồ
Ồ
I ĐA M
I ĐA M
Ứ
Ứ
C
C
Mỗi quá trình có thể di chuyểngiữa các hàng đợi
Bộ lậplịch biểu hàng đợiphảnhồi đamức đượcxácđịnh bởicác
tham số sau:
z Số hàng đợi
z Các thuật toán lậplịch biểuchomỗi hàng đợi
z Phương pháp xác định khi nào nâng cấp quá trình
z Phương pháp xác định khi nào hạ cấp quá trình
z Phương pháp xác định hàng đợimột quá trình sẽ được đặtvào
khi quá trình cầnsự phụcvụ