In implementarea temei am ales sa mapez fisierele peste memoria din program. In consecinta creez fisierele cu drepturi de citire/scriere si o mapare cu protectie PROT_READ | PROT_WRITE. Memoria virtuala este creata initial cu PROT_NONE.<br><br>In functia de swapout am urmatoarea logica:<br>1. demapeaza pagina care mi-a dat sigsegv din mem virt<br>2. mapeaza pagina care este pe poz 1 in ram, in swap la pagina corespunzatoare<br>3. modifica proprietatile paginii de la pct 2. pentru a reflecta schimbarile<br>4. verific daca pagina de la pct 1. este dirty -> scrie in swap<br>5. mapeaza pagina in ram la prima pozitie(asta este algoritmul pe care doresc sa il folosesc la alegera paginii)<br>6. modifica proprietatile paginii de la pct 1 pentru a reflecta schimbarile<br>7. scrie informatiile din swap in ram<br><br>Deoarece am folosit mapare pe fisiere ar trebui sa folosesc memcpy pentru a transfera informatiile dintr-un fisier intr-altul la punctele 4, 7.<br><br>Problema mea
este urmatoarea:<br>In momentul in care se apeleaza ram_sync (care nu este nimic altceva decat un msync(ram, ram_size, MS_SYNC)) primesc urmatorul output de la perror: "Cannot allocate memory". obs: ram = adresa la care a fost mapat fisierul ram.<br><br>Daca comentez msync-ul voi trece majoritatea testelor cu urmatoarele exceptii:<br>T2: check_ram, swap_ram_precheck, swap_count<br>T4: check_ram, swap_ram_precheck, swap_count.<br><br>Care ar putea fi cauza?<br><br>Multumesc!<br><br><p> 
<hr size=1>Be a better friend, newshound, and
know-it-all with Yahoo! Mobile. <a href="http://us.rd.yahoo.com/evt=51733/*http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ "> Try it now.</a>