Title:
1Ð?NH TH?I CPU
2M?c tiêu
- Hi?u du?c
- T?i sao c?n ph?i d?nh th?i
- Các tiêu chí d?nh th?i
- M?t s? gi?i thu?t d?nh th?i
- (Ghi chú nh?ng slide có d?u ? tiêu d? là
nh?ng slide quan tr?ng, nh?ng slide khác dùng d?
di?n gi?i thêm)
3M?t s? khái ni?m co b?n
- Chu k? CPU-I/O
- CPU-bound process có th?i gian s? d?ng CPU nhi?u
hon th?i gian s? d?ng I/O - Ph?n l?n th?i gian c?a I/O-bound process dùng d?
d?i I/O
4M?t s? khái ni?m co b?n
- Trong các h? th?ng multitasking
- T?i m?t th?i di?m trong b? nh? có nhi?u process
- T?i m?i th?i di?m ch? có m?t process du?c th?c
thi - Do dó, cân pha?i gia?i quyêt vân dê phân
chia, lu?a cho?n process thu?c thi sao cho duo?c
hiê?u qua? nhât. C?n có chiên luo?c di?nh thoi
CPU
5Phân lo?i các ho?t d?ng d?nh th?i
6Phâ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
7Ð?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
8Ð?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?
9Ð?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
10N?i dung c?n quan tâm
- Ð?nh th?i trên h? th?ng có m?t processor
(uniprocessor scheduling) quy?t d?nh vi?c s?
d?ng (m?t) CPU cho m?t t?p các process trong h?
th?ng - Tiêu chí nào?
11Tiêu chí d?nh th?i
- Ð? l?i CPU (CPU utilization)
- Kho?ng th?i gian CPU b?n, t? 0 d?n 100
- C?n gi? cho CPU càng b?n càng t?t
- Th?i gian ch? (waiting time)
- Th?i gian ch? trong hàng d?i ready
- Các process nên du?c chia s? vi?c s? d?ng CPU m?t
cách công b?ng (fair share)
12Tiêu chí d?nh th?i
- Thông nang (throughput)
- S? lu?ng process hoàn t?t trong m?t don v? th?i
gian - Th?i gian dáp ?ng (response time)
- Th?i gian t? lúc có yêu c?u c?a ngu?i dùng (user
request) d?n khi có dáp ?ng d?u tiên (luu ý dáp
?ng d?u tiên, ch? không ph?i output) - Thu?ng là v?n d? v?i các I/O-bound process
13Tiêu chí d?nh th?i
- Th?i gian quay vòng (turnaround time)
- Th?i gian d? m?t process hoàn t?t, k? t? lúc n?p
vào h? th?ng (submission) d?n lúc k?t thúc
(termination) - Là m?t tr? d?c trung c?n quan tâm v?i các process
thu?c d?ng CPU-bound - Th?i gian quay vòng trung bình (average
turnaround time)
14Tiêu chí d?nh th?i
- Ð? l?i CPU gi? CPU càng b?n càng t?t
- T?i da hóa
- Thông nang s? lu?ng process k?t thúc vi?c th?c
thi trong m?t don v? th?i gian - T?i da hóa
- Turnaround time th?i gian k? t? lúc b?t d?u dua
vào (submission) d?n lúc k?t thúc - T?i thi?u hóa
- Th?i gian ch? th?i gian m?t process ch? trong
hàng d?i ready - T?i thi?u hóa
- Th?i gian dáp ?ng th?i gian t? khi dua yêu c?u
d?n khi có dáp ?ng d?u tiên - T?i thi?u hóa
15Có th? làm du?c?
- T?t c? các tiêu chí không th? du?c t?i uu d?ng
th?i vì có m?t s? tiêu chí lo?i tr? l?n nhau
16Tiêu chí d?nh th?i t? các góc nhìn
- Hu?ng d?n ngu?i s? d?ng (user-oriented)
- Th?i gian quay vòng (turnaround time)
- Th?i gian t? lúc n?p process d?n lúc process k?t
thúc - C?n quan tâm v?i các h? th?ng x? lý bó (batch
system) - Th?i gian dáp ?ng (response time)
- C?n quan tâm v?i các h? th?ng giao ti?p
(interactive system)
17Tiêu chí d?nh th?i t? các góc nhìn
- Hu?ng d?n h? th?ng (system-oriented)
- Ð? l?i CPU (CPU utilization)
- Công b?ng (fairness)
- Thông nang (throughput) s? process hoàn t?t
trong m?t don v? th?i gian
18Hai thành ph?n c?a chi?n lu?c d?nh th?i
- Hàm l?a ch?n (selection function)
- Xác d?nh process nào trong ready queue s? du?c
th?c thi ti?p theo. Thu?ng theo các tiêu chí nhu - w tô?ng thoi gian do?i trong h? thông
- e thoi gian dã duo?c phu?c vu?
- s tô?ng thoi gian thu?c thi cu?a process (bao
gôm ca? tr? e)
19Hai thành ph?n c?a chi?n lu?c d?nh th?i
- Ch? d? quy?t d?nh (decision mode)
- Ch?n th?i di?m hàm l?a ch?n d?nh th?i th?c thi
- Nonpreemptive
- M?t process s? ? tr?ng thái running cho d?n khi
nó b? block ho?c nó k?t thúc - Preemptive
- Process dang th?c thi có th? b? ng?t và chuy?n v?
tr?ng thái ready - Tránh tru?ng h?p m?t process d?c chi?m
(monopolizing) CPU
20Nonpreemptive và preemptive
- Hàm d?nh th?i du?c th?c hi?n khi
- (1) Chuyê?n t? tra?ng thai running sang waiting
- (2) Chuyê?n t? tra?ng thai running sang ready
- (3) Chuyê?n t? tra?ng thai waiting, new sang
ready - (4) Kêt thuc thu?c thi
- Truong ho?p 1, 4 duo?c go?i la di?nh thoi
nonpreemptive - Truong ho?p 2, 3 duo?c go?i la di?nh thoi
preemptive
21Nonpreemptive và preemptive (2)
- Hi?n th?c co ch? nào khó hon? T?i sao?
- Preemptive scheduling hi?n th?c khó hon c?n ph?i
duy trì s? nh?t quán c?a - D? li?u du?c chia s? gi?a các process, và quan
tr?ng hon là - Các d? li?u trong kernel (ví d? các hàng d?i I/O)
- Ví d? tru?ng h?p x?y ra preemption khi kernel
dang th?c thi m?t l?i g?i h? th?ng (do ?ng d?ng
yêu c?u) - R?t nhi?u h? di?u hành ch? cho các l?i g?i hàm h?
th?ng k?t thúc r?i m?i preemption
22Dispatcher
- Dispatcher s? chuy?n quy?n di?u khi?n CPU v? cho
process du?c ch?n b?i b? d?nh th?i ng?n h?n - Bao g?m
- Chuy?n ng? c?nh (s? d?ng thông tin ng? c?nh trong
PCB) - Chuy?n v? user mode
- Nh?y d?n v? trí thích h?p trong chuong trình ?ng
d?ng d? kh?i d?ng l?i chuong trình (chính là
program counter trong PCB) - Công vi?c này gây ra phí t?n
- Dispatch latency th?i gian mà dispatcher d?ng
m?t process và kh?i d?ng m?t process khác
23Dispatch latency
Conflict phase xem p. 171
24First Come First Served (FCFS)
- Hàm l?a ch?n ch?n process d?i trong hàng d?i
ready lâu nh?t - Ch? d? quy?t d?nh nonpreemptive
- M?t process s? du?c th?c thi cho d?n khi nó b?
block ho?c k?t thúc - FCFS thu?ng du?c qu?n lý b?ng m?t FIFO queue
25First Come First Served (FCFS)
- Process Burst time (ms)
- P1 24
- P2 3
- P3 3
- Gi? s? các process d?n theo th? t? P1 , P2 , P3
- Gi?n d? Gantt cho vi?c d?nh th?i là
- Th?i gian d?i cho P1 0, P2 24, P3 27
- Th?i gian d?i trung bình (0 24 27)/3 17
P1
P2
P3
24
27
30
0
26First Come First Served (FCFS)
- Th?i gian ph?c v? trung bình
- Thông nang
- Th?i gian quay vòng
- Ki?m tra l?i Th?i gian d?i (th?i gian quay
vòng ? th?i gian ph?c v? ? dispatch latency)
P1
P2
P3
24
27
30
0
27First Come First Served (FCFS)
- Gi? s? các process d?n theo th? t?
- P2 , P3 , P1
- Gi?n d? Gantt cho vi?c d?nh th?i là
- Th?i gian d?i cho P1 6, P2 0, P3 3
- Th?i gian d?i trung bình là (6 0 3)/3 3
- T?t hon r?t nhi?u so v?i tru?ng h?p tru?c
P1
P3
P2
6
3
30
0
28First Come First Served (FCFS)
- FCFS không công b?ng v?i các process có CPU burst
ng?n. Các process này ph?i ch? trong th?i gian
dài (so v?i th?i gian mà nó c?n ph?c v?) thì m?i
du?c s? d?ng CPU. Ði?u này d?ng nghia v?i vi?c
FCFS uu tiên các process thu?c d?ng CPU bound. - Câu h?i Li?u có x?y ra tru?ng h?p trì hoãn vô
h?n d?nh (starvation hay indefinite blocking) v?i
gi?i thu?t FCFS? - FCFS thu?ng du?c s? d?ng trong các h? th?ng bó
(batch system)
29Ví 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
FCFS (!)
30Shortest Job First (SJF)
- Process Th?i di?m d?n Burst time (ms)
- P1 0.0 7
- P2 2.0 4
- P3 4.0 1
- P4 5.0 4
- Gi?n d? Gantt khi d?nh th?i theo SJF
- Th?i gian d?i trung bình (0 6 3 7)/4 4
P1
P3
P2
P4
7
3
16
0
8
12
31Shortest Job First (SJF)
- Th?i gian ph?c v? trung bình
- Thông nang
- Th?i gian quay vòng
- Ki?m tra l?i Th?i gian d?i (th?i gian quay
vòng ? th?i gian ph?c v? ? dispatch latency)
P1
P3
P2
P4
7
3
16
0
8
12
32Shortest Job First (SJF)
- Tuong ?ng v?i m?i process c?n có d? dài c?a CPU
burst ti?p theo - Hàm l?a ch?n ch?n process có d? dài CPU burst
nh? nh?t - Ch?ng minh du?c SJF t?i uu trong vi?c gi?m th?i
gian d?i trung bình - Nhu?c di?m C?n ph?i u?c lu?ng th?i gian c?n CPU
ti?p theo c?a process - Gi?i pháp cho v?n d? này?
33D? doán th?i gian s? d?ng CPU
- (Th?i gian s? d?ng CPU chính là d? dài c?a CPU
burst) - Trung bình t?t c? các CPU burst do du?c trong quá
kh? - Nhung thông thu?ng nh?ng CPU burst càng m?i càng
ph?n ánh dúng hành vi c?a process trong tuong lai - M?t k? thu?t thu?ng dùng là s? d?ng trung bình
hàm mu (exponential averaging) - tn1 a tn (1 - a) tn , 0 ? a ? 1
- tn1 a tn (1- a) a tn-1 (1- a)jatn-j
(1- a)n1at0 - N?u ch?n a ½ thì có nghia là tr? do du?c tn và
tr? d? doán tn du?c xem quan tr?ng nhu nhau.
34D? doán th?i gian s? d?ng CPU
Ð? dài CPU burst do du?c
Ð? dài CPU burst d? doán, v?i ? ½ và ?0
10
35Shortest Job First (SJF)
- SJF s? d?ng uu tiên ng?m d?nh công vi?c ng?n
nh?t du?c uu tiên tru?c - Nh?ng công vi?c thu?c lo?i I/O bound thu?ng có
CPU burst ng?n - Process có th?i gian th?c thi dài có th? b? trì
hoãn vô h?n d?nh n?u các process có th?i gian
th?c thi ng?n liên t?c vào - Không thích h?p cho môi tru?ng time-sharing khi
không dùng preemption - Dù các CPU bound process có d? uu tiên th?p
- Nhung m?t process không th?c hi?n I/O có th? d?c
chi?m h? th?ng n?u nó là process d?u tiên vào h?
th?ng
36Shortest Job First (SJF)
- Ch? d? quy?t d?nh nonpreemptive
- Phiên b?n preemptive c?a SJF
- N?u m?t process m?i d?n mà có d? dài CPU burst
nh? hon th?i gian c?n CPU còn l?i c?a process
dang th?c thi, thì th?c hi?n preempt process dang
th?c thi - Cách làm này còn du?c g?i làShortest-Remaining-Ti
me-First (SRTF)
37Shortest Remaining Time First (SRTF)
- Process Th?i di?m d?n Burst time (ms)
- P1 0.0 7
- P2 2.0 4
- P3 4.0 1
- P4 5.0 4
- Gi?n d? Gantt khi d?nh th?i theo SRTF
- Th?i gian d?i trung bình (9 1 0 2)/4 3
- T?t hon gi?i thu?t nonpreemptive SJF
P1
P3
P2
P4
P2
P1
4
2
11
5
7
16
0
38Shortest Remaining Time First (SRTF)
- Th?i gian ph?c v? trung bình
- Thông nang
- Th?i gian quay vòng
- Ki?m tra l?i Th?i gian d?i (th?i gian quay
vòng ? th?i gian ph?c v? ? dispatch latency)
P1
P3
P2
P4
P2
P1
4
2
5
7
11
16
0
39Shortest Remaining Time First (SRTF)
- Tránh tru?ng h?p các process có th?i gian th?c
thi dài d?c chi?m CPU - C?n ph?i qu?n lý th?i gian th?c thi còn l?i c?a
các process - Có th?i gian quay vòng t?t hon SJF
- Process có th?i gian th?c thi ng?n có d? uu tiên
cao
40Priority Scheduling
- M?i process s? du?c gán m?t d? uu tiên
- CPU s? du?c c?p cho process có d? uu tiên cao
nh?t - Ð?nh th?i s? d?ng d? uu tiên có th?
- Preemptive ho?c
- Nonpreemptive
41Gán d? uu tiên
- SJF là m?t gi?i thu?t d?nh th?i s? d?ng d? uu
tiên v?i d? uu tiên là th?i-gian-s?-d?ng-CPU-d?-do
án - Gán d? uu tiên còn d?a vào
- Yêu c?u v? b? nh?
- S? lu?ng file du?c m?
- T? l? th?i gian dùng cho I/O trên th?i gian s?
d?ng CPU - Các yêu c?u bên ngoài ví d? nhu s? ti?n ngu?i
dùng tr? khi th?c thi công vi?c
42Priority Scheduling
- V?n d? trì hoãn vô h?n d?nh process có d? uu
tiên th?p có th? không bao gi? du?c th?c thi - Gi?i pháp aging d? uu tiên c?a process s? tang
theo th?i gian
43Round Robin (RR)
44Round Robin (RR)
- Ch? d? quy?t d?nh preemptive
- Kho?ng th?i gian t?i da cho phép (thu?ng 10 - 100
ms) du?c d?m b?o b?ng vi?c s? d?ng timer
interrupt - Process dang ch?y h?t th?i gian s? du?c chuy?n v?
cu?i c?a hàng d?i ready
45Round Robin (RR)
- Process Burst time (ms)
- P1 53
- P2 17
- P3 68
- P4 24
- Quantum time 20 ms
- Gi?n d? Gantt
- Thu?ng có th?i gian quay vòng cao hon SJF, nhung
l?i có th?i gian dáp ?ng t?t hon
46Round Robin (RR)
- Th?i gian ph?c v? trung bình
- Thông nang
- Th?i gian quay vòng
- Ki?m tra l?i Th?i gian d?i (th?i gian quay
vòng ? th?i gian ph?c v? ? dispatch latency)
47Quantum time cho Round Robin
48Quantum time và chuy?n ng? c?nh
- Quantum time càng nh? thì càng có nhi?u l?n
chuy?n ng? c?nh (context switch)
S? l?n ngung/ti?p t?c quá trình
49Th?i gian quay vòng và quantum time
- Th?i gian quay vòng trung bình (average
turnaround time) không ch?c s? du?c c?i thi?n khi
quantum l?n
50Quantum time cho Round Robin
- Khi th?c hi?n process switch thì OS s? s? d?ng
CPU ch? không ph?i process c?a ngu?i dùng (OS
overhead) - D?ng th?c thi, luu t?t c? thông tin, n?p thông
tin c?a process s?p th?c thi - Performance tùy thu?c vào kích thu?c c?a quantum
time (còn g?i là time slice), và hàm ph? thu?c
này không don gi?n - Time slice ng?n thì dáp ?ng nhanh
- V?n d? có nhi?u chuy?n ng? c?nh. Phí t?n s? cao.
- Time slice dài hon thì throughput t?t hon (do
gi?m phí t?n OS overhead) nhung th?i gian dáp ?ng
l?n - N?u time slice quá l?n, RR tr? thành FCFS.
51Quantum time cho Round Robin
- Quantum time và th?i gian cho process switch
- N?u quantum time 20 ms và th?i gian cho process
switch 5 ms, nhu v?y phí t?n OS overhead chi?m
5/25 20 - N?u quantum 500 ms, thì phí t?n ch? còn ? 1
- Nhung n?u có nhi?u ngu?i s? d?ng trên h? th?ng và
thu?c lo?i interactive thì s? th?y dáp ?ng r?t
ch?m - Tùy thu?c vào t?p công vi?c mà l?a ch?n quantum
time - Time slice nên l?n trong tuong quan so sánh v?i
th?i gian cho process switch - Ví d? v?i 4.3 BSD UNIX, time slice là 1 giây
52Round Robin
- N?u có n process trong hàng d?i ready, và quantum
time là q, nhu v?y m?i process s? l?y 1/n th?i
gian CPU theo t?ng kh?i có kích thu?c l?n nh?t là
q - S? không có process nào ch? lâu hon (n - 1)q don
v? th?i gian - RR s? d?ng m?t gi? thi?t ng?m là t?t c? các
process d?u có t?m quan tr?ng ngang nhau - Không th? s? d?ng RR n?u mu?n các process khác
nhau có d? uu tiên khác nhau
53Round Robin nhu?c di?m
- Các process d?ng CPU-bound v?n còn du?c uu tiên
- Ví d?
- M?t I/O-bound process s? d?ng CPU trong th?i gian
ng?n hon quantum time và b? blocked d? d?i I/O.
Và - M?t CPU-bound process ch?y h?t time slice và l?i
quay tr? v? hàng d?i ready queue (? phía tru?c
các process dã b? blocked)
54Multilevel Queue Scheduling
- Tru?ng h?p các quá trình có th? du?c phân thành
nhóm - (ví d? interactive và batch)
- Hàng d?i ready s? du?c chia thành nhi?u hàng d?i
riêng r?. Ví d? - foreground (cho công vi?c c?n giao ti?p -
interactive) - background (cho công vi?c d?ng bó - batch)
- M?i hàng d?i s? có gi?i thu?t d?nh th?i riêng. Ví
d? - foreground dùng RR
- background dùng FCFS
55Multilevel Queue Scheduling
- Ð?nh th?i c?n ph?i th?c hi?n gi?a các hàng d?i
v?i nhau - Theo cách c? d?nh (fixed priority scheduling)
ví d? ph?c v? t?t c? các process c?a foreground
r?i m?i d?n background - Có kh? nang x?y ra trì hoãn vô h?n d?nh
(starvation) - Chia th?i gian (time slice) m?i hàng d?i s?
du?c l?y m?t kho?ng s? d?ng CPU nh?t d?nh d? d?nh
th?i cho các process c?a mình. Ví d? - 80 cho foreground (dùng RR)
- 20 cho background (dùng FCFS)
56Multilevel Queue Scheduling
- Ví d? phân nhóm các quá trình
57Multilevel Feedback Queue
- Process có th? di chuy?n gi?a các queue tùy theo
d?c tính c?a nó. - Ví d?
- N?u m?t process s? d?ng CPU quá lâu, nó s? b? di
chuy?n sang m?t hàng d?i có d? uu tiên th?p hon - N?u m?t process ch? qua lâu trong m?t hàng d?i có
d? uu tiên th?p, nó s? du?c di chuy?n lên hàng
d?i có d? uu tiên cao hon (aging, giúp tránh
starvation)
58Multilevel Feedback Queue
- Ví d? Có 3 hàng d?i
- Q0 , dùng RR v?i quantum 8 ms
- Q1 , dùng RR v?i quantum 16 ms
- Q2 , dùng FCFS
- Gi?i thu?t
- Công vi?c m?i s? vào hàng d?i Q0. Khi d?n lu?t
mình, công vi?c s? du?c m?t kho?ng th?i gian là 8
milli giây. N?u không k?t thúc du?c trong 8 milli
giây, công vi?c s? du?c dua xu?ng hàng d?i Q1 - T?i Q1, tuong t? công vi?c sau khi ch? s? du?c
cho m?t kho?ng th?i gian th?c thi là 16 milli
giây. N?u h?t th?i gian này v?n chua k?t thúc s?
b? chuy?n sang Q2
59Multilevel Feedback Queue
- Multilevel Feedback Queue du?c xác d?nh b?i các
thông s? - Có bao nhiêu hàng d?i?
- V?i m?i queue s? d?ng gi?i thu?t d?nh th?i nào?
- Xác d?nh th?i di?m thang c?p cho m?t process?
- Làm sao d? xác d?nh th?i di?m giáng c?p m?t
process? - Xác d?nh du?c hàng d?i nào process s? vào khi
process dó c?n th?c thi?
60Policy và Mechanism
- R?t quan tr?ng trong d?nh th?i và phân ph?i tài
nguyên - Policy
- Ði?u gì (what) nên (hay c?n) làm
- Mechanism
- Làm sao (how) d? làm di?u dó
- Ví d?
- Policy t?t c? ngu?i dùng c?n du?c công b?ng
- Mechanism s? d?ng round robin
- Policy công vi?c du?c tr? ti?n cao có d? uu tiên
cao - Mechanism s? d?ng các gi?i thu?t có preemptive
61Ð?nh th?i trên h? th?ng multiprocessor
- N?u có nhi?u CPU thì có th? th?c hi?n vi?c chia
t?i - Ph?c t?p hon so v?i d?nh th?i trên m?t processor
- Làm sao d? chia t?i?
- Asymmetric multiprocessor
- M?t master processor s? th?c hi?n d?nh th?i cho
t?t c? các processor còn l?i - Symmetric multiprocessor (SMP)
- Ho?c m?i processor có m?t hàng d?i ready riêng và
b? d?nh th?i riêng - Ho?c có m?t hàng d?i ready chung cho t?t c?
processors - M?t processor du?c ch?n làm scheduler cho các
processor khác - Ho?c m?i processor có b? d?nh th?i riêng và t?
ch?n process t? hàng d?i chung d? th?c thi
62Processor affinity
- Khi m?t process ch?y trên m?t processor, có m?t
s? d? liêu du?c cache trên b? nh? cache c?a
processor - Khi m?t process du?c di d?i sang m?t processor
khác - Cache c?a processor m?i ph?i du?c repopulated
- Cache c?a processor cu ph?i du?c invalidated
- ? v?n d? phí t?n
63Cân b?ng t?i
- M?t processor có quá nhi?u t?i, trong khi nh?ng
b? x? lý khác thì l?i r?nh - Cân b?ng t?i s? d?ng
- Push migration m?t task d?c bi?t s? d?nh k? ki?m
tra t?i trên t?t c? các processors và công vi?c
s? du?c d?y d?n processor r?nh - Pull migration processor r?nh s? l?y công vi?c
t? processor dang b?n - M?t s? h? th?ng (ví d? Linux) hi?n th?c c? hai
- C?n ph?i có s? cân b?ng gi?a load balancing và
processor affinity
64Ðánh giá gi?i thu?t d?nh th?i CPU
- Deterministic modeling
- Ð?nh nghia tru?c m?t t?p t?i (workload) và kh?o
sát performance c?a các gi?i thu?t trên cùng t?p
t?i dó - Không t?ng quát
- Queuing models
- S? d?ng queuing theory d? phân tích gi?i thu?t
- S? d?ng nhi?u gi? thi?t d? ph?c v? vi?c phân tích
- Không sát th?c t?
- Mô ph?ng (simulation)
- Xây d?ng b? mô ph?ng và ch?y th?
- V?i t?p t?i gi? (thu?ng du?c sinh t? d?ng)
- Ho?c t?p t?i du?c ghi nh?n t? th?c t?
- Hi?n th?c
- Vi?t mã c?a gi?i thu?t và test nó trong h? th?ng
th?c
65T?ng k?t
- S? th?c thi c?a m?t process
- B? d?nh th?i ch?n m?t process t? hàng d?i ready
- Dispatcher th?c hi?n switching
- Các tiêu chí d?nh th?i (thu?ng xung d?t nhau)
- Ð? l?i CPU, th?i gian ch?, th?i gian dáp ?ng,
thông nang, - Các gi?i thu?t d?nh th?i
- FCFS, SJF, Priority, RR, Multilevel Feedback
Queue, - Ð?nh th?i trên h? th?ng multiprocessor (d?c thêm)
- Processor affinity và cân b?ng t?i
- Ðánh giá gi?i thu?t (d?c thêm)
- Mô hình, mô ph?ng, hi?n th?c
66M?t s? v?n d? bàn thêm
- Cách làm t?t nh?t là adaptive
- Ð? th?c hi?n t?i uu hoàn toàn thì c?n ph?i tiên
doán dúng tuong lai (!) - Th?c t? thì da s? các gi?i thu?t l?i cho k?t qu?
gán d? uu tiên cao nh?t cho các process có nhu
c?u ít nh?t - V?n d? d?nh th?i có xu hu?ng chuy?n sang tweak
and see - Các tiêu chí nào nên t?i uu?
- Có r?t nhi?u, tùy vào h? th?ng, ng? c?nh mà ch?n
l?a
67Tham kh?o
- Operating System Concepts. Sixth Edition. John
Wiley Sons, Inc. 2002. Silberschatz, Galvin,
Gagne. - Modern Operating Systems. Second Edition.
Prentice Hall. 2001. Andrew S. Tanenbaum.
68Bài t?p (1)
- Process Burst Time
- P1 10
- P2 29
- P3 3
- P4 7
- P5 12
- T?t c? d?u d?n ? th?i di?m 0
- Xét các gi?i thu?t FCFS, SFJ, và RR v?i quantum
time 10 - Gi?i thu?t nào cho
- Th?i gian d?i trung bình nh? nh?t?
- Thông nang cao nh?t?
- Th?i gian quay vòng trung bình c?a process nh?
nh?t?
69Bài t?p (2)
- FCFS th?i gian d?i trung bình là 28 milli giây,
hãy tính các thông s? khác
70Bài t?p (3)
- SJF (nonpreemptive) th?i gian d?i trung bình là
13 milli giây, hãy tính các thông s? khác
71Bài t?p (4)
- RR th?i gian d?i trung bình là 23 milli giây,
hãy tính các thông s? khác
72Gi? l?p b? d?nh th?i CPU
73Ð?nh th?i trong Linux
- Hai gi?i thu?t chia s? th?i gian (time-sharing)
và th?i gian th?c (real-time) - Chia s? th?i gian (time-sharing)
- Uu tiên d?a trên credit process có nhi?u credit
nh?t s? du?c ch?n d? th?c thi - Khi có m?t ng?t th?i gian credit s? b? gi?m
- Khi credit 0, process khác s? du?c ch?n
- Khi t?t c? các process có credit 0, th?c hi?n
recrediting d?a vào các y?u t? nhu d? uu tiên và
l?ch s? (history)
74Ð?nh th?i trong Linux
- Th?i gian th?c (real-time)
- Th?i gian th?c m?m (soft real-time)
- Tuong thích Posix.1b compliant có 2 l?p
- FCFS và RR
- Process có d? uu tiên cao nh?t du?c th?c thi
tru?c tiên