RTSYST 5 me 2014 Real-Tme Systems (RTSYST) Week 6 Schedulng Denstregelng van taken N taken kun e n N! verschllende schedules utvoeren. Bvoorbeeld 10 taken: 3628800 mogelke schedules. Met preempton nog veel meer mogelkheden. De gekozen schedulngmoet aan alle tme requrements voldoen. Een schedulng scheme(=plan) bestaat ut: Een algortme om een schedule te bepalen. Een methodeom het worst-case gedrag van een, met het algortme bepaalde, schedule te voorspellen. 148 Harry Broeders 1
RTSYST 5 me 2014 Schedulng wanneer? Statsch: schedule lgt vast voor utvoerng. Taken, worst-case executetden en deadlnes moeten van tevoren bekend zn. Je kunt door mddel van een analyse aantonen dat alle deadlnes worden gehaald. Response tden zn voorspelbaar! Kan net reageren op onvoorzene stuates. Dynamsch: schedule bepaald tdens utvoeren. Gedrag mnder goed vooraf voorspelbaar. Kan dynamsch nspelen op onvoorzene omstandgheden (b.v. berekenng de langer duurt dan verwacht). 149 Schedulng RT systemen Bna altd wordt een statsche methode gebrukt. Meest gebrukt: Preemptve Prorty Based schedulng op elk moment runt de ready taak met de hoogste pro In dt geval bestaat een schedulng scheme ut: Een algortme om de prortet van elke taak te bepalen. Een methode om de schedulablty te voorspellen = Een methode om het worst-case gedrag b de gekozen prorteten te voorspellen en te bekken of aan alle tme requrements wordt voldaan. 150 Harry Broeders 2
RTSYST 5 me 2014 Schedulng Smpel begnnen Het aantal taken s bekend. N Alle taken zn perodek en de peroden zn bekend. T De taken zn onafhankelkvan elkaar (geen synchronsate en communcate). Systeem overhead wordt verwaarloosd. De deadlne van elke taak s gelk aan de perode. D = T De worst-case executetd van elke taak s vast en bekend. C Dt processmodel s tesmpel (maar al moelk genoeg). Later zullen we realstsche modellen bekken. 151 Cyclc executve Als schedule van tevoren bepaald s kun e het utvoeren van de schedule explcet programmeren. Voorbeeld: Taak T C a 25 10 b 25 8 c 50 5 d 50 4 e 100 2 // zet tmer: elke 25 mseen sgnal whle (1) { sgwat(&set, &sgnum); a(); b(); c(); sgwat(&set, &sgnum); a(); b(); d(); e(); sgwat(&set, &sgnum); a(); b(); c(); sgwat(&set, &sgnum); a(); b(); d(); } Hoe bepaal e de schedulablty? Hoe vnd e een schedule? 152 Harry Broeders 3
RTSYST 5 me 2014 Cyclc executve Utlzaton(benuttng) U = 10/25+8/25+5/50+ 4/50+2/100 = 0,92 Als C e = 4 dan geldt U = 0,94en s er geen schedule mogelk! Hoe bepaal e de schedulablty? Hoe vnd e een schedule? 153 Cyclc executve Egenschappen: Er zn geen processen (of threads) de taken zn gewone functes. Er s shared memory voor communcate. Protecte s net nodg. Alle T s moeten een veelvoud zn van de mnor cycle tme. Systeem s determnstsch. Problemen: Taken met grote verschllen n T s geeft lange maor cycle. Sporadc taken zn net n te passen! Slecht onderhoudbaar, aanpasbaar en utbredbaar. Schedule bepalen s moelk! Alternateven: Fxed-Prorty Schedulng(FPS) Earlest Deadlne Frst (EDF) 154 Harry Broeders 4
RTSYST 5 me 2014 FPS Fxed-Prorty Schedulng Elke taak draat als thread (of process) met een statsch bepaalde vaste prortet. De prortet wordt bepaald door de tme requrements. Preemptve NonPreemptve Preemptve: Als thread met hogere prortet ready wordt dan wordt runnng thread meteen onderbroken. NonPreemptve: Als thread eenmaal gestart s wordt h ook afgemaakt. Deferred Preempton: Als thread met hogere prortet ready wordt dan wordt runnng thread na een bepaalde td zeker onderbroken. 155 Rate Monotonc Prorty Assgnment De perodevan een proces bepaaltde prortetvan dat proces. Hoe korter de perode hoe hoger de prortet. T < T P > P Deze methode s optmaal! Dat wl zeggen dat als er een mogelke preemptve FPS schedule s dan s rate monotonc FPS ook mogelk. 156 Harry Broeders 5
RTSYST 5 me 2014 FPS-RMPA Utlzaton based schedulablty test: N C 1/ N U N(2 1) N Test T = 1 Als deze test truegeeft s worden geen deadlnes gemst! Als deze test false worden er msschen deadlnes gemst! 1 U 1.000 2 U 0.828 3 U 0.780 4 U 0.757 5 U 0.743 10 U 0.718 onendg U 0.693 157 FPS-RMPA Schedulablty voorbeelden Boek: Voorbeeld A: Tabel 11.5, fguur 11.2 (tme lne) en fguur 11.3 (Gantt chart). Voldoet net aan de test en haalt deadlnes net. Voorbeeld B: Tabel 11.6. Voldoet welaan de test en haalt deadlnes wel. Voorbeeld C: Tabel 11.7 en fguur 11.4. Voldoet netaan de test maar haalt deadlnes wel. Als aan de test voldaan wordt s dat voldoendebews dat de deadlnes gehaald worden. Maar het s net noodzakelkdat aan de test voldaan wordt om de deadlnes te kunnen halen. 158 Harry Broeders 6
RTSYST 5 me 2014 FPS-RMPA Responsetd analyse In tegenstellng tot de vorge test geeft deze analyse de exacteresponse tden. We kunnen dus exact zeggen of alle deadlnes gehaald worden (en met welke marge). R = C + hp ( ) R T C R s de response td van taak hp()s de verzamelng taken met een hogere prortet dan taak R komt zowel lnksals rechtsvoor. De vergelkng s net eenvoudg op te lossen (door de celng functe) 159 FPS-RMPA Responsetd analyse Voor de taak met de hoogste prortet geldt: R = C Alle andere taken kunnen onderbroken worden en voor deze taken geldt: R = C + I Waarb I de maxmale nterference s. Deze treed op als alle taken met een hogere prortet gelk met taak starten. Het aantal keer dat een taak met een hogere prortet gestart wordt voordat s afgelopen s: R Number of Releases = R T I, s dus: C T 160 Harry Broeders 7
RTSYST 5 me 2014 FPS-RMPA Responsetd analyse De totale maxmale nterference s de som van de maxmale nterference van alle taken met een hogere prortet: R = C hp ( ) R T C Oplossng met behulp van recurrente betrekkng: Start met w w 0 w n +1 = w n n+ 1 + = C + hp ( ) = 0 en ga door tot: of w > T n+1 w T n C 161 FPS-RMPA Responsetd analyse Je kunt een programmaschrven om alle R s te berekenen: ze boek p. 376. Voorbeelden: ze boek p. 377 en 378. Verdere utbredng s nog nodg: Sporadc taken. Taken met D < T. Interacte tussen taken. Release tter. Taken met D> T. Deferred preempton. Fault tolerance. Release offset. 162 Harry Broeders 8
RTSYST 5 me 2014 FPS-RMPA D < T en Sporadc taken D< T: Gebruk DMPAn plaats van RMPA (geeft DMPO): D < D P > P Gebruk b response td analyse als stop voorwaarde: W > D n+1 Sporadc taken: Vul voor de perodetd de mnmale td tussen twee starts van deze taak n. T = mnmum nter-arrval nterval. Vaak geldt voor sporadctaken D< T. 163 FPS-DMPO Blockng Als een taak met een hoge prortet moet wachten op een taak met een lagere prortet dan wordt deze taak blocked(prorty nverson). Een taak de unblocked slut achterde taken met dezelfde prortet n de readyqueue aan. Als een taak met een lagere prortet moet wachten op een taak met een hogere prortet dan wordt deze taak preempted. Een taak de preempted wordt slut voorde taken met dezelfde prortet n de readyqueue aan = vooraan de readyqueue! Om het real-tme gedrag te kunnen voorspellen moet de maxmale td dat een taak blocked kan zn voorspelbaarzn (bound blockng). 164 Harry Broeders 9
RTSYST 5 me 2014 Prorty nverson voorbeeld 4 taken (a, b, c en d) delen2 resources(q en V). Deze resources kunnen slechts door 1 taak tegelk gebrukt worden (en zn dus beschermdmet bvoorbeeld een mutex). taak pro executon release tme d 4 EEQVE 4 c 3 EVVE 2 b 2 EE 2 a 1 EQQQQE 0 E = taak heeft alleen processor nodg Q = taak heeft resource Q nodg V = taak heeft resource V nodg 165 Prorty nverson voorbeeld taak pro executon release tme d 4 EEQVE 4 c 3 EVVE 2 b 2 EE 2 a 1 EQQQQE 0 166 Harry Broeders 10
RTSYST 5 me 2014 FPS-DMPO Prorty nverson Taak d wordt blockeddoor taak a, b en c (alle processen met een lagere prortet)! Blockng(prorty nverson) s nette voorkomenals we mutual exclusve recources delen. Blockngs welte beperkendoor het toepassen van prorty nhertance: Als een taak blockedvoor een resource dan krgt de taak de de resource bezt de prortet van de taak de blocked wordt. 167 Huswerk Boek: H11 Inledng, 11.1 tot 11.6.2 en 11.7 bestuderen. Opgaven 1, 2, 4 en 7 maken. 168 Harry Broeders 11