24
Windows CE Tomi Paananen Mikko Kosonen Muistinhallinta ja ajanjakomenetelmät 12.4.2006

Windows CE

  • Upload
    mignon

  • View
    54

  • Download
    3

Embed Size (px)

DESCRIPTION

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ä - PowerPoint PPT Presentation

Citation preview

Page 1: Windows CE

Windows CE

Tomi Paananen

Mikko Kosonen

Muistinhallinta ja ajanjakomenetelmät

12.4.2006

Page 2: Windows CE

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

Page 3: Windows CE

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

Page 4: Windows CE

Windows CE -kehityshistoria

Page 5: Windows CE

Arkkitehtuuri

Page 6: Windows CE

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

Page 7: Windows CE

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

Page 8: Windows CE

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

Page 9: Windows CE

Muistikuvaus (memory mapping)

Page 10: Windows CE

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

Page 11: Windows CE

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

Page 12: Windows CE

Keot ja pinot

prosesseilla ja säikeillä eri tietorakenteet

CE luo prosessille keon (heap) säikeelle (thread) pinon (stack)

Page 13: Windows CE

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

Page 14: Windows CE

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

Page 15: Windows CE

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

Page 16: Windows CE

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.

Page 17: Windows CE

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.

Page 18: Windows CE

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

Page 19: Windows CE

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.

Page 20: Windows CE

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ä.

Page 21: Windows CE

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.

Page 22: Windows CE

Windows CE:n 8 alinta prioriteetti tasoa

Page 23: Windows CE

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

Page 24: Windows CE

Round robin