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
Windows CE
Tomi Paananen
Mikko Kosonen
Muistinhallinta ja ajanjakomenetelmät
12.4.2006
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
Windows CE -kehityshistoria
Arkkitehtuuri
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
Muistikuvaus (memory mapping)
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.
Windows CE:n 8 alinta prioriteetti tasoa
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
Round robin