Title: V
1Ð?NH TH?I CPU(Ði?u ph?i Ti?n trình)
TT CÔNG NGH? THÔNG TIN TRU?NG Ð?I H?C CÔNG NGHI?P
TP H? CHÍ MINH
- Võ Quang Hoàng Khang
- Email khangvqh_at_yahoo.com
2M?c tiêu
- Hi?u du?c
- Khái ni?m co b?n v? d?nh th?i
- Các c?p d? d?nh th?i
- M?c tiêu c?a d?nh th?i
- Các gi?i thu?t d?nh th?i
-
3Khái ni?m co b?n v? d?nh th?i
- Trong môi tru?ng h? di?u hành da nhi?m, b? ph?n
di?u ph?i ti?n trình có nhi?m v? xem xét và quy?t
d?nh khi nào thì d?ng ti?n trình hi?n t?i d? thu
h?i processor và chuy?n processor cho ti?n trình
khác, và khi dã có du?c processor thì ch?n ti?n
trình nào trong s? các ti?n trình ? tr?ng thái
ready d? c?p processor cho nó. -
4Phân lo?i các ho?t d?ng d?nh th?i
- Ð?nh th?i dài h?n (long-term scheduling) process
nào du?c ch?p nh?n vào h? th?ng - Ð?nh th?i trung h?n (medium-term sched.) process
nào du?c dua vào (swap in), dua ra kh?i (swap
out) b? nh? chính - Ð?nh th?i ng?n h?n (short-term sched.) process
nào du?c th?c thi ti?p theo
5Ð?nh th?i dài h?n
- Xác d?nh chuong trình nào s? du?c dua vào h?
th?ng d? th?c thi - Quy?t d?nh d?-da-l?p-trình (degree of
multiprogramming) - N?u càng nhi?u process du?c dua vào h? th?ng
- Kh? nang các process b? block có xu hu?ng gi?m
- S? d?ng CPU hi?u qu? hon
- M?i process du?c phân chia kho?ng th?i gian s?
d?ng CPU th?p hon - Thu?ng có xu hu?ng dua vào m?t t?p l?n l?n các
CPU-bound process và I/O-bound process
6Ð?nh th?i trung h?n
- Quy?t d?nh v? vi?c dua process vào b? nh? chính,
hay ra kh?i b? nh? chính ph? thu?c vào yêu c?u
qu?n lý vi?c da-l?p-trình (multiprogramming) - Cho phép b? d?nh th?i dài h?n ch?p nh?n nhi?u
process hon s? lu?ng process mà có t?ng kích
thu?c du?c ch?a v?a trong b? nh? chính - Nhung n?u có quá nhi?u process thì s? làm tang
vi?c truy xu?t dia, do dó c?n ph?i l?a ch?n
d?-da-l?p-trình cho phù h?p - Ðu?c th?c hi?n b?i ph?n m?m qu?n lý b? nh?
7Ð?nh th?i ng?n h?n
- Xác d?nh process nào du?c th?c thi ti?p theo, còn
g?i là d?nh th?i CPU - Ðu?c kích ho?t khi có m?t s? ki?n có th? d?n d?n
kh? nang ch?n m?t process d? th?c thi - Ng?t th?i gian (clock interrupt)
- Ng?t ngo?i vi (I/O interrupt)
- L?i g?i h? th?ng (operating system call)
- Signal
- chuong này s? t?p trung vào d?nh th?i ng?n
h?n
8M?c tiêu c?a d?nh th?i
- S? công b?ng ( Fairness) Các ti?n trình chia s?
CPU m?t cách công b?ng, không có ti?n trình nào
ph?i ch? d?i vô h?n d? du?c c?p phát CPU - Tính hi?u q?a (Efficiency) H? th?ng ph?i t?n
d?ng du?c CPU 100 th?i gian - Th?i gian dáp ?ng h?p lý (Response time) C?c
ti?u hoá th?i gian h?i dáp cho các tuong tác c?a
ngu?i s? d?ng - Th?i gian luu l?i trong h? th?ng ( Turnaround
Time) C?c ti?u hóa th?i gian hoàn t?t các tác
v? x? lý theo lô
9M?c tiêu c?a d?nh th?i
- Thông lu?ng t?i da (Throughput ) C?c d?i hóa s?
công vi?c du?c x? lý trong m?t don v? th?i gian. - Tuy nhiên thu?ng không th? th?a mãn t?t c? các
m?c tiêu k? trên vì b?n thân chúng có s? mâu
thu?n v?i nhau mà ch? có th? dung hòa chúng ? m?c
d? nào dó.
10Các gi?i thu?t d?nh th?i
- Ð? t? ch?c di?u ph?i ti?n trình h? di?u hành s?
d?ng hai danh sách Danh sách s?n sàng (Ready
list) dùng d? ch?a các ti?n trình ? tr?ng thái
s?n sàng. Danh sách d?i (Waiting list) dùng d?
ch?a các ti?n trình dang d?i d? du?c b? sung vào
danh sách s?n sàng. - Ch? có nh?ng ti?n trình trong ready list m?i du?c
ch?n d? c?p processor. Các ti?n trình b? chuy?n
v? tr?ng thái blocked s? du?c b? sung vào waiting
list. H? th?ng ch? có duy nh?t m?t ready list,
nhung có th? t?n t?i nhi?u waiting list. Thông
thu?ng h? di?u hành thi?t k? nhi?u waitting list,
m?i waitting list dùng d? ch?a các ti?n trình
dang d?i du?c c?p phát m?t tài nguyên hay m?t s?
ki?n riêng bi?t nào dó.
11Các gi?i thu?t d?nh th?i
12Các gi?i thu?t d?nh th?i
- Trong dó
- Ti?n trình trong h? th?ng du?c c?p d?y d? tài
nguyên ch? thi?u processor. - Ti?n trình du?c b? di?u ph?i ch?n ra d? c?p
processor d? b?t d?u x? lý. - Ti?n trình k?t thúc x? lý và tr? l?i processor
cho h? di?u hành. - Ti?n trình h?t th?i gian du?c quy?n s? d?ng
processor (time-out), b? b? di?u ph?i ti?n trình
thu h?i l?i processor. - Ti?n trình b? khóa (blocked) do yêu c?u tài
nguyên nhung chua du?c h? di?u hành c?p phát. Khi
dó ti?n trình du?c dua vào danh sách các ti?n
trình d?i tài nguyên (waiting list 1).
13Các gi?i thu?t d?nh th?i
- Ti?n trình b? khóa (blocked) do dang d?i m?t s?
ki?n nào dó x?y ra. Khi dó ti?n trình du?c b?
di?u ph?i dua vào danh sách các ti?n trình d?i
tài nguyên (waiting list 2). - Tài nguyên mà ti?n trình yêu c?u dã du?c h? di?u
hành c?p phát. Khi dó ti?n trình du?c b? di?u
ph?i chuy?n sang danh sách các ti?n trình ? tr?ng
thái s?n sang (ready list) d? ch? du?c c?p
processor d? du?c ho?t d?ng. - S? ki?n mà ti?n trình ch? dã x?y ra. Khi dó ti?n
trình du?c b? di?u ph?i chuy?n sang danh sách các
ti?n trình ? tr?ng thái s?n sang (ready list) d?
ch? du?c c?p processor.
14Chi?n lu?c FIFO (First In First Out)
- Nguyên t?c
- Processor du?c c?p phát cho ti?n trình d?u tiên
trong danh sách s?n sàng có yêu c?u, là ti?n
trình du?c dua vào h? th?ng s?m nh?t. - FIFO du?c s? d?ng trong di?u ph?i d?c quy?n nên
khi ti?n trình du?c c?p processor nó s? s? h?u
processor cho d?n khi k?t thúc x? lý hay ph?i d?i
m?t thao tác vào/ra hoàn thành, khi dó ti?n trình
ch? d?ng tr? l?i processor cho h? th?ng.
15Chi?n lu?c FIFO (First In First Out)
- Ví d?
- N?u h? di?u hành c?n c?p processor cho 3 ti?n
trình P1, P2, P3, v?i th?i di?m vào ready list và
kho?ng th?i gian m?i ti?n trình c?n processor
du?c mô t? trong b?ng sau - Ti?n trình th?i di?m vào t/g x? lý
- P1 0 24
- P2 1 3
- P3 2 3
- Thì th? t? c?p processor cho các ti?n trình di?n
ra nhu sau - Ti?n trình P1 P2 P3
- Th?i di?m 0 24 27
- V?y th?i gian ch? c?a ti?n trình P1 là 0, c?a P2
là 23 (24 - 1), c?a P3 là 25 (24 3 - 2). Và
th?i gian ch? d?i trung bình c?a các ti?n trình
là - (0 23 25)/3 16.
16Ví d? th?c t?
- Vi?c ph?c v? khách trong nhà hàng
- Th?c khách s? d?n và g?i món an cho mình
- M?i món an c?n th?i gian chu?n b? khác nhau
- M?c tiêu
- Gi?m th?i gian d?i trung bình c?a các th?c khách
- Cách làm nào s? phù h?p?
- Thông thu?ng các nhà hàng s? ph?c v? theo ki?u
FIFO (!)
17Chi?n lu?c FIFO (First In First Out)
- Nhu v?y FIFO t?n t?i m?t s? h?n ch?
- Th? nh?t, có th?i gian ch? d?i trung bình l?n nên
không phù h?p v?i các h? th?ng chia s? th?i gian.
- Th? hai, kh? nang tuong tác kém khi nó du?c áp
d?ng trên các h? th?ng uniprocessor. - Th? ba, n?u các ti?n trình ? d?u ready list c?n
nhi?u th?i gian c?a processor thì các ti?n trình
? cu?i ready list s? ph?i ch? lâu m?i du?c c?p
processor.
18Chi?n lu?c phân ph?i xoay vòng (RR Round Robin)
- Ready list du?c thi?t k?t theo d?ng danh sách
n?i vòng. Ti?n trình du?c b? di?u ph?i ch?n d?
c?p processor cung là ti?n trình ? d?u ready
list, nhung sau m?t kho?ng th?i gian nh?t d?nh
nào dó thì b? di?u ph?i l?i thu h?i l?i processor
c?a ti?n trình v?a du?c c?p processor và chuy?n
processor cho ti?n trình k? ti?p (bây gi? dã tr?
thành ti?n trình d?u tiên) trong ready list, ti?n
trình v?a b? thu h?i processor du?c dua vào l?i
cu?i ready list. Rõ ràng dây là chi?n lu?c di?u
ph?i không d?c quy?n.
19Chi?n lu?c phân ph?i xoay vòng (RR Round Robin)
- Kho?ng kho?n th?i gian mà m?i ti?n trình du?c s?
h?u processor d? ho?t d?ng là b?ng nhau, và
thu?ng du?c g?i là Quantum.
20Chi?n lu?c phân ph?i xoay vòng (RR Round Robin)
- Ví d? N?u h? di?u hành c?n c?p processor cho 3
ti?n trình P1, P2, P3 v?i th?i di?m vào ready
list và kho?ng th?i gian m?i ti?n trình c?n
processor du?c mô t? trong b?ng sau - Ti?n trình th?i di?m vào t/g x? lý
- P1 0 24
- P2 1 3
- P3 2 3 Quantum 4
- Thì th? t? c?p processor cho các ti?n trình l?n
lu?t là - Ti?n trình P1 P2 P3 P1 P1 P1 P1 P1
- Th?i di?m 0 4 7 10 14 18 22 26
- V?y th?i gian ch? d?i trung bình s? là (0 6
3 5)/3 4.46
21Chi?n lu?c phân ph?i xoay vòng (RR Round Robin)
- Nhu v?y RR có th?i gian ch? d?i trung bình nh?
hon so v?i FIFO - Trong chi?n lu?c này, v?n d? d?t ra d?i v?i công
tác thi?t k? là nên chon quantum b?ng bao nhiêu
là thích h?p, n?u quantum nh? thì h? th?ng ph?i
t?n nhi?u th?i gian cho vi?c c?p nh?t ready list
và chuy?n tr?ng thái ti?n trình, d?n d?n vi ph?m
m?c tiêu khai thác t?i da th?i gian x? lý c?a
processor. N?u quantum l?n thì th?i gian ch? d?i
trung bình và th?i gian h?i dáp s? tang lên, d?n
d?n tính tuong tác c?a h? th?ng b? gi?m xu?ng.
22Chi?n lu?c theo d? uu tiên
- M?i ti?n trình du?c gán cho m?t d? uu tiên tuong
?ng, ti?n trình có d? uu tiên cao nh?t s? du?c
ch?n d? c?p phát processor d?u tiên - Ð? uu tiên có th? du?c d?nh nghia n?i t?i hay nh?
vào các y?u t? bên ngoài - Gi?i thu?t di?u ph?i v?i d? uu tiên có th? theo
nguyên t?c d?c quy?n hay không d?c quy?n.
23Chi?n lu?c theo d? uu tiên
- Khi m?t ti?n trình du?c dua vào danh sách các
ti?n trình s?n sàng, d? uu tiên c?a nó du?c so
sánh v?i d? uu tiên c?a ti?n trình hi?n hành dang
x? lý. Gi?i thu?t di?u ph?i v?i d? uu tiên và
không d?c quy?n s? thu h?i CPU t? ti?n trình hi?n
hành d? c?p phát cho ti?n trình m?i n?u d? uu
tiên c?a ti?n trình này cao hon ti?n trình hi?n
hành. M?t gi?i thu?t d?c quy?n s? ch? don gi?n
chèn ti?n trình m?i vào danh sách s?n sàng, và
ti?n trình hi?n hành v?n ti?p t?c x? lý h?t th?i
gian dành cho nó.
24Chi?n lu?c theo d? uu tiên
- Ví d? N?u h? di?u hành c?n c?p processor cho 3
ti?n trình P1, P2, P3 v?i d? uu tiên và kho?ng
th?i gian m?i ti?n trình c?n processor du?c mô t?
trong b?ng sau - Ti?n trình d? uu tiên th?i gian x? lý
- P1 3 24
- P2 1 3
- P3 2 3
- Thì th? t? c?p processor (theo nguyên t?c d?c
quy?n) cho các ti?n trình l?n lu?t là - Ti?n trình P2 P3 P1
- Th?i di?m 0 4 7
25Chi?n lu?c theo d? uu tiên
- Chi?n lu?c này có th? d?n d?n h?u qu? các ti?n
trình có d? uu tiên th?p s? roi vào tình tr?ng
ch? d?i vô h?n. Ð? kh?c ph?c di?u này h? di?u
hành thu?ng h? d? uu tiên c?a các ti?n trình có
d? uu tiên cao sau m?i l?n nó du?c c?p processor.
26Chi?n luoc SJF (Shortest Job First công vi?c
ng?n nh?t)
- Ðây là tru?ng h?p d?c bi?t c?a chi?n lu?c theo d?
uu tiên. Trong chi?n lu?c này d? uu tiên P c?a
m?i ti?n trình là 1/t, v?i t là kho?ng th?i gian
mà ti?n trình c?n processor. B? di?u ph?i s? ch?n
ti?n trình có P l?n d? c?p processor, t?c là uu
tiên cho nh?ng ti?n trình có th?i gian x? lý
(th?i gian c?n processor) nh?. - Chi?n lu?c này có th? có th?i gian ch? d?i trung
bình d?t c?c ti?u. Nhung h? di?u hành khó có th?
doán du?c th?i gian x? lý mà ti?n trình yêu c?u.
27Chi?n luoc SJF (Shortest Job First công vi?c
ng?n nh?t)
28Chi?n lu?c nhi?u c?p d? uu tiên
- H? di?u hành phân l?p các ti?n trình theo d? uu
tiên c?a chúng d? có cách th?c di?u ph?i thích
h?p cho t?ng l?p ti?n trình. - M?i c?p d? uu tiên có m?t ready list riêng.
- B? di?u ph?i dùng chi?n lu?c di?u ph?i thích h?p
cho t?ng realy list. - H? di?u hành cung ph?i thi?t k? m?t co ch? thích
h?p d? di?u ph?i ti?n trình gi?a các l?p.
29Chi?n lu?c nhi?u c?p d? uu tiên
30Chi?n lu?c nhi?u c?p d? uu tiên
- Trong chi?n lu?c này h? di?u hành s? d?ng d? uu
tiên tinh, và di?u ph?i không d?c quy?n, do dó
m?t ti?n trình thu?c ready list ? c?p uu tiên i
s? ch? du?c c?p phát processor khi trong ready
list ? c?p uu tiên j (j gt i) không còn m?t ti?n
trình nào. - Các ti?n trình ? ready list có d? uu tiên th?p s?
ph?i ch? d?i processor trong m?t kho?ng th?i gian
dài, có th? là vô h?n. - Ð? kh?c ph?c di?u này h? di?u hành xây d?ng chi?n
lu?c di?u ph?i Nhi?u m?c d? uu tiên xoay vòng.
31Chi?n lu?c nhi?u c?p d? uu tiên
- H? di?u hành chuy?n d?n m?t ti?n trình ? ready
list có d? uu tiên cao xu?ng ready list có d? uu
tiên th?p hon sau m?i l?n s? d?ng procesor, và
ngu?c l?i m?t ti?n trình ? lâu trong ready list
có d? uu tiên th?p thì s? du?c chuy?n d?n lên
ready list có d? uu tiên cao hon.
32Chi?n lu?c nhi?u c?p d? uu tiên
- Khi xây d?ng m?t gi?i thu?t di?u ph?i nhi?u c?p
uu tiên và xoay vòng c?n quy?td?nh các tham s? - S? lu?ng các c?p uu tiên
- Gi?i thu?t di?u ph?i cho t?ng danh sách ?ng v?i
m?t c?p uu tiên. - Phuong pháp xác d?nh th?i di?m di chuy?n m?t
ti?n trình lên danh sách có d? uu tiên cao hon. - Phuong pháp xác d?nh th?i di?m di chuy?n m?t
ti?n trình lên danh sách có d? uu tiên th?p hon. - Phuong pháp s? d?ng d? xác d?nh m?t ti?n trình
m?i du?c dua vào h? th?ng s? thu?c danh sách ?ng
v?i d? tiên nào.
33Chi?n lu?c nhi?u c?p d? uu tiên
34Chi?n lu?c di?u ph?i X? s? (Lottery
- Nguyên t?c Ý tu?ng chính c?a gi?i thu?t là phát
hành m?t s? vé s? và phân ph?i cho các ti?n trình
trong h? th?ng. Khi d?n th?i di?m ra quy?t d?nh
di?u ph?i, s? ti?n hành ch?n 1 vé "trúng gi?i",
ti?n trình nào s? h?u vé này s? du?c nh?n CPU
35Bài t?p
36Bài t?p
37Bài t?p
38