[so] Re: Intrebare tema5

Razvan Deaconescu razvand at cs.pub.ro
Fri Jan 12 15:18:45 EET 2007


Andreea Fulger wrote:
> Buna!
>  
> La testul 4, cand se face poison pe swap si practic au loc niste 
> interschimburi swap-ram ram-swap e nevoie sa actualizez si memoria 
> virtuala (adica am fault la pagina 2 - ea se gaseste in swap dar memoria 
> fizica e plina. Mut o pagina din memoria fizica in swap si o pun pe 2 in 
> RAM... mai modific si mem virtuala coresp lui 2 - pt ca SWAP-ul a fost 
> poisoned)?

Daca o pagina se gaseste in swap atunci, in mod normal, pagina este 
inaccesibila. In acel moment, trebuie adusa pagina cautata din swap in 
fisierul de RAM si cea de inlocuit din RAM va trebui copiata (daca este 
dirty) in swap.

Da, trebuie actualizata si memoria virtuala; trebuie sa copiezi in 
cadrul ei informatia proaspat obtinuta (copierea va trebui sa aiba 
drepturi READ_WRITE pe pagina, dar dupa copiere e posibil sa reprotejezi 
pagina numai cu drept READ daca accesul este read-only).

> Mie asa mi s-ar parea normal. Problema e insa ca si daca 
> actualizez si daca nu testul checkRamPoison trece.
>

Da, ai dreptate. Este greseala mea, pentru ca am omis sa verific ca se 
intampla actualizarea si pentru memoria virtuala. In mod normal ar 
trebui sa existe si un checkVirtualPoison ... dar e prea tarziu sa mai 
modific testul si, oricum, modificarea in tema e minora (maxim 5 linii 
de cod).

Asta e o consecinta a observatiei lui Cosmin Raianu. Eu initial omisesem 
  problema copierii unor pagini din swap in ram in cazul unui 
page-fault. In mod evident actualizarea unei pagini din RAM are drept 
consecinta actualizarea paginii asociate din memoria virtuala.

Si inversa este adevarata; doar ca m-am gandit ca actualizarea 
fisierului reprezentand RAM-ul, ca urmare a unor modificari in memoria 
virtuala, sa fie realizata in ram_sync din motive de eficienta (sa nu 
stau la fiecare modificare a unui octet in memoria virtuala sa fac un 
write in memoria fizica ... se apeleaza ram_sync si se actualizeaza 
_toate_ intrarile in fisierul RAM asociate paginilor din memoria 
virtuala; apoi pot sa verific conformanta cu operatiile efectuate, prin 
analiza directa a fisierului RAM)

> Mersi si scuze daca ti-am dat prea multe batai de cap:)

always a pleasure ... asta e rostul unei liste de discutii :-)

Razvan

am dat reply si pe lista de discutii pentru eventuale lamuriri si pentru 
altii


More information about the so mailing list