RTP Real-Time Programmatuur hoofdstuk 13: scheduling Yolande Berbers Programmatuur voor real-time controle slide 1 RTP overzicht eenvoudig procesmodel cyclische uitvoeringsaanpak procesgebaseerde scheduling gebruik-gebaseerde tests voor scheduleer-baarheid analyse van de responstijd slechtste geval uitvoeringstijd sporadische en aperiodieke processen deadline monotonic priority assignment (DMPA) procesinteractie en blokkering protocols met plafond op prioriteiten een uitgebreider procesmodel programmeren van prioriteit-gebaseerde systemen andere schedulingsmethoden Yolande Berbers Programmatuur voor real-time controle slide 2 RTP (Non)-Preemptive Scheduling chosen New Terminated Ready I/O or event completion Running 3 4 Waiting 2 I/O or 1 event Scheduling When? Release CPU Non-Preemptive: (1) + (2) Volontarily Preemptive: (1) + (2) + (3) + (4) Every Interrupt Yolande Berbers Programmatuur voor real-time controle slide 3 RTP Scheduling Algorithms FCFS SJF Priority-Based Round-Robin Multi-Level Queue Multi-Level Queue with Feedback Multi-Processor Real Time Yolande Berbers Programmatuur voor real-time controle slide 4 RTP inleiding bij 5 verschillende onafhankelijke taken: 120 mogelijke volgordes als niet onderbroken oneindig meer indien processen onderbroken kunnen worden scheduling: bepaalt de volgorde van uitvoeren kan statisch gebeuren (volgorde ligt vast voor de uitvoering) kan dynamisch gebeuren (volgorde bepaald tijdens uitvoering) bij interactieve systemen: altijd dynamisch real-time systemen meestal statisch, omdat taken en deadlines van te voren bekend zijn (dit zullen we hier behandelen) in zeer complexe systemen is dat dynamisch (als van te voren niet alles gekend is) Yolande Berbers Programmatuur voor real-time controle slide 5 RTP eenvoudig procesmodel karakteristieken van eenvoudig procesmodel vast aantal processen alle processen zijn periodiek, met gekende periodes de processen zijn volledig onafhankelijk van elkaar systeemoverhead wordt verwaarloosd alle processen hebben een deadline gelijk aan hun periode alle processen hebben een vaste, gekende slechtste-geval uitvoeringstijd Yolande Berbers Programmatuur voor real-time controle slide 6 RTP eenvoudig procesmodel cyclische uitvoerings-aanpak gegeven een tabel met periodes en uitvoeringstijd kun je een tabel opstellen die bestaat uit procedure-oproepen omdat periodes niet gelijk zijn: meestal een major cycle (waar proces met grootste periode éénmaal voorkomt) en een minor cycle (waar proces met kortste periode telkens éénmaal voorkomt) voorbeeld: proces periode uitvoeringstijd A 25 10 B 25 8 C 50 5 D 50 4 E 100 2 tijd A Yolande Berbers B C A B D E A B C Programmatuur voor real-time controle A B D slide 7 RTP eenvoudig procesmodel code hiervoor: loop Wait_For_Interrupt; A; B; C; Wait_For_Interrupt; A; B; D; Wait_For_Interrupt; A; B; C; Wait_For_Interrupt; A; B; D; end loop; Yolande Berbers E; Programmatuur voor real-time controle slide 8 RTP eenvoudig procesmodel karakteristieken van deze eenvoudige aanpak er bestaan geen echte processen tijdens uitvoering (at run-time) gewone procedures, dus delen deze allemaal één adresruimte warbij procedures niet voor elkaar moeten beschermd worden omdat er nooit kans is dat ze onderbroken worden alle periodes moeten een veelvoud zijn van de minor cycle nadelen laatste karakteristiek: veelvouden van minor cycle sporadische processen hieraan toevoegen is heel moeilijk processen met een lange periode maakt het moeilijker grote processen moeten soms opgesplitst worden, in de praktijk niet zo eenvoudig tabel opstellen is niet eenvoudig (NP-hard probleem) Yolande Berbers Programmatuur voor real-time controle slide 9 RTP intermezzo: NP-harde problemen NP-harde problemen: Niet-deterministisch Polynomisch probleem voorbeeld: traveling salesman probleemstelling handelsreiziger moet N steden aandoen met een beperkt budget vind een pad zodat de totale lengte binnen het budget past eigenschappen probleem wordt erg rekenintensief bij grote N berekenen van lengte bij gegeven pad is polynomisch maar kies een volgend beter pad is niet-deterministisch toepassing alle beveiligingsalgoritmen zijn hierop gebaseerd Yolande Berbers men kiest N heel groot het kost heel veel rekentijd om beveiligingsalgoritme te kraken Programmatuur voor real-time controle slide 10 RTP procesgebaseerde scheduling karakteristieken beschouwen echte processen, in een van volgende toestanden klaar om uit te voeren (runnable of ready) geblokkeerd op tijdsgebeurtenis (bv voor periodieke proc.) geblokkeerd op een andere gebeurtenis (bv interrupt) elk proces heeft een prioriteit prioriteit is bepaald door temporele eisen, niet door belang pre-emptive: proces A voert uit; en proces B met hogere prio. wordt runnable; dan wordt A gestopt ten voordele van B Rate Monotonic Priority Assignment (RMPA) hoe korter de periode, hoe hoger de prioriteit optimaal (indien mogelijk, dan ook mogelijk met dit schema) Yolande Berbers Programmatuur voor real-time controle slide 11 RTP procesgebaseerde scheduling voorbeeld (let op: hoe hoger de prioriteitswaarde, hoe groter de prioriteit) proces A B C D E periode 25 60 42 105 75 prioriteit 5 3 4 1 2 uitvoeringstijd speelt hier dus niet mee Yolande Berbers Programmatuur voor real-time controle slide 12 RTP test van scheduleerbaarheid indien de processen voldoen aan de volgende formule dan zullen al de processen hun deadline halen 1 Ci N 2 N 1 i 1 Ti N C: slechtste-geval uitvoeringstijd T: periode de volgende tabel toont het processorgebruik bij lage N (gaat naar 69.3% bij grote N) N 1 2 3 4 5 10 Yolande Berbers % gebruik 100.0 82.8 78.0 75.7 74.3 71.8 Programmatuur voor real-time controle slide 13 RTP test van scheduleerbaarheid gevolg: elke combinatie van processen die de processor minder dan 69.3% gebruiken is altijd volgens de RMPA methode scheduleer-baar 3 vb (tijd in een of andere eenheid, van geen belang) voorbeeld 1 periode uitvoeringstijd prioriteitprocessorgebruik T1 50 12 1 0.24 T2 40 10 2 0.25 T3 30 10 3 0.33 totaal gebruik: 0.82, is dus te hoog ga je de uitvoering na, dan zie je dat het niet gaat volgende slides: tijdslijn en Gantt chart Yolande Berbers Programmatuur voor real-time controle slide 14 RTP test van scheduleerbaarheid tijdslijn T1 missed deadline T2 T3 10 voorbeeld 1 T1 T2 T3 Yolande Berbers 20 30 40 50 periode uitvoeringstijd prioriteit processorgebruik 50 40 30 1 2 3 0.24 0.25 0.33 12 10 10 Programmatuur voor real-time controle 60 slide 15 RTP test van scheduleerbaarheid Gantt chart T3 T2 10 voorbeeld 1 T1 T2 T3 Yolande Berbers T1 20 T3 30 T2 40 50 periode uitvoeringstijd prioriteit processorgebruik 50 40 30 1 2 3 0.24 0.25 0.33 12 10 10 Programmatuur voor real-time controle slide 16 RTP test van scheduleerbaarheid voorbeeld 2 periode uitvoeringstijd prioriteitprocessorgebruik T1 80 32 1 0.400 T2 40 5 2 0.125 T3 16 4 3 0.250 totaal gebruik: 0.775, is dus lager dan maximaal, is dus haalbaar ga je de uitvoering na dan zie je dat het wel gaat je kunt hiervoor ook een tijdslijn en Gantt chart opstellen Yolande Berbers Programmatuur voor real-time controle slide 17 RTP test van scheduleerbaarheid voorbeeld 3 periode uitvoeringstijd prioriteitprocessorgebruik T1 80 40 1 0.50 T2 40 10 2 0.25 T3 20 5 3 0.25 totaal gebruik: 100%, is dus hoger dan maximaal toch kan dit gescheduled worden de test is dus voldoende maar niet noodzakelijk (als je aan de test voldoet mag je met een gerust hart slapen, voldoe je niet dan kan het nog dat het werkt) volgende slide: tijdslijn Yolande Berbers Programmatuur voor real-time controle slide 18 RTP test van scheduleerbaarheid T1 T2 T3 10 voorbeeld 3 T1 T2 T3 Yolande Berbers 20 30 40 50 60 70 periode uitvoeringstijd prioriteit processorgebruik 80 40 20 1 2 3 0.50 0.25 0.25 40 10 5 Programmatuur voor real-time controle 80 slide 19 RTP analyse van de responstijd nadeel van vorige methode: niet exact en niet algemeen bruikbaar (alleen voor eenvoudig procesmodel) analyse van de responstijd voor elk proces apart wordt slechtste-geval responstijd berekend voordeel v.d. methode: zowel voldoende als noodzakelijk voorwaarde enkele afkortingen R: slechtste-geval responstijd I: interferentie door andere processen C: uitvoeringstijd T: periode voor proces met hoogste prioriteit: voor andere processen: Yolande Berbers Ri = Ci Ri = Ci + Ii Programmatuur voor real-time controle slide 20 RTP analyse van de responstijd Ii hangt af van hoe vaak proces i gestopt wordt door processen met een hogere prioriteit aantal keren dat proces j (met hogere prioriteit dan i) proces i zal onderbreken: Ri gedeeld door periode van j van deze breuk: gehele getal dat net groter is (plafond functie) tijdsduur van onderbreking: dat resultaat maal Cj en dit moet je berekenen voor alle processen met hogere prio. Ri Ri Ci C j j i Tj Yolande Berbers Programmatuur voor real-time controle slide 21 RTP analyse van de responstijd Ri Ri Ci C j j i Tj deze formule is exact maar deze formule heeft Ri langs beide kanten en is moeilijk op te lossen vanwege de plafondfunctie is oplosbaar met een recurente relatie win1 Yolande Berbers win Ci C j j i Tj Programmatuur voor real-time controle slide 22 RTP analyse van de responstijd win1 win Ci C j j i Tj de waarden van w stijgen monotoon als w(n+1,i) = w(n,i) dan mogen we stoppen als w groter wordt dan de periode en w stijgt nog steeds, dan zullen we geen gepaste R vinden Yolande Berbers Programmatuur voor real-time controle slide 23 RTP analyse van de responstijd voorbeeld 4 T1 T2 T3 periode uitvoeringstijd prioriteit 7 12 20 3 2 1 3 3 5 R1 3 w20 3 w21 3 3 3 7 w22 w21 6 R2 w30 5 Yolande Berbers Programmatuur voor real-time controle slide 24 RTP analyse van de responstijd w30 5 voorbeeld 4 periode uitvoeringstijd T1 7 T2 12 T3 20 3 3 5 prioriteit 3 2 1 R3 = 20 = periode = deadline R3 zal het dus net halen Yolande Berbers 5 5 5 3 3 11 7 12 11 11 2 w3 5 3 3 14 7 12 14 14 3 w3 5 3 3 17 7 12 17 17 4 w3 5 3 3 20 7 12 20 20 5 w3 5 3 3 20 7 12 w31 Programmatuur voor real-time controle slide 25 RTP analyse van de responstijd voorbeeld 4 T1 T2 T3 T1 2 Yolande Berbers periode uitvoeringstijd prioriteit 7 12 20 3 2 1 T2 4 3 3 5 T3 6 T1 8 T3 10 12 T2 14 T1 16 Programmatuur voor real-time controle T2 T3 18 20 slide 26 RTP slechtste-geval uitvoeringstijd vorige methoden gebruikten slechtste-geval uitvoeringstijd meestal niet gekend, en moet dus geschat worden via metingen probleem: meten we wel het slechtste geval ? analytisch verdeel code in blokken zonder sprongen bereken voor elke blok de uitvoeringstijd (afhankelijk ook van cache, pipeline, enz.) voor elke if of case neem je als schatting de langste kant voor elke lus neem je als schatting het max aantal keren nadelen: alle lussen moeten begrensd zijn, geen recursie, geen virtueel geheugen (swapping !), problemen met hedendaagse processoren Yolande Berbers Programmatuur voor real-time controle slide 27 RTP sporadische en aperiodieke processen bedoeling is om in de vorige methoden de sporadische en aperiodieke processen toe te voegen voor aperiodieke processen periode: beschouw de minimum tijd tussen twee voorkomens van zo een proces als de periode T deadline bij eenvoudig procesmodel: deadline = periode bij periodieke processen is meestal deadline << periode stopcriterium bij zoeken van gepaste R: w(n+1, i) > D (i.p.v. T) Yolande Berbers Programmatuur voor real-time controle slide 28 RTP sporadische en aperiodieke processen voor sporadische processen men werkt met gemiddelden en grootste aankomstfrequenties vaak is het slechtste geval (grootste aankomstfrequentie) veel hoger dan het gemiddelde geval interrupts komen vaak in ‘burst’ ‘een probleem komt nooit alleen’ een probleem geeft vaak aanleiding tot extra code die uitgevoerd moet worden, ook in de andere processen meestal hanteert men de volgende regels neem voor zachte real-time processen het gemiddelde neem voor harde real-time processen altijd slechtste geval processoren worden daarom vaak ondergebruikt het grootste gedeelte van de tijd Yolande Berbers Programmatuur voor real-time controle slide 29 deadline monotonic priority assignment RTP bij eenvoudig procesmodel D = T (deadline = periode) Rate Monotonic Priority Assignment (RMPA) is optimaal voor model waarbij D < T Deadline Monotonic Priority Ordering (DMPO) is optimaal als Di < Dj dan moet Pi > Pj bewijs in 13.8.1 vb 5 periode T T1 T2 T3 T4 Yolande Berbers 20 15 10 20 deadline D 5 7 10 20 uitvoeringst. C 3 3 4 3 prioriteit responstijd P R 4 3 2 1 Programmatuur voor real-time controle 3 6 10 20 slide 30 RTP procesinteractie en blokkering eenvoudig proces model veronderstelt onafhankelijke processen irrealistisch (zie hoofdstukken 7-11) processen moeten soms wachten op een ander proces dit ander proces kan een lagere prioriteit hebben dit leidt tot prioriteitsinversie voorbeeld van problemen waartoe dit kan leiden: volgende slide Yolande Berbers 4 periodieke processen L1, L2, L3, L4 L4 heeft hoogste prioriteit, L1 laagste L4 en L1 delen kritische sectie, beschermd door semafoor Q L4 en L3 delen kritische sectie, beschermd door semafoor V E staat voor uitvoering tijdens een tijdseenheid Q en V staan voor uitvoering terwijl men Q of V vasthoudt Programmatuur voor real-time controle slide 31 RTP procesinteractie en blokkering uitvoerend Q voorbeeld L4 L3 L2 L1 prioriteit uitvoering aankomsttijd 4 3 2 1 EEQVE EVVE EE EQQQQE uitvoerend V 4 2 2 0 geblokkeerd pre-empted uitvoerend (E) L4 L3 L2 L1 2 Yolande Berbers 4 6 8 10 12 14 Programmatuur voor real-time controle 16 18 slide 32 RTP procesinteractie en blokkering probleem van prioriteitsinversie een hoog-prioriteitsproces p is geblokkeerd op een hulpmiddel dat vast wordt gehouden door een proces q met lagere prioriteit proces q met lagere prioriteit moet zelf wachten met uitvoeren omdat processen met tussenliggende prioriteit tussen komen mogelijke oplossing: erven van prioriteit prioriteit van proces is niet meer statisch (ligt niet meer vast) als proces p wacht op een hulpmiddel dat proces q vast heeft, en proces q heeft een lagere prioriteit dan p, dan erft q de prioriteit van p (totdat q het hulpmiddel vrijgeeft) erven van prioriteit op ons voorbeeld in volgende slide tot nu toe: fixed priority assignment, nu gedeeltelijk dynamic priority assignment Yolande Berbers Programmatuur voor real-time controle slide 33 RTP procesinteractie en blokkering uitvoerend Q voorbeeld L4 L3 L2 L1 prioriteit uitvoering aankomsttijd 4 3 2 1 EEQVE EVVE EE EQQQQE uitvoerend V 4 2 2 0 geblokkeerd pre-empted uitvoerend (E) L4 L3 L2 L1 2 Yolande Berbers 4 6 8 10 12 14 Programmatuur voor real-time controle 16 18 slide 34 RTP procesinteractie en blokkering problemen met erven van prioriteit meestal niet geweten welk proces het hulpmiddel zal vrijgeven zeker niet met semaforen en wait-signal primitieven bij boodschappen systemen wel bij directe symmetrische naamgeving (maar dit wordt weinig gebruikt) berekening van tijd die men kan blokkeren (B) proces p met K kritische secties kan maximaal K keer blokkeren als het aantal processen (n) met lagere prioriteit dan p kleiner is dan K (dus n < K) dan is dit nog lager K Bi usage(k , i )CS (k ) k 1 Yolande Berbers - usage(k,i) is 0 of 1 afhankelijk of proces i kritische sectie k gebruikt - CS(k) is kost van kritische sectie k Programmatuur voor real-time controle slide 35 RTP procesinteractie en blokkering formule voor de responstijd kan nu aangepast worden: R = C + B + I wordt wel pessimistisch want het is niet zeker dat het proces B tijd zal blokkeren de formule is nu voldoende maar niet noodzakelijk Ri Ri Ci Bi C j ji Tj win 1 Yolande Berbers win Ci Bi C j ji Tj Programmatuur voor real-time controle slide 36 RTP protocols met plafond op prioriteiten twee varianten original ceiling priority protocol (OCPP) immediate ceiling priority protocol (ICPP) eigenschappen een proces met hoge prioriteit wordt maar 1 maal geblokkeerd door een proces met lagere prioriteit deadlocks worden vermeden transient blokkeren wordt vermeden wederzijdse uitsluiting wordt door het protocol bewerkstelligd kern van de methode: als proces p1 een hulpmiddel vast heeft, en dit zou kunnen leiden tot het blokkeren van een proces p2 met hogere prioriteit, dan mag geen enkel ander hulpmiddel dat p2 zou kunnen blokkeren toegekend worden, behalve aan p1 Yolande Berbers Programmatuur voor real-time controle slide 37 RTP protocols met plafond op prioriteiten original ceiling priority protocol elk proces krijgt een statische prioriteit bv door DMPO elk hulpmiddel heeft een statische plafond-prioriteit dit is de maximale prioriteit van de processen die het gebruiken een proces heeft een dynamische prioriteit max (eigen statische prioriteit, ge-erfde prioriteit door blokkering) een proces kan enkel een hulpmiddel vast krijgen als dyn. prio. > plafond huidige toegekende hulpmiddelen in het systeem, zonder rekening te houden met de eigen hulpmiddelen Yolande Berbers Programmatuur voor real-time controle slide 38 RTP protocols met plafond op prioriteiten effect van dit protocol het eerste hulpmiddel kan altijd toegekend worden een tweede krijgt men pas als er geen ander hoger- prioriteitsproces is dat beide nodig heeft voordeel een proces kan slecht éénmaal per activatie geblokkeerd worden door een proces met lagere prioriteit kost hiervan meer processen zullen geblokkeerd geraken Yolande Berbers Programmatuur voor real-time controle slide 39 RTP protocols met plafond op prioriteiten uitvoerend Q voorbeeld L4 L3 L2 L1 prioriteit uitvoering aankomsttijd 4 3 2 1 EEQVE EVVE EE EQQQQE uitvoerend V 4 2 2 0 geblokkeerd pre-empted uitvoerend (E) L4 L3 L2 L1 2 Yolande Berbers 4 6 8 10 12 14 Programmatuur voor real-time controle 16 18 slide 40 RTP protocols met plafond op prioriteiten immediate ceiling priority protocol de prioriteit van een proces stijgt van zodra het een hulpmiddel toegekend krijgt i.p.v. enkel wanneer het proces een ander proces van hogere prioriteit blokkeert elk proces krijgt een statische prioriteit bv door DMPO elk hulpmiddel heeft een statische plafond-prioriteit dit is de maximale prioriteit van de processen die het gebruiken een proces heeft een dynamische prioriteit max (eigen statische prioriteit, de plafond-prioriteit van de hulpmiddelen die het vast heeft) Yolande Berbers Programmatuur voor real-time controle slide 41 RTP protocols met plafond op prioriteiten gevolg van dit protocol een proces zal enkel blokkeren bij het begin van zijn uitvoering eenmaal dat het proces uitvoert zullen al de hulpmiddelen die het gebruikt vrij zijn als dat niet zo zou zijn, dan zou er een proces zijn met gelijke of hogere prioriteit die aan het uitvoeren is voordelen deadlocks kunnen niet meer voorkomen (omdat alle hulpmiddelen vrij zijn als een proces uitvoering mag beginnen) Yolande Berbers Programmatuur voor real-time controle slide 42 RTP protocols met plafond op prioriteiten uitvoerend Q voorbeeld L4 L3 L2 L1 prioriteit uitvoering aankomsttijd 4 3 2 1 EEQVE EVVE EE EQQQQE uitvoerend V 4 2 2 0 geblokkeerd pre-empted uitvoerend (E) L4 L3 L2 L1 2 Yolande Berbers 4 6 8 10 12 14 Programmatuur voor real-time controle 16 18 slide 43 RTP protocols met plafond op prioriteiten verschil tussen OCPP en ICPP ICPP is gemakkelijk te implementeren omdat geen blokkeringsrelaties gebruikt worden ICPP leidt tot minder proceswisselingen omdat er geblokkeerd wordt voor de uitvoering ICPP vraagt meer veranderingen van prioriteiten omdat dit gebeurt bij elke toekenning van een hulpmiddel; OCPP verandert alleen de prioriteit als er een blokkering is Yolande Berbers Programmatuur voor real-time controle slide 44 RTP andere algoritmen en uitbreidingen cooperative scheduling geen pre-emption processen bepalen zelf wanneer ze de processor willen afstaan deze de-scheduling primitieven moeten goed geplaatst worden in programma processen zijn dus cooperatief eigenschappen als critische sectie binnen een niet-onderbroken blok valt: wederzijdse uitsluiting is gegarandeerd verhoogt de scheduleerbaarheid kan leiden tot kleinere waarden van C: minder pessimistische voorspelling van uitvoeringstijd, nut van cache en pipeline kan ingecalculeerd worden Yolande Berbers Programmatuur voor real-time controle slide 45 RTP andere algoritmen en uitbreidingen release jitter variatie in het starten van een proces kan voorkomen indien start afhangt van periodisch proces op andere knoop indien granulariteit van klok grover is dan granulariteit van tijdsberekeningen geeft aanleiding tot aanpassing van de formules willekeurige deadline tot nu toe: deadline < periode kan ook: deadline > periode meerdere voorkomens van zelfde proces gelijktijdig actief geeft aanleiding tot aanpassing van de formules Yolande Berbers Programmatuur voor real-time controle slide 46 RTP ondersteuning door talen en systemen ondersteuning door talen klein Ada via Real-Time Systems Annex (dus niet in core van taal) ondersteuning door systemen groot voor real-time besturingssystemen meeste normale systemen ondersteunen enkel scheduling gebaseerd op prioriteiten POSIX (zie volgende slides) Yolande Berbers Programmatuur voor real-time controle slide 47 RTP ondersteuning door talen en systemen POSIX ondersteunt scheduling gebaseerd op prioriteiten heeft opties om prioriteitserving en plafondprotocol te gebruiken prioriteiten kunnen dynamisch aangepast worden drie basisalgoritmen FIFO een proces loopt totdat het eindigt of blokkeert wordt het onderbroken door een proces met hogere prioriteit dan wordt het teruggeplaatst vooraan in rij van zijn prioriteit round-robin idem maar kan ook onderbreken als tijdskwantum verloopt; dan wordt het teruggeplaatst achteraan in rij van zijn prioriteit ander door implementatie bepaald Yolande Berbers Programmatuur voor real-time controle slide 48 RTP ondersteuning door talen en systemen POSIX ondersteuning voor scheduling op basis van processen of van threads voor threads system contention: alle threads staan in competitie process contention: de threads van één proces staan in competitie met elkaar ondersteuning voor het associeren van een ervingsprotocol of ICPP met een semafoor (mutex) wachtlijsten met boodschappen zijn geordend volgens prioriteit prio. threads kan dynamisch opgevraagd en veranderd worden threads kunnen opgeven of hun attributen ivm scheduling geërfd moeten worden door de threads die zij creëren Yolande Berbers Programmatuur voor real-time controle slide 49 RTP dynamisch schedulen earliest deadline kies altijd het proces waarvan de deadline het eerste afloopt least slack time kies altijd het proces dat de minste ‘vrije tijd’ over heeft voordelen van beide als scheduleerbaar en geen afhankelijkheden tussen processen, dan werkt dit werkt ook goed met vele aperiodische processen nadelen van beide Yolande Berbers moet alle deadlines (of rest uitvoeringstijd) dynamisch kennen als het misloopt (deadlines worden gemist) gebeurt dit op een onvoorspelbare manier wordt heel ingewikkeld met afhankelijkheden tussen processen Programmatuur voor real-time controle slide 50