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

Preview:

Citation preview

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

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

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

-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

-9-

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

JOB QUEUE READY QUEUE CPU

I/O WAITING QUEUE

enter end

High-level schedulerLow-level scheduler

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

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

-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

-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

-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

-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

-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

-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

-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

-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

-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

-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

-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

-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

-24-

…Processor

q1

q2

qn

Nhaän xeùt

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

(Multilevel Feedback Queue)

Recommended