[so] Tema5 intebari
    Razvan Deaconescu 
    razvand at cs.pub.ro
       
    Wed Jan  3 12:35:21 EET 2007
    
    
  
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
    
    
More information about the so
mailing list