Tosakajärjestelmät Luento : Resurssen hallnta ja prorteett Tna Nklander Jaetut resursst Useat tapahtumat jakavat ohjelma-/lattesto-olota, jossa kesknänen possulkemnen on välttämätöntä. Ratkasuja: Ajonakanen resurssen käyttösäännöstö, jolla konflktt ratkastaan ajonakasest käyttäen dynaamsa tapahtumen prorteetten muutoksa. Etukäteen muodostettu resurssen ajotus, joka muodostaa e päällekkäsen tapahtumen suortuskkunan estäen ajonakaset konflktt. Jaettujen resurssen vuorottajan tehokkuus? When there are mutual excluson constrants n a system, t s mpossble to fnd an optmal on-lne schedulng algorthm (unless t s clarvoyant). (Mok, 98) The problem of decdng feasblty for set of perodc tasks whch use semaphores to enforce mutual exluson s NP-hard. (Mok, 98). Mtä vo mennä peleen? Resursst, krttset alueet, odotus Prorteetn kääntymnen korkeamman prorteetn työ joutuu odottamaan alemman prorteetn työtä Lukkumat (deadlocks) kaks tehtävää odottaa tosen varaamaa resurssa Irrottamattomat krttset alueet resurssn käyttäjää e vo srtää pos suorttmelta Resurssklpalu ja estymnen Resurssen käyttö usen possulkevaa, el van varaaja saa käyttää, muut odottavat Yleensä ensmmäsenä pyytänyt saa resurssn Merktään tehtäven krttset alueet seuraavast [R, ;e], mssä R on resurss, on haluttu lukumäärä ja e on krttsen alueen kesto Esm: [X,; [Y,; ]][Z,; ] Odotusongelma (Blockng problem)
Estymnen ja odotuksen kesto Ilman klpalua korkeamman prorteetn työ ohttaa alemman prorteetn työn, mutta Jos alemmalla on hallussaan jaettu resurss on korkeamman prorteetn työn odotettava Kunka kauan? rajotettu aka van resurss käytön verran rajattomast akaa e voda ennustaa Ns. prorteetn kääntymnen Prorteetn kääntymnen (Prorty nverson) Prorteetn kääntymsen välttämnen Irrottamattomat krttset alueet Luovat tarpeetonta odotusta. Käyttökelposa lyhylle krttslle aluelle. Varausprotokolla krttselle alueelle Prorteetn perntä (Prorty Inhertance Protocol). Prorteettkatto (Prorty Celng Protocol). Irrottamattomat krttset alueet (nonpreemptve crtcal sectons, NPCS) Suortetaan van stä tehtävää, joka käyttää jotan jaettua resurssa, muut odottavat Korkemman prorteetn maksmodotus kestää muden psmmän yhtenäsen krttsen alueen suortuksen ajan b( rc) = max ( ck) + k n Hyödyt Irrottamattomat krttset alueet yksnkertanen e rnnakkasuuden hallntaa e lukkudu Hatat Korkemman prorteetn työ saattaa joutua odottamaan myös sellasta alemman prorteetn työtä, joka e klpale sen kanssa samosta resurssesta Job J r 7 0 Esmerkken työkuorma e r alotushetk e suortusaka prorteett krtt. alueet [Shaded;] [Black;] [Shaded; [Black;.] ] [Black;] J. Shaded Black
Prorteetn perntä Lu kuva 8-7 Job NPCS krtt. alueet [R;] [R;] pror. perntä Idea: Jos tapahtuma T estää (blocks) yhden ta useamman korkeamp prorteettsen tapahtuman etenemsen, tapahtuma T per välakasest korkemman estetyn tapahtuman prorteetn. Hyödyt Estää prorteetltaan kesktasoa olevan tapahtuman keskeyttämästä tapahtumaa T. Hatat Prorteetn perntä vo aheuttaa lukkuman Lnktetty odotus (chaned blockng) Prorteetn perntä Prorteetn pernnän säännöt Vuorotus vuorotetaan rrottavast ja prorteett-pohjasest hetkellsen prorteetn perusteella Varaus Työ saa resurssn R jos R on vapaa, muuten joutuu odottamaan Prorteetn perntä Kun työ J h joutuu odottamaan resurssa R, resurssn varannut työ J l per J h :n prorteetn (t) kunnes vapauttaa R:n. Vapautuksen yhteydessä J l :n prorteetks palautetaan varaushetken prorteett (t ) Job r e 7 J 0 Job krtt. alueet [Sh;] [Bl;] J [Sh; [Bl;.] ] [Bl;] Lu Kuva 8-8 Prorteettkatto Prorteettkatto Idea Jokaselle resursslle asetetaan prorteettkatto (R ) yhtä suureks kun sen korkemman tapahtuman prorteett, joka tarvtsee tätä resurssa ja ss saa lukta resurssn. Tapahtuma T saa srtyä krttselle alueelle ja varata resurssn van, jos sen prorteett on korkeamp kun kakken muden samanakasten tapahtumen sllä hetkellä varaamen resurssen prorteettkatot (t). Jos tapahtuma T estää yhden ta useamman korkeamp prorteettsen tapahtuman, se välakasest per korkemman estetyn tapahtuman prorteetn.
Prorteettkatto säännöt Vuorotus vuorotetaan rrottavast ja prorteett-pohjasest hetkellsen prorteetn perusteella Varaus Työ J saa resurssn R van jos R on vapaa ja J:n prorteett on korkeamp kun (t), muuten joutuu odottamaan Prorteetn perntä kuten aemmn, J per korkemman odottajan prorteetn kunnes J on vapauttanut kakk resursst, joden prorteettkatto on sama ta korkeamp kun pertty prorteett. Esmerkk: prorteetn katto Job r e 7 J 0 Job krtt. alueet [Sh;] [Bl;] J [Sh; [Bl;.] ] [Bl;] Lu kuva 8-0 Hyödyt Prorteettkatto Lukkutumaton: prorteettkatot estävät lukkumat E lnktettyä odotusta: korkemman prorteetn tapahtuma vo estyä korkentaan yhden krttsen alueen keston ajaks. Hatat? Lukkutumsten esto? Resurssella ja prosessella sama prorteettjärjestys Ajanhetkellä t, työn J prorteett (t) vo olla adost korkeamp kun senhetknen prorteettkatto (t) van kun J e ao varata ja käyttää mtään tällä hetkellä varattuja resursseja ja J:tä korkeamp prorteettset työt evät myöskään ao käyttää tällä hetkellä varattuna oleva resursseja Nästä seuraa, että J e vo joutua lukkumaan mnkään resursseja jo varanneen työn kanssa Kattoprorteett Votasnko prorteetn katto menetelmää yksnkertastaa? Entä jos tehtävllä on yhtenen suortusakanen pno ja van päällmmänen on suortuksessa? Työn rrottava (preempt) uus työ sjottuu pnossa rrotetun työn päälle Kattoprorteett (ta pnoperustanen kattopror.) Uus menetelmä, joka hyödyntää tätä deaa Rajotus: työt evät saa keskeyttää tseään Pnoperustanen kattoprorteett (Stack-Based Prorty-Celng protocol) Nykyhetken kattoarvon pävtys Arvo pävtetään ana resurssn varauksen ja vapautuksen yhteydessä Jos kakk resursst vapaat, nn arvo on. Vuorotussääntö: Suortukseen saapuvan työn täytyy odottaa, kunnes sen prorteett on kattoarvoa suuremp Työt vuorotetaan käyttäen rrottavaa prorteettperustasta menetelmää Varaussääntö: Suortuksessa oleva työ vo ana varata pyytämänsä resurssn
Job r e 7.8 J 0 Job krtt. alueet [Sh;] [Bl;.] J [Sh; [Bl;.] ] [Bl;] Lu kuva 8-7 Esmerkk Kattoprorteett (Celng- Prorty) Tom kuten pnoperustanen kattopror. Vuorotussääntö Työtä suortetaan sen alkuperäsellä prorteetlla, jos työ e ole varannut mtään resurssa. Saman pron työt FIFO-peraatteella Mnkätahansa resurssn varanneen työn tlap. prorteett on yhtä suur kun sen varaamen resurssn suurn kattoprorteett Varaussääntö Suortuksessa oleva työ vo ana varata pyytämänsä resurssn Irrotusten katto Aemmat menetelmät (prorteetn perntä, prorteetn katto ja kattoprorteett) soveltuvat parhaten kntelle prorteetelle Käytetään rrottamsa prorteetten sjaan Taustana Korkeamman prorteetn työ vo haluta matalamman varaamaa resurssa van, jos se saa rrottaa suortuksessa olevan matalamman Tetylle dynaamsta prorteetta käyttävlle järjestelmlle (esm. takarajohn perustuvat) on mahdollsta etukäteen selvttää jaksollsten töden mahdollset rrotustlanteet. Irrotustaso (preempton level) Merktään työn J rrotustasoa Okeellsuusehto: Jos on korkeamp kun k ja r >r k, nn on korkeamp kun k Tavotteena on ss saada järjestys töden rrotustasojen vällle sten, että korkeampprorteettnen työ e vo rrottaa sellasta työtä, jolla on varattuna korkeamman haluama resurss Irrotustaso esmerkk Esm. työ varaa resurssn Black akaykskön ajaks Lu kuva 8-9 Irrotusten katto Vuorotus ja perntäsäännöt kuten prorteetn katto menetelmässä Varaussäännöt Pyydetty resurss on varattuna, työ odottaa Resurss on vapaa Työ saa resurssn, jos työn rrotustaso (t) on korkeamp kun senhetknen rrotuskatto (t) Jos työn rrotustaso e ole korkeamp, mutta työllä on jo hallussaan resurss, jonka rrotuskatto on juur tuo (t), nn työ saa resurssn, muuten joutuu odottamaan
Useta resurssykskötä Entä jos samanlasa resursseja on useta? Laadtaan resursslle kattoarvojen vektor Merktään (R,k), mssä k, ja k kuvaa vapaden resurssyksköden määrää Yhden resurssn säännöstöt ptää van muokata ottamaan huomoon monresurssn kattoarvo Lu kuva 8- Esmerkk useta resurssykskötä (nyt kaaren numero kuvaa varattaven yksköden määrää) Prorteetn perntä? Mten päätetään mkä usesta resurssykskötä varaavsta alemmsta töstä saa perä korkeamman prorteetn? Esmerkk useta resurssykskötä Perntäsääntö: Prorteetn per korkemman prorteettkaton töstä se, jonka oma alkuperänen prorteett on korken Lu kuva 8- Kästellyt menetelmät Irrottamaton krttnen alue (nonpreemptve crtcal secton) Prorteetn perntä Prorteetn katto Kattoprorteett Irrotusten katto
Lsämateraal (luvattu laskaressa ke..) Estymsajan laskenta resurssklpalun ja prorteetten perusteella (krjan luku 8..) Ajotettavuusanalyys Knteät prorteett (RM): Akavaatvuus-analyys ja estymsaka Perusverso lman estymstä luku.. Perusverso ja estymnen luku.8. Dynaamset prorteett (EDF) Ajotettavuusanalyys käyttöasteen perusteella Tähän lsätään estymsen vakutus (luku.8. kaava.) Estymnen ja prorteetn perntä sekä prorteettkatto Van alemman prorteetn työ vo estää resurssklpalun kautta. Sks taulukosta Es e tarvtse täyttää vasenta alakolmota. Työn maksmestymsaka on stä vastaavan rvn maksmarvo. Estävät (alemp pro) työt muodostavat sarakkeet. Työ vo Estää suoraan kun se klpalee samasta resursssta Estää prorteetn pernnällä kun se varauksen kautta per ylemmän prorteetn Taulukon täyttämnen: Vasen osa (Suoraan) nämä pomtaan tedosta Okea osa (Pernnällä) vodaan päätellä vasemman sarakkeen perusteella Job J J Estymnen ja prorteetn perntä sekä prorteettkatto krtt. alueet [X;0] [Y;] [X; [Y;]] [Y;] [Z;][X;] J Es J X Y Z Estää suoraan J J J Prorteetn pernnällä J J HUOM: käyttää X ja Y resursseja yhtä akaa, kun J käyttää Z ja X resursseja peräkkän. (Katso hakasulkuja) Akavaatvuusanalyys (RM) ja estymsaka Kuhunkn työhön kohdstuva estymsaka vakuttaa van shen tseensä. Se tulee ss työn oman suortusajan lsäks tuohon kaavaan. Korkeamp prorteettset työt keskeyttävä työn van oman suortuksensa ajaks. Snä e enää tarkastella nhn kohdstuvaa estymstä HUOM. Työt jaksonptuuden mukaan prorteettjärj. t w () t = e + b + ek, k = pk akavälllä 0 < t mn ( D, p ) Ajotettavuusanalyys (EDF) ja estymsaka EDF:llä ajotettavlle tölle estymnen määrätään samon kun knteän prorteetn tehtävlle, mutta prorteettna käytetään suhteellsta akarajaa D. Krjan teoreema.8: EDF skedulonnssa työ J k (suht. akaraja (D k ) vo estää työn J (suht. akaraja D ), van jos D k > D J k vo estää van, jos prorteett on penemp, el kun d k >d Estääkseen J k :n ptää olla jo suortuksessa el r k < r Molemmat epäyhtälöt vovat päteä samanakasest van, kun D k > D Ajotettavuusanalyys (EDF) ja estymsaka Koko tehtäväjoukko on ajotettavssa, jos mnkään tehtävän estymsaka e aheuta kokonaskuorman päällä ylkuormtusta! Estäjänä vovat toma van työt, joden suhteellnen akaraja on suuremp. b U + mn k, mssä U = ( ) D, p mn( D p ) n e k= k, k 7