As mai avea si eu o intrebare in legatura cu testul 4 :). Am vazut ca la testul 4, pasul 2 se fac modificari asupra tuturor celor 8 pagini din memoria virtuala. In ram sunt 5 pagini fizice. Cum ar trebui sa arate ram-ul respectiv swap-ul dupa ram_sync? In ram ar trebui sa fie paginile 6 7 8 4 5 iar in swap paginile 1 2 3?<br><br>Verificarea ram/swap trece chiar daca se pun in ram doar 1 2 3 4 5 si in swap nu se pune nici o pagina dar pentru pasul urmator cand se verifica modificarea memoriei swap practic ar trebui sa ne bazam ca au existat paginile modificate la un moment dat in ram nu?<br><br><b><i>Razvan Deaconescu <razvand@cs.pub.ro></i></b> wrote:<blockquote class="replbq" style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"> Dragusin Bogdan wrote:<br>> Scuze daca insist dar tot nu inteleg :(.<br><br>Nu este nici o problema. La urma urmei, asta e rostul listei de discutii :-)<br><br>> Cum ar trebui sa treaca tema <br>>
testul 4 in care se verifica in acelasi mod sincronizarea dintre swap si <br>> ram prin check_ram_poison (rand_pos, 5, 3); si sa treaca si testul 3 la <br>> care aceasta modificare nu trebuie sa se vada:(<br>> Practic la testul 4 din cate inteleg se asteapta ca daca in swap a fost <br>> scris poison swap sa se scrie si in ram tot poison swap...<br><br>Cum arata cele doua teste:<br><br>la testul 4:<br><br> poison_swap (8);<br> for (i = 0; i < 8; i++) {<br> poison_swap (8);<br> _read (i, NO_CHECK, rand_pos);<br> _read (i, NO_CHECK, rand_pos + 4);<br> _read (i, NO_CHECK, rand_pos + 8);<br> }<br><br> ram_sync ();<br> check_ram_poison (rand_pos, 5, 3);<br><br><br>la testul 3:<br><br> for (i = 0; i < 3; i++) {<br> _read (i, PAGE_FAULT, rand_pos);<br> _read (i, NO_PAGE_FAULT, rand_pos + 4);<br> }<br><br>
ram_sync ();<br> check_ram0 (3);<br><br><br>Deosebirea este urmatoarea: la testul 3, la inceputul inceputului, se <br>realizeaza asocierea intre paginile virtuale si paginile fizice <br>(simulate prin fisierul RAM). In prima instanta paginile se vor asocia <br>fara a exista vreo legatura cu swap-ul. Deoarece se realizeaza numai <br>citiri, o pagina nu va fi niciodata swapped (nu este nevoie ... e un pic <br>fortat ... dar pentru usurinta in implementare/testare se considera ca o <br>pagina care este read-only nu va fi niciodata swapped).<br><br>Testul nu are relevanta practica ... daca te gandesti mai bine, se <br>citesc informatii pe care nu le-a scris nimeni ... e doar metoda de <br>testare, nu are o logica in spate.<br><br>In partea cealalta, la testul 4, paginile sunt deja swapped (au parcurs <br>o serie de drumuri swap-RAM, RAM-swap) si in momentul in care se <br>realizeaza o citire, daca pagina nu este prezenta in memorie ea va fi <br>copiata din
swap.<br><br>La inceput nici o pagina nu rezida in swap. Este copiata acolo numai <br>daca a fost modificata si daca trebuie inlocuita cu o alta pagina. La <br>testul 3 paginile nu rezida in swap si nici nu sunt copiate vreodata <br>acolo (sunt numai apeluri read-only).<br><br>Va trebui, cu alte cuvinte, sa retii cand o pagina este swapped si cand <br>nu este ca sa faci deosebirea intre aceste cazuri.<br><br>Imi cer scuze pentru articifiul de la testul 3 ... este doar un test <br>care nu are o situatie verosimila in spate ... doar testeaza <br>functionlitatea temei (la testul 3 mi-a fost cel mai usor sa testez ca o <br>pagina read-only nu este swapped).<br><br>Daca mai ai intrebari, nu ezita sa le postezi.<br><br>Razvan<br>_______________________________________________<br>so mailing list<br>so@cursuri.cs.pub.ro<br>http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so<br></blockquote><br><p> __________________________________________________<br>Do You Yahoo!?<br>Tired
of spam? Yahoo! Mail has the best spam protection around <br>http://mail.yahoo.com