CursMS7_2014_prezentat

28
•1 © Liliana Dobrica, Sisteme cu Microprocesoare 2013-2014 1 Agenda Elemente de organizarea memoriei: overlay, swapping, segmentarea, memoria virtuala segmentata, paginarea Gestiunea memoriei la microprocesorul 80386DX © Liliana Dobrica, Sisteme cu Microprocesoare 2013-2014 2 Overlay Overlay -1 • Tehnică larg utilizată în minicalculatoare. Ea mai este utilizată pentru rularea de programe mari pe microcalculatoare personale cu memorie mică. Tehnica: programul este parțial rezident în memoria principală, restul fiind memorat pe disc. Când o parte a programului stocat pe disc devine necesară pentru CPU, această parte este adusă în memoria principală în locul altei părți a programului, care nu este necesară la acel moment. •2

Transcript of CursMS7_2014_prezentat

Page 1: CursMS7_2014_prezentat

•1

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 1

Agenda

• Elemente de organizarea memoriei: overlay, swapping, segmentarea, memoria virtuala segmentata, paginarea

• Gestiunea memoriei la microprocesorul 80386DX

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 2

Overlay Overlay -- 11• Tehnică larg utilizată în minicalculatoare. Ea mai este utilizată pentru

rularea de programe mari pe microcalculatoare personale cu memorie mică. Tehnica: programul este parțial rezident în memoria principală, restul fiind memorat pe disc.

� Când o parte a programului stocat pe disc devine necesară pentru CPU, această parte este adusă în memoria principală în locul altei părți a programului, care nu este necesară la acel moment.

•2

Page 2: CursMS7_2014_prezentat

•2

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 3

OverlayOverlay -- 22�Diferitele subspații ale spațiului programului se pot

încărca în aceeași zonă de memorie � apare suprapunerea acestor subspații; de aici decurge și numele tehnicii de gestiune a memoriei: overlay (suprapunere).

�Este esențială evitarea situațiilor când doua părți distincte și care se pot suprapune ale programului sunt simultan necesare în memorie pentru executarea programului.

�Singurul care poate face aranjamentele cerute de tehnica overlay este programatorul, pentru că el cunoaște modul de evoluție a programului și care secțiuni ale lui trebuie să fie rezidente în memorie la un anumit moment de timp.

•3

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 4

• Partiționarea se poate efectua prin structurarea întregului program intr-un arbore de module, pentru care toate modulele de pe un nivel se pot suprapune.

• Arborele de suprapunere se poate construi urmărind arborele apelării procedurilor. Rădăcina este reprezentată de programul principal, care este permanent rezident în memoria principală, iar toate procedurile apelate direct de către programul principal se pot suprapune, pentru că ele sunt apelate una câte una, nici una din ele ne necesitând prezența alteia.

OverlayOverlay -- 33

•4

Page 3: CursMS7_2014_prezentat

•3

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 5

Overlay Overlay -- 44• Realizarea arborelui de suprapunere este o problema netrivială.

Modulele superpozabile trebuie sa aibă, aproximativ, aceeași dimensiune, ca să poată fi conținute în același spațiu de memorie.

• Altă problemă este generată de minimizarea operațiilor de instalare în și evacuare din memoria principala a modulelor (swapping). Cu cât numărul acestor operații este mai mare, cu atât eficiența de ansamblu este mai mică.

• Recomandarea: realizarea de module de mari dimensiuni. DAR gestionarea memoriei se face cu mai bună eficiență dacă modulele superpozabile sunt de mici dimensiuni.

• Concluzie: programatorul trebuie să realizeze compromisul între cerințele privind memoria și cele referitoare la eficienta execuției.

•5

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 6

• Programatorul se poate baza pe instrumente software de dezvoltare necesare elaborării taskului final, întrucât exista editoare de legături care se pretează utilizării tehnicii overlay.

• La execuție, un program construit conform tehnicii menționate efectuează apelări ale sistemului de operare ori de câte ori este necesar a folosi o procedură care, la acel moment, nu este rezidentă în memoria principală.

Overlay Overlay -- 55

o Implementarea tehnicii overlaynu necesită mijloace hardware speciale, cu excepția unor unități rapide de disc, care să permită încărcarea cu mare viteză în memoria principală a secțiunii cerute a programului. •6

Page 4: CursMS7_2014_prezentat

•4

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 7

Overlay Overlay -- 6 6

• Adresele de program generate de compilatoare nu depind de structura arborelui de suprapunere, întrucât apelurile la procedurile externe sunt soluționate de către editorul de legături, fie în modul normal, fie prin inserarea de apeluri către sistemul de operare.

• Tehnica overlay este un exemplu tipic pentru metodele care combină cunoștințele programatorului despre comportarea programului cu comutarea automată a secțiunilor de program, cu scopul implementării mecanismului de gestiune a memoriei.

•7

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 8

Overlay Overlay -- 7 7 • Principalul dezavantaj al metodei: pregătirea arborelui de suprapuneri și

necesitatea de a încărca în memorie un întreg modul, chiar dacă doar o parte a lui este necesară.

• Efect: se pot obține performanțe mai slabe decât cele oferite de alte tehnici de gestiune, complet automate. DAR este perfect posibilă rularea unor programe cu dimensiuni superioare celei a memoriei fizice disponibile.

•Memorie fizică

•Program •8

Page 5: CursMS7_2014_prezentat

•5

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 9

• Într-o mașină funcționând în regim de multiprogramare este posibilă execuția concurentă a mai multor programe. De aceea, se dorește a se păstra în memoria principala doar programele care sunt gata de rulare.

• Conform politicii de swapping (comutare între memoria principală și cea secundară), un program care așteaptă terminarea unei operații I/O (care poate dura câteva ms), este evacuat din memorie (swapped out). Când el devine din nou gata de rulare, sistemul încearcă să găsească un spațiu adecvat în memoria primară, în care să încarce programul în discuție.

Swapping Swapping -- 11

•9

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 10

� Dacă nu există spațiu disponibil, programul este înscris într-o listă de așteptare. La fiecare evacuare de program în memoria secundară, rutinele de implementare a mecanismului de gestiune a memoriei încearcă să încarce în memoria principală un program din lista de așteptare.

� Conversia adresei virtuale în adresă fizică de memorie principală se face prin adunarea adresei virtuale la adresa de început a zonei de memorie în care s-a efectuat încărcarea. Deoarece această operație de relocare trebuie efectuată la fiecare ciclu de memorie, apare necesitatea de hardware specializat, care să efectueze relocarea într-un mod care să nu conducă la lungirea timpului de execuție drept consecință a aplicării tehnicii swapping.

Swapping Swapping -- 22

•10

Page 6: CursMS7_2014_prezentat

•6

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 11

� Acest hardware specializat, implementat adesea într-un singur circuit, se numește unitate de gestiune a memoriei (MMU - memorymanagement unit) și

Swapping Swapping -- 33

poate fi considerat drept o extensie a CPU, care efectuează cu mai mare viteza funcții asociate gestiunii memoriei. Fiecare tehnică de gestiune a memoriei necesita propriul tip de MMU. Totuși, sistemele cu multiprogramare au întotdeauna nevoie de o astfel de unitate hardware.

•11

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 12

Swapping Swapping -- 44• Ori de câte ori un program este lansat sau relansat în execuție, adresa de

bază a zonei de memorie în care se află stocat este încărcată într-un registru special al MMU.

• Un alt registru conține dimensiunea programului, fapt ce permite ca, pe durata execuției acestuia, să se poată detecta tentativa de adresare într-un spațiu exterior celui al programului curent. Acest test simplu permite protejarea fiecărui program împotriva unor acțiuni periculoase - involuntare sau nu - efectuate de către alte programe.

•12

Page 7: CursMS7_2014_prezentat

•7

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 13

• Tehnica swapping de gestiune a memoriei este simplu de implementat, dar are și dezavantaje.

Swapping Swapping -- 55

� Tehnica swapping consideră un program drept un bloc a cărui încărcare se poate face doar într-o zonă de locații contigue de memorie, deci ea nu permite folosirea micilor fragmente de spații libere de memorie, spații a căror dimensiune totală devine importantă după un număr de operații swapping. Acest efect este numit fragmentarea memoriei și urmările sale se pot atenua, înlocuind tehnica swapping cu cea de segmentare.

•13

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 14

• Segmentarea = spargerea programelor în mai multe segmente pentru care nu este necesară stocarea în zone adiacente de memorie, deși fiecare din ele trebuie încărcat într-un bloc compact de memorie⇨⇨⇨⇨ diminuează efectele fenomenului de fragmentare⇨⇨⇨⇨ este posibilă utilizarea și a unor zone de memorie de dimensiuni mai mici.

• Segmentele corespund unor submulțimi logice ale programului. Se poate considera, spre exemplificare, segmentul de cod si segmentul de date.

Segmentarea Segmentarea -- 11

•14

Page 8: CursMS7_2014_prezentat

•8

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 15

• Segmentarea poate fi mai pronunțată decât atât, putând exista mici segmente compuse din una sau mai multe rutine sau din una sau mai multe structuri de date.

• Mecanismul de conversie a adreselor implicat de tehnica de segmentare este complex:

• S.O. trebuie să dispună și să întrețină o tabelă cu descriptorii segmentelor pentru fiecare program.

• Fiecare element al acestei tabele este compus din:- adresa de bază;- dimensiunea segmentului;- atribute (folosite pentru a verifica daca accesul efectuat este

corect).

Segmentarea Segmentarea -- 22

•15

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 16

Segmentarea Segmentarea -- 33

În figura următoare se prezintă algoritmul utilizat pentru conversia adreselor.

• Identificarea segmentului este facilitata de existența unei submulțimi de adrese virtuale.

• Descriptorul este extras din tabela de descriptori ai segmentelor. • După aceasta, conversia de adresă se face similar cazului tehnicii

swapping.• Relocarea este critică pentru performanța sistemului, întrucât trebuie

efectuată la fiecare ciclu memorie. Deci, dacă tabela descriptorilor segmentului ar fi păstrată în memoria principala, apare necesitatea unui ciclu suplimentar de acces la memorie, ceea ce dublează timpul cerut de efectuarea unui ciclu memorie.

•16

Page 9: CursMS7_2014_prezentat

•9

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 17

MecanismulMecanismul de de segmentaresegmentare

•17

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 18

Segmentarea Segmentarea -- 44� Depășirea acestei dificultăți se face stocând tabela descriptorilor

segmentelor într-o mică, dar foarte rapidă, memorie RAM cu care este prevăzută MMU.

� Dimensiunea limitată a acestei memorii speciale necesită folosirea tehnicii de swapping între aceasta și memoria principală a sistemului.

•18

Page 10: CursMS7_2014_prezentat

•10

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 19

Segmentarea Segmentarea -- 55

• Problema când numărul de segmente > cantitatea care poate fi stocată în memoria RAM a MMU.

� Soluție: memoria rapidă din MMU poate fi utilizată ca memorie cache în care se păstrează cei mai recent utilizați descriptori de segment.

•19

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 20

Segmentarea Segmentarea -- 66

• La inițializarea procesului de conversie a adreselor, MMU caută în memoria sa internă descriptorul de segment.

• Daca nu este găsit, descriptorul este citit din memoria primară și copiat în memoria internă.

• Principiul localității programelor → probabilitate ridicată ca descriptorul să se afle în memoria internă a MMU. Al doilea ciclu de memorie este doar arareori necesar , deci nu influențează într-un mod important performanța de ansamblu.

•20

Page 11: CursMS7_2014_prezentat

•11

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 21

• Execuția programelor evoluează printr-o serie de faze, iar spațiul de adresare la care se face acces în cadrul unei faze este mai mic decât întregul spațiu de adresare al programului.

• Dacă segmentele la care se face acces în cadrul unei faze sunt stocate în memoria primară, programul este executat aproape la fel de repede ca în cazul în care toate segmentele sale s-ar găsi în memoria primară, deoarece, practic, toate operațiile de acces au loc la segmente existente în aceasta.

Memorie virtuală segmentată Memorie virtuală segmentată -- 11

•21

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 22

• Când se generează o referire la un segment absent, el este adus în memoria principală, înlocuind, eventual, alte segmente.

• Implementarea mecanismului: MMU va verifica prezența segmentului adresat prin testarea unui anumit bit în descriptorul segmentului: acest bit este 1 când segmentul este încărcat și zero când el este evacuat din memoria primară.

• Evacuarea se face mai rapid dacă segmentul nu a fost modificat de la încărcare, nemaifiind necesară copierea sa în memoria de masă (de regulă, în cazul segmentelor de cod).

Memorie virtuală segmentată Memorie virtuală segmentată -- 22

•22

Page 12: CursMS7_2014_prezentat

•12

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 23

� Pentru aceasta, fiecare descriptor are un fanion indicând starea de modificat / nemodificat (“accessed”) a segmentului în discuție. Inițial, fanionul are valoarea 0 și este înscris cu 1 la fiecare operație de înscriere a unei locații din codul segmentului.

� O caracteristică esențială pentru arhitectura hardware a unui sistem folosind tehnici de segmentare este data de posibilitatea întreruperii de către CPU a execuției în mijlocul unei instrucțiuni și de reluare a instrucțiunii exact de la punctul la care a survenit întreruperea.

Memorie virtuală segmentată Memorie virtuală segmentată -- 33

•23

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 24

• În aceste cazuri mecanismele clasice pentru întreruperi și capcane nu sunt suficiente, pentru că ele sunt activate doar la sfârșitul instrucțiunii, așa că nu pot fi utilizate în tratarea unor erori în manipularea segmentelor, erori care pot apărea oricând pe durata desfășurării unei instrucțiuni.

Memorie virtuală segmentată Memorie virtuală segmentată -- 44

� Instrucțiunea nu poate fi terminată dacă a apărut o eroare de segment , deoarece execuția ei ar conduce la o eroare ireparabilă.

•24

Page 13: CursMS7_2014_prezentat

•13

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 25

� Ultima variantă de tehnică de segmentare are mai multe avantaje (de exemplu legate de rularea programelor al căror spațiu de adresare este mai mare decât cel al memoriei fizice disponibile), DAR are și neajunsuri.

Memorie virtuală segmentată Memorie virtuală segmentată -- 55

� Cel mai important: dimensiunile neuniforme ale segmentelor complică gestionarea spațiului de memorie (s-ar putea să nu existe spațiul necesar încărcării în memoria primară a unui segment de program pentru că segmentul evacuat avea dimensiune mai mică, deci memoria eliberată este insuficientă).

•25

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 26

• Soluții: • algoritmi complecși de înlocuire a segmentelor • menținerea permanentă a unui spațiu neutilizat de memorie. • paginarea, care divizează spațiul programului în submulțimi de

aceleași dimensiuni.

Memorie virtuală segmentată Memorie virtuală segmentată -- 66

•26

Page 14: CursMS7_2014_prezentat

•14

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 27

� Întregul spațiu de memorie se partiționează în blocuri de dimensiuni egale, numite pagini.

� Paginarea elimină legătura între organizarea logică a programului și paginile de memorie, deci are consecințe în relația programatorului cu spațiul de adrese.

Paginarea Paginarea -- 11

� Singurele componente care iau in considerare partiționarea spațiului programului în pagini sunt cele ale mecanismului de gestiune a memoriei.

•27

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 28

� Memoria fizică este privită ca un set de blocuri, fiecare având dimensiunea unei pagini

� Ca și în cazul segmentării, nu este necesară alocarea de blocuri contigue de memorie pentru pagini contigue ale programului.

Paginarea Paginarea -- 22

•28

Page 15: CursMS7_2014_prezentat

•15

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 29

Paginarea Paginarea -- 33• Figura următoare indică alocarea unui program în memoria unui sistem

funcționând în regim de multiprogramare. Paginile, ca și segmentele, pot fi parțial stocate în memoria principală a sistemului.

• Când se face o referire la o adresa virtuală dintr-o pagina ce nu se află în memoria primară, mecanismul de paginare copiază într-un bloc întreagapagină conținând adresa menționată.

• Mecanismul se numește "cerere de pagini" (demand paging), întrucât paginile sunt aduse în memorie când sunt solicitate de către program.

•29

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 30

Schema mecanismului de paginareSchema mecanismului de paginare

•A

•B

•C

•D

•E

•F

•A

•B

•C

•F

•Program (adrese virtuale)

•Memorie (adrese fizice)

•Not present

•Not present

•30

Page 16: CursMS7_2014_prezentat

•16

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 31

În decursul timpului s-au dezvoltat mai multe tehnici de paginare, care pot fi grupate după cum urmează:

o mecanisme care determină momentul la care o pagină trebuie copiată în memoria principală. Cea mai des utilizată tehnică este cea bazată pe cererea de pagini (“demand paging”), utilizată de către MMU ale unor microprocesoare moderne.

o S-au elaborat și alte metode, care încearcă predicția comportării programului și încarcă în memorie paginile presupuse a fi utilizate de către acesta în viitorul apropiat;

Paginarea Paginarea -- 44

•31

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 32

Paginarea Paginarea -- 55

omecanisme ce folosesc un algoritm de determinare a creșterii / descreșterii numărului de blocuri de memorie folosite de un anumit program.

o mecanisme (sau tehnici de înlocuire) care folosesc algoritmi de selectare a paginilor existente în memorie ce pot fi evacuate, eliberând, astfel, spațiul pentru alte pagini;

•32

Page 17: CursMS7_2014_prezentat

•17

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 33

Gestiunea memoriei la microprocesorul80386DX

• Gestiunea memoriei• Modele de memorie: segmentare si paginare• Translatia adreselor din spatiul virtual in spatiul

Unitatea de gestiune a memoriei implementeaza spatiul de adrese si modul de translatare a adreselor virtualel in adresefizice.

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 34

Modele de memorie – segmentare si paginare

• Unitatea de gestiune a memoriei in modul protejat lucreaza cu adresa virtuala.

• Adresa virtuala are 48 biti si este formata din selector si offset. Specifica o locatie de memorie a unei instructiuni sau date.

• Selectorul pe 16 biti contine: index (13 biti), bitul tabelei (TI) si 2 biti pentru RPL.

Page 18: CursMS7_2014_prezentat

•18

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 35

Modele de memorie – segmentare si paginare

• Spatiul adreselor virtuale (SAV): 214 (16384 = 16 K ) segmente de memorie unice, fiecare cu dimensiunea maxima de 4GB.

• Organizarea in segmente a memoriei• Dimensiunea variabila a segmentului – avantaj pentru

utilizarea eficienta a memoriei.

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 36

Modele de memorie – segmentare si paginare

• Alt mod de a privi dimensiunea spatiului de adrese virtuale:

• Prin combinarea selectorului de segment (14 biti m.s.) cu offset-ul (32 biti) se obtine o adresa virtuala pe 46 biti. De aceea, spatiul de adrese virtuale la 80386DX este de 246, adica 64TB.

Page 19: CursMS7_2014_prezentat

•19

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 37

Modele de memorie – segmentare si paginare Segmente in SAV

• 80386 DX implementeaza segmentare si paginare. • Modelul de segmentare la 80386 DX’s: 64 TB SAV este

impartit in 32 Tbyte - spatiu global si 32 Tbyte – spatiu local.

• Bitul TI al selectorului face deosebirea intre tabelele GDT si LDT care definesc SAV.

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 38

Modele de memorie – segmentare si paginare

Page 20: CursMS7_2014_prezentat

•20

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 39

Memoria globala si locala a unui task

Prin multiprocesare o aplicatie este reprezentata printr-o colectie de taskuri.

Un task reprezinta un grup de rutine program care efectueaza impreuna o anumita functie. Cand microprocesorul initiaza un task acesta poate avea active segmente de memorie globala si locala.

Spatiul local de adrese memoreaza date sau cod ce pot fi accesate doar de taskul coresponzator.

Spatiul global contine in general resursele sistemului de operare si data care pot fi stocate de mai multe sau chiar toate taskurile.

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 40

Spatiul adreselor fizice si translatia adreselor din spatiul virtual in spatiul fizic

• SAV este 64 TB iar spatiul de adrese fizice este doar de 4GB. Astfel ca la un moment dat doar o mica parte din informatiile din memoria virtuala se pot afla in memoria fizica.

• Informatiile care nu sunt utilizate in mod curent sunt stocate pe disk. Daca un segment de memorie care nu este prezent in memoria fizica este accesat de un program si este disponibil un spatiu in memoria fizica, atunci segmentul este citit de pe hard disk si copiat in memoria fizica.

Page 21: CursMS7_2014_prezentat

•21

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 41

Spatiul adreselor fizice si translatia adreselor din spatiul virtual in spatiul fizic

• Pe de alta parte, daca spatiul fizic este plin, atunci un alt segment trebuie mai intai trimis pe hard disk pentru a face loc noilor informatii.

• Managerul de memorie, controleaza alocarea si de-alocarea memoriei fizice si procesul de inter-schimbare a datelor intre HD si memoria fizica a sistemului se numeste swapping. Astfel spatiul de adrese al sistemului apare mai mare decat memoria fizica a sistemului.

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 42

Spatiul adreselor fizice si translatia adreselor din spatiul virtual in spatiul fizic

• Principalele tehnici prin care o adresa virtuala pe 48-biti este mapata pe o adresa fizica de 32-biti sunt segmentarea si paginarea.

• Procesul de translatare a adreselor necesita un element numit - tabela de cautare bazata pe memorare (memory-based look-up table).

Page 22: CursMS7_2014_prezentat

•22

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 43

Spatiul adreselor fizice si translatia adreselor din spatiul virtual in spatiul fizic

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 44

Spatiul adreselor fizice si translatia adreselor din spatiul virtual in spatiul fizic

• In procesul de translatie, unitatea de gestiune a memoriei (MMU - memory management unit) stabileste daca sau nu segmentul sau pagina corespunzatoare din spatiul virtual se afla in memoria fizica.

• Daca nu este, atunci se realizeaza inter-schimbul intre un segment/pagina mai veche din memoria principala cu noul segment/pagina de pe harddisk.

Page 23: CursMS7_2014_prezentat

•23

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 45

Procesul de translatie a adresei

• a) Daca paginarea este off, atunci are loc procesul de translatie a

segmentului.

• Partea cache a registrului segment de date

• Defineste locatia, lungimea si tipul atributelor segmentului de memorie.

• Este pe 64 biti.

• Nu este accesibil programatorului

• Este incarcata cu descriptorul atunci cand prin executia unei instructiuni in registrul de segment se incarca un nou selector.

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 46

Procesul de translatie a adresei

• Exemplu: accesul la un operand dintr-un nou segment de date: •

MOV DS, AX; DS se incarca cu un nou selector de segment de date din memoria locala

• Se executa instructiunea.• Descriptorul corespunzator din LDT este incarcat in partea

cache a registrului. • MMU verifica informatiile din descriptor pentru a stabili daca

sunt sau nu valide..• Daca PG = 0 adresa liniara este addresa fizica a locatiei de

memorie care trebuie accesata.

Page 24: CursMS7_2014_prezentat

•24

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 47

Procesul de translatie a adresei

• b) Daca paginarea este on atunci unitatea de paginare aranjeaza spatiul fizic de adresare in 1.048.496 pagini, fiecare pagina de 4096 octeti.

• Blocurile de marime fixa este un dezavantaj pentru ca cele 4K adrese sunt alocate de MMU chiar daca nu vor fi toate utilizate. Apare fragmentarea memoriei – se creeaza sectiuni de memorie neutilizata. Fragmentarea reduce eficienta de utilizare a memoriei. Avantajul este ca paginarea simplifica implementarea prin software a MMU.

• Cand PG = 1 - a doua translatie are loc – translatia paginii.

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 48

Procesul de translatie a adresei

• Formatul adresei liniare:

• Adresa liniara este translatata in adresa fizica echivalenta.

Page 25: CursMS7_2014_prezentat

•25

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 49

Procesul de translatie a adresei Paginare

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 50

Procesul de translatie a adresei Paginare

• PDBR = page directory base register: identifica locatia tabelei page directory table; 20 biti sunt bitii MSB ai adresei. Cei 12 biti LSB sunt considerati 000H la inceputul unui director, care se termina cu FFFH la sfarsit.

• Directorul cu pagini contine 4K–octeti de locatii de memorie, fiind organizat in 1K adrese pe 32 biti. Aceste adrese indica fiecare cate o tabela separata de pagini, care este tot in memoria fizica.

Page 26: CursMS7_2014_prezentat

•26

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 51

Procesul de translatie a adresei Paginare

• DIR = reprezinta offsetul fata de valoarea din PDBR si selecteaza una dintre ce 1K intrari de 32 biti din director. Acest pointer este memorat in 80386DX in bufferul TLB (translation lookaside buffer). Aceasta valoare este utilizata ca adresa de baza a tabelei de pagini din memorie. Fiecare tabela de pagini este de 4Kocteti si contine un numar de 1K adrese pe 32 biti. Aceste adrese sunt numite adrese ale paginilor. Fiecare adresa indica o pagina de 4K locatii de date in memoria fizica.

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 52

Procesul de translatie a adresei Paginare

• PAGE = selecteaza una din cele 1 K intrari pe 32 biti dintr-o tabela de pagini. Acesta intrare este memorata cache in TLB - translation lookaside buffer. Reprezinta o adresa care selecteaza o pagina de 4K din memorie (page frame ). Aceasta pagina de locatii de meorie este utilizata pentru stocarea datelor.

• Partea 12-bit offset a adresei liniare identifica locatia operandului in pagina activa.

Page 27: CursMS7_2014_prezentat

•27

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 53

Procesul de translatie a adresei Paginare

• TLB Translation lookaside buffer:

• Permite pastrarea a 32 seturi de intrari in tabele. Astfel ca intotdeauna vor fi 128K octeti de memorie paginata direct accesibili. Operanzii din aceste parti de memorie pot fi accesati fara a mai citi noi intrari din tabelele de pagini. Daca un operand ce trebuie accesat nu este in nici una din aceste pagini, atunci se consuma un timp suplimentar pentru citirea/scrierea intrarii tabelei de pagini in TLB.

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 54

Formatul unei intrari in tabela director sau tabela de pagini

• Adresa de baza – Base address ( 20 biti) a unei tabele de pagini (intrarea intr-o tabela director) sau a unei pagini (intrarea intr-o tabela de pagini)

• Adresa de baza reprezinta bitii MSB (most significant bits); 12 LSB (least significant bits) sunt considerati 000 – tabelele de pagini si paginile incep la locatii multiplu de 4K.

• U/S – implementeaza un mecanism de protectie a paginilor pe doua niveluri.

• = 1 protectie la nivel utilizator – nivel de privilegiu scazut asignat paginilor accesibile de catre aplicatiile software;

• = 0 protectie la nivel superior asignat resurselor sistemului de operare.

• R/W – read/write bit : este utilizat pentru a marca read-only or read- write o tabela sau pagina de nivel utilizator.

• Read-only = 1

• Read-write = 0

Page 28: CursMS7_2014_prezentat

•28

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 55

Formatul unei intrari in tabela director sau tabela de pagini

• Protectia asignata unei tabele de pagini prin intrarea specifica in director se aplica tuturor paginilor.

• P – present = 1 – indica daca o intrare este valida si disponibila in procesul de translatie.

• = 0 – intrarea fie nu e definita sau nu e prezenta in memoria fizica. the entry is either undefined or not present in physical memory

• Daca se incearca sa se acceseze o tabela de pagini sau o pagina care are P=0 , atunci rezulta o exceptie numita page fault.

• A – accessed - 1 : o tabela sau o pagina au fost accesate ( acest bit este setat inainte de a scrie la o adresa din pagina respectiva).

• D – dirty – este definit doar pentru o intrare a tabelei de pagini fiind setata daca se scrie la orice adresa din pagina respectiva.

• AVL bits – disponibili programatorului.• Sistemul de operare poate verifica starea bitilor A, D pentru a stabili atunci cand

pagina din memoria fizica trebuie inlocuita prin swap.

© Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 56

Procesul de translatie a adresei Paginare