<div>Eu ma gandesc ca tema trebuie structurata in modul urmator:<br></div><div>1. virt_pages pagini mapate peste RAM-ul fizic;</div><div>2. phys_pages pagini mapate peste fisierul RAM;</div><div>3. virt_pages pagini mapate peste fisierul SWAP.</div>
<div></div><div>Accesul la memoria simulata se va face strict prin (1). Fiecare pagina va fi protejata impotriva scrierii / citirii. In momentul in care se semnalizeaza un acces invalid se efectueaza operatiile necesare (aducere din (3) in (1) daca exista page fault etc.). Sincronizarea intre (1) si (2) se face prin apelul ram_sync, as in se copiaza din memoria virtuala paginile marcate ca fiind in RAM si &quot;dirty&quot;.</div>
<div>Tu spui ca ar trebui sa elimin (1) si sa folosesc (2) pe post de memorie virtuala. Cum simulezi atunci pagefault? Functia vinit intoarce o adresa la care sunt mapate virt_pages.La (2) sunt mapate doar phys_pages, care e mai mic decat virt_pages.</div>
<div></div><div>Andrei B.</div><div><br></div><div class="gmail_quote">2009/4/21 Catalin <span dir="ltr">&lt;<a href="mailto:catalin.me@gmail.com">catalin.me@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">Andrei Bucur wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Salut!<br>
&quot;Paginile de memorie virtuala (din spatiul de adresa al procesului) se vor mapa direct peste fișierul de RAM folosind apelurile mmap si MapViewOfFile.&quot;<br>
Nu inteleg cum as putea sa fac mapare directa a memoriei virtuala care are virt_pages pagini peste fisierul RAM care contine phys_pages pagini. Intuitiv eu as face  o mapare separata a fisierului RAM in spatiul de adrese al procesului. Atunci cand vreau sa aduc o pagina in RAM sa o copiez (cu memcpy de exemplu) din memoria virtuala (de dimensiune virt_pages) in zona de memorie care se mapeaza peste fisierul RAM.<br>

Poti sa detaliezi la ce se refera acea mapare directa din enunt?<br>
Multumesc<br>
<br>
</blockquote>
<br></div>
Cred ca memoria virtuala pe care trebuie sa o simulam este de fapt maparea fisierului RAM in spatiul de adrese al procesului.<br>
<br>
Pentru a face memcpy ar trebui sa aloci pentru memoria virtuala un spatiu de phys_pages cu malloc si in momentul asta se cam pierde toata ideea temei. De ce sa te mai zbati cu RAM si swap daca faci direct un malloc de phys_pages pentru cat ai tu nevoie ?<br>

<br>
Corectati-ma daca gresesc.<br>
<br>
Numai bine<br><font color="#888888">
Catalin Moraru</font><div><div class="h5"><br>
_______________________________________________<br>
so mailing list<br>
<a href="mailto:so@cursuri.cs.pub.ro" target="_blank">so@cursuri.cs.pub.ro</a><br>
<a href="http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so" target="_blank">http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so</a><br>
</div></div></blockquote></div><br><div><br></div>