[so] [Tema 3] Nelamurire enunt
Mircea Bardac
cs at mircea.bardac.net
Fri May 1 23:18:55 EEST 2009
Dragos Valentin Moinescu wrote:
> Multumesc pentru raspuns.
>
> Eu insa intrebam altceva:
> 1. "alocarea" zonei pentru memoria virtuala se face prin mmap(...,
> RAMFileDescriptor,...)
Dupa cum ai observat si tu, acest lucru este imposibil, unul din motive
fiind dimensiunile diferite ale memoriilor (mem virtuala de obicei >>
mem RAM).
Also, memoria virtuala nu se "aloca", ci doar trebuie "rezervata" (dupa
cum am spus intr-un e-mail anterior).
> 2. acea zona va trebui insa mapata efectiv in fisierul RAM.
> 3. problema este ca odata ce am facut maparea pentru virt_pages, va
> trebui la accesare sa mapez efectiv intr-un offset din fisier. am
> incercat mmap(adresaPaginaAccesata, getpagesize(), ...,
> RAMFileDescriptor, offsetRam) insa valoarea rezultata este diferita de
> adresaPaginaAccesata.
>
> so, trebuie mmap() de fiecare data (asta presupune obtinerea unei
> mapari in memoria fizica) insa cum?
Intr-un sistem real, memoria este gestionata la nivel de pagina, nu la
nivel de bloc - altfel spus: nu se lucreaza cu toata memoria virtuala
dintr-o data. On demand paging presupune ca paginile sunt "alocate"
("create") doar atunci cand sunt cerute. Astfel, implementand logica de
on demand paging si de swapping, vei putea limita accesul doar la cele
phys_pages existente in fisierul RAM.
Again, nu sunt convins ca ai inteles mecanismul de paginare existent in
sistemele de operare si recomand parcurgerea documentatiei.
--
Mircea
http://mircea.bardac.net
More information about the so
mailing list