ÑÒNH THÔØI BOÄ XÖÛ LYÙ€¦ · Time slice / Quantum ... BOÄ ÑÒNH THÔØI QUAÙ TRÌNH...

24
-1- Chöông 3 ÑÒNH THÔØI BOÄ XÖÛ LYÙ

Transcript of ÑÒNH THÔØI BOÄ XÖÛ LYÙ€¦ · Time slice / Quantum ... BOÄ ÑÒNH THÔØI QUAÙ TRÌNH...

Page 1: ÑÒNH THÔØI BOÄ XÖÛ LYÙ€¦ · Time slice / Quantum ... BOÄ ÑÒNH THÔØI QUAÙ TRÌNH JOB QUEUE READY QUEUE CPU I/O WAITING QUEUE enter end High-level scheduler Low-level

-1-

Chöông 3

ÑÒNH THÔØI BOÄ XÖÛ LYÙ

Page 2: ÑÒNH THÔØI BOÄ XÖÛ LYÙ€¦ · Time slice / Quantum ... BOÄ ÑÒNH THÔØI QUAÙ TRÌNH JOB QUEUE READY QUEUE CPU I/O WAITING QUEUE enter end High-level scheduler Low-level

-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

Page 3: ÑÒNH THÔØI BOÄ XÖÛ LYÙ€¦ · Time slice / Quantum ... BOÄ ÑÒNH THÔØI QUAÙ TRÌNH JOB QUEUE READY QUEUE CPU I/O WAITING QUEUE enter end High-level scheduler Low-level

-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)

Page 4: ÑÒNH THÔØI BOÄ XÖÛ LYÙ€¦ · Time slice / Quantum ... BOÄ ÑÒNH THÔØI QUAÙ TRÌNH JOB QUEUE READY QUEUE CPU I/O WAITING QUEUE enter end High-level scheduler 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

Page 5: ÑÒNH THÔØI BOÄ XÖÛ LYÙ€¦ · Time slice / Quantum ... BOÄ ÑÒNH THÔØI QUAÙ TRÌNH JOB QUEUE READY QUEUE CPU I/O WAITING QUEUE enter end High-level scheduler Low-level

-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

Page 6: ÑÒNH THÔØI BOÄ XÖÛ LYÙ€¦ · Time slice / Quantum ... BOÄ ÑÒNH THÔØI QUAÙ TRÌNH JOB QUEUE READY QUEUE CPU I/O WAITING QUEUE enter end High-level scheduler Low-level

-6-

TIEÂU CHÍ ÑEÅ ÑÒNH THÔØI

1. Möùc ñoä duøng I/O (I/O boundness)

2. Möùc ñoä duøng CPU (CPU boundness)

3. Ñaëc tính quaù trình : batch, interactive,real-time…

4. Ñoä khaån caáp cuûa quaù trình

5. Ñoä öu tieân cuûa quaù trình

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

9. Thôøi gian chaïy coøn laïi cuûa quaù trình

Page 7: ÑÒNH THÔØI BOÄ XÖÛ LYÙ€¦ · Time slice / Quantum ... BOÄ ÑÒNH THÔØI QUAÙ TRÌNH JOB QUEUE READY QUEUE CPU I/O WAITING QUEUE enter end High-level scheduler Low-level

-7-

TIEÂU CHUAÅN ÑAÙNH GIAÙ

GIAÛI THUAÄT ÑÒNH THÔØI

1. Ñoä lôïi CPU (CPU utilization)

2. Thoâng löôïng (throughput)

3. Thôøi gian xöû lyù (turnaround time)

4. Thôøi gian ñôïi (waiting time)

5. Thôøi gian ñaùp öùng (response time)

Page 8: ÑÒNH THÔØI BOÄ XÖÛ LYÙ€¦ · Time slice / Quantum ... BOÄ ÑÒNH THÔØI QUAÙ TRÌNH JOB QUEUE READY QUEUE CPU I/O WAITING QUEUE enter end High-level scheduler Low-level

-8-

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

Page 9: ÑÒNH THÔØI BOÄ XÖÛ LYÙ€¦ · Time slice / Quantum ... BOÄ ÑÒNH THÔØI QUAÙ TRÌNH JOB QUEUE READY QUEUE CPU I/O WAITING QUEUE enter end High-level scheduler Low-level

-9-

BOÄ ÑÒNH THÔØI QUAÙ TRÌNH

JOB QUEUE READY QUEUE CPU

I/O WAITING QUEUE

enter end

High-level schedulerLow-level scheduler

Page 10: ÑÒNH THÔØI BOÄ XÖÛ LYÙ€¦ · Time slice / Quantum ... BOÄ ÑÒNH THÔØI QUAÙ TRÌNH JOB QUEUE READY QUEUE CPU I/O WAITING QUEUE enter end High-level scheduler Low-level

-10-

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)

Page 11: ÑÒNH THÔØI BOÄ XÖÛ LYÙ€¦ · Time slice / Quantum ... BOÄ ÑÒNH THÔØI QUAÙ TRÌNH JOB QUEUE READY QUEUE CPU I/O WAITING QUEUE enter end High-level scheduler Low-level

-11-

ÑÒ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å

Page 12: ÑÒNH THÔØI BOÄ XÖÛ LYÙ€¦ · Time slice / Quantum ... BOÄ ÑÒNH THÔØI QUAÙ TRÌNH JOB QUEUE READY QUEUE CPU I/O WAITING QUEUE enter end High-level scheduler Low-level

-12-

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

Page 13: ÑÒNH THÔØI BOÄ XÖÛ LYÙ€¦ · Time slice / Quantum ... BOÄ ÑÒNH THÔØI QUAÙ TRÌNH JOB QUEUE READY QUEUE CPU I/O WAITING QUEUE enter end High-level scheduler Low-level

-13-

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

Page 14: ÑÒNH THÔØI BOÄ XÖÛ LYÙ€¦ · Time slice / Quantum ... BOÄ ÑÒNH THÔØI QUAÙ TRÌNH JOB QUEUE READY QUEUE CPU I/O WAITING QUEUE enter end High-level scheduler Low-level

-14-

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

Page 15: ÑÒNH THÔØI BOÄ XÖÛ LYÙ€¦ · Time slice / Quantum ... BOÄ ÑÒNH THÔØI QUAÙ TRÌNH JOB QUEUE READY QUEUE CPU I/O WAITING QUEUE enter end High-level scheduler Low-level

-15-

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

ProcessorMin time

Page 16: ÑÒNH THÔØI BOÄ XÖÛ LYÙ€¦ · Time slice / Quantum ... BOÄ ÑÒNH THÔØI QUAÙ TRÌNH JOB QUEUE READY QUEUE CPU I/O WAITING QUEUE enter end High-level scheduler Low-level

-16-

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

Page 17: ÑÒNH THÔØI BOÄ XÖÛ LYÙ€¦ · Time slice / Quantum ... BOÄ ÑÒNH THÔØI QUAÙ TRÌNH JOB QUEUE READY QUEUE CPU I/O WAITING QUEUE enter end High-level scheduler Low-level

-17-

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

Page 18: ÑÒNH THÔØI BOÄ XÖÛ LYÙ€¦ · Time slice / Quantum ... BOÄ ÑÒNH THÔØI QUAÙ TRÌNH JOB QUEUE READY QUEUE CPU I/O WAITING QUEUE enter end High-level scheduler Low-level

-18-

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

Page 19: ÑÒNH THÔØI BOÄ XÖÛ LYÙ€¦ · Time slice / Quantum ... BOÄ ÑÒNH THÔØI QUAÙ TRÌNH JOB QUEUE READY QUEUE CPU I/O WAITING QUEUE enter end High-level scheduler Low-level

-19-

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

Page 20: ÑÒNH THÔØI BOÄ XÖÛ LYÙ€¦ · Time slice / Quantum ... BOÄ ÑÒNH THÔØI QUAÙ TRÌNH JOB QUEUE READY QUEUE CPU I/O WAITING QUEUE enter end High-level scheduler Low-level

-20-

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

Page 21: ÑÒNH THÔØI BOÄ XÖÛ LYÙ€¦ · Time slice / Quantum ... BOÄ ÑÒNH THÔØI QUAÙ TRÌNH JOB QUEUE READY QUEUE CPU I/O WAITING QUEUE enter end High-level scheduler Low-level

-21-

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

+ ts)/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

Page 22: ÑÒNH THÔØI BOÄ XÖÛ LYÙ€¦ · Time slice / Quantum ... BOÄ ÑÒNH THÔØI QUAÙ TRÌNH JOB QUEUE READY QUEUE CPU I/O WAITING QUEUE enter end High-level scheduler Low-level

-22-

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

Page 23: ÑÒNH THÔØI BOÄ XÖÛ LYÙ€¦ · Time slice / Quantum ... BOÄ ÑÒNH THÔØI QUAÙ TRÌNH JOB QUEUE READY QUEUE CPU I/O WAITING QUEUE enter end High-level scheduler Low-level

-23-

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

Page 24: ÑÒNH THÔØI BOÄ XÖÛ LYÙ€¦ · Time slice / Quantum ... BOÄ ÑÒNH THÔØI QUAÙ TRÌNH JOB QUEUE READY QUEUE CPU I/O WAITING QUEUE enter end High-level scheduler Low-level

-24-

…Processor

q1

q2

qn

Nhaän xeùt

HAØNG ÑA MÖÙC HOÀI TIEÁP

(Multilevel Feedback Queue)