You are on page 1of 8

4. Memoria extinsa.

Memoria extins este memoria peste limita de 1Mo , dar care este accesat direct, atunci cnd
procesorul lucreaz n modul de lucru protejat (nu mai este necesar un hardware specializat pentru a mapa
memoria superioar ntr-un spaiu de adrese de pn la 1Mo (figura 2).
Primii 64ko peste limita de 1Mo poart denumirea de High Memory Area i pot s fie accesai de
ctre procesor (I80286-I80486) n modul real.
Un program special (manager de memorie ) denumit HIMEM.SYS trebuie ncrcat pentru a asigura
accesul al memoria extins (eXtended Memory Specification - XMS).
Programul EMM386.EXE poate utiliza memoria XMS pentru a emula memoria EMS (dac nu exist
placa de memorie expandat n sistem).
Memoria EMS nu trebuie confundat cu memoria XMS. Memoria EMS a fost dezvoltat pentru a
crete performanele sistemului pentru modul real , iar memoria XMS a fost conceput pentru lucrul pe
modul protejat. Memoria expandat nu ocup o zon specific de adrese ci este asociat cu un mecanism
special de mapare ce face ca aceast memorie s poat fi accesat, n pagini, din spaiul de adrese specifice
modului real (pn la 1 Mo). Memoria extins apare n mod natural pentru modul de lucru protejat.

5. Memoria expandata
Memoria expandat este memoria peste limita de 1Mo , dar care apare n interiorul spaiului de adrese
asociate primului Mo. Exist o metod (specificaie) ce face posibil accesarea unei zone de memorie de
adres peste 1Mo n spaiul de adrese din interiorul primului Mo. Aceast specificaie se nunete Expanded
Memory Specification - EMS . Calculatorul trebuie s posede un hardware special ( plac de memorie
EMS) ; acest hardware dedicat face ca memoria de la adrese peste 1Mo s se "vad " din interiorul unei
ferestre de memorie din spaiul de adresare de pn la 1Mo (figura 1).
Un program special (manager de memorie ) numit EMM386.EXE trebuie ncrcat pentru a avea acces
la memoria expandat. Orice procesor (I8086 - I80486) poate avea acces la memoria expandat , chiar i n
modul real de lucru.
Dezavantajul memoriei expandate este acela c utilizeaz un hardware complex.

7. Alocarea memoriei heap ( functia malloc)


malloc
<ALLOC.H, STDLIB.H>
Declaratie:
void *malloc(size_t size);
Functia malloc aloca un bloc de date de dimensiune size octeti din memoria nealocata (heap). Se
permite alocarea explicita de memorie (prin specificarea directa a unei dimensiuni de memorie).
Memoria heap este utilizata pentru alocarea dinamica;tot spatiul de memorie de la sfirsitul
segmentului de date pina la virful stivei programului (cu exceptia unui mic spatiu utilizat de DOS plus un
spatiu de rezerva) este disponibil pentru alocare dinamica.
Spatiul de memorie alocat asfel constituie parte integranta din program si nu este recunoscut ca bloc
de date DOS de catre sistemul de operare.

Valoare intoarsa
- operatie cu succes : un pointer catre blocul alocat
- operatie cu eroare : pointerul NULL (daca nu exista spatiu in heap)
Daca argumentul size=0 functia malloc intoarce NULL.
8. Alocarea memoriei cu functia allocmem.
allocmem
<DOS.H>
Declaratie:
int allocmem(unsigned size, unsigned *segp);
Functia allocmem utilizeaza functia DOS 0x48 pentru a aloca un bloc de memorie DOS caracterizat
print-un antet de 16 octeti astfel :
- octetul 0 : este 'M' sau 'Z'
- octetii 1 si 2 : reprezinta adresa de segment a blocului alocat (0000 daca blocul a fost eliberat)
- octetii 3 si 4 : reprezinta lungimea blocului in multiplii de 16 octeti
- octetii 5 - 15 : neutilizati
Semnificatia parametrilor este :
Parametru
Semnificatie
size
Numarul de grupuri de 16 biti cerute
segp
Pointer catre un segment alocat
NOTA: Functia malloc nu poate coexista cu funcia allocmem.
Valoare intoarsa
Operatie cu succes : -1
Operatie cu eroare : lungimea blocului de dimensiune maxima(dar mai mica decit cea solicitata, si un cod de
eroare DOS)

9. Metoda de conectare cu memorie duala intr-un sistem multiprocessor.


Explicati rolul semnalelor din schema urmatoare:

Sistem multiprocesor cu 2 procesoare cu memorie comun


Schema sistemului este prezentat n figura 2.

Memoria comun este un circuit mai complex ce include memoria propriu-zis i un controler care
arbitreaz conflictele de acces ce pot apare dac cele dou procesoare cer accesul "simultan" la memoria
comun.

Conflictele de acces pot apare dac un procesor citete iar cellalt scrie aceeai locaie de memorie
sau dac ambele procesoare scriu n aceai locaie de memorie.
Circuitul de arbitrare a conflictelor de acces are urmtoarele funcii :
- compar adresele generate de cele dou procesoare pentru memoria comun
- genereaz semnalele de control pentru memoria comun ( de exemplu WE/ )
- genereaz semnale pentru blocarea unui ciclu de acces (cel sosit puin mai trziu); se genereaz de
exemplu un semnal BUSY/ .
n figura 3. este ilustrat o soluie constructiv fr controler integrat (memoria comun este o
memorie RAM uzual).
Dezavantajul soluiei din figura 3 este complexitatea hardware n raport cu soluia integrat din figura 2.
10. Metoda de conectare cu impartirea bus-urilor intr-un sistem multiprocessor.
Explicati rolul semnalelor din schema urmatoare:

n figura 4.. se prezint o soluie de interconectare ce utilizeaz principiul cererii - achitrii de


magistral ( bus request - bus grant ).
Comunicarea ntre procesoare se realizeaz tot printr-o memorie comun; cele 2 procesoare utilizeaz
aceleai bus-uri pentru accesul la memoria comun.
Unul dintre procesoare va fi master pn cnd primete o cerere de bus; acest cerere va fi generat
atunci cnd procesorul slave dorete s acceseze memoria comun.
Ciclul de bus al procesorului slave este ntrziat ( prin trecerea acestui procesor n starea WAIT ) pn
la activarea semnalului ce semnific acceptarea cererii de magistral.
Soluia din figura 4. este funcional numai dac procesorul slave posed o intrare ce permite trecerea
sa n starea WAIT ( de exemplu READY la I80x86).
n caz contrar se pot insera stri de WAIT pentru ciclurile de acces la memoria comun pentru a
atepta eliberarea magistralelor de ctre master (ca n figura 5.) .
13. Formatarea discurilor
Pentru initializarea discurilor este necesara mai intai o formatare la nivel fizic, de nivel jos, care
pregateste discul pentru formatarea propriu-zisa.
Formatarea de nivel inalt imparte discul in piste si sectoare. Sistemul de operare DOS utilizeaza
comanda FORMAT pentru aceasta operatie. Exista programe utilitare de management al fisierelor si
directoarelor pe disc care pot efectua aceasta operatie (Norton Commander, Windows File Manager, etc.).
In cazul discurilor hard, formatarea de nivel inalt poate fi urmata de partitionarea discului fizic in
mai multe discuri virtuale. Sistemul de operare DOS utilizeaza comanda FDISK pentru aceasta operatie.

14. Partitionarea discurilor


Spatiul pe disc al PC-urilor este alocat fisierelor in unitati de alocare numite cluster-e. Dimensiunea
cluster-elor variaza in functie de tipul discului, formatul si dimensiunea lui. Floppy-disk-urile au in general
dimensiunea clusterelor de 1k octeti, pe cand dimensiunea clusterelor hard-disk-urilor poate varia intre 2k si
16k, depinzand de capacitatea discului. Pe un hard-disk pot exista zeci de mii de cluster-e. Comanda
FORMAT determina aceasta dimensiune.
Cluster-ele sunt numerotate si un fisier pe disc este format din unul sau mai multe astfel de unitati de
alocare. In tabela de alocare a fisierului (FAT = File Allocation Table) se pastreaza numerele si ordinea
clusterelor apartinand unui fisier, data si momentul crearii sale.

15. Fragmentarea discurilor


Fragmentarea este consecinta naturala a crearii si stergerii fisierelor. Deoarece un fisier este format
dintr-unul sau mai multe cluster-e a caror ordine este cunoscuta, un fisier poate fi plasat oriunde pe disc. Un
procesor de texte poate de exemplu sa resalveze un fisier modificat scriind in alta parte pe disc, eliberand
apoi spatiul utilizat initial pentru alte fisiere.
Pentru a citi din fisier sau scrie in fisier, sistemul de operare DOS urmeaza pur si simplu lista curenta
a numerelor de cluster-e din FAT. Nu conteaza cate parti sunt si nici de cat de dispersate sunt pe disc. Sarind
pe toata suprafata discului pentru a citi sau scrie biti se reduce viteza de acces. Daca partile unui fisier nu sunt
plasate alaturat, fisierul este numit fragmentat, iar operatiile de refacere in caz de distrugere, stergere sau
pierdere sunt ingreunate.
Utilitarul TMAP prezinta nivelul fregmentarii tuturor fisierelor de pe disk.
----------------------------------------------------------------------------------------------------------------------

Organizarea memoriei cache:


Exist trei metode de baz pentru plasarea blocurilor din memoria principal n memoria cache
(denumite asocieri sau mapri) :

- mapare direct
- mapare asociativ (fully associative)
- mapare asociativ pe seturi (set associative) .
18. Maparea memoriei cache metoda directa
Maparea direct a memoriei cache este ilustrat n figura 2. Adresa din memoria principal (adresa
fizic) se compune din cmpurile : tag, bloc i cuvnt.
n acest caz blocul i din memoria principal este asociat cu blocul (i mod nr_blocuri_n _cache) = (i
mod 128) din memoria cache. Fiecare bloc din cache are asociat un cmp "tag" (primii 7 bii mai
semnificativi ai adresei fizice n memoria principal ).
Cmpul tag din adresa memoriei principale se compar cu fiecare cmp "tag" al memriei cach. Dup
gsirea corespondenei dintre cmpurile tag se alege cmpul "bloc" din adresa memoriei principale i cmpul
"cuvnt" din aceeai adres pentru selectarea octetului ce va fi transferat din blocul memoriei cache (dat de
tag) n blocul memoriei principale (dat de cmpul bloc i cmpul cuvnt al adresei n memoria principal).
Avantajul acestei mapri directe este accesul simultan la datele dorite i la cmpul tag (nu se face o
cutare asupra cmpului tag). Dac cmpul tag nu exist n memoria cache , datele vor fi suprimate.
Un dezavantaj al maprii directe apare atunci cnd dou sau mai multe blocuri din memoria
principal, utilizate alternativ, snt asociate aceluiai bloc din cache. Aceast situaie are probabilitate mic n
sistemele uniprocesor, dar probabilitatea crete pentru sistemele multiprocesor cu memorie cache comun.

19. Maparea memoriei cache metoda asociativa


Maparea asociativ a memoriei cache este ilustrat n figura 3.
Adresa din memoria principal (adresa fizic) se compune din cmpurile : tag i cuvnt.
n acest caz orice bloc din memoria principal poate fi asociat cu orice bloc din memoria cache.
Metoda este cea mai bun, dar i cea mai scump.
Maparea asociativ elimin conflictele de acces ntre blocuri, dar timpul de acces crete datorit
faptului c este necesar o cutare asociativ.

20. Maparea memoriei cache metoda asociativa pe seturi


Maparea asociativ pe seturi a memoriei cache este ilustrat n figura 4.
Adresa din memoria principal (adresa fizic) se compune din cmpurile : tag, set i cuvnt.
Aceast mapare reprezint un compromis ntre maparea direct i maparea asociativ.
Memoria cache este mprit n S seturi . Blocul i , din memoria principal, poate corespunde cu
orice bloc din memoria cache aparinnd setului (i mod S).
Numrul de seturi , S, determin costul cutrii (specifice maprii asociative). Setul se determin
direct din adres, apoi se caut cmpul tag corespunztor adresei n set.

---------------------------------------------------------------------------------------------- -----------------

Observaii:
- dimensiunea blocului n memoria cache este aleas n raport cu proprietatea de localizare a programelor.
- memoria cache este adresat cu adrese fizice i nu cu adrese virtuale (se elimin etapa de translatare a
adresei virtuale n adres fizic)
- algoritmii de reamplasare a blocurilor din memoria cache determin performana memoriei cache,
exprimat ca rat de pierderi (numr de ncercri euate de a gsi informaia dorit n cache).
21. Factori de care depinde rata de pierderi pentru memoria cache.
Exist urmtoarele politici de reamplasare a blocurilor din memoria cache:
1. Least recently used (LRU) - se nlocuiete blocul din cache cel mai puin recent utilizat , relativ la
momentul de timp curent (se face o analiza a utilizarii blocurilor existente n memoria cache cu un anumit
numr de momente de timp n urm n raport cu momentul de timp curent, la care trebuie s se produc o
reamplasare).
2. First In First Out (FIFO) - se nlocuiete blocul din cache care a stat n memoria cache cel mai
mare interval de timp.
3. Last In First Out (LIFO) - se nlocuiete blocul din cache care a stat n memoria cache cel mai mic
interval de timp.
4. Random (RAND) - se alege, n mod aleator ,un bloc din memoria cache ce va fi nlocuit.

You might also like