Module code: Scheduling Het verdelen van processortijd onder processen en threads 1
Module code: Scheduling-algoritme: criteria Rechtvaardigheid: ieder proces een rechtvaardig deel van de cpu-tijd Efficiëntie effectieve bezetting CPU Responsetijd minimaal voor interactieve gebruikers Turnaround (doorlooptijd) minimaal voor batchgebruikers Throughput (doorvoer) maximaliseer het aantal per uur verwerkte jobs 2
Module code: Scheduling: procestoestanden 3 exitrunning ready blocked new 5-toestanden-model Lange termijn Korte termijn
Module code: Scheduling: procestoestanden 4 exitrunning ready blocked suspend ready suspend new 7-toestanden-model Middellange termijn
Module code: 5
Scheduling: principes Nonpreemptive scheduling –job helemaal afronden –geen task switch Nonpreemptive multitasking –cooperative multitasking –task switch als blocked Preemptive multitasking –OS kan elk moment ingrijpen 6
Module code: Scheduling: wachtrijdiagram 7 Processor Scheduling middellange termijn Scheduling middellange termijn Batch jobs Scheduling lange termijn Time-out Interactive gebruikers Ready Queue Ready, Suspend Queue Blocked, Suspend Queue Blocked Queue Event Occurs Event Wait vrijgeven Scheduling korte termijn
Module code: Wachtrijen met prioriteiten 8 Processor Event occurs Blocked Queue Event Wait Preemptief onderbreken Toelaten RQn RQ1 RQ0 Dispatch vrijgeven...
Module code: First-Come-First-Served (FCFS, FIFO) Een gereed proces komt in de ready queue Bij wisseling komt het oudste proces aan de beurt
Module code: Voorbeeld fifo (nonpreemptief) Gevraagd: Gemiddelde wachttijd Gemiddelde turn around tijd (tq) Gemiddelde tq / ts 10
Module code: Shortest Process Next Niet-preëmptieve strategie Proces met kortste verwachte verwerkingstijd wordt het eerst geselecteerd
Module code: Kortste job eerst Bepaal de gemiddelde turnaroundtijd van a en van b bediend door een fifo scheduler. Aankomsttijd alle jobs = 0 12
Module code: Shortest Remaining Time Preëmptieve versie kortste resterende proces tijd strategie Moet een schatting van de verwerkingstijd gebruiken
Module code: Highest Response Ratio Next (HRRN) Het volgende proces met de hoogste ratio wordt geselecteerd 14 time spent waiting + expected service time expected service time RR3 = (5 + 4)/4 = 2.25 RR4 = (3 + 5)/5 = 1,6 RR5 = (1 + 2)/2 = 1,5 Op T = 13 moet je weer kiezen: RR4 = (7+5)/5 = 2,4 RR5 = (5 + 2)/2 = 3,5
Module code: Round-Robin preëmptieve verwerking gebaseerd op een klok een tijdquantum wordt aan elk proces toegewezen
Module code: Tijdsquotum & standaardinteractie 16
Module code: Wachtrijschema bij een scheduler met virtual round robin 17 Extra queue
Module code: Round-Robin scheduling Gevraagd: Gemiddelde turn around tijd tq en tq/ts time quanta = Vrij laag tq/ts zonder kennis van ts
Module code: Feedback Straf processen die lang uitgevoerd worden door prioriteit te verlagen
Module code: Scheduling met feedback 20
Module code: Multiprocessorsystemen Gespecialiseerde processors –math.coprocessor, gpu, dma Sterk gekoppelde multiprocessing –meerdere processors op één moederbord –meerdere kernen in één processor Gedistribueerde multiprocessing / clustering –gekoppelde computers of processorboards Praktijk –combinatie van bovenstaande 21
Module code: Multiprocessor OS: ontwerpaspecten De toewijzing van processen aan processors Het gebruik van multiprogrammering op de verschillende processors De feitelijke toedeling (dispatching) van een proces 22
Module code: Thread scheduling Voordelen –Werklast verdeeld over CPU's –Gemeenschappelijk wachtrij Nadelen –Gemeenschappelijke wachtrij: uitsluiting? –CPU-cache minder efficiënt gebruikt –Veel proceswisselingen door afhankelijkheden tussen threads 23 - Delen van belasting - Groepsscheduling - Vaste processortoewijzing - Dynamische scheduling
Module code: Thread scheduling Deel/alle threads van een proces gelijktijdig op/van CPU Voordelen –Eenvoudige scheduling –Threads draaien parallel –Dus minder synchronisatieproblemen Nadelen –Minder efficiënte cpu-belasting 24 - Delen van belasting - Groepsscheduling - Vaste processortoewijzing - Dynamische scheduling
Module code: Thread scheduling Wanneer een proces wordt ingeroosterd, dan krijgt elke thread een processor toegewezen gedurende de levensduur van de toepassing Lijkt inefficiënt maar zinvol indien er veel processors zijn ( ) 25 - Delen van belasting - Groepsscheduling - Vaste processortoewijzing - Dynamische scheduling
Module code: Thread scheduling Proces en OS nemen samen een beslissing over het aantal te gebruiken threads Eén thread kan steeds op een andere processor verdergaan 26 - Delen van belasting - Groepsscheduling - Vaste processortoewijzing - Dynamische scheduling
Module code: Tentamenstof Hoofdstuk 9: –Paragrafen 9.1 t/m