SUSPECT: Re: [so] [tema5] testul ramclean
Razvan Deaconescu
razvand at cs.pub.ro
Fri Dec 14 13:30:17 EET 2007
On Fri, 2007-12-14 at 00:55 +0200, Vlad Cananau wrote:
> Asta inseamna ca incalcam inca alte niste principii. Deci noi la un
> moment dat putem citi mai multe pagini decat sunt in ram? sau daca
> pagina nu e modificata o "aruncam" pentru a face loc alteia?
> Din ce in ce tema asta nu prea mai seamana a memorie virtuala.
>
> Ok deci sa zicem ca pagina de inlocui nu o punem in swap, ea dispare
> in mod magic (o consider din nou nealocata)
> In pagina 4, totusi, ce pun?
OK. Cum sta treaba.
Initial paginile de memorie virtuala nu sunt mapate cu nimic (sunt
alocate pur virtual). Nu exista corespondent in memorie (RAM) sau pe
disc (SWAP).
Toate precizarile de mai jos se refera la testele din calupul 3 - acum
observ ca nu sunt chiar la locul lor si ca testul 3 trebuie
eliminat/regandit.
In momentul in care se realizeaza un acces se realizeaza maparea cu o
pagina din memoria fizica (demand paging). Daca o pagina este libera se
mapeaza peste acea pagina. Daca nu este libera o pagina trebuie
eliberata.
Maparea unei pagini initiale, din considerente de testare, nu pune
zerouri peste pagina RAM ci o mapeaza asa cum este. Accesul de read va
gasi astfel pagina fizica in forma ei initiala. Daca se realizeaza numai
accese de read pagina nu va fi, in mod evident, alterata. Aici se
incalca, poate, principiul de mapare al unei pagini.
O singura precizare care te va lamuri Vlad. Tine tot de testare si mai
putin de realitate (imi pare rau). Paginile initiale contin valori
aiurea care nu au pentru nimeni nici o relevanta. In cazul in care o
pagina fizica nu a fost modificata dar va trebui inlocuita (se face un
nou demand-paging si nu exista pagina libera), pagina nu va fi swappata.
Nu ar avea sens pentru ca ea oricum contine informatii aiurea. Daca ar
fi fost modificata, atunci ar fi trebuit swappata.
La fel, la inceput, fiind vorba de o alocare pur virtuala, nu se va
copia o pagina din swap in RAM. Nu are sens pentru ca pagina din swap nu
are legatura cu pagina virtuala. Pagina virtuala abia acum se mapeaza.
Ea obtine o pagina din RAM. Vechea pagina ar trebui sa se copieze in
swap. Ca exceptie, insa, nu se face copierea daca pagina a fost mapata
la o pagina fizica initiala si nu a fost modificata.
Imi cer scuze pentru "ciudatenia" mecanismului de testare.
Razvan
More information about the so
mailing list