[so] [Tema3][General]

Mihai Catalin Arsenescu mihai.catalin.arsenescu at gmail.com
Sat Apr 2 14:48:58 EEST 2016


Buna ziua / Salut,
1. Fie cazul in care se scrie intr-o pagina care nu a fost alocata in
RAM(STATE_NOT_ALLOC).
Din enunt:
<quote>
În momentul generării unui page fault și a alocării unei pagini
fizice, pagina virtuală este marcată read-only. Dacă accesul a fost de
scriere, se va genera un nou page fault și se va marca pagina
read-write. Astfel, un acces de citire la o pagină nemapată va genera
un page fault, iar pagina va fi mapată și marcată read-only. Un acces
de scriere la o pagină nemapată va genera două page fault-uri, iar
pagina va fi mapată și marcată read-write.
</quote>
1.1. Nu inteleg cum putem stii ce acces a fost; eu nu gasesc in
structura siginfo_t un camp care sa reflecte acest lucru. Acest
comportament(2 semnale la write) trebuie luat ca atare? Adica la un
acces de write se va apela de 2 ori handler-ul nostru fara ca noi sa
implementam acest lucru? Daca da,  cum stim ca apelul este de write
sau read ?
1.2. Luand in calcul
<quote>Pentru a implementa logica de demand paging și cea de swapping
trebuie să interceptați page fault-urile produse în momentul unui
acces nevalid la o zonă de memorie. La interceptarea page
fault-urilor, folosiți modificări succesive ale drepturilor paginilor
pentru a implementa logica temei. La început, paginile nu au niciun
drept (PROTECTION_NONE).</quote>,
se vrea implementat urmatorul comportament?
<comportament>
La primul acces la o memorie nemapata: se mapeaza in RAM si se face READ_ONLY
La al doilea acces(primul acces la o memorie mapata): se muta in RAM
si se face READ_WRITE.
</comportament>
1.3. Putem primi page fault pentru o pagina care se afla in RAM? Daca
da, acesta se datoreaza permisiunilor de acces?
2. Prin mapare peste RAM se intelege demaparea din memorie
virtuala(unmap) si maparea(mmap) peste descriptorul de fisier RAM ?

Multumesc,
Mihai-Catalin Arsenescu


More information about the so mailing list