Memoria virtuala -concept, -functionare, -caracteristici ale uprocesoarelor pentru comanda memoriei virtuale Concept: Consideram toate memoriile (MP si MA) ca pe un spatiu unic de adrese care ofera utilizarea unui spatiu de memorie denumit logic sau virtual unde pot fi construite blocuri de date mult mai mari decat in mp. Aceste blocuri nu mai sunt limitate de dim MP.MV e vazuta ca o "mp" care ofera un spatiu de adrese mult mai mare decat spatiu memoriei fizice. Pt implementarea conceptului de MV e necesar ca accesul la MV sa fie transparent pt programator, care trb degrevat de utilizarea acestui bloc de date. Cea mai mare parte a informatiei(date) sunt stocate in MA. Apo 757d32h i sisteml adduce informatii din MA in mp si sistemul incepe sa functioneze. Realizarea mv implica existenta unui mechanism care sa execute transferal de date intre mp si ma. Transeferul de date intre mp si ma e ineficient, de aceea se realizeaza pe blocuri/module; Implementarea conceptului de mv poate fi realizat : soft sau hard. Pentru a fi executat un program de microprocesoare trebuie plasat in memoria principala (memoria de tip semiconductor) Pentru a prelucra datele, trebuie sa fie plasate in memoria principal, operanzii microprocesorului. Microproc evoluate folosesc principiul organizarii modulare: Liniara (spatiu de memorie liniara, pentru microproc simple (<64 octeti)) Modular (blocuri, pt microproc evoluate, blocuri, segmente, pagini) Dimensiunea blocurilor de memorie este limitata de dimensiunea memoriei principale. Este un impediment pentru ca microprocesoarele nu pot sa creeze blocuric de memorie mai mari decat memoria principala. Uneori spatiul memoriei de blocuri este f mic (pt microproc <64 Kocteti) Pentru utilizator ar fi mai comod sa constituie blocuri de date care sa nu tine seama de memoria principala. In structura unui sistem de calcul, in afara de memoria principala, exista alte memorii (memorii auxiliare - este accesata prin intermediul registrului de intrare iesire), ex:discuri magnetice, discuri optice. Memoria principala este, de regula, mai mare. Pt a accesa memoria auxiliara trebuie sa mutam continutul in memoria principala de unde poate fi prelucrata de microproc. Def: conceptul de memorie virtuala - consideram toate memoriile (MP si MA) ca pe un spatiu unic de adrese care ofera utilizatorului un spatiu de memorie denumit logic sau virtual unde pot fi construite blocuri mult mai mari decat in MP. Aceste blocuri nu mai sunt limitate de dimensiunea memoriei principale. MV este vazuta ca o MP care ofera spatiu de adrese mai mare decat spatiul memoriei fizice. Pentru a fi implementat conceptul de MV este necesar ca accesul la MV sa fie transparent pt programator, care trebuie degrevat de utilizarea acestui bloc de date. Cea mai mare parte a datelor este stocata in MA. Apoi sistemul aduce informatii din MA in MP si sistemul incepe sa functioneze. Realizarea MV implica existenta unui mecanism care sa execute transferul de date intre MP si MA. Transferul unor date intre MA si MP este ineficient de aceea se realizeaza pe blocuri/module. Implementarea conceptului de MV poate fi realizat atat software cat si hardware. Primele sisteme foloaseau softul (metoda lenta). La microproc evoluate (incepand cu generatia 3) in structura microproc au fost introduse facilitati hardware combinate cu elemente soft= sistemul are un spatiu de MP mult mai mare. Elementele Hard pt MV: In cazul organizarii modulare sunt folosite 2 tipuri de adrese: Virtual (pointeri) - folosite in programare Fizice - adrese pe care microproc le folosesc pt a accesa MP. Pt functionarea sistemului cu microproc trebuie sa existe un mecanism. Translaterea adreselor fizice in adrese virtuale este facuta de unitatea de gestionare a memoriei (MMU=Memory Management Unit) Transferul intre MA si MP se realizeaza sub forma de blocuri. Daca in cazul unei prelucrari apar adrese logice (care nu exista in MP), MMU trimite comenzi de transfer in MP. Cand in MP sunt stocate blocuri de informatie care nu mai sunt necesare ele sunt trimise in MA, prin intermediul MMU. Primele tipuri de microprocesoare au folosit blocuri segmentate. Segmentele - pot avea diferite dimensiuni; unitati logice de memorie (acces direct la memorie); pot fi referite de utilizator in program. Microprocesoarele din generatia 4 si 5 folosesc si pagini si segmente = flexibilitate mare a MV. Ex: Intel (segmentele sunt impartite in pagini) Gestionarea MP de MMU si sist de operare implica cunoasterea continutului MP si al continutului MV. Trasnlatarea memoriei virtuale in adrese fizice se bazeaza pe structuri de date denumite "descriptori de segmente/pagina". |
Fiecarui segment de coduri/date din MV ii este atasat un descriptor de segment/pagina.
|