240 likes | 364 Views
Chöông 3 ÑÒNH THÔØI BOÄ XÖÛ LYÙ. 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.
E N D
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
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)
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
MUÏC TIEÂU ÑÒNH THÔØI • Coâng baèng • Taêng hieäu suaát toái ña • Cöïc ñaïi soá ngöôøi duøng töông taùc • Coù theå döï ñoaùn tröôùc • Phí toån ít • Caân ñoái vieäc söû duïng taøi nguyeân • Traùnh trì hoaõn voâ haïn ñònh (duøng ñoä öu tieân) • Öu tieân quaù trình giöõ taøi nguyeân quan troïng • Phuïc vuï toát caùc quaù trình coù höôùng thuaän lôïi • Ñieàu phoái toái öu khi taûi khoâng caân ñoái
TIEÂU CHÍ ÑEÅ ÑÒNH THÔØI • Möùc ñoä duøng I/O (I/O boundness) • Möùc ñoä duøng CPU (CPU boundness) • Ñaëc tính quaù trình : batch, interactive,real-time… • Ñoä khaån caáp cuûa quaù trình • Ñoä öu tieân cuûa quaù trình • Taàn suaát gaây loãi tham khaûo trang (page fault) • Taàn suaát bò giaønh CPU • Thôøi gian ñöôïc CPU phuïc vuï töø khi taïo ra • Thôøi gian chaïy coøn laïi cuûa quaù trình
TIEÂU CHUAÅN ÑAÙNH GIAÙ GIAÛI THUAÄT ÑÒNH THÔØI • Ñoä lôïi CPU (CPU utilization) • Thoâng löôïng (throughput) • Thôøi gian xöû lyù (turnaround time) • Thôøi gian ñôïi (waiting time) • Thôøi gian ñaùp öùng (response time)
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
Low-level scheduler High-level scheduler enter end CPU JOB QUEUE READY QUEUE I/O WAITING QUEUE BOÄ ÑÒNH THÔØI QUAÙ TRÌNH
MOÄT SOÁ GIAÛI THUAÄT ÑÒNH THÔØI • Ñònh thôøi haïn choùt (Deadline Scheduling) • FIFO (First In First Out) • SJF (Shortest Job First) • SRT (Shortest Remaining Time) • RR (Round Robin) • HRRN (Highest Response Ratio Next) • Haøng ña möùc hoài tieáp (Multilevel Feedback Queue)
ÑÒ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å
Processor 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
VÍ DUÏ 1 : GIAÛI THUAÄT FIFO • Thöù töï ñeán P1, P2, P3 • Thöù töï thöïc hieän P1 P2 P3 0 24 31 29
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
Min time Processor 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
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 ? Ñònh thôøi laïi P1 P2 P3 0 7 9 13
Min remaining time Processor 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
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 ? Ñònh thôøi laïi P1 P2 P3
q Processor 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.
VÍ DUÏ 4 : GIAÛI THUAÄT RR • Tính caùc thoâng soá ? Cho t_switch = 0 • Nhaän xeùt P1 P2 P3 0 3 5 7 Ñònh thôøi Round robin vôùi Quantum time laø 1 giaây
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)/ts tw waitingtime 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
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 Ñònh thôøi laïi P1 P2 P3 0 7 11 13
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, q2, … qn-1(thoâng thöôøng q1<q2<…<qn-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
q1 q2 … Processor qn HAØNG ÑA MÖÙC HOÀI TIEÁP(Multilevel Feedback Queue) • Nhaän xeùt