best3-1 Les 3: Procesplanning Pareto principle — States that for many phenomena 80% of consequences stem from 20% of the causes.
best3-2 Overzicht Wat is procesplanning? Planningsalgoritmen –Monoprocessorsystemen –Multiprocessorsystemen Concrete gevallen
best3-3 IO-gebonden CVE-gebonden CVE-Burst vs. IO-Burst CVE-burst & IO: burst
best3-4 IO-gebonden vs. CVE-gebonden processen CVE-gebonden IO-gebonden Moderne applicaties zijn doorgaans sterk io-gebonden
best3-5 Preëmptief vs. niet-preëmptief klaar geblokkeerd in uitvoering getermineerd exit wacht signaleer onderbreking/yield dispatch toegelaten nieuw Kortetermijnplanner
best3-6 Dispatch klaar geblokkeerd in uitvoering getermineerd exit wacht signaleer onderbreking/yield dispatch toegelaten nieuw
best3-7 Dispatch latentie
best3-8 Planningscriteria CVE-gebruik (CPU-Utilization) – de belasting van de processor, uitgedrukt in procent. Doorvoer ( throughput ) – # aantal processen dat afgewerkt wordt per tijdseenheid Doorlooptijd ( turnaround time ) – de totale tijd tussen opstarten en termineren van een proces Wachttijd (waiting time) – de tijd dat een proces in de klaarlijst doorbrengt Antwoordtijd ( response time ) – de tijd die verloopt tussen een aanvraag en het begin van antwoord (niet het einde)
best3-9 Algemene optimalisatiecriteria Max CVE-gebruik Max doorvoer Min doorlooptijd Min wachttijd Min antwoordtijd Fairness : gelijke behandeling van gelijkaardige processen Max IO-gebruik
best3-10 Specifieke optimalisatiecriteria Batchsystemen Doorvoer maximaliseren Doorlooptijd minimaliseren CVE-gebruik maximaliseren Interactieve systemen Antwoordtijd minimaliseren Fairness garanderen Ware-tijdsystemen Deadlines respecteren Voorspelbaarheid
best3-11 Overzicht Wat is procesplanning? Planningsalgoritmen –Monoprocessorsystemen –Multiprocessorsystemen Concrete gevallen
best3-12 Planningsalgoritmen 1.First-come First-served (FCFS) 2.Shortest Job First (SJF) 3.Shortest Remaining Time First (SRTF) 4.Prioriteit 5.Round Robin 6.Highest Response Ratio Next 7.Gewaarborgde planning 8.Fair Share 9.Loterijplanning 10.Multilevel Queue 11.Multilevel Feedback Queue 12.Earliest Deadline First 13.Rate Monotonic Scheduling
best3-13 First-come First-served Planning (FCFS) ProcesAankomstBurst P1P ε24 P2P2 0 - ε3 P3P3 03 P1P1 P2P2 P3P3 Gemiddelde wachttijd: ( )/3 =
best3-14 First-come First-served Planning (FCFS) ProcesAankomstBurst P1P1 024 P2P ε3 P3P3 0 - ε3 P1P1 P2P2 P3P3 Gemiddelde wachttijd: ( )/3 = 3 <<
best3-15 Shortest job first planning (SJF) ProcesAankomstBurst P1P1 06 P2P2 08 P3P3 07 P4P4 03 P1P1 P2P2 P3P3 Gemiddelde wachttijd: ( )/4 = 7 P4P
best3-16 Burstschatting n+1 = α t n + (1 - α ) n n : voorspelling burst n t n : werkelijke lengte van burst n α : wegingsfactor Exponentieel gemiddelde : n+1 = α t n + (1 - α ) α t n-1 + … + (1 - α ) j α t n-j + … + (1 - α ) n+1 0
Burstschatting best3-17
best3-18 Shortest job first planning ProcesAankomstBurst P1P1 08 P2P2 14 P3P3 29 P4P4 35 P1P1 P2P2 P3P3 Gemiddelde wachttijd: ( )/4 = 7,75 P4P
best3-19 Shortest remaining time first planning (SRTF) ProcesAankomstBurst P1P1 08 P2P2 14 P3P3 29 P4P4 35 P1P1 P2P2 P3P3 Gemiddelde wachttijd: ( )/4 = 6,5 P4P
best3-20 Prioriteitsplanning (P) ProcesAankomstBurstPrioriteit P1P P2P2 011 P3P3 024 P4P4 015 P5P5 052 P1P1 P2P2 P3P3 Gemiddelde wachttijd: ( )/5 = 8,2 P4P P5P5 1
best3-21 Prioriteitsplanning Processen met lage prioriteit kunnen zeer lang in een systeem blijven hangen; oplossing: veroudering = langzame verhoging van de prioriteit (aging). Bij preëmptie kan een proces met hoge prioriteit een proces met lage prioriteit onderbreken. Indien dat proces tijdelijk eigenaar is van vereiste systeemmiddelen kan de prioriteit van het proces tijdelijk verhoogd moeten worden om de systeemmiddelen vrij te geven.
Prioriteitsplanner met blokkeringen best3-22 ProcesAankomstBurstPrioriteit P1P1 151 P2P2 035 P1P1 P2P2 Maximale uitvoeringstijd P 1 = burst(P 1 ) + burst(P 2 ) P 2 alloceert R P 1 vraagt R aan P 2 geeft R vrij P 1 alloceert R
Prioriteitsinversie best3-23 ProcesAankomstBurstPrioriteit P1P1 151 P2P2 035 P3P3 173 P1P1 P2P2 P3P3 Maximale uitvoeringstijd P 1 = burst(P 1 ) + burst(P 2 ) + ?? Oplossing: geef P 2 op t=2 tijdelijk de prioriteit van P 1
best3-24 Round Robin planning (RR) ProcesAankomstBurst P1P ε24 P2P2 0 - ε3 P3P3 03 P1P1 P2P2 P3P3 Gemiddelde wachttijd: (6+4+7)/3 = 5, Kwantum = 4 eenheden
best3-25 Tijdskwantum vs. Contextwisseling Vuistregel: 80% van de bursts binnen 1 kwantum afgewerkt
best3-26 Wachttijd ifv van het tijdskwantum ProcesBurst P1P1 24 P2P2 3 P3P3 3 Wachttijd Tijdskwantum
best3-27 Highest response ratio next planning (HRRN) ProcesAankomstBurst P1P1 03 P2P2 110 P3P3 22 P4P4 36 P1P1 P2P2 P3P3 Gemiddelde wachttijd: ( )/4 = 5 P4P
best3-28 Multilevel Queue planning (MQ) systeemprocessen Interactieve processen batchprocessen hoogste prioriteit laagste prioriteit
best3-29 Multilevel Feedback Queue planning (MFQ) kwantum = 8 ms kwantum = 16 ms FCFS
best3-30 Gewaarborgde planning (G) ProcesAankomstBurst P1P1 03 P2P2 010 P3P3 02 P4P4 06 Gemiddelde wachttijd: ( )/4 = 8,25 P1P1 P2P2 P3P3 P4P
best3-31 Fair-share planning (FS) DraadAankomstProces D1D1 0P1P1 D2D2 0P2P2 D3D3 0P2P2 D4D4 0P2P2 D1D1 D2D2 D3D3 D4D4
best3-32 Lotterijplanning (L) DraadAankomstLotjes D1D1 050 D2D2 010 D3D3 0 D4D4 0 D1D1 D2D2 D3D3 D4D4
best3-33 Ware-tijdssystemen Harde ware tijd: te laat = geen antwoord = fout –B.v. controletoepassingen zoals een lasrobot Zachte ware tijd: te laat = vervelend maar niet zo erg –B.v. Video, toekennen van voldoend hoge prioriteit volstaat vaak Periodische processen & aperiodische processen Statische en dynamische planning: vaste of veranderlijke prioriteiten
best3-34 Rate Monotonic planning ProcesPeriode = PBurst = C P1P1 62 (33%) P2P2 83 (37,5%) P3P3 101 (10%) P1P1 P2P2 P3P3 ∑ = 80.5%
best3-35 Earliest Deadline First Planning ProcesPeriodeBurst P1P1 62 (33%) P2P2 83 (37,5%) P3P3 101 (10%) P1P1 P2P2 P3P3 ∑ = 80.5%
best3-36 Vergelijking RMS - EDF ProcesPeriode = PBurst = C P1P1 63 (50%) P2P2 83 (37,5%) P3P3 101 (10%) P1P1 P2P2 P3P3 P1P1 P2P2 P3P3 RMSRMS EDFEDF ∑ = 97.5% > 69.3%
best3-37 Toepassingsdomeinen PlanneralgoritmeBatchInteractiefReal-time First-come First-served (FCFS)X Shortest Job First (SJF)XX Shortest Remaining Time First (SRTF)XX PrioriteitXX Round RobinX Gewaarborgde planningX Highest Response Ratio NextX Fair ShareX LoterijplanningX Multilevel QueueXXX Multilevel Feedback QueueX Earliest Deadline FirstX Rate Monotonic SchedulingX
best3-38 Planning van gebruikersdraden process contention scope (planning op procesniveau) system contention scope (planning op systeemniveau) PCS SCS
best3-39 Multiprocessorplanning Een globale planner (goed voor belastingsspreiding) Verschillende lokale planners (goed voor asymmetrische architecturen) Bendeplanning (gang scheduling)
Multicore planners In essentie kunnen deze planners verschillende draden simultaan in uitvoering plannen. De cores kunnen zelf SMT (Simultaneous MultiThreading) aanbieden waardoor twee draden door dezelfde core kunnen uitgevoerd worden en op nanoschaal door de processor gepland worden. best3-40
Virtualisatie Een hypervisor gebruikt zelf ook een planner om de diverse BS van systeemmiddelen te voorzien. Die systeemmiddelen worden dan door de planners van de gastbesturingssystemen verder verdeeld over de diverse processen en draden. In gastbesturingssysteem worden de systeemdraden hierdoor eigenlijk gebruikersdraden… best3-41
best3-42 Overzicht Wat is procesplanning? Planningsalgoritmen –Monoprocessorsystemen –Multiprocessorsystemen Concrete gevallen
best3-43 Solaris PrioriteitTijdskwantumPrioriteit na aflopen tijdskwantum Prioriteit na blokkering
best3-44 Windows ware tijd variabel prioriteitsklassen relatieve prioriteit
best3-45 Linux procesplanning runqueue Active arrayExpired array … ware tijd nice …
best3-46 Java Prioriteitsplanner (preëmptief of niet preëmptief) 10 prioriteiten –MIN_PRIORITY = 1 (laagste prioriteit) –NORM_PRIORITY = 5 –MAX_PRIORITY = 10 (hoogste prioriteit) Een draad erft de prioriteit van zijn ouder Veranderbaar met setPriority() Worden afgebeeld op de prioriteiten van de systeemdraden
best3-47 Mach 128 prioriteitsniveaus Ontvanger van een boodschap krijgt de hoogste prioriteit
best3-48