[so] [Tema 3] Eliberarea/evacuarea unei pagini din ram
Adrian Stanciu
adrian.stanciu.pub at gmail.com
Wed Apr 22 22:21:02 EEST 2015
2015-04-22 19:23 GMT+03:00 Andrei Dorian Duma via so <so at cursuri.cs.pub.ro>:
> Din ce înțeleg, e vorba să pui PROT_NONE pe pagina din spațiul virtual
> (memoria efectivă a procesului), adică să o readuci la starea inițială. Tu
> de fapt îi păstrezi protecția anterioară în câmpul ăla din structură și o
> duci în swap.
>
> On Wed, Apr 22, 2015 at 7:17 PM Georgiana Diana via so
> <so at cursuri.cs.pub.ro> wrote:
>>
>> Salut,
>> In enuntul temei 3 [1] este precizat urmatorul lucru, care nu inteleg
>> exact la ce se refera:
>>
>> "Pentru eliberarea/evacuarea unei pagini, demapați acea pagină (pagina
>> este mapată peste o “pagină” din fișerul RAM) și remapați-o la aceeași
>> adresă dar ca mapare anonimă (MAP_ANONYMOUS) și fără protecție (PROT_NONE)."
>>
>> Din cate am inteles din restul de enunt, o pagina din memoria virtuala
>> care a fost deja mapata in ram, fie ramane in memoria ram, fie este evacuata
>> in swap (daca este necesar). O pagina evacuata in swap, nu isi pastreaza
>> protectia anterioara evacuarii ? Exista cazuri in care o pagina poate fi
>> demapata complet din ram, fara a fi trimisa in swap (daca da, cand anume) ?
>>
>> [1] http://ocw.cs.pub.ro/courses/so/teme/tema-3
>>
Salut,
O pagină evacuată nu își păstrează protecția, nu poți accesa direct
conținutul unei pagini din swap. Când vrei să accesezi o pagină care
se află în swap aceasta trebuie readusă în memoria fizică (în RAM).
Cât timp pagina este în swap, în spațiul virtual acea pagină are
protecția PROT_NONE.
O pagină mapată în RAM dar care nu a fost modificată nu este copiată
în swap, din motive de eficientă. Excepție face prima evacuare.
Adrian
More information about the so
mailing list