Sunteți pe pagina 1din 3

Etapele procesului de complare-in faza de compilare

codul sursa al programuluieste transf. in cod ob.Dupa


compilare se creaza un fisier cu acelasi nume,dar cu
extensia .obj.Analiza lexicala se realizeaza la nivelul
fiecarei linii prog. si consta in:
-elim. caracterelor nesemnificative
-identif. unitatilor logice ale limbajului de prog.,de
tipul operatorilor,cuv. rezervate,identificatorilor si inserarea acestora in struct. tabelare numite tabele de
simboluri.
Analiza sintactica-indentif. constructiilor sintactice de
baza.Interpretarea continutului lor,generarea unor struct.
proprii de descriere a fiecarei constructii,prin inter. unei
struct. arborescente,numita arbore de derivare.
Analiza semantica-interpreteaza fiecare constructie
sintactica pe baza arborelui de derivare definit si folosind tabela de simboluri.Se genereaza seturi de instr.
elementare care coresp. fiecarei constr. sintactice
identif.Instr. sunt formulate intr-un format de trecere
catre codul masina,numit cod intermediar.Optimizarea
codului intermediar se face prin inlaturarea var. neutilizate,a instr. redundante,etc.
Adresarea indexata-val. din instr. se aduna algebric cu
val. registrului de index ptr. a det. adresa operantului.
Adresarea indexata permite regasirea elem. unei struct.
de tip vect.,prin incrementarea sau decrementarea unui
registru denumit registru index.O singura instr. poate
prelucra toate elem. unui vector.In arhitectura ISA x86
sunt 2 registre index:Si si DI.Adr. unui elem. din vect.
se precizeaza prin continutul unui registru index sau ca
o suma dintre continutul registrului index si un deplasament.Deplasamentul indica adr. de inceput a vect.,iar
registrul index poz. rel. a elem. fata de adr. de inceput.
Trecerea la elem. urm. din vect. se face prin incrementarea sau decrementarea explicita a registrului index.Daca
elem. vect. sunt octeti at. factorul de incrementare este
1 iar daca sunt cuv. este 2.Acest mod de adresare este
mai putin eficient d.p.d.v al vitezei de executie deoarece
implica un calcul matematic si o adresare suplimentara
a mem.In schimb este o met. flexibila de adresare a
struct. de tip vect. sau tablou.
Adresarea indirecta-info. din instr. reprez. adresa adr.
operantului.Adresarea indir. este o tehnica de adresare
moderna care permite scurtarea lungimii progr. si introduce o flexibilitate in scrierea progr. complexe.La
adresarea indirecta adresa logica din instr. nu reprez.
adr. efectiva a operandului ci a unei noi instr.Deci,se va
citi locatia din mem. de la adr. specificata in instr.,iar
data citita va fi interpretata ca o noua instr.In cazul
microcalc. adresarea indirecta este aplicata frecvent
sub forma adresarii implicite prin interm. unor registre
generale din CPU.
Adresarea directa-info. din instr. reprez. chiar locatia
unde se mem. operandul.Adresarea indir. presupune
prezenta adr. operandului in codul instr.Operandul este
o locatie de mem. sau cu alte cuv. o var.Adresa operan-

dului se poate exprima printr-o val. sau printr-un nume


simbolic dat var.Ptr. a evita confuzia sau adresarea
imediata,val. adr. se plaseaza intre paranteze drepte.De
fiecare data cand se folosesc paranteze drepte,continutul
lor trebuie interpretat ca si o adr. si nu ca o const.
Adresarea indir. permite accesarea unei singure locatii de
mem.;o alta locatie necesita o alta instr.
Adresarea imediata-at. cand in instr. se specifica val. operandului si nu adr. lui.Adresarea imediata este cea mai simpla
forma de adresare.Acest mecanism de adresare incalca
principiul gen. de adresare;operandul nu se mem. separat de
instr.,ci se face parte integrata chiar din instr.Operandul este
o constanta,care se pastreaza in codul instr.Odata cu citirea
instr. are loc si citirea operandului.Constanta se poate
exprima in zecimal,hexazecimal,binar sau sub forma de
coduri ASCII.Constanta este intotdeauna al 2-lea operand al
unei instr.Acest mode de adresare este relativ rapid deoarece
nu necesita transf. suplimentar ptr. aducerea operandului,dar
flexibilitatea este limitata,in sensul ca o instr. opereaza cu o
singura val.
Adresarea prin registri-at. cand in zona de adr. se specifica un
registru al UCP.La aceasta adresare operandul se afla intr-un
registru al procesorului.Acest mod este de fapt o forma mai
eficienta de adresare directa.Eficienta se dat. mai multor fact:
-registrele sunt in int. procesorului ceea ce elim. necesitatea
unui transf. suplimentar cu mem;
-adr. unui registru se exprima pe un nr. redus de biti(3-4 biti),
ceea ce contribuie la reducerea dim. instr. si implicit la o
executie mai rapida a acestora;
-transf. intre registre se face la o vit. mult mai mare deoarece
se utiliz. magistralele int. ale procesorului.
Nu sunt permise transferuri directe intre registrele seg. ale
procesorului,sau intre un registru seg. si o const.Incarcarea
unui registru seg. se face indir. prin intermedierea unui registru
gen.Dezavantajul acestui mod consta in faptul ca nr. de registre int. este elim. si din aceasta cauza nu toate var. unui
progr. pot fi pastrate in registre.
Tehnica Spooling-reprez. un mod eficient de exploatare a sist.
de calcul seriale,bazat pe principiul separarii op. de intrare de
op. de iesire si de restul prelucrarilor si pe executarea lor in
paralel.Sunt parcurse circular terminalele si prin interm. unei
instr. de test,este verif. starea fiecarui terminal.Daca este
identif. aparitia unei cereri la un terminal,at. aceasta este tratata.Consultarea starii terminalelor este facuta in paralel cu
executarea proceselor.Alte mecanisme folosite:
-adressing-se emite adr. terminalului
-intrerupere-terminalul genereaza o intrerupere.
Executarea lucrarilor se face in multiprogramare,cu respectarea
unor reg.Ptr. utiliz. tehnicii Spooling este nevoie de o mem. ext.
de cap. mare,direct adresabila,unde sa fie org. perifericele
virtuale.Efectele itiliz. tehnicii Spooling sunt:
-cresterea randamentului de exploatare a unui sist. serial cu
40-50%,dat. scaderii timpilor de asteptare ai UCP
-cresterea randamentului de utiliz. a echipamentelor de I/O,
acestea fiind utiliz. in reprize dar intr-o repriza sunt utiliz. la
cap. max.

Fir de executie-un prog. aflat in executie se numeste proces.


Un proces poate avea mai multe fire de executie.Un fir partajeaza struct. de date si spatiul de mem. al procesului.Un fir
de executie este o succesiune secventiala de instr. care se
executa in cadrul uni proces.Firul are si propriile sale struct.
de date.Firele de executie fac trecerea de la progr. secventiala la progr. concurenta.Comutarea intre procese necesita
salvarea starii procesului si a struct. de date.Comutarea intre
firele unui proces este mult mai simpla deoarece trebuie
salvate mult mai putine date.Fiecare fir are asignat un ob.ce
contine info. despre fir,care este gestionat de managerul de ob.
Firul de executie nu are sens decat in cadrul unu sist. de op.
multitasking.Dif. dintre un fir de executie si un proces consta
in faptul ca un fir de executie nu poate rula independent ci treb.
sa lucreze in cadrul unui proces.
Proces-set de activit. din program ce nu se pot suprapune.Este
det. de o secventa de instr. din progr. care se executa.Un proces
se desfasoara in timp,intre generarea si incheierea sa.Este
descris de catre un ob. ce este gestionat de managerul de ob.,in
gen. vect. de stare al procesului.Un proces este initiat de un alt
proces.Termenul de proces este folosit ptr. a desemna ob.
activitatii procesorului,in timpul executiei unui program.Se caract.
prin:
-prelucrarile care se realiz.,det. de secventa de instr. care
controleaza procesul
-contextul de lucru asupra caruia actioneaza procesul,prin
interm. prelucrarilor,si care include resursele alocate procesului.
Sectiunea critica-in cazul programarii executiei preceselor
concurente trebuie avute in vedere urm. reguli ptr. tratarea sectiunii
critice:
Regula1-un singur proces trebuie sa poata executa o sectiune
critica,la un mom. dat.Orice alt proces care solicita executarea
sectiunii critice va primi permisiunea de a o executa numai dupa
incheierea executiei ei de catre procesul in curs.Chiar daca durata
executiei sectiunii critice este necunoscuta aprioric niciun proces nu
trebuie sa astepte nedef. de mult ptr. a intra in sect. critica.
Regula2-oprirea unui proces,prin dezactivare sau blocare,poate avea
loc numai in afara sectiunii critice,adica sect. critica este neintreruptibila.

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