Memoria virtuală

Previzualizare curs:

Extras din curs:

Memoria virtuala este folosita datorita existentei unor programe mai mari decit memoria disponibila.Solutia uzuala era de a sparge programele in bucati numite overlay-uri.Overlay-urile aveau dinamica cu discul foarte simpla ;programatorul făcea impartirea si gestiunea overlay-urilor.Totusi aceasta munca era consumatoare de timp si plictisitoare.Noua metoda (Fotheringham 1961)s-a numit memorie virtuala.Ea prevedea prelungirea memoriei reale pe dimensiuni ireale,incluzind memoria externa,cu trecerea parţii active in memoria reala. Microprocesorul sesizează doar faptul ca accesul la date durează mai mult.Cu gestiunea memoriei virtuale se ocupa sistemul de operare care actualizează si intretine paginile memoriei virtuale.

Memoria virtuala poate lucra si in regim de multiprogramare ,pe care o realizează mai eficient si deasemenea este valabila doar in sistemele multitasking.

Paginarea:

Programul generează adrese virtuale in spaţiul adreselor virtuale. Adresele virtuale nu merg direct la memorie ci la MMU(memory management unit),care le decodifica si oferă adresele fizice.

Ex:Calculator cu 32k RAM si memorie virtuala 64k RAM.

Spaţiul virtual este impartit in pagini virtuale care se încarcă in pagini de memorie reala de aceeaşi dimensiune. Paginile virtuale si reale au aceeaşi dimensiune.

Page table este o tabela cu locurile paginilor virtuale intre paginile reale (locul in care este incarcata fiecare pagina virtuala in RAM ,care poate fi RAM fizic sau extins).

Atunci cind programul face apel la o pagina virtuala ce nu se afla in memoria fizica (toate poziţiile ocupate are loc "page fault trap")se decide ce pagina va fi trnsferata pe disc , se aduce pagina noua in memoria fizica, se reactualizează page table(2 operaţii) si se restarteaza instrucţiunea ce a fost întrerupta prin trap.

ALGORITM DE SCOATERE A PAGINII

Daca algoritmul de scoatere a pagini din memorie nu este bine ales exista posibilitatea sa scot o pagina pe care programul respectiv o foloseşte frecvent, deci pagina respectiva va trebui readusa curind in memorie si astfel se va pierde mult timp.

a) Algoritmul aleator

După cum spune si numele este vorba despre o soluţie aleatoare.Solutia nu este buna pentru ca sistemul de operare poate schimba o pagina des folosita.

b) Algoritmul optim

Trebuie subliniat faptul ca este vorba despre un algoritm teoretic, acesta nefiind practic.

Se da un program. Se cunoaşte activitatea pe acest program si se înregistrează necesarul de pagini iar in fiecare pagina se număra cite instrucţiuni se executa fara a se face saltul in alta pagina. In momentul in care apare un salt la alta pagina se calculează in fiecare pagina din memorie unde exista cele mai multe instrucţiuni fara salt .Aceste pagini ,care amina cel mai mult saltul in alte pagini, se vor păstra in memorie. Prin aceasta metoda se asigura situaţia ca “trap fault”-urile sa apară cit mai tirziu.

Aceasta metoda este de referinta.Celelalta metode se vor raporta la acest algoritm.

c)

Pentru a putea verifica lucrul cu pagina avem nevoie de circuite hard.Astfel au fost introduşi doi biţi

R - Reference bit: acest bit al pagini va fi setat la orice acces la pagina(scriere sau citire)

M - Modify bit : acest bit va fi setat doar daca se va efectua o scriere in pagina

Descrierea acestor biţi se face cu circuite hard.Astfel exista patru clase:

PAG-0:pagina este nereferita(R=0;M=0)

PAG-1:pagina cu scriere veche(R=0;M=1)

PAG-2:pagina scrisa de curind dar nemodificata(R=1;M=0)

PAG-3:pagina la care s-a făcut ultima scriere(R=1;M=1)

Gestiunea acestui set de biţi se face prin mecanisme hardware cu ajutorul unui ceas: daca după un anumit timp pagina nu a fost referita bitul “R” se şterge si astfel clasa trece in clasa 1 iar clasa 2 trece in clasa 0.

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • Memoria Virtuala.doc
Alte informații:
Tipuri fișiere:
doc
Nota:
7/10 (1 voturi)
Nr fișiere:
1 fisier
Pagini (total):
8 pagini
Imagini extrase:
8 imagini
Nr cuvinte:
1 603 cuvinte
Nr caractere:
8 084 caractere
Marime:
24.52KB (arhivat)
Publicat de:
NNT 1 P.
Nivel studiu:
Facultate
Tip document:
Curs
Domeniu:
Calculatoare
Predat:
la facultate
Materie:
Calculatoare
Profesorului:
Stefan Stanescu
Sus!