[so] [Tema3] Mem virtuala & swap

Mircea Bardac cs at mircea.bardac.net
Thu Apr 30 18:23:53 EEST 2009


Voicu Alexandru - Teodor wrote:
> Am si eu o mica intrebare legata de implementare, comunicarea dintre memoria
> virtuala si swap.
> In enunt este precizat : "precum in realitate, memoria virtuala lucreaza
> doar cu memoria fizica, nu cu swap-ul".
> Pentru copierea unei pagini din swap in mem fizica, sau invers, eu folosesc
> pointerul la mem virtuala pe care l-am creat cu mmap peste fiserul de ram
> (paginile din el).
> Acesta este considerata o comunicare intre mem virtuala si swap ?

Din cate inteleg eu, pointerul despre care vorbesti este la o zona de
memorie obtinuta cu mmap peste fisierul RAM (memoria fizica). Folosind
acest pointer tu ai acces la memoria RAM. Este corecta utilizarea
acestui pointer din moment atat timp cat el indica ce continut din RAM
trebuie sa fie swap-at (sau invers).

> Singura alternativa pe care ar fi sa citesc pagina pe care vreau sa o
> transfer intr-un buffer de page_size si sa folosesc read , write pe acel
> buffer si nu pe memoria virtuala mapata peste ram, dar nu cred ca la asta se
> referea precizarea din enunt.

Aici nu-mi dau seama exact la care operatie te referi. Daca te referi la
lucrul cu memoria RAM, aici trebuie sa spun ca *nu* trebuie sa lucrati
direct cu fisierul RAM, caci maparea pe care o realizati face automat
citirile/scrierile din/in RAM (trebuie doar sa apelati msync in ram_sync).

-- 
Mircea
http://mircea.bardac.net


More information about the so mailing list