Hoofdstuk 9: Scheduling bij één processor
9.1. Soorten scheduling Soorten scheduling: short term scheduling middle long term scheduling long term scheduling I/O scheduling Pa Px RAM ready Py PROCESSOR Px Pb Py Pc Pd Pe Pz hfdst 7/8 hfdst 3 hfdst 11
9.1. Soorten scheduling procestoestanden new ready running exit suspend allow allow dispatch release ready suspended activate ready running exit time-out (~preemtive) suspend event occurs event occurs wait on event (I/O) blocked suspended activate blocked suspend secondary memory main memory
9.1. Soorten scheduling procestoestanden new ready running exit long term scheduling long term scheduling ready suspended ready running exit middle long term scheduling short term scheduling blocked suspended blocked middle long term scheduling
9.1. Soorten scheduling time-out queue ready release queue batch jobs queue ready PROCESSOR release queue ready-suspended queue blocked-suspended event occurs long term sched. middle long term sched. short term sched. queue blocked wait on event
scheduling = inroosteren 9.1. Soorten scheduling scheduling = inroosteren doel: wachtrijvertragingen minimaliseren prestaties maximaliseren long term scheduler middle long term scheduler middle long term scheduler wanneer runnen? exit van proces processor te weinig actief bij onefficiente geheugenallocatie klokinterrupts I/O interrupts system calls - signals
9.2. Algoritmen voor scheduling criteria bij korte termijn scheduling kwantitatief (~prestaties) kwalitatief (~overig) - turn-around time - response time - deadlines - predictability (~variability on response times and turn-around times) user oriented fairness respecting priorities balancing usage of system resources system oriented throughput processor usage
9.2. Algoritmen voor scheduling gebruik van prioriteiten RQ0 release PROCESSOR dispatch RQ1 admit : RQn probleem: starvation oplossing: prioriteit aanpasbaar Queue blocked
9.2. Algoritmen voor scheduling mogelijke strategieën voor scheduling selectiefunctie : bepaalt welke proces in ready toestand als volgende de processor krijgt toebedeeld. gebaseerd op: 1) prioriteit 2) vereiste systeembronnen 3) uitvoeringskenmerken van proces uitvoeringskenmerken: w = tijd die wachtend is doorgebracht e = tijd die tot dusverre aan verwerking is besteed s = totale bedieningstijd van proces (inclusief e)
9.2. Algoritmen voor scheduling mogelijke strategieën voor scheduling beslissingmodus : bepaalt op welke tijdstippen de selectiefunctie wordt uitgevoerd niet preëmptief preëmptief bij einde van proces of bij blokkering van proces bij aankomst van nieuw proces of bij optreden van interrupt Periodiek (~klokinterrupt)
9.2. Algoritmen voor scheduling definities service time : totale tijd die vereist is voor verwerking turnaround time : totale tijd dat proces in systeem aanwezig is (service time + wait time) genormaliseerde turnaround time : turnaround time / service time setting time of arrival service time A 3 B 2 6 C 4 D 5 E 8
9.2. Algoritmen voor scheduling definities service time : totale tijd die vereist is voor verwerking turnaround time : totale tijd dat proces in systeem aanwezig is (service time + wait time) genormaliseerde turnaround time : turnaround time / service time setting time of arrival service time A 3 B 2 6 C 4 D 5 E 8
9.2. Algoritmen voor scheduling time of arrival service time A 3 B 2 6 C 4 D 5 E 8 first come, first served (FCFS) 5 10 15 20 A B C D E gemiddelde service time = 8,60 gemiddelde Tr/Ts = 2,56 nadelen: 1) ongunstig bij korte processen (zie next slide) 2) neiging om processor gebonden processen voorrang te geven op I/O gebonden processen (kan leiden tot inefficient processorgebruik en I/O gebruik) vaak gebruikt in combinatie met andere technieken
9.2. Algoritmen voor scheduling first come, first served (FCFS) voorbeeld van slecht service level time of arrival service time start time end turnaround time Tr/Ts W 1 X 100 101 Y 2 102 Z 3 202 199 1,99 gemiddeld 26
9.2. Algoritmen voor scheduling time of arrival service time A 3 B 2 6 C 4 D 5 E 8 Round Robin (RR) klokinterrupt met periodieke intervallen (let’s say ‘q’) selectie van volgend proces volgend FCFS principe 5 10 15 20 A B C D E bij q=1: gemiddelde service time = 10,80; gemiddelde Tr/Ts = 2,71 gedrag afhankelijk van time slice ‘q’ (see next slide) ‘q’ klein veel overhead door vele proceswisselingen ‘q’ groot neigt naar FCFS
9.2. Algoritmen voor scheduling time of arrival service time A 3 B 2 6 C 4 D 5 E 8 9.2. Algoritmen voor scheduling Round Robin (RR) 5 10 15 20 A B C D E bij q=1: gemiddelde service time = 10,80; gemiddelde Tr/Ts = 2,71 5 10 15 20 A B C D E bij q=4: gemiddelde service time = 10,00; gemiddelde Tr/Ts = 2,71
9.2. Algoritmen voor scheduling time of arrival service time A 3 B 2 6 C 4 D 5 E 8 9.2. Algoritmen voor scheduling Round Robin (RR) gedrag afhankelijk van time slice ‘q’ (see next slide) ‘q’ klein veel overhead door vele proceswisselingen ‘q’ groot neigt naar FCFS richtlijn: neem ‘q’ iets groter dan doorsnee ‘interactie’ time slice q q groter dan doorsnee interactie response time preëmptieve onderbreking time slice q q kleiner dan doorsnee interactie response time
9.2. Algoritmen voor scheduling time of arrival service time A 3 B 2 6 C 4 D 5 E 8 9.2. Algoritmen voor scheduling Round Robin (RR) voordelen: werkt goed bij timesharing of transactieverwerking nadelen: werkt oneerlijk bij mengeling van I/O gebonden jobs en processor gebonden jobs (~slechtere prestaties van I/O gebonden jobs) oplossing: Virtual Round Robin time-out ready queue allow PROCESSOR release aanvullende wachtrij wait on I/O1 processen uit aanvullende wachtrij krijgen voorrang tot rest van time slice is opgebruikt wait on I/O2 wait on I/O3
9.2. Algoritmen voor scheduling time of arrival service time A 3 B 2 6 C 4 D 5 E 8 9.2. Algoritmen voor scheduling Shortest Process Next (SPN) selecteer proces met kortste verwachte verwerkingstijd niet preemptief; langere antwoordtijden voor processorgebonden jobs probleem: schatten van verwerkingstijd batchtaken: waarde schatten door programmeur productieomgeving: statistieken interactieve processen: gemiddelde bijhouden van elke burst van elk proces Sn+1 = (T1 + T2 + … + Tn)/n Sn+1 = *Tn + (1- )*Sn (0< <1) =0,8 recente observaties belangrijk Sn+1 = (Tn/n) + ((n-1)/n)*Sn =0,2 alle observaties belangrijk
9.2. Algoritmen voor scheduling time of arrival service time A 3 B 2 6 C 4 D 5 E 8 9.2. Algoritmen voor scheduling Shortest Process Next (SPN) Risico: Starvation bij langere processen
9.2. Algoritmen voor scheduling time of arrival service time A 3 B 2 6 C 4 D 5 E 8 9.2. Algoritmen voor scheduling Shortest Process Next (SPN) 5 10 15 20 A B C D E gemiddelde service time = 7,60; gemiddelde Tr/Ts = 1,84
9.2. Algoritmen voor scheduling time of arrival service time A 3 B 2 6 C 4 D 5 E 8 9.2. Algoritmen voor scheduling Shortest Remaining Time (SRT) selecteer proces met kortste resterende verwerkingstijd preëmptief (huidig proces onderbroken bij aankomst korter proces in Ready Queue) eveneens schatting van verwerkingstijden nodig (cfr. SPN) uithongeren van langere processen mogelijk vergelijking andere algoritmes: t.o.v. FCFS : geen bevoordeling van langere processen t.o.v. RR : geen extra interrupts t.o.v. SRT: beter omlooptijden (~kortere taak krijgt voorrang)
9.2. Algoritmen voor scheduling time of arrival service time A 3 B 2 6 C 4 D 5 E 8 9.2. Algoritmen voor scheduling Shortest Remaining Time (SRT) 5 10 15 20 A B C D E gemiddelde service time = 7,20; gemiddelde Tr/Ts = 1,59
9.2. Algoritmen voor scheduling time of arrival service time A 3 B 2 6 C 4 D 5 E 8 9.2. Algoritmen voor scheduling Highest response ratio next (HRRN) DOEL: Tr/Ts klein houden voor elk proces selecteer proces met grootste te verwachten genormaliseerde turnaround time niet preëmptief eveneens schatting van verwerkingstijden nodig (cfr. SPN) uithongeren van langere processen mogelijk te verwachten genormaliseerde turnaround time = R = (w + s)/s uitvoeringskenmerken: w = tijd die wachtend is doorgebracht s = verwachte bedieningstijd van proces R = responseverhouding
9.2. Algoritmen voor scheduling time of arrival service time A 3 B 2 6 C 4 D 5 E 8 9.2. Algoritmen voor scheduling Highest response ratio next (HRRN) eigenschappen: houdt rekening met levensduur van proces kortere processen licht bevooroordeeld 5 10 15 20 A B C D E gemiddelde service time = 8,00; gemiddelde Tr/Ts = 2,14
9.2. Algoritmen voor scheduling time of arrival service time A 3 B 2 6 C 4 D 5 E 8 9.2. Algoritmen voor scheduling Multilevel Feedback probleem: wat indien verwerkingstijden niet geschat kunnen worden? SPN, SRT en HRRN onbruikbaar aanpak: processen straffen die al lang worden uitgevoerd processen dalen naar wachtrijen met lagere prioriteit - RR per wachtrij preëmptief onderbreken mechanisme voor dynamische prioriteit RQ0 allow PROCESSOR release RQ1 PROCESSOR release RQ2 PROCESSOR release variante: verschillend tijdsquantum ‘q’ per wachtrij RQi q=2i RQ4 lowest priority PROCESSOR
9.2. Algoritmen voor scheduling Prestatievergelijking Factoren die prestaties beïnvloeden: waarschijnlijkheidsverdeling van bedieningstijden efficiëntie van mechanisme voor scheduling en contextwisseling vorm van I/O aanvragen prestaties van I/O subsysteem
9.2. Algoritmen voor scheduling Prestatievergelijking wachtrijanalyse indien (a) aankomsttijden Poisson-verdeling vertonen, en (b) bedieningstijden exponentieel verdeeld zijn, dan Tr/Ts = 1/(1-) Tr = turnaround time (wachttijd + uitvoeringstijd) Ts = gemiddelde bedieningstijd = bezettingsgraad van processor Practisch: prioriteiten zijn onafhankelijk van verwachte bedieningstijden Voorbeelden: Round Robin & FCFS (niet: SJF, SRTF, …)
9.2. Algoritmen voor scheduling Prestatievergelijking korte jobs langere jobs Setting: 50.000 jobs gemiddelde bedieningstijd = Ts = 1 gemiddelde aankomstsnelheid = = 0,8
9.3. Conclusies Soorten scheduling: short term scheduling middle long term scheduling long term scheduling FCFS FB RR HRRN SPN SRT