Protecția memoriei

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Protecția memoriei , în informatică, este un sistem care împiedică un proces să corupă memoria altui proces care rulează în același timp pe același computer . De obicei necesită suport hardware (de exemplu cu un MMU, unitate de gestionare a memoriei) și un sistem de operare care alocă zone distincte de memorie pentru diferitele procese și care gestionează eventualitatea în care un proces încearcă să acceseze o zonă de memorie care nu aparține către el. Există diferite moduri de a asigura protecția memoriei. Segmentarea memoriei și paginarea sunt cele mai comune metode.

Segmentare

Pictogramă lupă mgx2.svg Același subiect în detaliu: Segmentare (memorie) .

„Segmentare” înseamnă că una sau mai multe părți ale memoriei sunt „sigilate” de accesul procesului curent prin două registre ale microprocesorului.

Dacă datele care urmează să fie citite sau scrise se află în afara zonei de adresare a procesului, se generează o eroare generală de protecție (în engleză , o eroare generală de protecție sau GPF ).

Acest mod nu trebuie confundat cu segmentarea memoriei în modul real a microprocesoarelor x86 .

Paginare

Pictogramă lupă mgx2.svg Același subiect în detaliu: Paginarea .

„Paginarea” este cea mai utilizată metodă de protecție a memoriei și are mai multe avantaje față de segmentare.

Paginarea creează un spațiu de memorie virtuală liniară folosind fragmente (blocuri) de memorie fizică . Memoria virtuală este împărțită în porțiuni mici (de obicei 4 kbyte) numite pagini . Fiecare pagină poate indica orice bloc de memorie fizică și pot exista, de asemenea, diferite pagini care indică același bloc de memorie fizică. Fiecărui proces i se atribuie un tabel de pagini , care specifică ce pagini are dreptul accesul procesului. De asemenea, procesul se va comporta ca și cum ar fi singurul proces din sistem și ca și cum ar avea tot spațiul de adresă. Paginarea permite, de asemenea, adresarea liniară a memoriei virtuale, indiferent de alocarea necontiguă în memoria fizică.

Paginarea vă permite, de asemenea, să alocați cu ușurință nouă memorie pentru proces, deoarece paginile pot fi mapate oriunde. O parte din memoria unui proces poate fi stocată în memoria de masă ( swapping ).

Fiecare proces are un tabel de pagini pentru a defini adrese de memorie valide și pentru a le mapa la memoria fizică. Tabelul de pagini este de obicei invizibil pentru proces. Dacă un proces încearcă să acceseze o locație de memorie care nu este mapată în tabelul de pagini, se generează o eroare de pagină (eroare de pagină) . Defecțiunile de pagină pot însemna fie că procesul a încercat să acceseze o porțiune de memorie la care nu are acces, fie că o parte din memoria procesului a fost depusă într-un fișier de paginare după schimbare. În acest caz, pagina va fi recuperată de pe disc și executarea va reporni de unde a rămas.

Chei de protecție

Mecanismul cheii de protecție împarte memoria fizică în blocuri cu o dimensiune prestabilită (de exemplu, 2 KB), fiecare dintre acestea având un număr numit cheie de protecție. Fiecare proces are, de asemenea, propria cheie de securitate. În fiecare acces la memorie, hardware-ul verifică dacă cheia de protecție curentă a procesului este aceeași cu cea a memoriei pe care o accesează: dacă acestea sunt diferite, aceasta provoacă o eroare de excepție. Acest mecanism a fost utilizat în arhitectura System / 360.

Dacă atât paginarea, cât și segmentarea sunt utilizate în gestionarea memoriei (așa cum este cazul în arhitectura IA-32), paginarea nu intervine imediat în memorie, ci mai întâi caută un segment liniar.

Elemente conexe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT