[so] [tema5] testul ramclean
Vlad Cananau
vladk2k at gmail.com
Thu Dec 13 22:05:30 EET 2007
Deci, daca s-ar verifica ReadValue din _Read ar trebui sa fie
RAM_POISON sau zero?
In continuare nu mi se pare foarte justificat sa citim din fisierul
ram continutul paginilor neinitializate. Niciun sistem de operare nu
cred ca iti garanteaza ca memoria pe care ti-o aloca are o anumita
valoare, cum nici eu nu initializez memoria alocata (desi VirtualAlloc
si mmap se pare ca umplu cu zero, amandoua) - o exceptie este calloc,
care face acest lucru in mod explicit.
Explicatia pe care mi-a dat-o un coleg si pe care o consider mai
pertinenta este ca din moment ce nu s-a facut scriere, paginile alea
nu ar trebui scrise inapoi in fisierul RAM (cu alte cuvinte, doar
paginile 'dirty_2' ar trebui scrise in fisierul RAM - unde dirty_2 e
acelasi lucru ca dirty dar se conserva la introducerea/scoaterea din
swap)
On Dec 13, 2007 9:26 PM, Razvan Deaconescu <razvand at cs.pub.ro> wrote:
> operatiile _read citesc pagini de memorie virtuala; intrucat paginile nu
> se gasesc in memoria fizica (nu sunt mapate), atunci se va face maparea
> lor in mod read_only din memoria fizica; paginile din memoria fizica
> sunt mapate in memoria virtuala; astfel paginile de memorie virtuala vor
> fi pagini otravite
Si ce se intampla cu a (n+1)-a pagina virtuala? ea cu ce valoare se umple?
> check_ram0 verifica daca paginile virtuale sunt "otravite"; asa si
> trebuie sa fie din cauza operatiilor anterioare; acele pagini virtuale
> contin numai informatii de tip poison
Ciudat, credeam ca titlul CheckRam0 / check_ram0 inseamna sa verifice
ca RAM-ul e zero, nu poisoned :-)
P.S. RaZVaN, 4 mai '82 ;-)
___
Vlad Cananau
More information about the so
mailing list