1 / 13

Forlæsningsplan

Del 1: Introduktion, definition af sandtidssystemer og gennemgang af analyse og design metoder. Kort intro til AVR platform. Del 2: Scheduleringsprincipper: Statiske/dynamiske f.eks. round robin/dynamic priority. Scheduleringskriterier: Generelt og for enkelte scheduleringsprincipper.

raisie
Download Presentation

Forlæsningsplan

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Del 1: Introduktion, definition af sandtidssystemer og gennemgang af analyse og design metoder. Kort intro til AVR platform. Del 2: Scheduleringsprincipper: Statiske/dynamiske f.eks. round robin/dynamic priority. Scheduleringskriterier: Generelt og for enkelte scheduleringsprincipper. Del 3: Schedulerbarhedskriterier ved fixed priority schedulering. Del 4: Schedulerbarhedskriterier ved dynamic priority schedulering. Del 5: Aperiodiske tasks og lidt køteori. Forlæsningsplan

  2. Fra task struktureringen haves tidskarakteristikker for følgende tasksæt {(1), .., (N)} Ready times r(i,j) Computation times c(i,j) Starting times S(i,j) Completion times C(i,j) Deadlines d(i,j) Jobs J(i,j) Index (i,j) referer til det j te job i den i te task, f.eks. (j) Naturen af de enkelt tasks kendes: periodisk (T(j)) eller aperiodisk (Tmin(j)) Tidsfunktionen R(t): Angiver den resterne CPU tid, som er reserveret til tasks og endnu ikke afviklet Reservationsfunktionen L(t): Angiver den totale mængde reserveret tid til et givent tidspunkt Scheduling: Resume

  3. Theorem (DMA optimal prioritering) For et tasksæt {(1), .., (N)} med deadlines d(i) ≤ T(i), hvor d(i) ≤ d(i+1) vil Deadline Monotonic (DMA) prioritering (Laveste deadline = højeste prioritet) være optimal, i den forstand at hvis en anden prioriteringsfølge er skedulerbar er DMA det også Completion time analyse Rettelse til MM3 forlæsningen Det er et krav at tiden t ≤ T(i) Dette svarer også til U ≤ 1 Theorem (Critical Instant) Et job J(i, j) fra task(i) vil aldrig blive senere færdig end i den situation hvor alle andre tasks er igangsætter deres jobs på nøjagtig samme tid r(i, j), således o(i) = 0 Krævet tid Fixed Priority Scheduling: Resume Prioritet: (1, 3, 2) C(3) = 12 < d(3) = 64 C(2) = 20 > d(2) = 12

  4. Dynamic Priority Scheduling Prioriteterne skifter over tid EDF – Earliest Deadline First LLF – Least Laxity FirstLSF – Least Slack Time First(Laxity = tid til deadline – resterende beregningstid) etc. Øget kompleksitet i både analyse og design faserne Tænk! Hvad er det der øger kompleksiteten i analyse fasen? Hvad er det der øger kompleksiteten i design fasen? Hvor ofte er Dynamic Priority Scheduling nødvendigt? Earliest Deadline First (EDF) I EDF er jobbet som eksekveres til tiden t det uafsluttede job som har den laveste/tidligste absolute deadline efter t Tænk! Adskilder EDF sig fra DMA? Aktiv task S(2, 1) S(1, 1) C(1, 1) C(2, 1) Tid r(2, 1) r(1, 1) d(1, 1) d(2, 1) Dynamic Priority Scheduling: Introduktion

  5. Hvor DMA arbejdede på relative deadlines arbejder EDF på absolute deadlines Sammenligningseksempel d(1) = T(1) < d(2) = T(2) Theorem (EDF Optimalitet) For et givent sæt af jobs er EDF optimal, i den forstand at hvis der eksistere en anvendelig (feasible) schedule så er EDF også anvendelig Theorem (EDF Udnyttelses kriterie) For et givent periodisk tasksæt med relative deadlines lig perioderne vil EDF være skedulerbar hvis og kun hvis U  1 Der findes ikke noget Critical Instant theorem for EDF Tænk! Hvordan kan man implementere en EDF scheduler? Hvornår er det ”bedst” at beregne absolutte deadlines? Bruges EDF i proprietære RTOS implementeringer? Hvad gør vi når der ikke er et Critical Instant theorem? DMA S(2, 1) S(1, 1) C(1, 1) C(2, 1) Aktiv task Tid r(2, 1) r(1, 1) d(2, 1) d(1, 1) EDF S(1, 1) S(2, 1) C(2, 1) C(1, 1) Aktiv task Tid r(2, 1) r(1, 1) d(2, 1) d(1, 1) Earliest Deadline First

  6. Uformelt optimalitets bevis, hvor det antages at {(1), .., (N)} er sorteret i prioritets rækkefølge og er skedulerbar Antag: At der for et k gælder at d(k) ≤ d(k+1) og C(k+1) < C(k) Observer: At C(k+1) < C(k) ≤ d(k) ≤ d(k+1) Byttes prioriteterne fåes C(k+1) < C(k) ≤ d(k) ≤ d(k+1) Task i < k og i > k+1 er uberørt af ombytningen Derfor: Ombytning af prioriteter ved flytning af tasks med lavere absolut deadline foran tasks med højere absolut deadline bibeholder skedulerbarhed QED: Gentages til EDF prioritering er opnået EDF lemma Hvis alle task initieres til tiden t=0 og der mistes en deadline til tiden t* vil der ikke være en idle periode i [0; t*] Er åbenlyst klart, da man hvis der er idle perioder vil rykke beregninger frem i tid for at når de fastlagte deadlinesEDF vil til ethvert givent tidspunkt eksekvere den task der har kortest tid til deadline og dermed vil EDF fylde idle-tiderne ud(Bevis følger senere!) Tænk! Beviset for EDF optimalitet minder meget om DMA optimalitets beviset, er det et tilfælde? Earliest Deadline First: Beviser 1

  7. Omvendt uformelt bevis for EDF lemma Antag: At der sker et overflow til tiden t3 og der er en idle tid før t3 mellem t1 og t2 Observer: At der ved flytning af alle (1) jobs, så der er sammenfald mellem J(1,1) og t2, som minimum vil være et bibehold beregningskrav i [t2;t3] QED: Gentages til alle task har sammenfald med t2 Modsætning til en antagelse om at der mellem t0 og et overflow er en idle periode Bevis for EDF udnyttelses kriterie U > 1 er jfr. tidligere forlæsninger ikke skedulerbart U  1 skedulerbarhed vises ved omvendt bevisførelse Antag: At theoremet ikke er sandt, og der mistes en deadline til tiden Ta1,, a2, ... er ready tider med deadlines lig Tb1,, b2, ... er ready tider med deadlines efter T Observer: At der skal undersøges to tilfælde: 1: Ingen beregninger for b1,, b2, ... er udført før T 2: Nogle beregninger for b1,, b2, ... er udført før T Earliest Deadline First: Beviser 2

  8. Tilfælde 1: Ingen beregninger for b1,, b2, ... er udført før T Det totale krav om beregningstid i [0; T] kan findes ved Jfr. lemmaet er der ikke idle-tider i [0; T] og da deadlinen mistes til T fåes Hvilket er en modsætning til antagelsen om at theoremet var forkert og dermed er theoremet bevist for tilfælde 1 Tilfælde 2: Nogle beregninger for b1,, b2, ... er udført før T Overflowet må være fra et a1,, a2, ... job b1,, b2, ... beregningerne må være foretaget før T, T’ < T Alle ikke b1,, b2, ... job, der kom før T’ må være udført før T’ Alle jobs afviklet i [T’, T] må være ready efter T’ Det total krav i [T’, T] er D og må være større end T-T’ for overflow Hvilket er det samme som U > 1 Hvilket er en modsætning til antagelsen om at theoremet var forkert og dermed er theoremet bevist for tilfælde 2 Dermed er hele theoremet bevist Earliest Deadline First: Beviser 3

  9. Afhængigheder Delte resourcer Semaphore Deadlock Intertask afhængigheder bringer systemet i en situation, hvor der ventes indbyrdes på hianden Eksempel fra den virkelige verden Deadlock kræver følgende tilstande Gensidig udelukkelse, kun én task pr. resource Hold og vent, en task låser en resource og venter på en anden No preemption, resourcer kan kun frigives frivilligt Cirkulært vent, flere tasks venter på hinanden Priority Inversion En høj prioritets task må vente på en mellem prioritets task, pga. en fælles resource der er låst af en lav prioritets task Tænk! Er dette lige så katastrofalt som en deadlock? Er prioritets invertering noget man ”ofte” ser? Kan problemet løses? Må der låses en resource mellem jobs? Afhængige tasks: Introduktion S låse forsøg S låst Preempt Aktiv task S låst S fri Tid

  10. Priority Inheritance (Prioritets arvning) En task der låser en resourcer arver en højere prioritet indtil resourcen igen er frigivet Almindelige metoder Priority Ceiling Immediate Ceiling Protocol etc. Tænk! Er dette grundprincip simpelt at implementere? Kan dette virke under dynamisk prioritering eller kræves preemtive fixed priority schedulering? Priority Ceiling Protocol (PCP) Prioritets loftet for en semaphore S er defineret til C(S) C(S) = max{prio()|  som kan låse S} Theorem (Priority Ceiling med hægtede kritiske regioner) Deadlock er ikke mulig Maksimal ventetid er lig den kritiske region for én lavere prioritets task Afhængige tasks: Problem løsning 1 Arver prioritet S låse forsøg Aktiv task S låst S fri Tid

  11. Immediate Ceiling Protocol (ICP) Priority Ceiling hvor prioriteten arves allerede når semaphoret låses Tænk! Er der nogle fordele ved Immediate Ceiling Protocol fremfor Priority Ceiling? Completion time analyse Med PCP/ICP kan der fremsættes et eksakt schedulerings kriterie, ud fra completion time B(i) er varigheden af den længste kritiske periode som kan blokkere task i Udnyttelse Liu og Leylands garantigrænse skal ændres lidt og gælde for alle tasks Tænk! Hvad er kravet til C(i)? Afhængige tasks: Problem løsning 2 Arver prioritet Aktiv task S låst S fri Tid

  12. Bevis for at ICP er deadlock fri Antag: At der er ved at opstå en deadlock mellem N tasks, og at task i holder semaphore S(i) som efterfølgende er forsøgt låst af task i-1 Observer: Sidste task j skal låse semaphore S(j), men på det tidspunkt har task j+1 allerede låst det Jfr. ICP vil task j+1 have arvet en prioritet med mindst task j’s størrelse Derfor: Vil task j+1 køre til S(j) er frigivet hvorefter task j kan overtage S(j) QED: Cirkulært vent ophæves af ICP, hvorved deadlock undgåes Omvendt bevis for maximal ventetid Antag: Tre tasks (1), (2) og (i) Med prioriteter P(2) < P(1) < P(i)Antag at (i) er blokkeret af (1)og (2), altså mere end én kritisk region Lad (2) gå ind i den kritiske region først og lad P* være det højeste prioritets loft blandt (2) delte resourcer Observer: Hvis (1) går ind i den kritiske region må P(1) > P* Fra antagelsen er (i) blokkeret og dermed er P(i) ≤ P* QED: P(i) ≤ P* < P(1) hvilket er en modsætning Afhængige tasks: Beviser

  13. Non preemptive systemer Der må aldrig låses en resource mellem to jobs Derfor vil deadlock være utænkelig i non preemptive systemer Static Resource Priority Ordering (SRPO) Anvender ICP, hvor prioriteterne kun tildeles hvis de har betydning når resourcen allokeres Ved statisk schedulering kan nedarvningen foretages før runtime Ved round-robin bør resource blokkering tages med i worst case scenarierne Beregning af completion time under EDF er ikke realistisk Tænk! Har SRPO nogle fordele frem for ICP? RTOS eksempel (Win CE) Hård real-tid Default 32 prioriteter (128 muligt) 50 us blokke, på 200 MHz x86 5 us kontekst skift Semaphorer Exit handles Hægtede interrupts Interrupt starttid 2.8 us Interrupt termineringstid 26.4 us Virtual memory skrive beskyttelse Mindste kerne ~ 350 Kb Support for SuperH, ARM, MIPS og x86 Afsluttende bemærkninger

More Related