[so] [Tema5] Secventa munmap/mmap pe Linux

Catalina Caloian catalina.caloian at gmail.com
Tue Jan 8 18:48:21 EET 2008


On Jan 8, 2008 6:11 PM, Liviu Ciortea <liviuefer at gmail.com> wrote:

> Nu chiar... In solutia mea o pagina virtuala nu se mapeaza efectiv de
> memoria reala a sistemului, ci de o portiune din fisierul de RAM.
> Aceasta mapare are loc la aducerea paginii din swap sau la alocarea
> ei, deci in event handler.


Chiar daca mapezi fisierul care simuleaza RAM-ul sau mapezi memorie, aceasta
mapare ar trebui sa se faca o data, in 'vinit', si in intregime; in handler
ar trebui doar sa schimbi protectia zonelor ce corespund paginilor accesate.
Tu din 'vinit' ce intorci (pointer catre ce zona si de ce dimensiune?) daca
mapezi doar in handler?


> Cand trebuie s-o inlocuiesc (si eventual
> s-o trimit in swap), trebuie mai intai sa o demapez de pe aceasta
> portiune fizica din fisierul de RAM, deci aici apare acel unmap, si
> apoi nevoia de remapare.


Cand "eliberezi" o pagina fizica n-ar trebui sa faci 'unmap', ci doar sa
schimbi protectia astfel incat un acces ulterior sa-ti genereze un page
fault.


> Pana la urma, ambele rezolvari au avantajele si dezavantajele lor.
> Este de preferat una dintre ele, sau vor fi considerate corecte
> amandoua?
>


Nu sunt sigura ca am inteles complet ce faci tu, dar nu pare tocmai corect.

Catalina
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://cursuri.cs.pub.ro/pipermail/so/attachments/20080108/202092ad/attachment.html


More information about the so mailing list