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 _______________________________________________ http://ocw.cs.pub.ro/courses/so/info/lista-discutii