ÑÒnh thÔØi boÄ xÖÛ lyÙ€¦ · -2- chÖÔng 3 : ÑÒnh thÔØi boÄ xÖÛ lyÙ baøi toaùn...
Post on 01-Sep-2020
2 Views
Preview:
TRANSCRIPT
-1-
Chöông 3
ÑÒNH THÔØI BOÄ XÖÛ LYÙ
-2-
CHÖÔNG 3 : ÑÒNH THÔØI BOÄ XÖÛ LYÙ
Baøi toaùn ñònh thôøi
Caùc thuaät ngöõ
Muïc tieâu ñònh thôøi
Tieâu chí ñeå ñònh thôøi
Tieâu chuaån ñaùnh gia
Caùc giaûi thuaät ñònh thôøi
– Ñònh thôøi haïn choùt
– FIFO
– SJF, SRT
– RR
– HRRN
– Haøng ña möùc hoài tieáp
Baøi taäp
-3-
BAØI TOAÙN ÑÒNH THÔØI
Ñònh nghóa :
– Phaân chia thôøi gian thöïc thi cho caùc quaù trình
ñoàng thôøi trong heä thoáng sao cho caùc quaù
trình keát thuùc vaø keát thuùc nhanh nhaát.
Caáp ñoä ñònh thôøi
– Caáp cao (high-level)
– Caáp trung (intermediate-level)
– Caáp thaáp (low-level)
-4-
CAÙC THUAÄT NGÖÕ
CPU burst
I/O burst
Time slice / Quantum
Interval Timer
Caùc kieåu ñònh thôøi
– non-preemptive
– preemptive
-5-
MUÏC TIEÂU ÑÒNH THÔØI
1. Coâng baèng
2. Taêng hieäu suaát toái ña
3. Cöïc ñaïi soá ngöôøi duøng töông taùc
4. Coù theå döï ñoaùn tröôùc
5. Phí toån ít
6. Caân ñoái vieäc söû duïng taøi nguyeân
7. Traùnh trì hoaõn voâ haïn ñònh (duøng ñoä öu tieân)
8. Öu tieân quaù trình giöõ taøi nguyeân quan troïng
9. Phuïc vuï toát caùc quaù trình coù höôùng thuaän lôïi
10. Ñieàu phoái toái öu khi taûi khoâng caân ñoái
-6-
TIEÂU CHÍ ÑEÅ ÑÒNH THÔØI
1. Möùc ñoä duøng I/O (I/O boundness):tieán trình söû
duïng CPU khi phaùt sinh moät yeâu caàu nhaäp xuaát
2. Möùc ñoä duøng CPU (CPU boundness):khi tieán
trình nhaän CPU, tieán trình coù khuynh höôùng söû
duïng CPU ñeán khi heát thôøi gian daønh cho noù.
Nhö vaäy bao goàm ít löôït söû duïng CPU, nhöng
moãi löôït laïi söû duïng CPU trong thôøi gian daøi.
3. Ñaëc tính quaù trình : batch, interactive,real-time…
Ngöôøi söû duïng theo kieåu töông taùc thöôøng yeâu
caàu hoài ñaùp töùc thôøi, trong khi caùc tieán trình cuûa
taùc vuï xöû lyù theo loâ(batch) coù theå trì hoaõn trong
moät thôøi gian chaáp nhaän ñöôïc.
4. Ñoä khaån caáp cuûa quaù trình
5. Ñoä öu tieân cuûa quaù trình: caùc tieán trình naøo quan
troïng hôn (coù ñoä öu tieân cao) caàn ñöôïc thöïc hieän
tröôùc.
6. Taàn suaát gaây loãi tham khaûo trang (page fault)
7. Taàn suaát bò giaønh CPU
8. Thôøi gian ñöôïc CPU phuïc vuï töø khi taïo ra: öu tieân
choïn nhöõng tieán trình ñaõ söû duïng CPU nhieàu thôøi
gian nhaát vì hy voïng chuùng seõ caàn ít thôûi gian
nhaát ñeå hoaøn taát vaø rôøi khoûi heä thoáng. Tuy nhieân
cuõng coù xu höôùng cho raèng caùc tieán trình nhaän
ñöôïc CPU trong ít thôøi gian laø nhöõng tieán trình
caàn öu tieân hôn.
9. Thôøi gian chaïy coøn laïi cuûa quaù trình:cho caùc tieán
trình caàn ít thôøi gian nhaát ñeå hoaøn taát ñöôïc thöïc
hieän tröôùc
-7-
-8-
TIEÂU CHUAÅN ÑAÙNH GIAÙ
GIAÛI THUAÄT ÑÒNH THÔØI
1. Ñoä lôïi CPU (CPU utilization): taän
duïng toái ña hieäu suaát CPU
2. Thoâng löôïng (throughput):cöïc ñaïi hoùa
caùc coâng vieäc xöû lyù trong 1 ñvtg
3. Thôøi gian xöû lyù (turnaround time):cöïc
tieåu hoùa thôøi gian hoaøn taát caùc taùc vuï
xöû lyù
4. Thôøi gian ñôïi (waiting time)
5. Thôøi gian ñaùp öùng (response
time):cöïc tieåu hoùa thôøi gian hoài ñaùp
cho caùc töông taùc cuûa ngöôøi duøng
-9-
BOÄ ÑÒNH THÔØI VAØ BOÄ ÑIEÀU VAÄN
Boä ñònh thôøi quaù trình (scheduler)
– Choïn löïa quaù trình cho CPU phuïc vuï
– Hoaït ñoäng vaøo nhöõng thôøi ñieåm
1. Khi quaù trình running ready
2. Khi quaù trình töø running blocked
3. Khi quaù trình töø blocked ready
4. Khi coù quaù trình keát thuùc
Boä ñieàu vaän (dispatcher)
– Chuyeån ñieàu khieån CPU sang cho quaù trình.
– Thöïc hieän böôùc chuyeån ngöõ caûnh:
Chuyeån ngöõ caûnh sang caáp ngöôøi duøng
Nhaûy sang vò trí thích hôïp cuûa quaù trình vaø thöïc thi
-10-
BOÄ ÑÒNH THÔØI QUAÙ TRÌNH
JOB QUEUE READY QUEUE CPU
I/O WAITING QUEUE
enter end
High-level scheduler Low-level scheduler
-11-
MOÄT SOÁ GIAÛI THUAÄT ÑÒNH THÔØI
1. Ñònh thôøi haïn choùt (Deadline Scheduling)
2. FIFO (First In First Out)
3. SJF (Shortest Job First)
4. SRT (Shortest Remaining Time)
5. RR (Round Robin)
6. HRRN (Highest Response Ratio Next)
7. Haøng ña möùc hoài tieáp
(Multilevel Feedback Queue)
Thời gian xử lý(turnaround time) = thời điểm kết thúc – thời điểm vào
Thời gian đợi(waiting time) = thời gian xử lý – thời gian thực thi
-12-
ÑÒNH THÔØI HAÏN CHOÙT
(Deadline Scheduling)
Coøn goïi laø real-time scheduling
– Hard real-time
– Soft real-time
Ñònh thôøi sao cho caùc quaù trình ñöôïc thöïc thi
theo moät baûng thôøi gian xaùc ñònh tröôùc
Muïc ñích : hoaøn thaønh taùc vuï kòp luùc
ÖÙng duïng : coâng nghieäp, vieãn thoâng, quaân söï…
Raát phöùc taïp
Chæ coù giaûi thuaät cho töøng heä thoáng cuï theå
-13-
FIFO (First In First Out)
Coøn goïi laø FCFS (First Come First Served)
Xeùt ñònh thôøi quaù trình theo thôøi gian ñeán
haøng ñôïi ready cuûa quaù trình
Quaù trình vaøo tröôùc seõ ñöôïc phuïc vuï tröôùc
Ñònh thôøi theo kieåu non-preemptive
Processor
-14-
VÍ DUÏ 1 : GIAÛI THUAÄT FIFO
Thöù töï ñeán
P1, P2, P3
Thöù töï thöïc hieän
P1 P2 P3
Quaù trình Thôøi gian thöïc thi (giaây)
P1 24
P2 5
P3 2
P1 P2 P3
0 24 29 31
-15-
VÍ DUÏ 1 : GIAÛI THUAÄT FIFO
Thôøi gian xöû lyù (turnaround time)
P1: 24s P2: 29s P3: 31s
Thôøi gian xöû lyù trung bình
(24+29+31)/3 = 28s
Thôøi gian ñôïi (waiting time)
P1: 0s P2: 24s P3: 29s
Thôøi gian ñôïi trung bình
(0+24+29)/3=17.67s
Neáu thöù töï ñeán caùc quaù trình laø P3 P2 P1 thì sao ?
Nhaän xeùt
-16-
SJF (Shortest Job First )
Ñònh thôøi theo kieåu non-premptive
Quaù trình coù thôøi gian xöû lyù nhoû nhaát seõ
ñöôïc xöû lyù tröôùc
Vieäc ñònh thôøi ñöôïc thöïc hieän sau khi coù
quaù trình keát thuùc
Processor Min time
-17-
VÍ DUÏ 2 : GIAÛI THUAÄT SJF
Ñònh thôøi
P1P3P2
Tính caùc thoâng soá ?
So saùnh vôùi
ñònh thôøi theo FIFO ?
Nhöôïc ñieåm ?
Quaù
trình
Thôøi gian
ñeán
Thôøi gian thöïc thi
(giaây)
P1 0 7
P2 1 4
P3 5 2
P1 P3 P2
0 7 9 13
P1 P2 P3
Ñònh thôøi laïi
-18-
SRT (Shortest Remaining Time)
Ñònh thôøi theo kieåu pre-emptive
Quaù trình coù thôøi gian xöû lyù coøn laïi nhoû nhaát
seõ ñöôïc xöû lyù tröôùc
Vieäc ñònh thôøi ñöôïc thöïc hieän ngay caû khi coù
quaù trình ñeán heä thoáng
Processor
Min remaining
time
-19-
VÍ DUÏ 3 : GIAÛI THUAÄT SRT
Ñònh thôøi :
P1P2P3P1
Tính caùc thoâng soá ?
So saùnh vôùi SJF ?
Nhöôïc ñieåm ?
Quaù
trình
Thôøi gian
ñeán
Thôøi gian thöïc thi
(giaây)
P1 0 7
P2 3 2
P3 5 2
P1 P2 P3 P1
P1 P2 P3 Ñònh thôøi laïi
-20-
RR(Round Robin)
Ñònh thôøi theo kieåu pre-emptive
Quaù trình chæ ñöôïc chieám CPU trong khoaûng thôøi gian q
(quantum time). Neáu trong khoaûng thôøi gian ñoù quaù
trình chöa keát thuùc thì noù traû CPU laïi cho Heä ñieàu haønh
vaø quay veà cuoái haøng ñôïi Ready.
Processor
q
-21-
VÍ DUÏ 4 : GIAÛI THUAÄT RR
Tính caùc thoâng soá ?
Cho t_switch = 0
Nhaän xeùt
Quaù
trình
Thôøi gian
ñeán
Thôøi gian thöïc thi
(giaây)
P1 0 7
P2 3 2
P3 5 2
P1 P2 P3
Ñònh thôøi Round robin vôùi
Quantum time laø 1 giaây
0 3 5 7
-22-
HRRN (Highest Response Ration Next)
Caûi tieán giaûi thuaät SJF
Ñònh thôøi theo kieåu non-preemptive
Ñoä öu tieân cuûa quaù trình ñöôïc tính theo coâng
thöùc:
p = (tw + t
s)/t
s
tw
waiting time
ts
service time
Quaù trình coù ñoä öu tieân lôùn nhaát ñöôïc phuïc vuï
Ñoä öu tieân ñoäng, tính laïi khi coù quaâ trình keát thuùc
-23-
VÍ DUÏ 5 : GIAÛI THUAÄT HRRN
Khi P1 keát thuùc, heä
thoáng ñònh thôøi laïi.
Ñoä öu tieân
P2: (6+4)/4=2.5
P3: (2+2)/2=2
P2 ñöôïc öu tieân
Thöù töï ñònh thôøi:
P1P2P3
Nhaän xeùt
Quaù
trình
Thôøi gian
ñeán
Thôøi gian thöïc thi
(CPU burst time) (giaây)
P1 0 7
P2 1 4
P3 5 2
P1 P2 P3
0 7 11 13
P1 P2 P3
Ñònh thôøi laïi
-24-
HAØNG ÑA MÖÙC HOÀI TIEÁP
(Multilevel Feedback Queue)
Ñònh thôøi theo kieåu preemptive
Heä thoáng goàm n haøng ñôïi
Caùc haøng ñôïi töø 1 ñeán n-1 ñöôïc ñònh thôøi theo kieåu
FIFO coù quantum time laø: q1, q
2, … q
n-1 (thoâng thöôøng
q1<q
2<…<q
n-1) .
Neáu quaù trình ôû haøng ñôïi k (1≤ k ≤n-1) chieám CPU
heát thôøi gian q seõ xeáp vaøo cuoái haøng k+1
Nhöõng quaù trình trong haøng k (2≤ k ≤n) chæ ñöôïc
phuïc vuï khi vaø chæ khi khoâng coù quaù trình naøo trong
taát caû caùc haøng ñôïi töø 1 ñeán k-1
Caùc quaù trình ôû haøng ñôïi thöù n ñöôïc ñònh thôøi theo
kieåu Round Robin
-25-
… Processor
q1
q2
qn
Nhaän xeùt
HAØNG ÑA MÖÙC HOÀI TIEÁP
(Multilevel Feedback Queue)
top related