SHPORA.net :: PDA

Login:
đćăèńòđàöèÿ

Main
FAQ

ăóìàíèòàđíûć íàóêè
ćńòćńòâćííûć íàóêè
ìàòćìàòèśćńêèć íàóêè
òćőíèśćńêèć íàóêè
Search:
Title: | Body:

b.Structuri de date p-ru demand paging

Nucleul conține 4 structuri de date majore pentru a asigura funcțiile de gestiune a memoriei la nivel scăzut ?i paginarea la cerere: intrările din tabela de pagină (page table entries), descriptorii de bloc disc, tabela pfdata (page frame data table) ?i tabela de folosire a spațiului de swap (swap use table). Nucleul alocă spațiu pentru tabela pfdata o singură dată pe durata de viață a sistemului, dar pentru celelalte structuri alocă pagini de memorie dinamic. O regiune conține tabele de pagină pentru a accesa memoria fizică. Fiecare intrare a unei tabele de pagină conține adresa fizică a paginii, biții de protecție care indică dacă procesul poate citi, scrie sau executa pagina ?i următoarele câmpuri de biți pentru asigurarea paginării la cerere:
*valid ? validare (Nucleul modifică bitul valid pentru a indica legalitatea conținutului unei pagini, dar aceasta nu înseamnă că, atunci când acest bit indică ilegalitatea conținutului unei pagini, este ilegală ?i referirea paginii respective);
*reference - referință (indică dacă un proces a referit recent o pagină);
*modify ? modificare (indică dacă un proces a modificat recent conținutul unei pagini);
*copy on write - copie la cerere (utilizat în apelul sistem fork, indică faptul că nucleul
trebuie să creeze o nouă copie a paginii atunci când procesul îi modifică conținutul);
*age ? timp (nucleul manipulează setul de biți age pentru a indica cât timp o pagină a
făcut parte din setul de lucru al unui proces).
Fiecare intrare în tabela de pagină este asociată cu un descriptor de bloc disc, care descrie copia pe disc a paginii virtuale. Conținutul unei pagini virtuale se poate găsi într-un anumit bloc din zona de swap, într-un fi?ier executabil sau nu se poate găsi pe un dispozitiv de swap. Dacă pagina se găse?te într-o zonă de swap, descriptorul de bloc disc conține numărul dispozitivului logic ?i numărul blocului care conține pagina respectivă. Dacă pagina este conținută într-un fi?ier executabil, descriptorul de bloc disc conține numărul blocului logic din fi?ier care conține pagina;