Muistinhallinta II

         
         
  1. Käyttäjän prosessi osoittaa muistipaikkaan 0xDEADBEEF. Kerro minkä vaiheiden kautta tämän virtuaaliosoitteen avulla löydetään fyysinen muistiosoite, kun käytössä on:
    1. kaksitasoinen sivutaulu (1. tason eli segmentti-indeksi ja 2. tason sivutaulun indeksi ovat 8-bittiä, siirtymä 16-bittinen), tai
    2. käänteinen sivutaulu (sivun numero ja siirtymä molemmat 16-bittisiä).
    Mitkä toiminnoista ovat laitteistolla toteutettuja, mitkä ohjelmistolla? [muunneltu Silberschatz and Galvin problem 9.3]
         
         
  2. Tarkastellaan kaksiulotteista taulukkoa A:

    var A: array[1..100] of array [1..100] of integer;

    missä A[1][1] on muistipaikassa 200 sivuttavassa muistinhallinnassa, sivun koko 200 sanaa (= kokonaislukua). Sivulla 0 on pieni prosessi (muistipaikat 0-199) taulukon käsittelemiseen; jokainen käskykoodi siis haetaan sivulta 0.

    Kuinka monta läsnäolokeskeytysta tuottavat seuraavat toistolauseet (kaksi eri versiota ohjelmasta), jotka alustavat taulukon, kun sivutiloja (kehyksiä; page frames) on kolme, käytetään LRU (Least Recently Used) poistoalgoritmia ja käskyt sisältävä sivu 0 on yhdessä kehyksessä aluksi, muiden kahden kehyksen ollessa tyhjiä:

              for j := 1 to 100 do
                  for i := 1 to 100 do
                    A[i][j] := 0;
              
              for i := 1 to 100 do
                  for j := 1 to 100 do
                    A[i][j] := 0;
         

    [Silberschatz and Galvin problem 9.10]

         
         
  3. Eräästä virtuaalimuistijärjestelmästä saatiin seuraavat mittaustulokset:

    CPU:n käyttöaste: 20%
    sivutuslevyn käyttöaste: 99.7%
    muiden levyjen käyttöaste: 5%

    Miten seuraavat muutokset järjestelmän rakenteessa todennäköisesti vaikuttaisivat järjestelmän suoritustehoon? [Kirja 4.4]

    1. Nopeampi CPU.
    2. Enemmän keskusmuistia.
    3. Nopeampi sivutuslevy.
    4. Moniajoastetta nostetaan.
    5. Moniajoastetta lasketaan.
    6. Hankitaan nopeammat I/O-väylät.