[so] [tema5] rezolvarea dilemei
Octavian Purdila
tavi at cs.pub.ro
Mon Jan 7 03:15:57 EET 2008
On Monday 07 January 2008, Andrei Deftu wrote:
> Intrebam pentru ca in mod normal, cand se face acces
> la o pagina care nu este nici RAM, nici in swap,
> aceasta pagina inseamna ca se gaseste pe o memorie
> externa (ex. disk), deci se stie o adresa de unde sa
> se mapeze datele. Asta e de fapt si mecanismul paging
> on demand: se incarca paginile la cerere dar maparea
> se face in momentul page fault-ului. Am inceput sa
> aberez ?
>
Nu. Maparea nu se face la page fault.
Maparea se face la mmap(fd=-1,flags=MAP_ANONYMOUS), sau VirtualAlloc, sau
MapViewOfFile, sau mmap(fd=x). In cazul temei, maparea s-a facut la vinit.
Se poate mapa in spatiul de adresa al procesului atat memorie (cazurile 1 si 2
de mai sus) cat si fisiere (cazurile 3 si 4). Demand paging-ul functioneaza in
ambele cazuri.
La page fault se aloca o pagina fizica si se creaza asocierea dintre pagina
fizica si cea virtuala in MMU. Apoi, in cazurile 1 si 2 se curata pagina, iar
in cazurile 3 si 4 se incarca pagina de pe disk.
tavi
More information about the so
mailing list