[so] Tema 3 - Pagini readonly

Razvan Deaconescu razvand at cs.pub.ro
Sat May 10 22:30:47 EEST 2008


On Sat, 2008-05-10 at 17:25 +0300, George Dita wrote:
> Problema mea: cand sunt unele pagini readonly si de ce? Nu le pot seta
> direct pe readwrite? Initial cand dau peste un segfault trebuie sa dau
> drept de acces doar de read?

La primul page fault (SIGSEGV/Exception) pagina se mapeaza PROT_READ.
Adica nivelul minim de protectie mai mare decat PROT_NONE. Daca acea
protectie este insuficienta, va veni un nou semnal/exceptie pentru a
protejata PROT_WRITE.

Motivul este sa stii cand a fost acces de citire sau scriere la pagina.
In momentul in care pagina a fost scrisa inseamna ca este modificata.
( dirty - "manjita", cum ii spunem noi :-) ) Daca o pagina este
modificata atunci in momentul inlocuirii va fi scrisa pe disc (swap).
Altfel, daca a fost accesata fara a fi modificata, inlocuirea ei nu va
duce la scrierea pe disc (swap).

Daca precizarea din enunt[1] nu este clara, te rog sa o
modifici/clarifici si ii facem noi republish.

> Situatie posibila: memorie blank nealocata;Scriu in memorie undeva =>
> page fault (setez read only) => page fault (setez read_write) ? Asa ar
> trebui.

Da. Exact asa zice si enuntul.

> Propunere: daca este asa pot sa setez in maparea ramului read_write de
> la inceput?  sa imi fac tratarile de read/write doar in memoria
> virtuala?

Nu inteleg.

Razvan

[1]
---
Pentru o pagina care rezida in memori fizica va trebui sa faceti
deosebirea intre o pagina care a fost modificata (dirty) si una care nu
a fost modificata. Daca o pagina nu a fost modificata atunci, in
momentul inlocuirii, ea nu va mai fi inlocuita in swap (nu se va face
copiere). Pentru usurinta in testare, acest lucru ramane valabil si la
paginile care sunt initial read-only.

Pentru un acces de modificare (write), testarea impune generarea a doua
page fault-uri. Dupa primul page fault, pagina este marcata ca
read-only, urmand sa se genereze un nou page fault si pagina sa fie
marcata read-write.
---


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.



More information about the so mailing list