[so] [Tema 3][Linux] Nivel protectie pagini swapped

Razvan Deaconescu razvan.deaconescu at cs.pub.ro
Sat Apr 14 23:30:38 EEST 2012


Alexandra Ghecenco <alexandra.ghecenco at gmail.com> writes:
> OK. Last question si ma duc sa sarbatoresc si eu ca tot omul :)
>
> Dupa ce umplu RAM-ul, cand accesez o pagina, da page fault si o pun in
> swap. Retin ce drepturi ar trebui sa aiba si o trec cu
> PROTECTION_NONE. Revin in functie si da al doilea page fault, fac swap
> in si ii dau drepturile pe care ar trebui sa le aiba.

Aici e problema. De ce mai dă alt page fault? Când faci swap out faci și
swap in, nu? Adică în același page fault handler.

Cronologic:
* se accesează o pagină nevalidă (fie demand paging, fie page fault) = 1
page fault
* se selectează o pagină și se face swap out; acea pagină e marcată
nevalidă (fie demapată, fie PROTECTION_NONE)
* se face swap in la pagina dorită și i se pune drept de citire pe
pagina virtuală aferentă; ca și la demand paging, la primul acces se
trece în modul read-only
* dacă se scrie în pagină rezultă un al doilea page fault, care schimbă
protecția de la read-only la read-write = al 2-lea page fault

Ai, deci, 1 sau 2 page fault-uri pentru acces de pagină absentă din
RAM (demand paging) sau prezentă în swap. Dacă este acces read-only 1
page fault, dacă este apel read-write, 2 page fault-uri.

> Multumesc si Paste fericit!

Paște fericit! (nu mai e mult până la "Hristos a înviat!" :-) )

Răzvan


More information about the so mailing list