6. Luento: Skedulointi eli Vuoronnus. Tommi Mikkonen, tommi.mikkonen@tut.fi



Samankaltaiset tiedostot
Arto Salminen,

6. Skedulointi eli vuoronnus

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

Palvelut. Sulautetut järjestelmät Luku 2 Sivu 1 (??) Sulautetut käyttöjärjestelmät

Käyttöjärjestelmät: poissulkeminen ja synkronointi

Ongelma(t): Jotta tietokone olisi mahdollisimman yleiskäyttöinen ja suorituskykyinen, niin miten tietokoneen resurssit tulisi tarjota ohjelmoijalle,

OHJ-4301 Sulautettu Ohjelmointi

4. Luento: Prosessit ja säikeets. Tommi Mikkonen,

Algoritmit 1. Luento 3 Ti Timo Männikkö

VUOROTTAMINEN YKSI CPU

Yleistä. Esimerkki. Yhden palvelimen jono. palvelin. saapuvat asiakkaat. poistuvat asiakkaat. odotushuone, jonotuspaikat

9. Luento: Ohjelmistotyö. Tommi Mikkonen,

Tosiaikajärjestelmät Luento 5: Resurssien hallinta ja prioriteetit

2 Konekieli, aliohjelmat, keskeytykset

OHJ-4301 Sulautettu Ohjelmointi

Tuotannon jatkuva optimointi muutostilanteissa

VUOROTTAMINEN SMP JA REAALIAIKAJÄRJESTELMÄT Linux, W2000

Moniprosessorijärjestelmä

VUOROTTAMINEN: SMP ja Reaaliaikajärjestelmät Linux, W2000

LUENTO 8. u erillisten koneiden ryväs (cluster) u hajautettu järjestelmä (distributed system) u erilliset I/O-prosessorit

Agenda. Läpäisyvaatimukset Henkilökunta Luennot ja aikataulu Kurssimateriaali Harjoitustyöt Demoharjoitus Tentti ja arvostelu Muuta?

Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä.

(p j b (i, j) + p i b (j, i)) (p j b (i, j) + p i (1 b (i, j)) p i. tähän. Palaamme sanakirjaongelmaan vielä tasoitetun analyysin yhteydessä.

14. Luento: Kohti hajautettuja sulautettuja järjestelmiä. Tommi Mikkonen,

Algoritmit 1. Luento 4 Ke Timo Männikkö

Moniprosessorijärjestelmä

Skedulerisimulaattorin implementointi fysiikkatöille ja sen matemaattinen validointi

Algoritmit 1. Luento 1 Ti Timo Männikkö

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Liite 1. Projektin tulokset (Semaforit Javassa) Jukka Hyvärinen Aleksanteri Aaltonen

5. Rinnakkaisuus ja jako prosesseihin

Tuotantoprosessin optimaalinen aikataulutus (valmiin työn esittely)

Tietorakenteet ja algoritmit

Arto Salminen,

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

METEORIEN HAVAINNOINTI III VISUAALIHAVAINNOT 3.1 YLEISTÄ

Tietorakenteet ja algoritmit - syksy

OMAN VUORON ODOTTAMINEN. Materiaali 2018 Viitottu Rakkaus Kuvat MyCuteGraphics.com Diapohjat SlidesCarnival.

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

Sisällys. Kaavioiden rakenne. Kaavioiden piirto symboleita yhdistelemällä. Kaavion osan toistaminen silmukalla. Esimerkkejä. 2.2

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

Ongelma(t): Jotta tietokonetta voitaisiin käyttää monipuolisesti ja mahdollisimman yksinkertaisesti kaikkiin sille soveltuviin käyttötarkoituksiin,

Monitorit. Monitori Synkronointimenetelmiä Esimerkkejä. Andrews , Stallings 5.5

Monitorit. Tavoite. Monitori Synkronointimenetelmiä Esimerkkejä. Andrews , Stallings 5.5. Minimoi virhemahdollisuuksia

Simulointi. Varianssinhallintaa Esimerkki

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Kombinatorinen optimointi

Oppimistavoitteet kurssilla Rinnakkaisohjelmointi

Sisältö. Tosiaikajärjestelmät: Luento 3 Epäsäännöllisten töiden ajoitus. Sporadisten ja jaksottomien ajoitus Kellopohjainen ajoitus jaksollisilla

Tosiaikajärjestelmät: Luento 3 Epäsäännöllisten töiden ajoitus

Rinnakkaisuuden hyväksikäyttö peleissä. Paula Kemppi

Algoritmit 2. Luento 14 Ke Timo Männikkö

4 Tehokkuus ja algoritmien suunnittelu

Osio 2: Luennot 5-8 Muistinhallinta

Ongelmakenttä. Rinnakkaisuuden tarve. Kommunikointiin tarvitaan. Ympäristö Suunnittelun yksinkertaistaminen Suorituskyky Luotettavuus

Matemaattisen analyysin tukikurssi

REAALIAIKAJÄRJESTELMÄN MALLINTAMINEN UML KUVAUSMENETELMÄN AVULLA

Liite 1. Laajennettu Eukleideen algoritmi suoraviivainen tapa

Ongelmakenttä. Yhteenvetoa. Ratkottava. Mekanismit. Lukkomuuttujat. Lukkomuuttujat, Spin Locks. Rinnakkaisuuden tarve. Kommunikointiin tarvitaan

Yhteenvetoa. Ongelmakenttä

Nyt ensimmäisenä periodina (ei makseta kuponkia) odotettu arvo on: 1 (qv (1, 1) + (1 q)v (0, 1)) V (s, T ) = C + F

811312A Tietorakenteet ja algoritmit, , Harjoitus 3, Ratkaisu

Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS

Algoritmit 1. Luento 2 Ke Timo Männikkö

GREDDY PROFEC B SPEC II säätäminen

Käyttöjärjestelmät. Teemu Saarelainen Tietotekniikka

Luentorunko 12: Lyhyen ja pitkän aikavälin makrotasapaino, AS

Tietorakenteet ja algoritmit

Ohjelmoinnin perusteet Y Python

Mukautuvat järjestämisalgoritmit

käyttötapaukset mod. testaus

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta

Sisältöä SÄIKEET, SMP

Algoritmit 2. Luento 2 Ke Timo Männikkö

Algoritmit 2. Luento 7 Ti Timo Männikkö

Skedulointi, kuormituksen tasaus, robotin navigaatio

Tieto- ja tallennusrakenteet

13 Lyhimmät painotetut polut

Johdatus verkkoteoriaan 4. luento

Algoritmit 1. Luento 13 Ti Timo Männikkö

Sovellettu todennäköisyyslaskenta B

Algoritmit 2. Luento 2 To Timo Männikkö

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi.

Hans Baumgartner nimi nimi nimi nimi. Reaaliaikakäyttöjärjestelmät

11. Javan toistorakenteet 11.1

Algoritmit 1. Luento 7 Ti Timo Männikkö

Onnistut yrittämässäsi, mutta jokin täysin epäolennainen. vikaan.

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta

Intel Pentium Pro -prosessori. tietokonearkkitehtuurit, syksy -96 Ari Rantanen

Stabilointi. Marja Hassinen. p.1/48

Tosiaikajärjestelmät Luento 9: Moniprosessorijärjestelmät

kertaa samat järjestykseen lukkarissa.

Ohjelmoinnin peruskurssi Y1

Kiertokysely. Sulautetut järjestelmät Luku 2 Sivu 1 (??)

Algoritmit 2. Luento 1 Ti Timo Männikkö

Algoritmit 1. Luento 10 Ke Timo Männikkö

f(n) = Ω(g(n)) jos ja vain jos g(n) = O(f(n))

Matemaattisen analyysin tukikurssi

Integrointialgoritmit molekyylidynamiikassa

FyKe-Mopin opettajanohje

Transkriptio:

6. Luento: Skedulointi eli Vuoronnus Tommi Mikkonen, tommi.mikkonen@tut.fi

Agenda Peruskäsitteet Skedulointialgoritmeja Reaaliaikajärjestelmien skedulointi Skeduloituvuuden analysoinnista Yhteenveto

Peruskäsitteet Skedulointi ~ mikä työ/tehtävä/prosessi valitaan suoritukseen seuraavaksi Skedulointimenetelmä/algoritmi suorittaa valinnan Perustuvat yleensä prioriteetteihin, jotka puolestaan voidaan johtaa järjestelmän ominaisuuksista, laskenta-ajasta, määräajasta, jne. Pehmeä vs. kova reaaliaika skeduloinnin kannalta Kerran tehtävät (sporadic) työt vs. toistuvat (periodic) työt Jitter ~ huojunta siinä milloin työt valmistuvat/voidaan aloittaa jne

Irroittamaton skedulointi Suorituksessa oleva prosessi säilyy samana kunnes se päästää jonkun toisen prosessin ajoon Päästäminen voi olla eksplisiittistä (esim. yield) tai implisiittistä (esim. palvelupyyntö lisälaitteelta) Toteutusmielessä varsin yksinkertainen Ei poissulkemisongelmaa (ajossa niin kauan kun saapuu paikkaan jossa voi hyvin keskeyttää suorituksen; munata toki voi!) Yksinkertaisimmillaan yksi säie, joka kutsuu tarvittavia rutiineja prioriteettien mukaisessa järjestyksessä

Irroittava skedulointi Suorituksessa oleva prosessi voidaan vaihtaa ilman sen antamaa lupaa Käytännössä tällöin vaihtoon voi johtaa lisäksi jokin prosessiin liittymätön laitteistotason tapahtuma (esim. (kello?)keskeytys) Monimutkaisempi; prosessi voi vaihtua missä kohdassa tahansa; tarvitaan poissulkemista jne. Prosessi ei edes välttämättä itse tiedä tulleensa keskeytetyksi välillä Jos mitään ei mainita, yleensä käytetään irroittavaa skedulointia

T1 Aktivoituminen T2 T1 Irroittamaton skedulointi T2 T1 Irroittava skedulointi T2

Skedulointialgoritmeja First In, First Out, jono Round Robin, kiertovuorottelu Fixed Priority, kiinteä prioriteetti Dynamic Priority, vaihteleva prioriteetti Shortest Remining Time, lyhin ajoaika ensin Earliest Deadline First, aikaisin määräaika ensin

FIFO First In, First Out Ehkä suoraviivaisin algoritmi; irroittamaton toteutus riittää yleensä aivan mainiosti Käytännössä harvinainen prosessien, säikeiden tai tehtävien yhteydessä suoraan Vaikuttaa usein epäsuorasti Semaforeihin liittyvät jonot Viestinvälitysjono Oheislaitteille lähetettävät tehtävät

RR Round-Robin ~ kiertovuorottelu Kuten FiFo, mutta annetaan jokaiselle prosessille vuorollaan viipale suoritusaikaa Puhtaimmillaan ei lainkaan prioriteetteja; käytännön toteutuksissa usein prioriteetit mukana tavalla tai toisella

FP Fixed Priority Suorittaa aina sitä prosessia, jolla on korkein prioriteetti niiden prosessien joukosta, jotka ovat valmiina suoritukseen Skedulointimenetelmä ei vaikuta prioriteetteihin! Yleensä irroittava (oikeastaan siis FPPE), mutta ilman kellokeskeytyksiä ja automaattista uudelleenskedulointia myös irroittamaton mahdollinen Soveltuu hyvin reaaliaikajärjestelmiin; jopa inkrementaalinen kehitys Matalaprioriteettisten tehtävien lisäys helppoa

Vaihteleva prioriteetti Ei yksi menetelmä, vaan joukko erilaisia menetelmiä Prioriteetti muuttuu ajan funktiona Säikeen valinta kuten Fixed Priority kun prioriteetit laskettu Käytössä esim: Perinteinen Unix (I/O-sidonnaisten säikeiden prioriteetin nosto; nukkuvat kumminkin melkein koko ajan) Windows NT-perhe (prioriteetti kasvaa wait-tilasta poistettuttaessa ja pienenee kun ajoaika loppuu)

Toteutusesimerkki Jokaiseen säikeeseen lisätään kellokeskeytyslaskuri Kellokeskeytyksen tullessa kasvatetaan aktiivisena olleen prosessin laskuria Kerran sekunnissa käydään kaikki säikeet lävitse ja lasketaan uusi prioriteetti lisäämällä perusprioriteettiin laskurin arvo ja nollataan laskuri

SRT Shortest Remaining Time Lähtökohtana kääntää odotettu laskenta-aika prioriteetiksi, ts. lyhyet tehtävät suoritetaan ensin Usein riittää irroittamaton skedulointi, mutta puhtaimmillaan irroittava välttämätön (uusi, lyhyt tehtävä voi syrjäyttää vanhan pitkää laskentaa vaativan tehtävän) Skedulointia varten tehtävien ominaisuudet tunnettava tarkasti Sulautetuissa järjestelmissä kyseeseen tulevat pienet järjestelmät, joissa tehtäväjoukko on suljettu

EDF Earliest Deadline First Se tehtävä, jonka määräaika on ensimmäisenä suoritetaan ensimmäisenä Selkeä, suoraviivainen ja toistettava Sopii hyvin reaaliaikajärjestelmissä käytettäväksi

Algoritmien ominaisuuksia Algoritmi Reilu Tehokkuus Vaste Reaaliaika Nälkiintyy First In, First Out On Huono Pitkä Ei Ei Round Robin On Matala Pitkä Ei Ei Kiinteä prioriteetti Ei Korkeahko Vaihtelee Kyllä Kyllä Vaihtuva prioriteetti On Korkea Vaihtelee Ei Ei Lyhin ajoaika ensin On Matala Keskitaso Ei Kyllä Aikaisin ensin On Keskitaso Keskitaso Kyllä Kyllä

Reaaliaikajärjestelmien skedulointi Perustuu yleensä kiinteään prioriteettiin Oletus: Työlle annettu prioriteetti riittää suoritukseen; suorittimen tehtävä hoitaa homma riittävän nopeasti Prioriteetti siis kiteyttää Käynnistymishetki Laskenta-aika Syy-seuraussuhde muihin prosesseihin Huom. Tehokasta peliaikaa yleensä vain max 70%!

Käänteisprioriteetti (priority inversion) Vaikka käytössä kiinteä prioriteetti, käytännössä voidaan joutua puljaamaan Jo 3 säiettä riittää (MP, KP, SP): MP varaa kriittisen alueen ja alkaa suorittaa sitä KP aktivoituu, saa suoritusvuoron ja pysäyttää MP:n keskelle aluetta SP aktivoituu, saa suoritusvuoron ja yrittää edetä kriittiselle alueelle; joutuu odottamaan koska alue on MP:llä KP saa suoritusvuoron, koska SP ei voi edetä Esto erilaisin varausstrategioin tai nostamalla prioriteettia kriittisellä alueella (ns. priority ceiling)

Periodinen vs. sporadinen Periodinen tehtävä toistuu tietyin säännöllisin väliajoin Vain periodisia -> rate monotonic scheduling, RMS Sporadinen tehtävä ilmestyy aina joskus tai ainoastaan kerran suoritettavien listalle Reaaliaikaisuuden kannalta keljua Joskus tarvittavia kikkoja: Sporadinen voidaan käsitellä periodisena varautumisena, jos oikeasti kovin kriittistä Periodinen voidaan käsitellä sporadisena, jos periodi kovin pitkä (pidempi kuin tutkittava aikaväli) ja tehtävä ei ole kriittinen

Jitter T1 Aktivoituminen kerralla 1 T2 T1 Aktivoituminen kerralla 2 T2

Staattinen skedulointi Kaikki lasketaan etukäteen valmiiksi, jonka jälkeen kone suorittaa operaatiot suunnitelman mukaan Yksinkertainen Nopea Ennustettava mutta vaatii tarkkaa tietoa tehtävistä ja on joustamaton Optimaalinen silloin kun pystyy skedulointiin aina silloin kun joku toinenkin staattinen skedulointialgoritmi suoriutuu tehtävästä

Analyysi ja staattinen skedulointi Staattinen tapaus yleensä suoraviivainen Ohjelmoija voi rakentaa skeduloinnin parhaan kykynsä mukaan Sitten käy miten käy; jos tehtävistä on tarkka tieto niin useimmiten ei sijaa epäilykselle jää Työkaluja Suorituspolkujen rakentajat/profiloijat Käytetty algoritmi Riittävän simppeli skeduleri

Dynaaminen skedulointi Skedulointi tehdään ajon aikana kulloisenkin tilanteen mukaisesti On siis pystyttävä valitsemaan suoritettava tehtävä nopeasti! Valintakriteerejä useita: Määräaika, laskenta-aika, jne; Tavoitteena yleensä rakentaa kriteerien perusteella prioriteettipohjainen järjestelmä tavalla tai toisella Optimaalinen silloin kun pystyy skedulointiin aina silloin kun jokin staattinen skedulointialgoritmikin pystyy Huom! Staattinen algoritmi saa enemmän lähtötietoja!

Analyysi ja dynaaminen skedulointi Yleensä se monimutkaisempi tapaus Pikatesti: Rakennetaan järjestelmä, jossa on samantapaiset (varjo/dummy) tehtävät kuin mitä toteutuksessa tarvitaan, ja kokeillaan miten suorituksessa käy Kova prosessorikuorma tarkoittaa oikeastaan aina pahoja ongelmia Monimutkaisempi (ja tarkempi) testi: Ryhdytään selvittelemään suoritusaikoja samaan tapaan kuin staattisen analyysin tapauksessa Analyysi yksityiskohtaisemman varjojärjestelmän mukaisesti

Analyysi ja matemaattiset menetelmät Jotkut algoritmit mahdollistavat skeduloituvuuden arvioinnin perustuen matemaattiseen kaavaan Lähtöarvot: Tehtävät Tehtävien kestoajat Tehtävien määräajat Tehtävien periodit Sporadiset tehtävät Tuloksena yleensä esim. käyttöaste Kyllä == kyllä, Ei == ehkä jollakin muulla skedulointialgoritmilla Usein yksinkertaistuksia liittyen prosessin vaihtamisen kustannuksiin jne. Lopulta lähes aina on pakko kokeilla, jos prosessorin käyttöaste ei jää todella alhaiseksi

Yhteenveto Irrottava ja irroittamaton skedulointi Useita skedulointialgoritmeja, joilla erilaisia ominaisuuksia Pikatesti: Tehdään leikkikuorma ja kokeillaan miten käy Monimutkaisempi testi: Matkitaan järjestelmää tarkemmin; kirjoituspöytäkokeilut Analyysi: Järjestelmän ominaisuuksien perusteella voidaan laskea käyttöastetta/skeduloituvuutta Periodisuus ja sporadisuus