Muistinhallinta

         
         
  1. Millaisia ongelmia virtuaalimuistin toteutus voi aiheuttaa laitteistotasolla konekäskyjen toteutuksessa? Tarkastele esimerkiksi konekäskyä MOVE, joka siirtää mielivaltaisen pituisen muistialueen sisällön paikasta toiseen. [Kirja 4.5]
         
         
  2. UNIX-muistinhallinnassa prosessin käytettävissä on muistinvaraukseen vain kaksi systeemikutsua: brk() ja sbrk(). Näiden avulla voi säätää prosessin varaaman data-alueen loppuosoitetta. Kuinka tällaisella mekanismilla voidaan toteuttaa C-kielen muistin varaamiseen ja vapauttamiseen määritellyt operaatiot malloc() ja free()? Hahmottele em. funktioiden toteutus muistilohkojen käsittelyn kannalta.
         
         
  3. Mitä hyötyä/haittaa on siitä, että
    1. koodilla ja datalla
    2. käyttöjärjestelmällä ja sovelluksella
    on samat/erilliset osoiteavaruudet? [Muunneltuna kirja 4.2]
         
         
  4. Virtuaalimuistia käyttävissä järjestelmissä on muistialueita, joita ei koskaan voi siirtää levylle. Miksi näin toimitaan ja mihin näitä muistialueita käytetään?