[so] Tema5 intebari

Dragusin Bogdan dragusinb at yahoo.com
Thu Jan 4 18:01:43 EET 2007


Pasul 2 este reprezentat de urmatoarea portiune de cod:
"
for (i = 5; i < 8; i++) {
        _read (i, PAGE_FAULT, rand_pos);
        _read (i, NO_PAGE_FAULT, rand_pos + 4);
    }

    for (i = 0; i < 8; i++) {
        write_read (i, NO_CHECK, rand_pos);
        read_write (i, NO_CHECK, rand_pos + 4);
        write_read (i, NO_CHECK, rand_pos + 8);
    }

    ram_sync ();
    check_swap (rand_pos, 8, 5, 3, 0);
"
Practic am numit un "pas" o portiune intre 2 ram_sync-uri :P

Dragusin Bogdan <dragusinb at yahoo.com> wrote: 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?

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?

Razvan Deaconescu <razvand at cs.pub.ro> wrote: Dragusin Bogdan wrote:
> Scuze daca insist dar tot nu inteleg :(.

Nu este nici o problema. La urma urmei, asta e rostul listei de discutii :-)

> Cum ar trebui sa treaca tema 
>  testul 4 in care se verifica in acelasi mod sincronizarea dintre swap si 
> ram prin check_ram_poison (rand_pos, 5, 3); si sa treaca si testul 3 la 
> care aceasta modificare nu trebuie sa se vada:(
>  Practic la testul 4 din cate inteleg se asteapta ca daca in swap a fost 
> scris poison swap sa se scrie si in ram tot poison swap...

Cum arata cele doua teste:

la testul 4:

         poison_swap (8);
         for (i = 0; i < 8; i++) {
                 poison_swap (8);
                 _read (i, NO_CHECK, rand_pos);
                 _read (i, NO_CHECK, rand_pos + 4);
                 _read (i, NO_CHECK, rand_pos + 8);
         }

         ram_sync ();
         check_ram_poison (rand_pos, 5, 3);


la testul 3:

         for (i = 0; i < 3; i++) {
                 _read (i, PAGE_FAULT, rand_pos);
                 _read (i, NO_PAGE_FAULT, rand_pos + 4);
         }

          ram_sync ();
         check_ram0 (3);


Deosebirea este urmatoarea: la testul 3, la inceputul inceputului, se 
realizeaza asocierea intre paginile virtuale si paginile fizice 
(simulate prin fisierul RAM). In prima instanta paginile se vor asocia 
fara a exista vreo legatura cu swap-ul. Deoarece se realizeaza numai 
citiri, o pagina nu va fi niciodata swapped (nu este nevoie ... e un pic 
fortat ... dar pentru usurinta in implementare/testare se considera ca o 
pagina care este read-only nu va fi niciodata swapped).

Testul nu are relevanta practica ... daca te gandesti mai bine, se 
citesc informatii pe care nu le-a scris nimeni ... e doar metoda de 
testare, nu are o logica in spate.

In partea cealalta, la testul 4, paginile sunt deja swapped (au parcurs 
o serie de drumuri swap-RAM, RAM-swap) si in momentul in care se 
realizeaza o citire, daca pagina nu este prezenta in memorie ea va fi 
copiata din  swap.

La inceput nici o pagina nu rezida in swap. Este copiata acolo numai 
daca a fost modificata si daca trebuie inlocuita cu o alta pagina. La 
testul 3 paginile nu rezida in swap si nici nu sunt copiate vreodata 
acolo (sunt numai apeluri read-only).

Va trebui, cu alte cuvinte, sa retii cand o pagina este swapped si cand 
nu este ca sa faci deosebirea intre aceste cazuri.

Imi cer scuze pentru articifiul de la testul 3 ... este doar un test 
care nu are o situatie verosimila in spate ... doar testeaza 
functionlitatea temei (la testul 3 mi-a fost cel mai usor sa testez ca o 
pagina read-only nu este swapped).

Daca mai ai intrebari, nu ezita sa le postezi.

Razvan
_______________________________________________
so mailing list
so at cursuri.cs.pub.ro
http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so

 __________________________________________________
Do You Yahoo!?
Tired  of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com _______________________________________________
so mailing list
so at cursuri.cs.pub.ro
http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so



 __________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://cursuri.cs.pub.ro/pipermail/so/attachments/20070104/8d966bb6/attachment.html


More information about the so mailing list