[so] STATE_NOT_ALLOC

Razvan Crainea razvan.crainea at gmail.com
Mon Apr 7 20:21:47 EEST 2014


2014-04-07 18:22 GMT+03:00 Istrate Roxana <istrateroxana2006 at gmail.com>:

> Buna, as vrea si eu sa ma asigur ca am inteles ce inseamna STATE_NOT_ALLOC.
>
> Atunci cand a fost apelat vm_alloc sa zicem cu 7 pagini virtuale si 5
> fizice, voi aloca cele 7 pagini virtuale initial cu acest flag
> STATE_NOT_ALLOC in campul pte.prev_state si pte.state ?
> Si daca da, el inseamna ca deocamdata in paginile alea e garbage, iar cand
> va fi un page fault sigur procesul va cere sa scrie in paginile astea,
> adica se vor genera de fapt 2 page faulturi si abia apoi va citi? Ca
> altfel.. citeste ce e acolo adica initial nimic bun.
>
> Deasemenea, as vrea sa stiu si ce face flagul SEGV_MAPPER si daca este
> echivalent cu STATE_NOT_ALLOC.
>

Încep prin a sublinia faptul că headerul helper.h este doar o sugestie de
implementare, nu trebuie să aliniați programul vostru la structura
respectivă. El este menit doar să vă ajute, nu să vă încurce.

STATE_NOT_ALLOC este un flag pe care îl poți folosi pentru a indica faptul
că pagina respectivă nu este alocată. Într-adevăr paginile care nu au fost
alocate, conțin garbage și nimeni n-ar trebui să aibe acces la ea.
Conform mecanismului de demand paging, în momentul în care un proces face o
operație pe pagina respectivă (citire sau scriere), pagina respectivă
trebuie alocată în RAM și conform enunțului curățată (sau umplută cu zero).

Da, cele două flaguri sunt "teoretic" echivalente.

Spor!
-- 
Răzvan Crainea
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20140407/8b4dbaaf/attachment.html>


More information about the so mailing list