Käyttöjärjestelmät I S2004 / OSIO 2 (4.10-15.10)
In english
Muistinhallinta

o TAVOITTEET

Osiossa tutustumme ensin yksinkertaisen muistinhallinnan (varaus, vapautus) perusperiaatteisiin ja sen jälkeen virtuaalimuistitoteutuksen keskeisiin ideoihin.

Avainsanat: looginen osoite, fyysinen osoite, MMU ja osoitemuunnos, virtuaalimuisti, sivutus ja segmentointi, sivutaulu ja segmenttitaulu, osoitemuunnospuskuri (TLB)

o OPPIKIRJAN TEKSTI

o LUENTOKALVOT sekä MUUTA MATERIAALIA

  • See also Stallings's pages

    Muuta materiaalia: Tanenbaum A.S.: Modern Operating Systems. 2nd ed. 2001. Sivut 189-214, 249-262. Kirja löytyy myös TKTL:n kirjastosta.

    o HARJOITUKSET, KOHDAT A-C

    Ennen ryhmän tapaamista: Tutustu huolellisesti kaikkiin tehtäviin. Pohdi niitä jo itseksesi ja kirjaa ylös tehtäviin liittyviä ajatuksia, tuloksia, ongelmia ja pulmia.

    1. tapaaminen: Käykää yhdessä läpi tehtävät ja pohtikaa mitä tiedätte asiasta, mitä tietoja vielä tarvitsisitte, jne. Ohjaaja on tapaamisessa käytettävissä, mutta ei ratko tehtävää puolestanne. Hän voi ohjata ryhmäänne oikeaan suuntaan, jos tuntuu, että olette ihan eksyksissä.

    Osion aikana: Tapaamisten välillä voitte järjestää oman tapanne kommunikoida keskenänne: tapaamiset laitoksella, sähköposti, irc, webCT (jos joku haluaa sitä käyttää, niin ottakaa yhteyttä luennoijaan). Laatikaa raporttinne 2. tapaamiseen mennessä.

    2. tapaaminen: Ryhmät esittelevät raporttiensa sisältöjä muille ryhmille.

    2. tapaamisen jälkeen: Jos on tarvetta vielä täydentää tai muokata ryhmän raporttia, niin tämä on mahdollista tapaamisen jälkeen. Tähän on varattu korkeintaan kaksi päivää, koska raporttien on tarkoitus olla valmiina jo 2. tapaamisessa.

    Osion 1 raportti (kohdat A-C) tulee palauttaa kirjallisena joko luennolla tai huoneen D225 vieressä olevaan lokeroon. Raporttiin pitää kirjata: opintopiirin jäsenten nimet, laskuharjoitusryhmän numero ja ohjaajan nimi. Viimeinen palautusajankohta on

    Palautus on siis viimeistään kaksi päivää oman harjoitusryhmän toisen kokoontumisen jälkeen.

    o A - POHTIKAA PORUKALLA TEHTÄVIÄ

    Allaolevan tehtävälistan kaikki tehtävät on tarkoitettu kaikkien pohdittavaksi. Laatikaa yhdessä ratkaisut näihin tehtäviin ja palauttakaa ne kirjallisena (raportiin mukaan jäsenten nimet, ohjaajan nimi ja ryhmän numero).

    o 2.1 - DYNAAMINEN MUISTINVARAUS

    Muistissa on eräässä vaiheessa dynaamisen muistinhallinnan seurauksena seuraavankokoiset vapaat alueet (muistiosoitteiden mukaisessa järjestyksessä): 10K, 4K, 32K, 18K, 7K, 9K, 12K ja 15K.

    Seuraavaksi halutaan varata 12K, 10K ja 9K. Mikä on varausjärjestys käytettäessä varausalgoritmia

    a) First Fit, b) Best Fit, c) Next Fit (jatkaa muistin alusta) ja d) Worst Fit (Mikä mahtaa olla Worst Fit algoritmin kantava ajatus?)

    Selvitä kunkin varausalgoritmin osalta kannattaako vapaat alueet säilyttää listassa muistiosoitteen mukaisessa järjestyksessä vai koon mukaisessa järjestyksessä. Tarkastele perusteluissasi varauksen ja vapautuksen nopeutta, listan ylläpidon helppoutta sekä vapaiden alueiden yhdistelyä suuremmiksi alueiksi.

    o 2.2 - BUDDY SYSTEM

    Eräs pientietokone käyttää Buddy Systemiä vapaiden muistialueiden hallintaan. Siinä on aluksi yksi koko alueen (256 KB) kokoinen muistilohko osoitteessa 0. Pienin alueelta varattava lohko on kooltaan 4KB.

    a) Mitä staattisen ja dynaamisen muistinvarauksen ongelmia on pyritty ratkomaan Buddy Systemiä käyttämällä? Montako erillistä listaa Buddy System käyttää vapaan tilan hallitsemiseksi? Miksi toteutus ei perustu yhden listan käyttöön?

    b) Montako vapaata muistialuetta on varausten 5KB, 25KB, 35KB ja 20KB jälkeen jäljellä, minkä kokoisia ne ovat ja mitkä ovat niiden alkuosoitteet (Piirrä vapaiden listat). Kuinka paljon muistia hukkautui sisäiseen pirstoutumiseen?

    c) Jatketaan edellisen kohdan tilanteesta ja vapautetaan 5KB:n varaus. Mitkä ovat nyt vapaiden alueiden koot ja osoitteet? Miten listat ovat muuttuneet?

    o 2.3 - MMU:N TOIMINNASTA

    Virtuaalimuistia varten on muistinhallintayksikössä rekisteri (esim. PTR, Page TABLE Register), jossa on suorituksessa olevan prosessin sivutaulun fyysinen muistiosoite. Lisäksi käytössä on 16 alkion assosiatiivinen osoitemuunnospuskuri (TLB, translation lookaside buffer). Sivun koko on 1024 tavua ja järjestelmä käyttää yksitasoista sivutaulua.

    Selosta mitä muistinhallintayksikössä tapahtuu, kun vuorottaja valitsee suoritukseen uuden prosessin ja prosessi viittaa ainakin virtuaaliosoitteisiin 0, 1 ... 510, 2001, 2002, 500 .. 510.

    Tarkenna itse muut tarvittavat yksityiskohdat. Huomaa, että sivupuutoksen sattuessa suoritettava prosessi vaihtuu aina, joten TLB:n vanha sisältö katoaa.

    o 2.4 - SIVUTUS vs. SEGMENTOINTI

    a) Miten sivutusta käyttävä ja segmentointia käyttävä virtuaalimuistitoteutus eroavat toisistaan? Mitä hyvää segmentoinnissa on sivutukseen verrattuna? Entä päinvastoin?

    b) Mitä tietoja KJ tallettaa prosessin sivutauluun? Entä segmenttitauluun?

    c) Mitä hyötyä on osoitemuunnospuskuri TLB:n (Translation Lookaside Buffer) käytöstä? Voisiko virtuaalimuistitoteutus toimia ilman TLB:tä? Mitä tietoja MMU pitää tallessa TLB:ssä, kun käytetään a) sivutusta b) segmentointia?

    d) Selitä kuinka MMU tekee osoitemuunnoksen segmentoivassa järjestelmässä.

    o 2.5 - SIVUTTAVA SEGMENTOINTI

    Miksi eräissä järjestelmissä yhdistetään segmentointi ja sivutus?

    Eräs prosessi on jaettu 4:ään samankokoiseen segmenttiin. Järjestelmä käyttää segmentoinnin lisäksi myös sivutusta. Sivun koko on 2KB ja jokaista segmenttiä varten on 8:n alkion sivutaulu. Piirrä kuva, josta käy ilmi segmenttitaulu sekä segmenttikohtaiset sivutaulut. Mitä tietoa on nyt segmenttitaulun alkiossa?

    a) Mikä on suurin mahdollinen segmenttikoko?

    b) Mikä on yo. prosessin loogisten osoitteiden osoiteavaruuden koko? (eli mikä on suurin viitattavissa oleva looginen osoite)

    c) Prosessi viittaa fyysiseen osoitteeseen 0x00021ABC (muuta tämä heksadesimaaliesitys ensin bittijonoksi). Millainen on looginen osoite, jota prosessi käyttää?

    d) Mitä voit sanoa järjestelmän fyysisen muistin koosta (osoiteavaruudesta)?

    o 2.6 - KÄÄNTEINEN SIVUTAULU

    Koneessa on 48-bittiset virtuaaliosoitteet ja 32-bittiset fyysiset osoitteet. Sivukoko on 8KB. Kuinka monta alkiota tarvitaan tavallista sivutaulua varten? Entä käänteistä sivutaulua varten? Miksi käänteisen sivutaulun käyttö on kuitenkin harvinaisempaa?

    o B - PERUSTELKAA PORUKALLA TARKISTUSKYSYMYKSIÄ

    Kehittäkää viisi aihepiiriin liittyvää tarkistuskysymystä / keskeistä asiaa pohtivaa tehtävää, sekä perustelkaa miksi kysymyksiinne on tärkeää osata vastata. Saatte valita myös kirjan / luentokalvojen ja harjoitusten kysymyksistä. Tässä kohdassa on tärkeämpää kehittää hyvät perustelut kuin keksiä pyöriviä esineitä uudelleen. Välttäkää myös 'trivial-pursuit'-tyyppisiä yksittäisiä detaljitietoja testaavia kysymyksiä. Hyvä tarkistuskysymys on sellainen, johon vastaaminen vaatii suuremman kokonaisuuden ymmärtämistä.

    Vihjaiskaa, jos joku kohta kaipaa mielestänne tarkennusta, asiaan voidaan palata luennolla.

    o C - TEHKÄÄ PORUKALLA EVALUOINTIA / ITSEARVIOINTIA

    Tiimityönä: Täyttäkää oheinen lomake 2 ja jättäkää se luennoijalle / laatikkoon ryhmän raportin mukana. Lomaketta jaetaan harjoitusryhmässä.

    Kyselyllä on kaksi tarkoitusta: (1) kerätä tietoa tehtävien tekemisen onnistumisesta opintopiireissä ja (2) auttaa opintopiiriä oman toiminnan parantamisessa. Arvostamme lyhyitä vastauksia, joihin olennainen on kiteytetty. Pyrkikää olemaan avoimia. Paneutukaa palautteen antamiseen huolella, vastatkaa kaikkiin kohtiin ja perustelkaa mielipiteitänne. Palautteen kattavuus (ts. onko kaikkiin kohtiin vastattu ajatuksella) arvioidaan (0, 1, tai 2), sen sijaan palautteen sisällöllä ei ole vaikutusta arviointiin.

    Muuta palautetta / kommentteja voitte lähettää milloin tahansa kurssin uutisryhmään hy.opiskelu.tktl.kj (toivottavasti saamme keskustelua aikaiseksi), tai kertoa suoraan kurssin vetäjille suullisesti, sähköisesti tai kirjallisesti.


    o Kertauskysymyksiä (Poimittuna raporteista)

    • Miten loogiset, suhteelliset ja fyysiset osoitteet eroavat toisistaan ja missä niitä käytetään?
    • Mitä hyötyä on muistin jakamisesta ja yhteiskäytöstä prosessien välillä? Mitkä KJ:n muistinhallinnan piirteet vaikuttavat muistin jakamisen helppouteen?
    • Mitä eroa on sivulla ja segmentillä?
    • Mitä ovat sivutaulut, mihin niitä käytetään ja mitä ne pitävät sisällään?
    • Mitä tietoja sivutaulu ja segmenttitaulu sisältävät?
    • Miksi sivutauluun ei tarvitse tallentaa pituustietoa kuten segmenttitauluun?
    • Miten sivutus ja segmentointi voidaan yhdistää ja mitä hyviä ominaisuuksia tällä yhdistelmällä on?
    • Mitkä ovat tärkeimmät hyödyt sivuttavassa segmentoinnissa, ja miten sivuttava segmentointi eroaa 2-tasoisesta sivutuksesta?
    • Selitä TLB:n toimintaperiaate? Mitä hyötyä on TLB:n käytöstä ja mitä sen sisältönä on?
    • Miten Buddy Systemin muistinvaraus suoritetaan?
    • Toimiiko tietokone, jos muistialueita ei suojata?
    • Miten MMU toimii?
    • Miten virtuaalinen osoite muunnetaan todelliseksi osoitteeksi erilaisissa virtuaalimuistin toteutuksissa?
    • Miten yleisimmän muistinvarausalgoritmit (best fit, first fit, next fit) toimivat?
    • Mitä eroa on Buddy Systemillä, dynaamisella muistinvarauksella ja staattisella muistinvarauksella? Mitkä ovat niiden vahvuudet entä heikkoudet?
    • Mitä eroa on sisäisellä ja ulkoisella pristoutumisella? Kumpi on haitallisempaa? Kuinka vaikea operaatio muistin tiivistäminen on?
    • Mitkä ovat käänteisen sivutaulun keskeiset hyödyt?
    • Miten paikallisuus ja virtuaalimuisti liittyvät toisiinsa?
    • Mikä on sivunpuutoskeskeytys? Mistä se aiheutuu ja mitä sen aikana tehdään?
    • Miksi virtuaalimuisti ylipäätään keksittiin?

    Osioon 1 o o Osioon 3


    Assari on henkilö, joka saa ratkaisun kuulostamaan ongelmilta.

    Sivu luotu 29.9.2004 Tiina Niklander, Auvo Häkkisen sivujen pohjalta