Documente Academic
Documente Profesional
Documente Cultură
1. Obiectivul lucrării
Scopul lucrării este familiarizarea cu modul de operare al memoriei virtuale şi
cu procedeele de gestionare a procesului de paginare. De asemenea, sunt detaliate
politicile de înlocuire a paginilor, precum şi modul de formare a adreselor fizice.
2. Introducere teoretică
Nivelul sistemului de operare (exploatare) are un caracter hibrid, cea mai mare
parte a instrucţiunilor care definesc limbajul fiind de tip maşină. Există şi instrucţiuni
specifice, care necesită interpretare pentru a fi trecute pe nivelul maşinii
microprogramate. Plasarea sistemului de operare în structura ierarhică stratificată a
nivelurilor unui sistem de calcul este prezentată în figura 1.
Fig. 1. Poziţionarea nivelului sistemului de operare în structura stratificată a nivelurilor unui calculator.
În mod normal, în memoria fizică instalată se pot afla mai multe pagini active
(vezi figura 4) Dimensiunea paginii cu care operează procesorul Intel, echivalentă de
fapt cu dimensiunea blocurilor de memorie cu care se lucrează, este de obicei de 4
KB. Se presupune că există o capacitate de adresare fizică de 64 KB (adică, 16 linii de
adresă). Se împarte acest spaţiu în pagini de câte 4 KB (blocuri), rezultând astfel 16
pagini. Se mai presupune că memoria fizică instalată este de 32 KB.
Adresa fizică este pe 16 biţi şi, dacă se urmăreşte folosirea memoriei paginate,
se poate considera că cei mai semnificativi 4 biţi reprezintă numărul paginii, iar cei
mai puţin semnificativi 12 biţi reprezintă deplasamentul în cadrul paginii. Pentru a
realiza gestiunea memoriei fizice instalate se va folosi un tabel de pagini cu 16 intrări
a câte 4 biţi fiecare (vezi figura 5).
L6b1: Gestiunea memoriei virtuale prin paginare 147
Din cei 4 biţi, un bit va indica dacă pagina fizică adresabilă se află sau nu în
memoria principală, restul de 3 biţi (număr dat, de fapt, de numărul de biţi cu care
poate fi codificat numărul de pagini din memoria instalată) indică pagina din memoria
instalată în care se află pagina din memoria fizică adresabilă la care se face referire.
Avantajele paginării pot fi rezumate astfel:
mărimea fixă a cadrelor de pagină intră corect într-un sector al unui disc;
un obiect nu trebuie să fie continuu în memorie: pagina poate constitui o
nouă „cuantă” de informaţie;
mecanismul paginării şi tehnica de a schimba continuu blocuri fixe de
informaţii între memoria internă şi cea externă nu sunt vizibile utilizatorului.
În concluzie, mecanismul paginării are următoarele elemente esenţiale:
se realizează două niveluri de adresare indirectă a memoriei, astfel încât,
până să se ajungă la pagina propriu-zisă, se face o referinţă într-un director din care
se selectează o tabelă a paginilor;
toate obiectele din memorie implicate (directorul şi tabelele) sunt tratate la
rândul lor ca nişte pagini speciale, având mărimea fixă de 4 KB. Se păstrează astfel
principiul coerenţei informaţiei în memorie (idem pentru segmente);
directorul şi tabelele de pagini au structura uniformă, conţinând 1 K elemente
a câte 4 octeţi. Aici se găseşte adresa bazei tabelei şi, respectiv, a paginii selectate;
orice adresă a bazei unei tabele sau a unei pagini este dată pe un număr de
20 biţi, aceştia constituind partea mai semnificativă a adresei fizice vizate (MSB).
Blocurile sunt aliniate în memorie din 4 KB în 4 KB, deci automat cei mai puţin
semnificativi 12 biţi (LSB) ai adreselor fizice ale bazelor sunt 0;
adresa fizică a bazei directorului se află în unul din cele patru registre de
control ale microprocesoarelor.
Ideal, setul de pagini pe care un program le foloseşte cel mai des, numit şi
setul de lucru, poate fi ţinut în memorie pentru a reduce defectele de pagini lipsă
(page fault). Totuşi, programatorul ştie rareori care pagini se află în setul de lucru,
astfel încât sistemul de operare trebuie să le descopere dinamic. Când un program face
o referire la o pagină care nu se află în memoria principală, pagina respectivă trebuie
citită de pe disc. Pentru a-i face loc, o altă pagină va fi trimisă înapoi pe disc. De
aceea este necesar un algoritm care să decidă care pagină va fi eliminată.
148 Arhitectura sistemelor de calcul – lucrări practice
Algoritmul de înlocuire FIFO (primul intrat, primul ieşit) elimină pagina care a
fost încărcată prima, indiferent de momentul în care această pagină a fost referită
ultima dată.Fiecare pagină are un contor, care este iniţial egal cu 0 pentru fiecare
cadru de pagină. Pagina care tocmai a fost adusă în memorie va avea valoarea
contorului egală mereu cu 0, următoarea va avea valoarea 1 (înainte ca pagina cu
indexul 0 să fie adusă în memorie pagina aceasta avea contorul egal cu 0, dar a fost
incrementat cu 1) ş.a.m.d.
Practic, se creează un fenomen de îmbătrânire a paginilor, cea mai „tânără”
pagină având contorul cu valoarea 0. Când o pagină trebuie eliminată, se va alege
mereu cea cu valoarea cea mai mare a contorului.
Exemplu. Se folosește un sistem de memorie cu 8 pagini virtuale și 3 cadre de
pagină în memoria fizică (vezi figura 6). Șirul de referiri succesive la pagini este
reprezentat prin numerele de pagini virtuale din partea de sus, iar în partea de jos este
reprezentat conținutul cadrelor de pagină la momentele de timp în care apar erori de
pagină (page fault). În urma aplicării algoritmului FIFO, numărul erorilor de pagină
este 15, iar rata de page fault (pagini invalide) este de 15/20.
L6b1: Gestiunea memoriei virtuale prin paginare 149
3. Descrierea aplicaţiei
Lucrarea constă într-un program realizat în mediul de programare .NET pentru
ilustrarea memoriei virtuale prin conceptul de paginare.
Aplicaţia de paginare este compusă din două componente distincte: formarea
adresei fizice şi algoritmii de înlocuire a paginilor.
Aceste două opţiuni deschid ferestre separate ale programului, iar în fereastra
principală se revine prin închiderea ferestrelor componente.
A. Formarea adresei fizice la paginare este compusă din cinci părţi.
1. La primul pas, stabilirea parametrilor (vezi figura 7), se aleg dimensiunea
memoriei fizice, a memoriei virtuale şi a paginii. Numărul de biţi ai adresei este 16.
3. Al treilea pas este compus din alegerea parametrilor pentru formarea adresei
de memorie virtuală (vezi figura 9). Sunt disponibili trei parametri: pagina virtuală a
adresei, deplasamentul în pagină al adresei şi pagina din memoria fizică în care este
referită pagina din memoria virtuală.
5. Al cincilea pas prezintă în detaliu adresa din spațiul de adrese fizice creată
de program, formată din numărul de pagină fizică și deplasamentul în pagină (prin
calculul valorilor cadrului de pagină și al numărului de biți necesari), şi reprezentarea
tabelei de pagini (vezi figura 11).
4. Desfăşurarea lucrării
1. Se parcurge prezentarea teoretică în vederea familiarizării cu conceptul de
paginare, precum şi cu metodele de implementare a acesteia.
2. Se rulează programul de gestiune a memoriei virtuale prin paginare.
3. Se rulează modulul de formare a adresei fizice, testându-se mai multe
valori de parametri, pentru a observa cum afectează valorile acestora
procesul de formare a adresei fizice. Se notează cel puțin două seturi de
valori diferite.
4. Se examinează redarea grafică a memoriei virtuale şi a memoriei fizice şi
se selectează parametrii pentru formarea adresei de memorie virtuală. Se
reţin cel puțin două cazuri reprezentative.
5. Se examinează metoda de calcul şi reprezentarea formării adresei, atât în
memoria virtuală, cât şi în cea fizică. Se reţin cel puțin două cazuri
reprezentative.
6. Se trece la modulul de algoritmi de înlocuire a paginilor.
7. Se selectează parametrii de memorie, precum şi algoritmul de paginare
care se doreşte a fi implementat (pe rând, NRU și FIFO).
8. Se examinează tabelele de pagini de memorie, atât pentru memoria
virtuală, cât şi pentru memoria fizică, şi se execută operaţiile de citire şi
scriere asupra diferitelor pagini, observându-se modificările apărute. Se
notează cel puțin două seturi de valori diferite.
5. Întrebări