Sunteți pe pagina 1din 10

Memorie. Alocarea memorie.

Gestiunea memoriei interne


Tehnica de gestionare a informaiilor din memoria intern

Sistemele de calcul includ diverse dispozitive de memorare organizate n final pe


dou nivele:
memoria intern
memoria extern.
Pentru a fi executate, programele trebuiesc ncrcate n memoria intern a sistemului de
calcul, n zone contigue de memorie; aici, ele sunt parcurse secvenial i executate, instruciune
cu instruciune. Tot n memoria intern trebuiesc aduse i datele asupra crora se fac prelucrri,
pentru c aceasta este memoria pe care CPU o poate accesa direct i care constituie memoria sa
de lucru. Lucrul cu memoria intern condiioneaz, deci, executarea programelor ntr-un sistem
de calcul. n acelai timp, existena n memoria intern a informaiilor (programe i date) este
condiionat de transferul acestora cu memoria extern, care constituie suportul permanent de
memorare a lor.
n stabilirea modalitilor de folosire a memoriei interne trebuie plecat de la urmtoarele
premize:
n timpul execuiei programelor exist un permanent schimb de date ntre memoria
intern i memoria extern, memoria intern reprezentnd memoria de lucru iar memoria
extern reprezentnd memoria de stocare;
la un moment dat, n memoria intern, sunt ncrcate mai multe programe, pentru
execuie (procese generate de programe utilizator sau de programe ale sistemului de operare);
zonele de memorie alocate fiecrui proces trebuiesc protejate de accesul celorlalte
procese la ele (de exemplu, programele sistemului de operare trebuiesc protejate de accese
nepermise ale programelor utilizator);
pe durata execuiei unui program, necesarul de memorie intern, pentru acest program,
este variabil (de exemplu, n cazul programelor segmentate);
spaiul memoriei interne este limitat i este de dorit ca acest lucru s limiteze ct mai
puin dimensiunea programelor care pot fi executate n sistemul de calcul sau numrul
programelor executate concurent, acolo unde este cazul.
Gestiunea memoriei are rolul de a decide cum trebuie organizat informaia pe cele
dou nivele i cand trebuie transferat informaia ntre acestea; tehnicile de gestiune a
lucrrilor (multiprogramare, multitasking, time-sharing,etc) implic existena unor metode
eficiente pentru gestiunea memoriei: tehnici de alocare dinamic i memoria virtual.
Gestionarea memoriei trebuie s asigure urmtoarele funcii:

organizarea informaiilor n memoria intern (gestionarea informaiilor);


evidena ocuprii memoriei interne;
organizarea schimbului de informaii ntre memoria intern i memoria extern
(gestionarea schimbului de informaii);
asigurarea proteciei informaiilor memorate n memoria intern (protecia memoriei).
Rezultatul activitii de gestionare a memoriei trebuie s fie:
asigurarea unei viteze de execuie sporite a programelor, n condiii de protecie ntre
programe concurente, n timpul executrii lor;
limitarea restriciilor legate de dimensiunea programelor care pot fi executate n sistem
sau de numrul programelor care pot fi executate concurent.
Problemele privind gestiunea memoriei sunt rezolvate prin combinarea elementelor hard ale
sistemului de calcul cu componentele soft ale sistemului de operare.

Obiectivul activitii de gestiune a memoriei este de a furniza o vitez de execuie


sporit a programelor, prin meninerea n memoria intern a acelor pri din programe care
sunt referite cu o frecven mare de ctre CPU (de regul, programe independente intre ele);
deoarece n memoria intern exist simultan mai multe programe independente ntre ele,
pentru a utiliza eficient CPU apar urmtoarele aspecte:
- introducerea n memoria intern a programului ce urmeaz a fi executat necesit un
spaiu de memorie determinat de dimensiunea sa, de spaiul liber din memoria intern n
acel moment ide modul de ocupare al memoriei interne de ctre alte programe;
- pentru zonele de memorie alocate diferitelor programe, trebuie s se asigure
protecia acestora fa de anumite interferene i adresri cu alte programe.
Execuia unui program este condiionat de ncrcarea acestuia n memoria intern, ntr-o
zon contigu de memorie, adic o zon din memoria intern format din locaii de memorie
succesive. Fiecare entitate din cadrul unui program (instruciune sau dat care se prelucreaz)
se caracterizeaz prin dou adrese n memoria intern:
adresa din memoria intern la care este memorat n timpul execuiei programului,
numit adres fizic; aceast adres este caracteristic procesului generat pentru o anumit
execuie a programului
adresa determinat ca distan de la adresa de nceput a programului pn la adresa
entitii respective, numit adres relocabil sau adres relativ.
Pentru execuii diferite ale aceluiai program, adresa relativ este ntotdeauna aceeai, n
timp ce adresa fizic se modific, de obicei, de la o execuie la alta, n funcie de adresa de
ncrcare a programului n memorie; adresa de ncrcare n memorie a unui program se
numete adres de baz i se memoreaz n registrul de baz al programului. Adresa relocabil
are proprietatea c, prin adunare la adresa de baz, determin adresa fizic a entitii, n cadrul
procesului respectiv.
Se numesc programe relocabile programele care folosesc adrese relocabile; aceste adrese
se genereaz n procesul de translatare a programului i n etapa de editare a legturilor pentru
program. Programele care folosesc numai adrese fixe de memorie (adresele fizice ale entitilor
lor) se numescprograme nerelocabile; aceste programe trebuiesc ncrcate ntotdeauna la
aceeai adres de memorie, pentru a fi executate.
Translatarea adreselor logice n adrese fizice se realizeaz printr-o funcie de
translatare care precede execuia instruciunii respective.
Execuia unui program este condiionat de ncrcarea acestuia n memoria intern, ntr-o zon
contigu de memorie, adic o zon din memoria intern format din locaii de memorie
succesive. Fiecare entitate din cadrul unui program (instruciune sau dat care se prelucreaz)
se caracterizeaz prin dou adrese n memoria intern:
execuiei (adresa din memoria intern la care este memorat n timpul execuiei programului,
numit adres fizic; aceast adres este caracteristic procesului generat pentru o anumit
execuie a programului)(numite i adrese fizice) n etapele scrierii i translatrii programelor
a cror adrese de memorie, sunt simbolice (adresa determinat ca distan de la adresa de
nceput a programului pn la adresa entitii respective, numit adres relocabil sau adres
relativ.)(numite adrese logice). Translatarea adreselor logice in adrese fizice se realizeaz
printr-o funcie de translatare care precede execuia instruciunii respective.
Activitatea de gestiune a memoriei are la baz trei algoritmi (fig.3.2.):
1) algoritmul de transfer care determin cand un bloc trebuie transferat din memoria
extern n memoria intern - inaintea execuiei sau in timpul execuiei;
2) algoritmul de plasare care determin ce zon nealocat din memoria intern este
folosit pentru plasarea blocului incrcat din memoria extern;
3) algoritmul de reamplasare care determin care blocuri i la ce moment trebuie
reincrcate n memoria intern.

Fig.3.2. Activitatea de gestiune a memoriei


Pentru execuii diferite ale aceluiai program, adresa relativ este ntotdeauna aceeai, n timp
ce adresa fizic se modific, de obicei, de la o execuie la alta, n funcie de adresa de ncrcare a
programului n memorie; adresa de ncrcare n memorie a unui program se numete adres de
baz i se memoreaz n registrul de baz al programului. Adresa relocabil are proprietatea c,
prin adunare la adresa de baz, determin adresa fizic a entitii, n cadrul procesului respectiv.
Organizarea memoriei interne se refer la modul de mprire a memoriei interne n zone
contigui numite partiii, n scopul alocrii lor proceselor generate n sistem.
Alocarea memoriei este operaia de ocupare a partiiilor de memorie cu secvene de cod
executabil sau de date ce aparin unui proces din sistem. Gestionarea alocrii memoriei interne
trebuie s rezolve urmtoarele probleme:
generarea partiiilor de memorie, realizarea evidenei partiiilor i a ocuprii lor
alocarea partiiilor de memorie la procesele care le solicit (de exemplu, la generarea
unui proces)
dezalocarea partiiilor alocate, atunci cnd nu mai sunt utilizate de procesul la care au
fost alocate (de exemplu la distrugerea procesului sau la evacuarea unui proces din memoria
intern).
Aceste sarcini pot fi realizate de operatorul uman, sau automat, de componenta de gestiune a
memoriei interne, n funcie de complexitatea sistemului de operare. De exemplu, pentru
sistemele exploatate n multiprogramare, definirea partiiilor de memorie fixe se realizeaz
manual, la configurarea unei sesiuni de lucru a sistemului; la sistemele n time sharing sau n
timp real, partajarea memoriei interne ntre procese se face n mod dinamic i se gestioneaz
automat.
Exist diferite modaliti de organizare i de alocare a memoriei interne; ele sunt determinate de
funciile pe care le asigur componenta de gestiune a memoriei interne a sistemului de operare
i de tehnica de exploatare a sistemului de calcul utilizat.
Atunci cnd procesul de alocare a memoriei interne se realizeaz exclusiv prin utilizarea
memoriei interne, modalitatea de alocare se numete alocare real. n cazul n care, pentru
alocarea memoriei interne se folosete i memoria extern, modalitatea de alocare se numete
alocare virtual.Alocarea virtual necesit mecanisme mai complexe i operaii suplimentare
de transfer de date ntre memoria intern i memoria extern.
Modul de realizare a alocrii reale depinde de complexitatea sistemului de operare i de tehnica
de exploatare a sistemului de calcul folosit:
a. un caz aparte al alocrii reale este alocarea absolut. Aceast alocare se utilizeaz n cazul
programelor nerelocabile, adic al programelor care lucreaz cu adrese fixe de memorie i care
trebuie ncrcate ntotdeauna n aceeai zon a memoriei interne;
b. n cazul sistemelor exploatate n monoprogramare, alocarea real a memoriei presupune
existena a dou partiii de memorie:
partiia monitor, utilizat de sistemul de operare
partiia utilizator, alocat integral procesului generat de programul utilizator n execuie;
gestionarea partiiei utilizator este realizat exclusiv de utilizator, de exemplu prin segmentarea
programului i reacoperirea segmentelor, n timpul execuiei programului (tehnici overlay), n
cazul execuiei programelor mari;
c. n cazul sistemelor exploatate n multiprogramare se realizeaz organizarea memoriei interne
n partiii fixe de memorie, definite la lansarea unei noi sesiuni de lucru a sistemului. Alocarea
real cu partiii fixe este folosit pentru a putea ncrca n memorie, la un moment dat, mai
multe procese n execuie, corespunztor mai multor fire de ateptare. Organizarea lucrrilor,
pentru a fi lansate n execuie, poate fi fcut n dou moduri:

lucrrile sunt organizate de la nceput n fire de ateptare i fiecare fir de ateptare are
alocat cte o partiie de memorie. n acest caz, operatorul uman stabilete alctuirea firelor de
ateptare, nainte de lansarea n execuie a loturilor de lucrri. Sistemul de operare ncarc
fiecare proces pe care l genereaz n partiia de memorie care corespunde firului de ateptare
din care face parte lucrarea. Procesul ocup aceast partiie pe toat durata execuiei sale i o
elibereaz la distrugerea sa. n funcie de spaiul de memorie care i este necesar, un proces va
ocupa ntr-o msur mai mare sau mai mic partiia care i-a fost afectat. Rezult c acest mod
de alocare a memoriei realizeaz o utilizare mai eficient a memoriei interne dect n cazul
monoprogramrii, dar nc mai pot exista partiii utilizate ineficient. n funcie de numrul i
durata de execuie a lucrrilor din fiecare fir de ateptare, se poate ajunge, la limit, n situaia n
care toate lucrrile rmase n sistem, pentru a fi executate, aparin unui singur fir de ateptare;
n acest caz, multiprogramarea este, practic, inefectiv. Pentru a evita astfel de situaii, firele de
ateptare se pot organiza n clase, realizndu-se punerea n comun a partiiilor alocate firelor de
ateptare ale unei clase pentru toate lucrrile din clasa respectiv;
prin organizarea unei singure cozi pentru toate partiiile, caz n care, alocarea unei
partiii pentru un nou proces este realizat de sistemul de operare. Aceast metod permite
alegerea celei mai potrivite partiii pentru a fi alocat unui proces, dar implic o activitate
suplimentar pentru sistemul de operare; cnd dimensiunea partiiilor libere este prea mic
pentru procesul care urmeaz a fi generat n sistem, acesta trebuie s atepte eliberarea unei
partiii suficient de mari care s permit ncrcarea lui, pentru execuie. Una dintre problemele
generate de alocarea cu partiii fixe se refer la fixarea lungimii partiiilor: alegerea unor
dimensiuni mari pentru partiii ofer mai uor variante de alocare a unei partiii, pentru
lucrrile mari; n acelai timp, ns, scade numrul partiiilor din sistem, deci scade numrul
proceselor n execuie, la un moment dat.
d. alocarea real cu partiii variabile, sau alocarea dinamic, permite o utilizare mai
economic i mai puin rigid a memoriei interne; acest mod de organizare a memoriei interne
presupune mprirea memoriei n partiii al cror numr i dimensiune se stabilesc n funcie
de necesiti i se modific automat. O partiie se caracterizeaz prin adresa i lungimea sa.
Iniial, n memoria intern exist o singur partiie liber. n momentul n care un proces este
generat n sistem, pentru a fi lansat n execuie i se aloc, ntr-o partiie liber, o zon de
lungime suficient de mare nct s cuprind cea mai lung ramur a sa. Restul partiiei, rmas
liber, genereaz o alt partiie liber, n care poate fi ncrcat un alt proces, amd. n momentul
eliberrii unei partiii, aceasta poate fi alocat unui alt proces care solicit o partiie de aceeai
dimensiune, sau mai mic. Se observ c, pentru o sesiune de lucru mai ndelungat, tendina
este de cretere a numrului de partiii, ocupate sau nu, n paralel cu scderea lungimii lor.
Aceasta nseamn c, n timp, sistemul poate ncrca, spre execuie, procese care solicit un
spaiu de memorie din ce n ce mai mic. Fenomenul acesta se numetefragmentarea intern
a memoriei i constituie principalul inconvenient al alocrii cu partiii variabile. Pentru
nlturarea acestui efect, n momentul n care un proces nu poate fi ncrcat ntr-o partiie liber
de memorie, sistemul de operare poate aciona n mai multe moduri:
procesul ateapt pn la eliberarea unei partiii suficient de mari;
se ncearc reconstituirea unei partiii libere mai mari, din mai multe partiii libere
adiacente (nu toate sistemele de operare pot realiza aceast operaie);
se iniiaz efectuarea unei operaii de compactare a memoriei, care const n deplasarea
partiiilor active ctre partiia monitor i crearea unei partiii libere compacte, dup ultima
partiie ocupat. Compactarea memoriei este o operaie costisitoare (afecteaz timpul de
execuie al proceselor) i de aceea se poate recurge la soluii de compactare parial a memoriei
(doar pentru eliberarea unei partiii de lungime convenabil) sau de mutare a unui proces ntr-o
partiie mai mic, pentru eliberarea partiiei mai mari pentru alt proces. ntre alocarea cu
partiii fixe i cea cu partiii variabile nu exist diferene hard de implementare; alocarea cu
partiii variabile se realizeaz cu funcii suplimentare ale sistemului de operare.

Memoria virtual
Conceptul unui singur nivel de memorie- denumit memorie virtual- ofer utilizatorului
iluzia c memoria intern are o capacitate foarte mare, partea de hardware realizand
automattransferul informaiei din memoria intern n memoria extern i invers.
Alocarea virtuala a memoriei interne permite extinderea logic a memoriei interne, prin
utilizarea memoriei externe.
Alocarea virtual se bazeaz pe urmtoarele principii:
programul care se execut este ncrcat integral n memoria extern, numit memorie virtual,
respectnd conveniile de ncrcare n memoria intern, adic:
n locaii succesive
la adrese relocabile, numite adrese virtuale;
n timpul execuiei programului au loc schimburi permanente ntre memoria intern i
memoria extern, la nivelul unor uniti de schimb numite pagini sau segmente, n funcie de
tehnica de organizare a memoriei virtuale folosit;
pentru a putea identifica entitile din program, prin intermediul adresei virtuale, se
realizeaz transformarea adresei virtuale n adres fizic, prin intermediul funciei de mapare;
se spune c are loc proiecia spaiului virtual peste cel real; pentru a mri viteza acestei operaii,
funcia de mapare se implementeaz hardware;
ntre dou transferuri succesive ntre memoria intern i memoria extern, se execut
secvena de instruciuni ncrcat n memoria intern, conform principiului vecintii: n
majoritatea timpului, execuia unui program se desfoar ntr-o vecintate apropiat a
instruciunii curente.
Unitatea de transfer intre memoria intern i cea extern este pagina, aceasta reprezentand
o entitate a memoriei de dimensiune fix de 512, 1024, 2048 sau 4096 kbytes; procesul de
deplasare al paginilor ntre memoria intern i memoria extern este referit ca transfer de
pagini.
O adres folosit de programator se numete adres virtual, iar adresa real unde
este emorat se numete adres fizic (dimensiunea spaiului de adrese virtuale este mult
mai maredecat imensiunea spaiului de adrese reale).
Funcia de translatare a unei adrese virtuale ai in adres real bj se poate defini astfel:
ft = 0 dac informaia de la adresa virtual solicitat (ai) nu este in acel moment rezident in
memoria intern;
ft = bj dac adresa virtual ai gsete rezident adresa real bj in memoria intern.
Dac ft(ai) = 0 se emite un semnal de nereziden i se genereaz o intrerupere care are ca
efect plasarea din memoria extern in memoria intern, a informaiei referite de procesor
prin adresa virtual ai. La terminarea intreruperii (care lanseaz in execuie algoritmii de
transfer, plasare i reamplasare) ft(ai) va fi nenul, avand loc o nou iniiere a activitii
intrerupte. Dispozitivul de translatare este redat n fig.3.3.

Fig.3.3. Mecanismul de translatare a adreselor virtuale n adrese fizice


Exist mai multe moduri de alocare a memoriei virtuale:
alocarea paginat
alocarea segmentat
alocarea segmentat i paginat.
Fiecrui mod de alocare i corespunde o metod de mapare a memoriei virtuale peste memoria
intern.

a. organizarea la nivel de pagin


Organizarea la nivel de pagin conduce la reducerea necesarului de informaie
coninut n tabela ft deoarece spaiul de adrese este divizat in blocuri de dimensiune
constant numite pagini. Dimensiunea paginii virtuale coincide cu dimensiunea paginii
reale ceea ce implic netranslatarea adresei cuvantului de pagin. Dispozitivul de
translatare construiete o tabel a paginilor organizat n memoria intern (MTP) cu
informaii necesare procesului de translatare din adrese virtuale nadrese fizice (fig. 3.5.).

Fig.3.5. Organizarea la nivel de pagin a memoriei virtuale


Pentru orice adres virtual ai se asociaz perechea (P,C) unde P
reprezint numrulcuvintelordin pagin, iar C numrul unui cuvant referit din P. Prin P se
intr in tabela de pagini, la unul din cuvintele de la 0 la 2p, de unde se extrage componenta
Q de o anumit dimensiune; dac:
- RM (Q) are coninut nenul, atunci adresa solicitat de procesor are drept corespondent
opagin de memorie rezident in memoria intern;
- RM (Q) = 0 atunci adresa virtual solicitat nu are adres de pagin real in
memoria intern, ceea ce conduce la declanarea celor 3 algoritmi ca urmare a setrii
registrului de REZIDENT. Algoritmii vor determina transferul paginii corespunztoare din
memoria extern n memoria intern, actualizand totodat i MTP, dup care procesorul
refer din nou adresa.
Organizarea la nivel de pagin ofer avantajul c un program se poate executa fr a avea
toate paginile ncrcate n memoria intern, ele putand fi ncrcate pe msur ce devin
necesare nprelucrare, deci o utilizare mai eficient a memoriei i totodat, o protecie mai
sigur a informaiei.
Alocarea paginat se realizeaz astfel:
memoria intern se mparte n zone de lungime fix, numite pagini fizice
memoria virtual alocat unui proces se mparte n zone de aceeai lungime cu paginile
fizice, numite pagini virtuale
pentru execuia procesului, se ncarc, pe rnd, pagini virtuale n pagini fizice libere din
memoria intern (proiecia spaiului virtual peste cel real se face la nivel de pagin)
pentru fiecare proces n execuie, care utilizeaz memoria virtual, se creaz o tabel de
pagini; n aceast tabel se memoreaz numrul paginii fizice n care a fost ncrcat fiecare
pagin virtual; tabela de pagini a procesului este folosit de funcia de mapare astfel: adresele
virtuale se compun din numrul paginii virtuale i deplasarea n cadrul acestei pagini (adresa
relativ la nceputul paginii); funcia de mapare determin adresa fizic pe baza numrului
paginii fizice corespunztoare, preluat din tabela de pagini, i a deplasrii
dac, pentru o anumit adres virtual, valoarea gsit n tabela de pagini este 0,
nseamn c pagina virtual respectiv nu este ncrcat n memoria intern; se genereaz o
ntrerupere i se lanseaz procedura de aducere a paginii virtuale n memoria intern, dup care
procesul poate fi reluat.
Alocarea paginat este folosit la sistemele de calcul compatibile IBM-PC pentru utilizarea
memoriei expandate.
b. organizarea la nivel de segment
Organizarea la nivel de segment imparte spaiul de memorie in blocuri de dimensiune
variabil, numite segmente (pot fi module de program sau anumite structuri de date)- fig.
3.6.

Fig.3.6. Organizarea la nivel de segment a memoriei virtuale


Adresa virtual referit de procesor const din numele segmentului S i numele cuvantului
n segment C; adresa de memorie unde incepe segmentul S reprezint adresa de baz R, iar
prin Dse specific dimensiunea segmentului.
Adresa real determinat prin R+C se obine dac registrul de buffer conine adresa
extras din memoria tabelei de segmente, efectuandu-se i comparaia dintre C i D; dac R
= 0, atunci se vor declana cei trei algoritmi.
Alocarea segmentat se realizeaz astfel:
programul este mprit n segmente care pot avea lungimi diferite
pentru execuie, sunt ncrcate pe rnd, n memoria intern, segmente ale programului
fiecare segment se ncarc n memoria intern ntr-o partiie liber acoperitoare
fiecare proces are definit o tabel de segmente, n care se memoreaz adresa fizic de
ncrcare a fiecrui segment
pentru adresare, funcia de mapare folosete tabela de segmente a procesului.
Avantajul suplimentar al alocrii segmentate este c se poate asigura o bun protecie a
memoriei, prin acordarea drepturilor de acces la nivelul segmentelor i memorarea acestor
drepturi n tabela de segmente. Dezavantajul este c, la fel ca n cazul alocrii reale cu partiii
variabile, i alocarea segmentat poate genera fragmentarea memoriei interne; pentru a nltura
acest inconvenient se poate utiliza alocarea segmentat i paginat.
Organizarea la nivel de Segment-Pagin
Alocarea segmentat i paginat combin cele dou metode anterioare: programul este
mprit n segmente i ncrcat n memoria intern segment cu segment fiecare segment este
mprit n pagini egale cu paginile fizice ncrcarea unui segment n memoria intern se face
prin proiecia paginilor virtuale ale segmentului peste pagini fizice libere din memoria intern
fiecare proces are n memoria intern o tabel de segmente n care se memoreaz adresa tabelei
de pagini a fiecrui segment pentru determinarea adresei fizice, funcia de mapare folosete
tabela de segmente i tabela de pagini a segmentului cutat.
Organizarea la nivel de segment-pagin divide adresele virtuale i adresele
fizice n segmente, iar segmentele n pagini, n vederea fructificrii avantajelor celor
dou metode de organizare:
- paginarea, care ofer implementarea simpl i cel mai sigur mijloc de protecie
a informaiei;
- segmentarea, care satisface intr-o mai mare msur cerinele programatorului prin
divizarea in segmente, deci inand seama de logica programului (fig.3.7.).

Fig. 3.7. Organizarea la nivel de segment-pagin a memoriei virtuale


n cadrul acestui mod de organizare, exist o singur tabel de segmente i un numr
de tabele de pagini egal cu numrul de segmente.
Atunci cand procesorul refer o adres virtual, acesteia i se asociaz:
- adresa virtual a segmentului S;
- adresa virtual a paginii in segment CP;
- adresa virtual a cuvantului din cadrul paginii CC; iar registrul de acces segment este
setat.
Prin S din RV se caut in MTS; dac se gsete o adres, aceasta este reprezentat prin:
- R - adresa tabelei de pagini;
- D - dimensiunea segmentului exprimat in pagini i introdus apoi in registrul de buffer.
Prin intermediul lui R din registrul de buffer se selecteaz o tabel de pagini din MTP;
componenta CP din registrul de adrese i R din registrul de buffer, permit extragerea din
tabela de pagini a cuvantului indicat prin CP din RV; cuvantul selectat are Q bii i
reprezint una din paginile reale din memoria intern, fiind introdus in RM unde vine i
componenta CC care indic adresa real a cuvantului in pagin.
Dac nu se gsete prin S din RV nici o intrare in MTS, atunci segmentul virtual adresat
nu are corespondent in memoria intern, deci registrul de REZIDENT este setat i se
declaneazalgoritmii de transfer din memoria extern in memoria intern a segmentului
solicitat actualizandu-se i memoria tabelei de segmente.
Dac CP din RV este mai mare decat D din registrul de buffer, registrul
de depire semnalizeaz o eroare de adresare poziionandu-se pe 1.
Accesul in MTP se realizeaz prin poziionarea registrului de acces la pagin pe 1,
iarcomponentele Q i CC sunt introduse in RM.
n cazul proceselor concurente, gestiunea memoriei intre mai multe procese poate fi
analizatprin - limitarea frecvenei transferului de date i programe;
- conservarea execuiei programelor din memoria intern, in timp ce alte programe
sunt nateptare in memoria extern;
- transferul datelor i programelor din memoria intern atunci cand procesele le solicit.
Acest mod de alocare are toate avantajele celor dou moduri de alocare anterioare; a fost
implementat pentru prima dat pe platforma MULTICS; este folosit de sistemul de operare VMS
i de MS-DOS pentru lucrul cu memoria extins.
Avantajele alocrii virtuale sunt:
permite utilizarea mai eficient a memorie interne; n cazul alocrii paginate nu exist
zone, n memoria intern, care nu pot fi alocate, pentru c au o dimensiune prea mic, sau care
sunt alocate i sunt ocupate parial
pot fi executate proceduri reentrante, prin ncrcarea lor o singur dat n memoria
intern i actualizarea
diferit a tabelelor de pagini ale proceselor care le apeleaz.

S-ar putea să vă placă și