Documente Academic
Documente Profesional
Documente Cultură
1
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
Memoria virtual
2
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
Cazul paginrii
1. programul precizeaz adresa virtual
2. se determin pagina din care face parte
3. se caut pagina n tabelul de paginare
4. dac pagina este gsit - salt la pasul 9
5. generare excepie
6. rutina de tratare caut pagina n fiierul de
paginare
3
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
8
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
Hardware
Cazul Intel
segmentarea
nu poate fi dezactivat
dar poate fi "evitat" prin software
paginarea
poate fi activat/dezactivat
9
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
Sistemul de operare
Cazurile Windows, Linux
segmentarea
nu este utilizat n practic
toate segmentele sunt dimensionate asfel nct
s acopere singure ntreaga memorie
paginarea
pagini de 4 Ko
Windows poate folosi i pagini de 4 Mo
10
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
Avantaje
protecie la erori
o aplicaie nu poate perturba funcionarea
alteia
verificrile se fac n hardware
mecanism sigur
vitez mai mare
11
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
Concluzii
scderea de performan poate fi
compensat folosind cache-uri
procesoarele de azi ofer suficient vitez
sisteme multitasking - risc mare de
interferene
mecanismele MMU trebuie folosite
13
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
14
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
compilarea
traducerea comenzilor scrise ntr-un limbaj
surs n instruciuni pentru procesor
editarea legturilor (linking)
trateaz aspecte privitoare la gestiunea
memoriei ntr-un program
15
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
16
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
Problema relocrii
17
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
18
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
Crearea programelor
compilarea modulelor
fiier surs fiier obiect
fiierele obiect conin informaii necesare n
faza editrii de legturi
editarea legturilor
fiiere obiect fiier executabil
se folosesc informaiile din fiierele obiect
20
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
1. antetul
informaii de identificare
informaii despre celelalte pri ale fiierului
2. tabela punctelor de intrare
conine numele simbolurilor (variabile i
proceduri) din modulul curent care pot fi
apelate din alte module
21
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
22
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
5. dicionarul de relocare
conine informaii despre localizarea
instruciunilor din partea de cod care necesit
modificarea adreselor cu care lucreaz
forme de memorare
hart de bii
list nlnuit
23
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
24
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
Execuia programelor
Soluia 1
27
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
Soluia 2
28
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
Soluia 3
29
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
Soluia 4
Paginarea memoriei
programul poate fi mutat oriunde n memoria
fizic
programul crede c ncepe de la adresa 0, chiar
dac nu este aa
dependent de suportul hardware (mecanismul
de paginare)
30
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
Legare dinamic
proceduri i variabile care nu sunt incluse
permanent n program
numai atunci cnd este nevoie de ele
proceduri i variabile partajate de mai multe
programe
31
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
33
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
Legare implicit
exemplu - Windows
//legare explicit a unui modul
hLib=LoadLibrary("module");
//se obine un pointer la o funcie
fAddr=GetProcAddress(hLib,"func");
(fAddr)(2,3,8);//apel funcie
FreeLibrary(hLib);//eliberare modul
(fAddr)(2,3,8);//eroare, funcia nu
mai este disponibil
36
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
exemplu - Linux
//legare explicit a unui modul
hLib=dlopen("module",RTLD_LAZY);
//se obine un pointer la o funcie
fAddr=dlsym(hLib,"func");
(fAddr)(2,3,8);//apel funcie
dlclose(hLib);//eliberare modul
(fAddr)(2,3,8);//eroare, funcia nu
mai este disponibil
37