Alexandra Ghecenco <[email protected]> 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 _______________________________________________ http://elf.cs.pub.ro/so/wiki/resurse/lista-discutii
