[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