1 / 24

Windows CE

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ä

mignon
Download Presentation

Windows CE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

  4. Windows CE -kehityshistoria

  5. Arkkitehtuuri

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

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

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

  9. Muistikuvaus (memory mapping)

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

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

  12. Keot ja pinot • prosesseilla ja säikeillä eri tietorakenteet • CE luo • prosessille keon (heap) • säikeelle (thread) pinon (stack)

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

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

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

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

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

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

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

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

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

  22. Windows CE:n 8 alinta prioriteetti tasoa

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

  24. Round robin

More Related