Tải bản đầy đủ (.pdf) (44 trang)

CHƯƠNG 4: LẬP LỊCH BIỂU CPU CPU Scheduling potx

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 (626.04 KB, 44 trang )

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

 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

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ụ

×