[so] [Tema5] Secventa munmap/mmap pe Linux
Catalina Caloian
catalina.caloian at gmail.com
Tue Jan 8 17:20:13 EET 2008
Buna.
Daca am inteles bine ce faci tu, as avea o observatie: in 'vinit' ar trebui
sa-ti rezervi tot spatiul ce va reprezenta memoria virtuala, apoi sa
manipulezi acest spatiu la nivel de pagina, folosindu-te in principiu de
'mprotect'.
N-ar trebui sa faci 'unmap' decat la sfarsit, in 'vend'.
Catalina
On Jan 8, 2008 1:34 PM, Liviu Ciortea <liviuefer at gmail.com> wrote:
> Salut!
>
> Pe Linux nu am reusit sa fac tema intr-un mod 100% safe. Metoda mea
> este urmatoarea: fac o rezervare initiala a intregului spatiu de
> adrese necesar, apoi cand este nevoie sa aloc o pagina noua sau sa
> aduc una din swap, o leg de o pagina fizica din fisierul ce simuleaza
> memoria RAM. Problema este ca unmap sterge toate maparile existente,
> inclusiv rezervarea corespunzatoare, deci este nevoie de o
> "re-rezervare". Aceasta metoda imi pare a fi mai degraba un hack,
> nefiind safe. Nimic nu-mi garanteaza ca adresa respectiva ramane
> disponibila intre cele doua apeluri (poate fi mapata, spre exemplu,
> intr-un alt thread). Intrebarea mea este, se poate inlocui secventa
> de instructiuni munmap/mmap pentru a fi total safe?
>
> Pe Windows, VirtualAlloc si secventa de flaguri MEM_RESERVE,
> MEM_COMMIT, MEM_DECOMMIT si MEM_RELEASE asigura o rezolvare safe (cu
> toate ca aici nu mai leg efectiv pagina virtuala de pagina fizica si
> ma bazez pe functia de sincronizare RAM ca sa actualizez fisierul
> corespunzator).
>
> Care este "pozitia oficiala" fata de acest aspect? Impresia mea este
> ca riguros vorbind, prima solutie nu este corecta in forma descrisa,
> dar nu am gasit alta metoda de rezolvare.
>
> Liviu Ciortea
> _______________________________________________
> so mailing list
> so at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://cursuri.cs.pub.ro/pipermail/so/attachments/20080108/6a04a9a8/attachment.htm
More information about the so
mailing list