Muistinhallinta
- 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]
- 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.
- Mitä hyötyä/haittaa on siitä, että
- koodilla ja datalla
- käyttöjärjestelmällä ja sovelluksella
on samat/erilliset osoiteavaruudet?
[Muunneltuna kirja 4.2]
- 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?