240 likes | 351 Views
12.4.2006. Windows CE. Muistinhallinta ja ajanjakomenetelmät. Tomi Paananen Mikko Kosonen. Windows CE. 32-bittinen reaaliaikainen käyttöjärjestelmä suunniteltu laajan skaalan pienlaitteille toimii pienillä resursseilla ei johdettu muista käyttöjärjestelmistä
E N D
12.4.2006 Windows CE Muistinhallinta ja ajanjakomenetelmät Tomi Paananen Mikko Kosonen
Windows CE • 32-bittinen reaaliaikainen käyttöjärjestelmä • suunniteltu laajan skaalan pienlaitteille • toimii pienillä resursseilla • ei johdettu muista käyttöjärjestelmistä • yleispätevä alusta, helppo laajentaa
Kehitys • ensimmäinen versio julkaistiin 1996 • alun perin suunniteltu juuri PDA-laitteille • sittemmin levinnyt myös teollisuuteen, älypuhelimiin… • tuorein PDA-laitteille suunnattu CE-järjestelmä: Windows Mobile 5.0
Arkkitehtuuri • nelitasoinen • laite-, OEM-, kj-, sovellustaso • OEM-taso hoitaa kommunikoinnin laitteiston ja käyttöjärjestelmän välillä • kj-tasolla laitteiden, verkkojen, muistien, prosessien ym. hallinta • sovellustaso käyttäjälle näkyvin taso
Muistinhallinta • CE-pohjaisten laitteiden RAM-muisti jaettu kahteen osaan: • oliomuisti (object store) • virtuaalinen RAM-levy • verrattavissa PC-koneen kovalevyyn • ohjelmamuisti (program memory) • kuten RAM-muisti PC-koneessa • varattu sovellusten dynaamisiin muistitarpeisiin
Virtuaalimuistijärjestelmä • virtuaalimuistin avulla järjestelmässä näennäisesti enemmän muistia • toimintaperiaate CE:ssä sama kuin tavallisissa Windows-järjestelmissä • CE suorittaa muistikuvauksen loogisista osoitteista fyysiseen muistiin
Virtuaaliosoiteavaruus (virtual address space) • avaruus on kooltaan neljä gigatavua, jotka jakautuvat seuraavasti: • 33 kappaletta 32 megatavun osioita prosesseille • sisältävät koodin, DLL-kirjastot, pinot, keot ja virtuaalimuistivaraukset • ydin (kernel), virtuaaliosoitteet: 2 gigatavua • loppuosa jaettua muistia
Sivutus • kuten tavalliset Windows-järjestelmät, myös CE käsittelee ohjelmia sivuina • sivun koko on joko 1024 tai 4096 tavua • CE pitää sivujen tilasta kirjaa: • vapaa (free) sivu on varattavissa mille tahansa sovellukselle • sovellus omistaa varatun (reserved) sivun, mutta sitä ei ole kuvattu fyysiseen muistiin • käytössä oleva committed-sivu on kuvattu fyysiseen muistiin ja on ajossa
Keot ja pinot • prosesseilla ja säikeillä eri tietorakenteet • CE luo • prosessille keon (heap) • säikeelle (thread) pinon (stack)
Keko (heap) • puurakenteisiin perustuva tietorakenne • sovellus varaa/vapauttaa muistia keosta yhden tai neljän tavun osissa • CE tukee ainoastaan ei-siirrettävien lohkojen varaamista keossa • yksinkertaistaa hallintaa • johtaa sisäiseen pirstoutumiseen
Keko (heap) • kj luo oletuskeon prosessille • sovellus voi luoda erillisiä kekoja • keino välttää oletuskeon pirstoutumista • CE käyttää linkitettyä listaa keon osille • keon varauksessa käytetään first-fit-algoritmia • suosii pieniä varauksia
Pino (stack) • pino perustuu last in first out –periaatteeseen • pinoon varastoidaan funktioissa viitattuja muuttujia • kernel varaa tilan uusien säikeiden pinoille • pinon arkkitehtuuri on suoritinriippuvainen • oletuspinotilarajoitus (default stack limit) 64 kt • kaksi kilotavua varattu ylivuodon hallintaan
Ajanjako (scheduling) • Tarkoittaa käyttöjärjestelmien tapaa jakaa aikaa prosessien suorittamiselle prosessorissa. • Käyttöjärjestelmän jouhevuus riippuu hyvin paljon ajanjaon toteutuksesta. • Tärkeä osa-alue reaaliaikaisuutta tavoittelevien käyttöjärjestelmien suunnittelussa.
Ajanjaon tasot • 3 tasoa: Long-term, mid-term ja short-term –ajanjakaja. • Long-term –ajanjakaja päättää mitkä prosessit lisätään suoritettavien jonoon. • Mid-term –ajanjakaja siirtää väliaikaisesti prosesseja päämuistista sekundääriseen muistiin kuten esim. kovalevylle. • Short-term –ajanjakaja päättää mitkä valmiustilassa olevat prosessit siirretään prosessorin työstettäväksi seuraavaksi.
Keskeytymätön ja keskeyttävä ajanjako • Keskeytymätön (nonpreemptive) ajanjako tarkoittaa prosessia, jota ei voida keskeyttää kun se kerran on saanut suoritinaikaa. • Keskeyttävässä (preemptive) ajanjaossa prosessi on mahdollista syrjäyttää kesken suorituksen ja siirtää pois suorittimelta
Prioriteetit • Prosessien tärkeyden kuvaamiseen. • Kertoo, missä järjestyksessä ja kuinka nopeasti kj:n halutaan suorittavan prosessit. • Staattinen prioriteetti: muuttumaton, tarvitsee vähän kirjanpitoa, ei sopeudu ympäristön muutoksiin. • Dynaaminen prioriteetti: muuttuva, vaatii runsaasti kirjanpitoa, kykenee mukautumaan järjestelmän muutosten mukaan.
Prosessien ja säikeiden hallinta Windows CE:ssä • Windows CE mahdollistaa 32 eri prosessin ajamisen samanaikaisesti. • Säie on itsenäinen prosessin osa, jolle kj jakaa prosessoriaikaa • Säikeiden määrää rajoittaa käytettävissä olevien järjestelmän resurssien määrä.
Windows CE:n prioriteettitasot • 256 prioriteettitasoa, joista 8 alinta vastaavat Windowsin Win32-rajapinnan tarjoamia prioriteetteja. • Ylimmät 248 tasoa on varattu järjestelmälle sekä OEM-käyttöä varten. • Prioriteettitasojen määrittelyyn: CeSetThreadPriority ja CeGetThreadPriority. • Säikeiden prioriteetit vakioita.
Ajanjako Windows CE:ssä • Perustuu säikeiden prioriteetteihin. • Toteutettu FIFO-jonoon perustuvalla round robin-periaatteella. • Kvantin tai aikaviipaleen oletusarvo 25 millisekuntia ja maksimiaika 100 millisekuntia