[so] [SO] [Tema3] [Linux] Nelămurire implementare

Daniel Baluta daniel.baluta at gmail.com
Mon Apr 20 20:49:06 EEST 2009


2009/4/20 mmdumi <mmdumi at gmail.com>:
> Salut,
> După ce am citit enunțul temei am ajuns la două moduri în care pot realiza
> tema.
>
> Conținutul paginilor vor fi stocate în zona de memorie mapata din spatiul de
> adresa al procesului. Fiecare pagină din acest spațiu va fi protejata cu
> prot_none / read / write, astfel încat cu ajutorul seg_faulturilor pot sa
> simulez page-faulturile din memoria virtuala. În acest mod voi putea
> modifica proprietățile paginilor: on_ram, on_swap, valid/invalid și voi
> respecta starile prin care trece o pagina.
> Să presupunem ca o pagină este accesată pentru scriere dar este invalidă.
> Voi primi seg-fault. Voi da drepturi de scriere prot_write, dar voi verifica
> și dacă am loc în memoria ram. Presupun că ramul este plin. Aleg pagina cu
> numărul x pentru a fi mutată pe swap. În acest moment am 2 posibilități :
> 1. mut efectiv (cu memcpy sau altceva) pagina x pe swap (memoria ce
> reprezintă fișierul swap) (dacă nu a fost deja mutată pe swap, luând în
> considerare și bitul dirty) și setez flagul de on_swap și invalid
> 2. setez flagul de on_swap și invalid fără a muta efectiv pagina pe swap.
>
> Pentru cazul 2, la ram_sync voi copia paginile in fisierele ram / swap
> folosindu-mă de flagurile on_ram / on_swap. O astfel de implementare este
> considerată incorectă ?

Pai tu muti pagina x in swap , pentru ca ai nevoie de o pagina fizica
in care sa scrii.
Acum tu daca nu muti efectiv pagina in swap, s-ar putea ca inainte de
ram_sync , pagina sa fie scrisa in memoria fizica iar vechea pagina
din memoria fizica nu va mai apuca sa fie copiata in swap.

As merge pe varianta 1.
>
> --
> Dumitrache Mihai - Marian
> http://www.takemyview.com/blog
>
> _______________________________________________
> so mailing list
> so at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so
>
>


More information about the so mailing list