Extras din curs
In acest capitol sint prezentate principalele tehnici de gestiune a memoriei folosite de sistemele de operare. Acestea sint: alocarea singulara contigua, partitionarea, paginarea (simpla si la cerere), segmentarea (simpla sau cu paginare la cerere), swapping-ul, overlay-ul si ierarhiile de memorii (cache). In ultimul modul al acestui curs, este prezentat succint felul in care SO Unix administreaza memoria interna, combinind doua tehnici: swapping-ul si paginarea la cerere.
Continut
Alocare singulara contigua
Gestiunea memoriei cu partitionare
Paginarea memoriei
Paginarea la cerere
Segmentare
Segmentare cu paginare la cerere
Alte tehnici de gestiune a memoriei
Gestiunea memoriei in Unix
Cuvinte cheie: alocarea memoriei, partitionare, paginare (la cerere), segmentare, swapping, overlay, cache
Modul1 - Alocare singulara contigua
Acesta tehnica presupune ca intreaga memorie interna (exclusiv desigur, zona alocata SO) este alocata job-ului sau procesului care o solicita. In fapt, spatiul de adrese al programului (totalitatea adreselor dintr-un program) se map-eaza pe spatiul fizic de adrese al memoriei principale, dupa cum se poate vedea si din figura urmatoare:
Fig.6. Alocare singulara contigua a memoriei
Observatie De obicei, spatiul de adrese al SO este mai mare decit zona rezervata lui din memorie - ca urmare, doar o parte a SO este rezidenta in memoria interna.
In ceea ce priveste cele patru functii ale unui modul de gestiune a resurselor, in cazul acestei tehnici, se pot spune urmatoarele:
SR. Modulul de gestiune a memoriei interne (MGM) trebuie sa determine de unde pina unde se intinde spatiul ocupat de SO; deasemenea el trebuie sa determine care este zona in care se pot incarca programele utilizator;
PA. In acest caz nu se poate pune problema existentei unei politici de alocare;
AR. Alocarea spatiului de memorie este totala catre job-ul sau procesul respectiv;
ER. Eliberarea spatiului de memorie este automata, la terminarea job-ului (procesului).
Dupa cum se poate observa, este necesar ca MGM se determine intre ce adrese se poate rula job-ul (proces-ul) utilizator; mecanismul hardware de control al acestei executii este realizat cu ajutorul a doi registri: un registru de baza RB si un registru limita RL. SO este acela care nu va executa eventualele instructiuni care vor genera adrese in afara acestor limite. Ca urmare a acestei restrictionari asupra adreselor pe care le pot accesa programele, se impune existenta a doua moduri de lucru:
- utilizator: in care nu se poate face acces la zona rezervata SO;
- sistem: in care se permite accesul la orice locatie de memorie.
Avantajele acestei tehnici constau in:
- simplitatea ei
- necesitatea unui suport de memorie redus (SO-ul folosit fiind simplu, o mare parte din spatiul de memorie va putea fi folosit direct de programele utilizator);
- folosirea unor elemente hardware suplimentare ieftine (doi registri).
Dezavantajele prezentate de tehnica de alocare singulara sint:
- memoria este incomplet utilizata
- exista momente in care unicul proces din memorie executa operatii de I/O, el nefolosind procesorul - s-a constatat ca, din acest motiv, procesorul sta nefolosit cam 65-70% din timp, ceea ce este deigur extrem de ineficient!
- in memorie se incarca tabloul static al programelor si, cum acesta poate contine rutine care nu se executa niciodata, are loc o ocupare inutila a memoriei;
- nu se pot rula programe mai mari decit memoria fizica.
Modul2 - Gestiunea memoriei cu partitionare
Solutia gasita de proiectantii de SO pentru a depasi unele din neajunsurile prezentate de tehnica prezentata anterior este multi-programarea. Aceasta tehnica consta, dupa cum stim, in incarcarea in memoria interna, a spatiului de memorie al mai multor programe. Pentru a se putea realiza acest lucru trebuie ca , unde n este gradul de multi-programare.
Observatie
- Folosind aceasta multi-programarea creste gradul de utilizare a memoriei, dar ea nu se poate folosi integral datorita fragmentarii care se produce;
- Deasemenea, si in acest caz procesorul poate sta nefolosit daca toate procesele fac la un moment dat operatii de I/O.
O prima tehnica utilizind multi-programarea este aceea de gestiune a memoriei principale cu partitionare. Aceasta tehnica a fost folosita in SO aparute in anii '60-'70, care erau de tip batch-processing. In acele sisteme, memoria operativa era impartita in zone numite partitii. In fiecare partitie se putea incarca un job (sau proces).
Preview document
Conținut arhivă zip
- Sisteme de Operare - Gestionarea Menoriei Interne.doc