8 Tosiaikajärjstlmät (3ov) Lunto Ajoittaminn: RM & EDF Tiina Niklanr Sisältö Johanto ja trmistöä Dynaaminn, staattinn, ylikuormitus Ajoituksn prusmntlmiä Kllo-ohjattu Esim. staattinn taulukkopohjainn, jaksollinn Prioritttiprustainn Esim. RM, EDF Ajoitttavuusanalyysi Ajoittaminn Ajoitus on totuttamisklpoinn (fasibl), jos s totuttaa kaikki sovlluksn rajoittt (constraint) anntull joukoll tapahtumia. Joukko tapahtumia on ajoitusklpoinn (schulabl), jos on olmassa vähintään yksi ajoitusalgoritmi, joka pystyy muoostamaan totuttamisklpoisn ajoituksn. Ajoitusalgoritmi on optimaalinn (optimal) ottan huomioon ajoitusklpoisuun, jos s pystyy aina löytämään totuttamisklpoisn ajoituksn tilantssa, missä jokin toinnkin algoritmi pystyy siihn. Dynaaminn vai staattinn ajoitus Dynaaminn sallii uusia töitä vaihtlvan suoritusjärjstyksn Dynaamisuun onglmana on varmnnttavuus ja nnustttavuus Staattinn kiinnittää työt töin ajoituksn tukätn Staattisuutta käyttään kriittisissä järjstlmissä, koska matmaattissti tonnttavissa Staattisn ajoituksn rajoitukst: Kskyttämätön ajoittaminn (non-prmptiv) Tapahtuman käynnistyttyä tapahtumaa i voi kskyttää (prmpt) toinn tapahtuma. Ahn ajoittaja (gry) Tapahtuman käynnistyminn stää muin, sim. almman priorittin tapahtumin ajon. Ei prosssorin jakoa Prosssori voi suorittaa vain yhtä tapahtumaa krrallaan. Ei ynaamista tapahtumin rinnakkaisuutta Tapahtumaa voiaan suorittaa vain yhllä prosssorilla krrallaan Ei tapahtuman siirtoa (migration) Tapahtuma i voi vaihtaa prosssoria kskn suorituksn. Ylikuormitus Mikä on ylikuormitus? Kun ajoittaja, s nnustavasti, i voi thä totuttamisklpoista ajoitusta Mitn toivutaan? Osa thtävistä on jätttävä suorittamatta Suoritusaikaist ajoittajat ivät slviä ylikuormitustilantista kovinkaan hyvin.
Ajoituksn prusmntlmät Kllo-ohjattu suoritus tn kllon määräämässä tahissa Ylnsä staattinn ajoitus, mutta voi olla myös staattinn vain yhn jakson ajan Prioritttipohjainn ajoitus Thtävät suorittaan vuorotlln, suoritusvuoroon valitaan s, jolla korkin priorittti Priorittti voi olla staattinn tai ynaaminn, ajoitus on ynaaminn Kllo-ohjatut ajoittajat (clockrivn schulrs) Ajoituspäätökst thään tittyinä määritltyinä aikahtkinä, jotka on tyypillissti valittu tukätn. Esimrkki: Ajoittaja hrää tityn ajan välin ja muoostaa osan ajoitukssta. T T T Staattinn taulukkopohjainn ajoitus 0 0.8 Etukätn tunntut jaksollist thtävät Ajoitustaulukko tukätn koko hyprprioill, jota sittn toisttaan T T T T T T T T T T T 0 3 6 7 8 9 0 3 6 7 8 9 0 Taulukon alkiot: (0,T),(,),(,T),(3.8,I),(,T),...,(9.8,I) Jaksollinn ajoitus Ajoituspäätökst säännöllisin väliajoin Khys f (kahn päätöshtkn väli) Khyksn koko? jakso li hyprprioi i T T T T T T T T T T T t t+f t+f t+3f... t+h Khykst i+ Khyksn koko: Alaraja - riittävän suuri Yksittäinn työ mahtuu kokonaan khyksn Tällöin i tarvita kskytyksiä (prmption) Yläraja Ajoittajan toiminnan varmistamisksi on kunkin työn aloitusajan (t ) ja aikarajan (D i ) väliin mahuttava aina kokonainn khys. f syt (p i,f) D i f max ( i ) i n Khystn määrä Khystn lukumäärän on oltava tasan jaollinn yhn jakson sisällä Khysraja ja jakson raja osuvat samaan kohtaan Jakson pituun pitää olla joku hyprprioi H:n tkijöistä (li jonkun thtävän T i jakso p i on tasan jaollinn f:llä p i / f -p i / f 0
T T T Khyksn koon määrääminn Hyprprioi H = 0 0 0.8 Alaraja: f max(,.8,, ) Kokovaihtohot,,,0,0 Yläraja: f-syt(p i,f) D i ainoastaan f= käy T T T T T T T T T T T 0 3 6 7 8 9 0 3 6 7 8 9 0 Staattinn jaksollinn ajoitus Khyksn koon määritys kaavat llä Töin ositus joskus tarkoituksnmukaista Töin sijoittlu aikajanall tämä määrää suoritusjärjstyksn Töin sijoittlusta syntyy ajoitustaulu Muutos staattisn taulukkoon vrrattuna on, ttä nyt työt alkavat khysrajoilta T T Khyksn koon määrääminn (sim ) T p 0 7 0 Hyprprioi H = 0 Alaraja: f max(,, ) Kokovaihtohot,,,0,0 Yläraja: f-syt(p i,f) D i : f jattava osiin!,3, => f= T T T T 0 3 6 7 8 9 0 3 6 7 8 9 0 T T T T Jaksollinn ajoitus (sim 3) Tapahtumat (,0.), (,.0), (0,), ja (,9) Hyprprioi =*,, 0=*, = 3 *3 siis hyprprioi H= 3 *3*=0 Tästä joukosta voiaan suoraan vikata, ttä pisin työ jouutaan sijoittamaan usampaan khyksn (pävirallinn prustlu 9 > ), koska Tavoittna on löytää sllainn khyskoko, ttä ainakin yksi khys mahtuu jokaisn työn aloituksn ja loptusrajan sisään (li pitää olla varmasti ) T T T p 0 0..0 9 H=0 3 Esimrkki 3 jatkuu Unohtaan tuo suurin htkisksi ja tutkitaan vain joukkoa (,0.), (,), ja (0,) Nyt mahollinn vaihtohto on vain Khyksn yläraja (koko 3) : *3-pyj(,3) = *3-= joka i ol pinmpi kuin Khyksn yläraja (koko ): *-pyj(,)= Siis käyttään khyksn kokoa! Khyksn koko i toimi työll (,) Esim 3: Suurimman työn osittaminn Työ (,9) täytyy jakaa osiin ja sallia sn kskyttäminn. Osituksssa pyritään mahollisimman pinn määrään paloja. Suurin osan koko on, koska s on khyksn koko. Ositus 7:ään osaan on ilmissti toimivin vaihtohto:,++0,++0,++0, 3
0 3 6 7 8 9 0 3 6 7 8 9 0 3 6 7 8 9 30 3 3 33 3 3 36 37 38 39 0 3 6 7 8 8 9 0 3 6 7 8 9 60 6 6 63 6 6 66 67 68 69 70 7 7 7 73 7 7 76 77 78 79 80 8 8 83 8 8 86 87 88 89 90 9 9 93 9 9 96 t t t3 96 97 98 99 00 0 0 03 0 0 06 07 08 09 0 3 6 7 8 9 0 t Lopullinn ajoitus Sisältö Johanto ja trmistöä Ajoituksn prusmntlmiä Kllo-ohjattu Esim. staattinn taulukkopohjainn, jaksollinn Prioritttiprustainn Rat-monotonic, Dalin-monotonic Earlist-alin-first, Last-slack-tim Ajoitttavuusanalyysi Prioritttiprustaist ajoittajat Ajoituspäätökst thään tittyjn tapahtumin hrättn prustlla Tapahtuma tul järjstlmään Prosssori tul vapaaksi Prosssori on kiirinn aina, kun on työtä thtäväksi. Esimrkkjä: FIFO, LIFO, EDF Prioritttiprustaistn luokittlu Staattinn priorittti (skä thtävä ttä työ) Rat-monotonic (RM) Dalin-monotonic (DM) Dynaaminn priorittti EDF - mutta yksittäisllä työllä staattinn LST - skä työllä ttä thtävällä ynaaminn Rat-monotonic (RM) Käyttää staattisia prioritttja Priorittti määräytyy tapahtuman taajuusta (frquncy) Tapahtumat, joilla on lyhymmät jaksot saavat korkamman priorittin. Torttissti hyvin tutkittu ( prosssorill) Riittävä ajoitttavuuststi voiaan suorittaa linaarisssa ajassa (tityin hoin). Tarkka ajoitttavuuststi on NP-täyllinn onglma. Optimaalinn vrrattuna kaikkiin staattista prioritttia käyttäviin mntlmiin, jos aikaraja on sama kaikilla tapahtumilla. Rat monotonic Ajoittaa suoritusvuoroon aina sn, jonka priorittti (li taajuus) on korkin T T 0 0 3 6 7 8 9 0 3 6 7 8 9 0
Rat monotonic Ajoittaa suoritusvuoroon aina sn, jonka priorittti (li taajuus) on korkin Rat monotonic Ajoittaa suoritusvuoroon aina sn, jonka priorittti (li taajuus) on korkin T T 0 Ensin sijoitllaan T T T 0 Ensin sijoitllaan T Sittn T vapaisiin kohtiin 0 3 6 7 8 9 0 3 6 7 8 9 0 0 3 6 7 8 9 0 3 6 7 8 9 0 Rat monotonic Ajoittaa suoritusvuoroon aina sn, jonka priorittti (li taajuus) on korkin T T 0 Ensin sijoitllaan T Sittn T vapaisiin kohtiin Lopuksi 3 3 3 3 0 3 6 7 8 9 0 3 6 7 8 9 0 Rat monotonic Ajoittaja toimissaan valits kullakin tapahtumahtkllä suorituksn sn, jonka priorittti (li taajuus) on korkin T T p/ 0 Esim. ajanhtkllä 6: kun T tul suorituksn, s kskyttää T:n suorituksn. 3 3 3 3 0 3 6 7 8 9 0 3 6 7 8 9 0 Dalin monotonic (DM) Algoritmi kutn rat monotonic, mutta Priorittiksi asttaan työn suhtllinn aikaraja, jolloin s, jonka aikaraja on pinin pääs nsin suorituksn. RM ja DM ovat inttist, jos kaikkin tapahtumin aikarajat ovat niin jaksojn mittaist. Esim tapahtumajoukko T (0,0,,00), T (0,6.,0,0) ja T 3 (0,,,0) on ajoitttavissa DM, mutta i RM-mntlmällä Earlist-alin-first (EDF) EDF (Earlist Dalin First) algoritmi käyttää ynaamista prioritttia Työ, jonka absoluuttinn aikaraja on lähinnä saa korkimman priorittin. Torttissti hyvin tutkittu ( prosssorill) Täsmällinn ajoitttavuuststi voiaan suorittaa linaarisssa ajassa (tityin hoin). EDF on optimaalinn vrrattuna kaikkiin ynaamista prioritttia käyttäviin mntlmiin, kun yksi prosssori, kskyttävä suoritus sallitaan ja i kilpailua rsurssista
Esim: RM vs EDF (,) (7,) LST Last Slack Tim LST on EDF:ll kääntinn; optimaalinn samoin rajoituksin Ajoittaan vuoroon s, joka voi oottaa huonoimmin Vaatii tarkan tion lasknnan kstosta joka htki laskmaan kulloisnkin viivyttlyajan aina kaikill töill Ajoitttavuusanalyysi Tavoittna slvittää, voiaanko annttu joukko tapahtumia ajoittaa anntulla suoritusaikaislla ajoittajalla sitn, ttä kaikki tapahtumin ilmntymät päättyvät aikarajoihin mnnssä. Ajoitttavuusanalyysi tyypillissti sisältää ajoitttavuuststin, joka on sovitttu käytttäväll ajonaikaislla ajoittajall. Ajoitttavuuststi Ajoitttavuuststi on riittävä, jos s positiivislla vastaukslla osoittaa, ttä joukko tapahtumia on varmasti ajoitttava. Ajoitttavuuststi Ajoitttavuuststi on välttämätön, jos s ngatiivislla vastaukslla osoittaa, ttä joukko tapahtumia i varmasti ol ajoitttava. Ajoitttavuuststi Täsmällinn ajoitttavuuststi on skä riittävä ttä välttämätön. Jos vastaus on positiivinn, tapahtumajoukko on varmasti ajoitttava ja jos vastaus on ngatiivinn tapahtumajoukko i varmasti ol ajoitttava. 6
Ajoitttavuuststin mntlmiä Prosssorin käyttöastn analyysi prosssoriajan (murto-)osa, joka käyttään tapahtumajoukon suorituksn i saa ylittää tittyä rajaa. Sopii staattisn/ynaamisn priorittin ajoittajiin yksiprosssorijärjstlmässä. Vastausaika-analyysi Jokaisn tapahtuman pahimman tapauksn suoritusaikaa vrrataan tapahtuman aikarajaan Sopii staattisn priorittin ajoittajiin (kutn RM). Prosssorin vaatimusanalyysi Yhtnlaskttu prosssointivaatimus tapahtumajoukoll tityssä aikavälissä i saa ylittää aikaväliä. Vain EDF-mntlmäll yksiprosssorijärjstlmässä. Prosssorin käyttöast Käyttöast U joukoll prioisia tapahtumia on s murto-osa prosssorikapasittistä, joka käyttään tapahtumin suorituksn. Koska i /p i on s osa, joka käyttään yhn tapahtuman T suorituksn, n:n tapahtuman yhtnlaskttu käyttöast on: n i U = i = p i Ajoitttava käyttöast (schulabl utilization) Ajoitusmntlmä pystyy ajoittamaan, minkä tahansa jaksollisn työjoukon, kunhan niin yhtnlaskttu käyttöast on mntlmän ajoitttavaa käyttöasttta pinmpi (tai yhtä suuri). Kaikill ajoitusmntlmill voiaan laska ajoitttava käyttöast, jolla saaaan tuo yo. ta. S on riittävä hto, mutta i aina välttämätön. Ajoitttavuuststaus (EDF): Käyttöastn avulla Riittävä ja myös välttämätön hto EDF (ja LST) ajoituksll: U EDF n i = min( pi, i) i= HUOM: Jakajassa on joko jakson pituus tai työn suhtllinn aikaraja jakson alusta Ajoitttavuuststaus (RM) käyttöastn avulla Riittävä hto RM (ja DM) ajoituksll on: URM n( / n Konsrvatiivinn raja saaaan: lim n( n / n ) ) = ln 0.693 Esimrkki: ajoitttavuuststi Thtäväjoukko (3,), (,.), (7,.) ja (9,0.) Käyttöast /3 +./ +./7 +0./9 = 0.8 0.8 < => On ajoitttavissa EDF:llä 0.8 >( / -)= 0.77 => RM? hki kokillaan (tai thään toinn analyysi) T T T 3 7 9.. 0. 7
(3,), (,.), (7,.) ja (9,0.) 3 7 3 79 3 7 9 3 9 3 7 3 7 3 9 3 7 0 3 6 7 8 9 0 3 6 7 8 9 0 3 3 3 7 9 3 3 3 7 93 9 3 7 3 9 6 7 8 9 30 3 3 33 3 3 36 37 38 39 0 3 6 7 8 3 7 3 7 3 7 3 7 9 3 3 3 3 8 9 0 3 6 7 8 9 60 6 6 63 6 6 66 67 68 69 70 7 7 3 3 3 3 3 3 3 3 7 73 7 7 76 77 78 79 80 8 8 83 8 8 86 87 88 89 90 9 9 93 9 9 96 3 3 3 3 3 3 JNE... 96 97 98 99 00 0 0 03 0 0 06 07 08 09 0 3 6 7 8 9 0 RM ajoitus (alkuosa) Aikavaatimusanalyysi (Tim-Dman Analysis) Tarkastllaan yksi krrallaan töitä T i korkimmasta priorittista alimpaan wi( t) i = i + k= t k, pk kun 0 < t pi Työt voiaan ajoittaa, kun i wi( t) t, jollkin t i pi T (3,) T (,.) (7,.) ja T (9,0.) Maksimivastajat (kuvasta, mrkitty pinllä pallolla) T T..7 T 9 Aikavaatimusanalyysi Kuva 6-9: saman työt kuin llisssä simrkissä Analyysin onglma: Suorituksn styminn Almman priorittin työ voi Estää kskyttämisnsä (sim. systmikutsu) Käyttää poissulkvasti jattua rsurssia Korkamman priorittin työ joutuu oottamaan => ns. priorittin kääntyminn Esttty korkamman priorittin työ saattaa myös ylittää aikarajansa ootuksn vuoksi Siksi ajoitttavuusanalyysissä tarkastltava myös matalamman priorittin töin kskyttämättömin suoritusjaksojn kstoja Estyminn analyysin kannalta Korkamman priorittin työn voi stää vain yksi almpi nnn sn pääsyä suorituksn Jotn lisätään arviossa korkamman priorittin työn suoritusaikaan almpin stoaikojn maksimi. Työn pisin stymisaika (blocking tim) on tällöin bi( np) = max θ k i+ k n Kun työt järjsttty prioritttin mukaan ja i on yhn ston ksto Estyminn ja EDF TyöJ k (, k ) voi stää työtä J i (, i ) vain jos k > j Ainoastaan tällöin sn priorittti on pinmpi li aikaraja on myöhäismpi. Toisaalta sn on täytyy olla jo suorituksssa, jotta stäminn olisi mahollista, li sn aloitusajan täytyy olla aikaismpi. U EDF n i = min( pi, i) bi + min( pi, ) i= i 8
Prioritttiluokkin määrä Tasan Prioritttin jako Säilyttään suhtt Analyysit olttavat äärtöntä määrää prioritttja Samalla arvolla i ol riarvoisia töitä Käytännössä prioritttiluokkin määrä rajoitttu joskus 8, usin 3, 7 tai. Mitn työt sijoitllaan rajallisn prioritttiavaruutn? jataan tasan säilyttään suhtt 3 6 7 8 9 3 6 7 8 9 (+)/ = / (+)/0 = / 0 0 Yhtnvtona: Kllo-ohjatut staattist ajoitukst Hyöyt: Ei tarvita rinnakkaisuun hallintaa riksn Voiaan määrittää ja arvioia tukätn Haitat: Kaikkin töin aloitusajat on kiinnitttävä tukätn Koko työkuorma on tunnttava nnakkoon, i salli ynaamisuutta Tuk suhtllisn huonosti skakuormia Erinomainn, jos yo. haitat ivät ol st Yhtnvtona: Prioritttipohjaist ajoitukst Algoritmit: RM, DM, EDF ja LST Ajoitttavuuststi: EDF: lasknnallinn käyttöast RM: lasknnallinn käyttöast 0.693 RM:n tapauksssa hto on riittävä, mutta i välttämätön EDF:ll hto on skä riittävä ttä välttämätön Mitä voi mnnä piln? Rsurssit, kriittist alut, ootus Priorittin kääntyminn, lukkiumat Kskytymättömät kriittist alut Ootusonglma (Blocking problm) 9
Priorittin kääntyminn (Priority invrsion) Mars Pathfinr Laskutui.7.997 Kohtaa ohjlmisto-onglmia (softwar glitchs). Pathfinr kok toistuvia RESET:jä mtorologisn tion kruussa. Priorittin kääntymisstä aihutuvia ajoitustn ylityksiä. http://rsarch.microsoft.com/~ mbj/mars_pathfinr/mars_pat hfinr.html Priorittin kääntyminn Mars Pathfinr Priorittin kääntymisn välttäminn Kskytymättömät kriittist alut Luovat tarptonta ootusta. Käyttöklpoisia vain lyhyill kriittisill aluill. Sisääntuloprotokollia kriittisll alull Priorittin printä (Priority Inhritanc Protocol). Priorittin kattomntlmä (Priority Ciling Protocol). 0