Sunteți pe pagina 1din 29

Sisteme de operare

1. Prezentai analizele lexicale i semantice din procesul de compilare.


Analiza lexical
se realizeaz la nivelul fiecrei linii program i const n :

eliminarea caracterelor nesemnificative (de exemplu spaiile, comentariile, etc)

identificarea unitilor logice ale limbajului de programare, de tipul operatorilor,


cuvintelor rezervate, identificatorilor, constantelor, etc. i nscrierea acestora n structuri tabelare
numite tabele de simboluri
Analiza sintactic
identificarea construciilor sintactice de baz (instruciuni, expresii, liste, etc.)
interpretarea coninutului lor
generarea unor structuri proprii de descriere a fiecrei construcii, prin intermediul unei
structuri arborescente, numit arbore de derivare
2. Prezentai etapele procesului de compilare.

Compilarea n faza de compilare, codul sursa al programului este transformat n cod obiect (un cod
intermediar specific compilatorului de C). Dupa compilare, se creeaza un fisier cu acelasi nume, dar cu
extensia .obj.

Analiza lexical se realizeaz la nivelul fiecrei linii program i const n : -eliminarea caracterelor
nesemnificative (de exemplu spaiile, comentariile, etc) -identificarea unitilor logice ale limbajului
de programare, de tipul operatorilor, cuvintelor rezervate, identificatorilor, constantelor, etc. i
nscrierea acestora n structuri tabelare numite tabele de simboluri. Analiza sintactic -identificarea
construciilor sintactice de baz (instruciuni, expresii, liste, etc.) -interpretarea coninutului lor
generarea unor structuri proprii de descriere a fiecrei construcii, prin intermediul unei structuri
arborescente, numit arbore de derivare Analiza semantica -interpreteaz fiecare construcie
sintactic pe baza arborelui de derivare definit i folosind tabela de simboluri; -se genereaz seturile de
instruciuni elementare care corespund fiecrei construcii sintactice identificate ; -instruciunile sunt
formulate ntr-un format de trecere ctre codul main, numit cod intermediar.Adres relocabil n
aceasta faza sunt semnalate posibilele erori sintactice din codul sursa. alocarea se face utiliznd tabela
de simboluri i asociind la fiecare astfel de entitate o locaie de memorie, calculat relativ la adresa de
nceput a programului. Optimizarea codului intermediar se face prin nlturarea variabilelor
neutilizate, a instruciunilor redundante, etc.

program surs
analiza
lexical
tabela de simboluri

cod valid lexical

tabela de erori

analiza
sintactic
program valid sintactic

arbore de derivare

analiza
semantic
cod intermediar

tabela de erori

relocare,
optimizare
program relocabil
generare cod
obiect
program obiect

3. Prezentai adresarea indexat.


Adresarea indexat valoarea din instruciune se adun algebric cu valoarea registrului de index
pentru a determina adresa operandului. Adresarea indexat permite regsirea elementelor unei structuri
de tip vector, prin simpla incrementare sau decrementare a unui registru denumit registru index. O
singur instruciune poate prelucra toate elementele unui vector. n arhitectura ISA x86 sunt dou
registre index: SI i DI. Adresa unui element din vector se precizeaz prin coninutul unui registru
index sau ca o sum dintre coninutul registrului index i un deplasament (o constant).
Deplasamentul indic adresa de nceput a vectorului, iar registrul index poziia relativa a elementului
faa de adresa de nceput.
Trecerea la elementul urmtor din vector se face prin incrementarea sau decrementarea explicit a
registrului index. Dac elementele vectorului sunt octei atunci factorul de incrementare este 1 iar dac
sunt cuvinte atunci factorul este 2.
Acest mod de adresare este mai puin eficient din punct de vedere al vitezei de execuie deoarece
implic un calcul matematic i o adresare suplimentar a memoriei. n schimb este o metod flexibil
de adresare a structurilor de tip vector sau tablou. n cazul unor prelucrri n bucl aceeai instruciune
adreseaz succesiv toate elementele unui vector.
Registrul de index
Valoarea Y

+
....
(cod instructiune, tip adresare, operand1)

Memoria
interna
Adresa X+Y

Adresa X de memorie

Valoare operand

4. Prezentai adresarea indirect.


Adresarea indirecta este o tehnica de adresare moderna care permite scurtarea lungimii
programelor si introduce o flexibilitate in scrierea programelor complexe. La adresarea directa
adresa logica din instructiune nu reprezinta adresa efectiva a operandului ci a unei noi instructiuni.
Deci, se va citi locatia din memoria de la adresa specificate in instuctiune, iar data cititta va fi
interpretata ca o noua instructiune. In cazul microcalculatoarelor adresarea indirecta se aplica
frecvent sub dorma adresarii implicite prin intermediul unor registre generale din CPU. Astfel la
microprocesorul INTEL I8080 perechea registrului HL, fiecare pe 8 biti, este folosita ca adresa
logica pt accesarea memoriei operative de unde se extrage operandul. Fie de ex instructiunea ADD
M (care presupune adunarea dintre ACC si continutul locatiei de memorie a carei adresa este
specificata implicit prin continutul perechii de registri HL.
Memoria
interna
Adresa K
....
(cod instructiune, tip adresare, operand1)

Adresa T
Adresa K de memorie
Adresa T
Valoare operand

5. Prezentai adresarea direct.


Adresarea direct informaia din instruciune reprezint chiar locaia unde se memoreaz
operandul. Adresarea direct presupune prezena adresei operandului n codul instruciunii. Operandul
este o locaie de memorie sau cu alte cuvinte o variabil. Adresa operandului se poate exprima printr-o
valoare sau printr-un nume simbolic dat variabilei. Pentru a evita confuzia cu adresarea imediat,
valoarea adresei se plaseaz ntre paranteze drepte. De altfel ori de cte ori se folosesc paranteze
drepte, coninutul lor trebuie interpretat ca i o adres i nu ca o constant.
Adresarea direct permite accesarea unei singure locaii de memorie; o alt locaie necesit o alt
instruciune.

Memoria
interna
....
(cod instructiune, tip adresare, operand1)

Adresa K
Adresa K de memorie

Valoare operand

6. Prezentai adresarea imediat.


Adresarea imediat - atunci cnd n instruciune se specific valoarea operandului i nu
adresa lui.
Adresarea imediat este cea mai simpl form de a dresare. Operandul este o constant, care se
pstreaz n codul instruciunii. Astfel, odat cu citirea instruciunii are loc i citirea operandului.
Constanta se poate exprima n zecimal (este forma implicit), n hexazecimal (cu terminaia "h"), n
binar (terminaia "b") sau sub form de coduri ASCII (caracter ntre apostrofuri). Constanta este
ntotdeauna al doilea operand al unei instruciuni. Acest mod de adresare este relativ rapid deoarece nu
necesit transfer suplimentar pentru aducerea operandului. dar flexibilitatea este limitat, n sensul c o
instruciune opereaz cu o singur valoare.
....
(cod instructiune, tip adresare, operand1)

Valoare operand

7. Prezentai adresarea prin regitrii.


Adresarea prin regitri - atunci cnd n zona de adres se specific un registru al UCP.
La aceast adresare operandul se afl ntr-un registru al procesorului. Acest mod este de fapt o form
mai eficient de adresare direct. Eficiena se datoreaz mai multor factori: -registrele sunt n interiorul
procesorului ceea ce elimin necesitatea unui transfer suplimentar cu memoria; -adresa unui registru se
exprim pe un numr redus de bii (3-4 bii), ceea ce contribuie la reducerea dimensiunii
instruciunilor i implicit la o execuie mai rapid a acestora; -transferurile ntre registre se face la o
vitez mult mai mare deoarece se utilizeaz magistralele interne ale procesorului.
Nu sunt permise transferuri directe ntre registrele segment ale procesorului, sau ntre un registru
segment i o constant. Incrcarea unui registru segment se face indirect prin intermedierea unui
registru general.
Dezavantajul acestui mod const n faptul c numrul de registre interne este limitat i din aceast
cauz nu toate variabilele unui program pot fi pstrate n registre.
Registrul R
.....
(cod instructiune, tip adresare, operand1)

Registrul R

Valoare operand

8. Explicai funcionarea SO n monoprogramare.


Monoprogramarea este o tehnic de exploatare pentru sistemele seriale. Obiectivul acestei tehnici
este automatizarea lansrii n execuie a lucrrilor (programelor). Pentru aceasta, lucrrile sunt
organizate secvenial, n loturi de lucrri i lansate automat n execuie.
Exploatarea n monoprogramare 1.Planificarea execuiei: a)pe loturi de lucrri: batch processing
systems
Planificarea execuiei lucrrilor se face prin intermediul lotului de lucrri. Acest mod de organizare a
prelucrrilor se numete prelucrare batch (pe loturi sau pachete), iar sistemele de operare care

utilizeaz aceast tehnic de exploatare se numesc sisteme de operare batch (BPS - Batch Processing
Systems).
b) monitorul de nlnuiri; lansarea n execuie a lucrrilor din lotul de lucrri .Lansarea n execuie a
unei lucrri se face, n cadrul lotului din care face parte, secvenial, adic respectnd condiiile: -o
lucrare se lanseaz n execuie numai dup ncheierea execuiei lucrrii care o precede; -ordinea de
lansare n execuie a lucrrilor este strict ordinea n care se afl lucrrile n lotul de lucrri; -la un
moment dat, toate resursele sistemului sunt puse la dispoziia lucrrii aflate n execuie.
Lansarea n execuie a lucrrilor din lotul de lucrri se face automat, sub controlul componentei
sistemului de operare numit monitor de nlnuiri. Fisiere de comenzi Exemplu: sub MS-DOS pot
fi generate fiiere de comenzi care definesc o secven de programe i o ordine de execuie a lor; un
astfel de fiier de comenzi definete un lot de lucrri care poate fi executat prin lansarea n execuie a
fiierului de comenzi.
2. Optimizarea exploatrii n monoprogramare: -Buffere I/O (zone tampon): -transfer n zone de
memorie asociate echipamentelor periferice. Pentru micorarea timpului de ateptare al UCP n cazul
operaiilor de intrare/ieire, se pot folosi urmtoarele soluii: -utilizarea bufferelor de intrare/ieire.
Acestea sunt zone din memoria intern dedicate pentru schimbul de informaii cu echipamentele de
intrare/ieire. Schimbul de date cu echipamentele I/O se realizeaz n doi pai: a) un pas rapid, ntre
memoria intern i buffer, sub controlul UCP; b) un pas mai lent, la viteza echipamentului I/O, ntre
buffer i echipamentul I/O, sub controlul unitii de canal corespunztoare dispozitivului I/O; acest pas
nu necesit controlul UCP care, n acest timp, i poate continua activitatea.
In sistemele moderne, viteza operaiilor I/O se poate mri utiliznd funcii cache de citire/scriere.
Memoria cache a dispozitivului periferic poate fi o memorie dedicat sau poate fi o zon din memoria
RAM. Transferul de date cu dispozitivul periferic se face prin intermediul memoriei cache, tot n doi
pai; diferena fa de lucrul cu bufferele I/O const n faptul c, n cazul utilizrii memoriei cache,
apare funcia de predicie care stabilete care este volumul de date, din vecintatea datelor care se
transfer, care are cea mai mare probabilitate de a fi solicitat n urmtorul interval de timp; aceste date
vor fi transferate n avans, ntre dispozitivul I/O i memoria cache. Programul care controleaz acest
transfer i care asigur i funcia de predicie face parte din sistemul de operare.
Exemplu: la MS-DOS, variantele mai mari de 5.0, este programul SMARTDRV; la Windows95 este
programul VCache.
Diagrama exploatrii n monoprogramare
UCP
MI

Loturi de lucrari

P1

P1
1

P2

P2

P2

P3

P3

Echipamente I/O

P1

P2

P3

P3

t1 t2 t3 t4 t5 t6 t7 t8 t9

t10 t11 t12

timp

9.
Explicai funcionarea SO n multiprogramare.
Multiprogramarea este tehnica de exploatare a sistemelor de calcul care permite existena simultan
n memoria intern a mai multor programe care se execut concurent, n partiii fixe de memorie, cu
restricia ca ele s nu foloseasc n acelai timp aceeai resurs. Face posibil execuia unui numr mai
mare de programe ntr-un interval de timp, prin optimizarea utilizrii resurselor sistemului de calcul.
Exploatarea n multiprogramare .Organizarea execuiei n multiprogramare a lucrrilor se face dup
urmtoarele reguli: -lucrrile sunt organizate n loturi; -fiecare lot de lucrri are afectat o partiie fix
n memoria intern; O partiie de memorie este o zon contigu de memorie, adic o zon de
memorie format numai din locaii de memorie adiacente. O partiie are o anumit lungime i o adres
fix: -In cadrul fiecrui lot, lucrrile sunt executate secvenial, fiind lansate automat n execuie; pentru
fiecare program lansat n execuie se genereaz un proces n partiia corespunztoare lotului; -Sub
controlul sistemului de operare, UCP comut de la o partiie la alta, pentru a realiza executarea
concurent a proceselor; comutarea se face n momentul n care UCP nu este utilizat de procesul
respectiv (de exemplu, UCP ateapt terminarea unei operaii I/O); comutarea ntre procese se face n
urma unor evenimente interne proceselor care se execut (evenimente generate de procese); -Fiecare
partiie are asociat o prioritate de execuie; -resursele sistemului de calcul sunt alocate proceselor,
conform solicitrilor acestora i n funcie de disponibilitatea resurselor; n cazul solicitrii unei
resurse care nu este disponibil, procesul respectiv intr n ateptare, pn la eliberarea resursei;
ordinea de alocare a resurselor ntre procesele care solicit aceeai resurs este determinat de
prioritatea de execuie determinat de prioritatea partiiei (procesele cu prioritate mai mare au acces la
aceeai resurs naintea celor cu prioritate mai mic); -sistemul de calcul dispune de un sistem de
ntreruperi, prin intermediul cruia se semnaleaz apariia unui eveniment care poate fi cauza
comutrii ntre procese.
Funciile pe care le asigur un sistem de operare n multiprogramare sunt: -lansarea automat n
execuie a lucrrilor unui lot, prin intermediul monitorului de nlnuiri, ca la sistemele n
monoprogramare; -gestionarea execuiei concurente a proceselor ncrcate n cele n partiii, prin
alocarea succesiv a UCP fiecruia; comutarea ntre procese are loc la momentele determinate de
procese; componenta sistemului de operare care gestioneaz comutarea ntre procese a UCP este
numit planificator al procesorului (CPU Scheduller); -gestionarea alocrii aceleiai resurse ntre
mai multe procese, conform prioritii partiiilor; -asigurarea proteciei ntre lucrrile ncrcate n
memoria intern pentru execuie, astfel nct execuia unui proces s nu altereze rezultatele execuiei
celorlalte procese.
Ca efect al utilizrii multiprogramrii se poate constata: -o utilizare mai eficient a resurselor
sistemului, n primul rnd a resurselor critice: UCP i memoria intern ; -creterea volumului de lucrri
executate ntr-un anumit interval de timp.
Numrul i dimensiunea partiiilor din sistem depinde de capacitatea memoriei interne. Rezult de aici
principalul inconvenient al multiprogramrii: numrul i dimensiunea programelor care pot fi
executate concomitent este limitat de numrul i dimensiunea partiiilor definite n sistem. Pentru

nlturarea acestui inconvenient se poate recurge la creterea capacitii memoriei interne, fizic sau
logic.
Diagrama exploatrii n multiprogramare
Loturi de lucrari

Partitii in MI
P1

UCP
P1

P2

P1

P2

P2

P3

P3

Echipamente de I/O

P1

P2

P3

P3

t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 timp

10. Explicai funcionarea SO n time-sharing.


Exploatarea n time-sharing
Exploatarea n time-sharing (cu "partajarea timpului") pornete de la un obiectiv asemntor cu
exploatarea n multiprogramare: executarea concurent a proceselor, cu partajarea resurselor
sistemului de calcul. Obiectivul este reducerea timpului de rspuns al sistemului, pentru servirea
cererilor ct mai multor utilizatori.
Caracteristic exploatrii n time-sharing este faptul c fiecare proces din sistem are alocat, n mod
ciclic, o cuant de timp, n care dispune de resursele sistemului; la consumarea cuantei respective, un
alt proces primete controlul pentru o alt cuant de timp, amd. Aceast schem de execuie n paralel
a proceselor permite unui mare numr de procese s fie n sistem, la un moment dat, n diverse stadii
ale execuiei lor. Evenimentul care determin comutarea ntre procese nu mai este determinat de
proces ci este determinat de consumarea timpului de execuie afectat procesului.

Segmentul de timp alocat unui proces nu este fix i poate s difere de la un proces la altul; el se
determin dup anumite criterii, cum ar fi: numrul de procese din sistem, natura lor, etc.
Criteriile de mprire a timpului ntre procese au n vedere: -minimizarea timpului necesar comutrii
ntre procese (o cuant prea mic de timp pentru execuie duce la creterea timpului necesar comutrii
ntre procese n comparaie cu timpul de execuie propriu-zis a proceselor) ; -minimizarea timpului de
execuie a fiecrui proces (o cuant prea mare de timp de execuie pentru un proces duce la creterea
timpului de ateptare pentru celelalte procese din sistem).
Metoda de alocare a resurselor ntre mai multe procese, prin mprirea timpului de alocare n cuante
i alocarea resursei fiecrui proces cte o cuant de timp se numete multiplexarea resurselor.
Tehnica time-sharing este utilizat n sisteme interactive, n care importana lucrrilor care se execut
n sistem este relativ aceeai. n cazul sistemelor multiuser, ea face posibil conectarea simultan la
sistem a unui mare numr de utilizatori i tratarea tuturor cererilor acestora n condiii asemntoare.
Accesul utilizatorilor la sistem se face prin intermediul terminalelor I/O de la care pot trimite comenzi
sau lansa n execuie programe i la care pot primi mesaje de la sistem sau pot extrage rezultatele
prelucrrilor.
Obiectivul principal al exploatrii n time-sharing este satisfacerea tuturor cererilor utilizatorilor
conectai la sistem i reducerea timpului de rspuns al sistemului.
Consultarea strii terminalelor de intrare-ieire, pentru identificarea unor noi cereri utilizator se face
utiliznd metoda polling : sunt parcurse circular terminalele conectate la sistemul de calcul i, prin
intermediul unei instruciuni de test, este verificat starea fiecrui terminal; dac este identificat
apariia unei cereri la un terminal, atunci aceasta este tratat, generndu-se un proces. Consultarea
strii terminalelor este fcut n paralel cu executarea proceselor. Terminalele sunt inspectate circular,
n aa fel nct starea fiecrui terminal este testat periodic.
Caracteristic activitii de polling este frecvena cu care se face consultarea unui terminal: -o frecven
prea mic poate duce la ntrzierea rspunsului sistemului la solicitrile utilizatorilor ; -o frecven
prea mare implic afectarea unui timp prea mare acestei operaii, n detrimentul prelucrrilor propriuzise solicitate de procesele n execuie.
Funciile pe care le realizeaz un sistem n time-sharing sunt: -consultarea strii terminalelor prin
polling i lansarea n execuie a proceselor, n momentul identificrii unei noi cereri la un terminal;
-planificarea alocrii UCP la procesele n execuie, circular, cte o cuant de timp pentru fiecare
proces; -executarea fiecrui proces pn la consumarea cuantei de timp sau pn la completarea sa
(execuia sa complet), caz n care procesul este distrus i se activeaz un alt proces n execuie;
-alocarea resurselor la fiecare proces prin multiplexarea resurselor; -n cazul n care memoria intern
devine insuficient fa de numrul de procese care sunt lansate n execuie, ca urmare a cererilor
formulate de la terminale, sistemul poate utiliza tehnica swapping, pentru evacuarea temporar a unor
procese din memoria intern sau poate folosi memoria virtual; -comutarea ntre procese se face la
iniiativa sistemului de operare, la consumarea cuantei de timp afectate procesului; comutarea ntre
procese se face cu memorarea strii procesului ntrerupt, pentru a fi posibil reluarea lui; comutarea
ntre procese poate necesita i transferuri ntre memoria intern i memoria extern, dac procesul care
se activeaz a fost evacuat n memoria extern; -este asigurat protecia ntre procesele concurente, n
cazul resurselor utilizate de mai multe procese;
Necesiti hardware pentru sistemele de calcul exploatate n time-sharing: -dispozitiv de timp care s
genereze ntreruperi la ncheierea unei cuante de timp, ca semnal pentru comutarea ntre procese ;
-memorie intern de capacitate mare, pentru a scdea necesitatea folosirii memoriei externe ca
extensie logic a memoriei interne, reducnd necesitatea schimburilor cu memoria extern la

comutarea ntre procese ; -UCP rapid, pentru scderea timpului de rspuns la cererile utilizator i
pentru realizarea unei comutri rapide ntre procese.
Exemplu: de sistem n time-sharing este sistemul de operare Unix.
fiecare proces din sistem are alocat o cuant de timp, n mod ciclic, n care dispune de
resursele sistemului
partajarea resurselor ntre mai muli utilizatori se face atribuind fiecruia dintre ei acces, pentru
o cuant de timp, n mod succesiv

time-sharing se refer de obicei la divizarea timpului unitii centrale;

pentru restul de resurse se folosete termenul de multiplexare


Planificarea execuiei

procese concurente

alocarea ciclic a UCP

comutarea la iniiativa SO
Alocarea resurselor

prin multiplexare; metoda de alocare a resurselor ntre mai multe procese, prin mprirea
timpului de alocare n cuante i alocarea resursei fiecrui proces pentru cte o cuant de timp
Sisteme interactive, multiuser

conectarea simultan a unui numr mare de utilizatori i tratarea tuturor cererilor acestora
n condiii asemntoare
Interaciunea cu terminalele I/O prin polling
POLLING
invitarea unui terminal sa transmit date
sunt parcurse circular terminalele i prin intermediul unei instruciuni de test, este verificat
starea fiecrui terminal
dac este identificat apariia unei cereri la un terminal, atunci aceasta este tratat
consultarea strii terminalelor este fcut n paralel cu executarea proceselor
alte mecanisme:

adressing se emite adresa terminalului

ntrerupere terminalul genereaz o ntrerupere


Optimizare:

cuanta de timp variabil/programabil

swapping
Executarea proceselor n time-sharing
1. consultarea strii terminalelor prin polling i lansarea n execuie a proceselor, n momentul
identificrii unei noi cereri la un terminal;
2. planificarea alocrii UCP la procesele n execuie, circular, cte o cuant de timp pentru fiecare
proces;
3. executarea fiecrui proces pn la consumarea cuantei de timp sau pn la completarea sa
(execuia sa complet), caz n care procesul este distrus i se activeaz un alt proces n execuie;
4. alocarea resurselor la fiecare proces prin multiplexarea resurselor;
5. n cazul n care memoria intern devine insuficient, sistemul poate utiliza tehnica swapping,
pentru evacuarea temporar a unor procese din memoria intern sau poate folosi memoria virtual;
6. comutarea ntre procese se face la iniiativa sistemului de operare, la consumarea cuantei de
timp afectate procesului;

7. comutarea ntre procese se face cu memorarea strii procesului ntrerupt, pentru a fi posibil
reluarea lui;
8. este asigurat protecia ntre procesele concurente, n cazul resurselor utilizate de mai multe
procese;
Diagrama exploatrii n time-sharing
lucrari

UCP
P1

MI
P1

P1

P1

P1

P1 P1

P2
P2

P3

P2

P3

Echipamente I/O

P1

P2

P2

P2

P3

P3

P1

t1 t2 t3 t4 t5 t6 t7 t8 t9

P2
t10 t11 t12

timp

11. Explicai funcionarea SO n timp real.


Sistemele de operare n timp real sunt sisteme care permit s se urmreasc i s se controleze
evenimente din mediul extern sistemului de calcul, n momentul producerii acestora, prelund datele
de intrare de la locul producerii lor i furniznd informaii de ieire la locul desfurrii evenimentelor.
Avantajul unui sistem n timp real este capacitatea sa de a furniza la timp informaii ntr-un mediu de
date care se modific foarte rapid.
Caracteristicile sistemelor n timp real: -informaiile de intrare sunt preluate n momentul i la locul
generrii lor, prin intermediul unor dispozitive de intrare specializate; aceste dispozitive de intrare pot
fi situate local sau la distan fa de sistem de calcul care prelucreaz datele, numit sistem de calcul
central; -la primirea informaiilor de intrare, sistemul transmite mesaje de rspuns ctre utilizatorul
care a generat informaiile; rspunsul este trimis prin intermediul acelorai terminale sau al altora;
-timpul de rspuns al sistemului este resursa critic n sistemele n timp real; el trebuie s se ncadreze
sub o anumit limit, determinat n funcie de procesul urmrit.
Clasificarea sistemelor n timp real, dup msura timpului de rspuns:
1.Sisteme in-line (sisteme de proces) sunt sistemele n timp real cu ajutorul crora se realizeaz
urmrirea unui proces.Timpul de rspuns se msoar n secunde. Aceste sisteme primesc datele de
intrare de la echipamente specializate numite traductoare; traductoarele preiau valorile parametrilor
procesului, n timpul desfurrii lui, i le convertesc ntr-un format convenabil prelucrrii lor n
sistemul de calcul.

La primire, sistem de calcul prelucreaz aceste date i genereaz un rspuns; rspunsul sistemului de
calcul poate constitui o comand pentru un dispozitiv integrat n proces sau se poate adresa
utilizatorului uman, ca suport n luarea unei decizii.
Exemplu : pot utiliza sisteme in-line sistemele de supraveghere a proceselor de producie.
2.Sisteme tranzacionale sunt sistemele n timp real orientate pentru prelucrarea unui volum mare
de date de aceeai natur (de exemplu: evidena vnzrilor ntr-un mare magazin, eliberarea biletelor
cu locuri rezervate, etc.). Timpul de rspuns se msoar n minute.
Datele sunt primite de sistemul de calcul de la terminale prin intermediul unor mesaje cu format fix,
numite tranzacii. Ca rspuns, utilizatorul poate primi informaii de sintez, n legtur cu datele
prelucrate, lansnd comenzi de interogare (cereri) tot de la terminal; i comenzile de interogare au un
format fix, predefinit.
Numrul i tipurile mesajelor i comenzilor cu care poate lucra utilizatorul este limitat, pentru a uura
utilizarea lor.
Scopul acestor sisteme: asigurarea prelucrarea unui numr mare de tranzacii, asigurnd o vitez mare
de rspuns.
Exemplu : sistemele tranzacionale sunt utilizate pentru sisteme informatice bancare, pentru sisteme de
urmrire operativ a produciei, sisteme de rezervare a locurilor la societi de transport aerian,
feroviar, etc.
Funciile unui sistem n timp real sunt: -s gestioneze cererile de la toate dispozitivele de intrare din
sistem, lansnd imediat cte un proces; -s asigure executarea concurent a proceselor din sistem,
urmrind reducerea timpului total de execuie a fiecrui proces; -s asigure accesul concurent la
resursele sistemului de calcul; -s asigure protecia ntre procesele din sistem.
Planificarea execuiei proceselor n sistemele n timp real trebuie s in seama de obiectivul principal
al acestor sisteme: minimizarea timpului de rspuns. Comutarea ntre procese se face la momente
determinate prin intermediul sistemului de ntreruperi iar ordinea de activare a proceselor este stabilit
prin nivelul prioritilor ataate lor. Pentru a gestiona execuia proceselor, sistemul n timp real
trebuie s asigure urmtoarele funcii: -stabilirea prioritilor de execuie a proceselor, dup urmtorul
algoritm: fiecare proces primete o prioritate la intrarea lui n sistem; aceast prioritate poate fi
modificat pn la ncheierea execuiei procesului. De exemplu, dac durata de execuie a procesului
depete durata maxim de execuie stabilit de monitor, acesta micoreaz prioritatea de execuie a
procesului, pentru a permite executarea cu prioritate a proceselor care se ncadreaz n limita de timp
stabilit; n acest fel se garanteaz servirea tuturor cererilor primite n sistem n mod optim, innd cont
de resursa critic: timpul de rspuns.
gestionarea ntreruperilor, conform urmtoarelor reguli:
o planificatorul acioneaz de cte ori se produce n sistem un eveniment semnalat de o
ntrerupere;
o ntreruperile pot fi generate:
de un dispozitiv de intrare, pentru iniierea unui proces
de ceasul de timp real, n cazul depirii duratei limit de execuie a unui proces
de ncheierea unei operaii de I/O sau a execuiei unui proces;
o la apariia unei ntreruperi, planificatorul pred controlul altui proces, n funcie de
prioritatea procesului.
Optimizarea exploatrii sistemelor n timp real se poate realiza prin:
organizarea de buffere multiple de I/O, care s permit reducerea timpilor de ateptare ai UCP,
n timpul transferului de informaii cu terminalele de intrare/ieire; se are n vedere faptul c la

sistemul de calcul este conectat un numr mare de dispozitive I/O, ceea ce face necesar lucrul
cu un numr corespunztor de buffere de I/O;
utilizarea programelor reentrante: este vorba despre programele care concur la executarea
tranzaciilor. Este frecvent cazul n care, de la mai mu0lte dispozitive de intrare, sunt iniiate
concomitent cereri care trebuiesc prelucrate de acelai program; n acest caz, ar trebui ncrcate n
memoria intern attea copii ale programului cte execuii ale sale au fost lansate prin cererile n
curs de onorare. Este foarte convenabil, n aceast situaie,
Exploatarea n timp real
un sistem n timp real interacioneaz cu evenimente externe (interactiv, cu ntreruperi) i
trebuie s rspund suficient de repede pentru a ndeplini necesitile temporale ale sistemului sau
aplicaiei
informaiile de intrare sunt preluate n momentul i la locul generrii lor
timpul de rspuns al sistemului este resursa critic
urmrire procese reale, timp minim de rspuns
dispozitive de intrare/ieire specializate - traductoare
formalizarea comunicrii mesaje cu format fix
alocarea concurent a resurselor
sisteme interactive, multiuser
Funciile unui sistem n timp real
s gestioneze cererile de la toate dispozitivele de intrare din sistem, lansnd imediat cte un
proces;
s asigure executarea concurent a proceselor din sistem, urmrind reducerea timpului total de
execuie a fiecrui proces;
s asigure accesul concurent la resursele sistemului de calcul;
s asigure protecia ntre procesele din sistem.
Tipuri de sisteme n timp real
dup msura timpului de rspuns

Sisteme in-line (de proces)

sistemele n timp real cu ajutorul crora se realizeaz urmrirea unui proces


industrial

timpul de rspuns se msoar n milisecunde

Sisteme tranzacionale

orientate pentru prelucrarea unui volum mare de date de aceeai natur


(evidena vnzrilor, eliberarea biletelor cu locuri rezervate, etc.)

timpul de rspuns se msoar n secunde


Planificarea execuiei la sistemele n timp real
1. Procese concurente, generate la cerere
2. Comutarea la iniiativa proceselor sau a SO
3. Alocarea UCP dup prioriti modificabile
Procese concurente, generate la cerere
planificatorul acioneaz de cte ori se produce n sistem un eveniment semnalat de o
ntrerupere;
ntreruperile pot fi generate:

de un dispozitiv de intrare, pentru iniierea unui proces

de ceasul de timp real, n cazul depirii duratei limit de execuie a unui proces


de ncheierea unei operaii de I/O sau a execuiei unui proces;
la apariia unei ntreruperi, planificatorul pred controlul altui proces, n funcie de prioritatea
procesului.
Comutarea la iniiativa proceselor sau a SO
Comutarea ntre procese se face la momente determinate prin intermediul sistemului de
ntreruperi iar ordinea de activare a proceselor este stabilit prin nivelul prioritilor ataate lor
Alocarea UCP dup prioriti modificabile
fiecare proces primete o prioritate la intrarea lui n sistem
dac durata de execuie a procesului depete durata maxim de execuie stabilit de monitor,
acesta micoreaz prioritatea de execuie a procesului
Optimizarea sistemelor de operare n timp real
Buffere I/O multiple

organizarea de buffere multiple de I/O

permit reducerea timpilor de ateptare ai UCP, n timpul transferului de informaii cu


terminalele de intrare/ieire
Programe reentrante
Fiabilitatea sistemelor de operare n timp real
Sisteme de calcul dotate cu un procesor de rezerv
Memorii externe n oglind - scrierea n memoria extern se face concomitent pe dou uniti
care au acelai mod de adresare (pentru sistemele tranzacionale)
Jurnalizarea tranzaciilor- se memoreaz pe suport extern toate tranzaciile realizate n sistem;
n caz de incident, datele pot fi recuperate prin reluarea tranzaciilor din jurnal i prelucrarea lor
(pentru sistemele tranzacionale)
Cerine hardware pentru sistemele n timp real
dispozitive periferice de intrare

terminale - preiau datele introduse de operatorul uman

traductoare - colecteaz datele de intrare automat, de la senzori


dispozitive periferice de ieire

terminale standard-prezint informaia de ieire operatorului uman,

echipamente analogice sau digitale care acioneaz direct asupra dispozitivelor de


reglare a procesului controlat
linii de comunicaie

stabilesc legtura fizic ntre sistemul de calcul i dispozitivele periferice


uniti pentru controlul transmisiei la distan

supervizeaz procesul de comunicaie pe linii, elibernd UCP pe timpul transmisiei de


date
Diagrama exploatrii n timp
UCP
lucrari
MI
P1
real
P1

P2
P2

P3

P2

P3

P3

t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12

timp

12. Ce este tehnica SPOOLING?


Tehnica SPOOLING
Simultaneous Peripheral Operations On-Line
bazat pe principiul separrii operaiilor de intrare i de ieire de restul prelucrrilor i
executarea lor n paralel
iniial, pentru prelucrri seriale, ulterior pentru toate prelucrarile mutitasking
se definesc n memoria extern periferice virtuale corespunztoare perifericelor standard I/O
dispozitivul standard I/O solicitat este nlocuit, prin redirectare, cu perifericul virtual
corespunztor
spooling online - concomitent cu task-ul executat, n partiii/task-uri pentru operaii de
intrare/ieire
spooling offline - anterior/ulterior task-ului sau pe alte echipamente
exemplu: listare executat n paralel cu alte procese

13. Ce este SWAPING-ul?


SWAPPING
o metod de lucru cu memoria intern, care permite gestionarea execuiei n paralel a mai
multor procese
un proces n execuie poate fi evacuat temporar n memoria extern, cu memorarea strii sale n
momentul evacurii
n locul lui este ncrcat n memoria intern un alt proces care poate fi i el executat parial i
evacuat apoi n memoria extern, n favoarea altui proces, amd.
ct timp un proces este ncrcat n memoria intern i se execut, el are acces la toate resursele
sistemului
14. Ce este un program reentrant?
Program reentrant

odat ncrcat pentru execuie n memoria intern, se poate afla, la un moment dat, n mai
multe faze ale execuiei sale
imaginea sa din memoria intern poate fi folosit n comun de mai multe procese care execut
programul respectiv
pentru a fi reentrant, un program trebuie s se compun

dintr-o parte fix, care cuprinde, de obicei, instruciunile,

o parte variabil, care conine, datele asupra crora opereaz instruciunile


dac fiecrui proces care iniiaz execuia programului i se rezerv n memoria intern o zon
proprie pentru partea variabil a programului reentrant, atunci partea fix a programului poate fi
folosit n comun de toate procesele.
Un program reentrant este un program care, odat ncrcat pentru execuie n memoria intern, se
poate afla, la un moment dat, n mai multe faze ale execuiei sale, deci imaginea sa din memoria
intern poate fi folosit n comun de mai multe procese care execut programul respectiv. Pentru a fi
reentrant, un program trebuie s se compun dintr-o parte fix, care cuprinde, de obicei,
instruciunile, i o parte variabil, care conine, de exemplu, datele asupra crora opereaz
instruciunile. Dac fiecrui proces care iniiaz execuia programului i se rezerv n memoria intern
o zon proprie pentru partea variabil a programului reentrant, atunci partea fix a programului poate
fi folosit n comun de toate procesele.n acest fel se realizeaz o economie a spaiului ocupat de
procese n memoria intern; implicit, se reduce numrul de operaii de transfer cu memoria extern, n
cazul n care se utilizeaz memoria virtual sau swapping-ul, pentru a putea ncrca n memoria
intern noi procese.Necesiti hardware pentru sistemele n timp real: 1.Sistemele n timp real
presupun stabilirea unei comunicaii directe, n ambele sensuri, ntre utilizator i sistem; n acest scop
sunt necesare echipamente specifice: a) dispozitive periferice de intrare care, n funcie de modul de
preluare a datelor, pot fi : a1) terminale, care preiau datele introduse de operatorul uman, a2)
traductoare, n cazul sistemelor de proces, care colecteaz datele de intrare automat, de la anumii
senzori; b) dispozitive periferice de ieire: b1) terminale standard, care prezint informaia de ieire
operatorului uman, b2) echipamente analogice sau digitale care acioneaz direct asupra dispozitivelor
de reglare a procesului controlat; c) linii de comunicaie care stabilesc legtura fizic ntre sistemul de
calcul i dispozitivele periferice; d) uniti pentru controlul transmisiei la distan, care supervizeaz
procesul de comunicaie pe linii, elibernd UCP pe timpul transmisiei de date. 2. Sistemele n timp real
presupun memorarea unui volum mare de date i accesul rapid la aceste informaii. Sistemul de calcul
trebuie s fie echipat cu memorie extern de mare capacitate i vitez de acces. 3. Pentru un sistem n
timp real, sistemul de calcul trebuie s dispun de un dispozitiv de timp, ceasul de timp real, pentru a
msura durata de execuie a proceselor i pentru a sesiza depirea duratei maxime de execuie a unui
proces. 4. Echipamentele unui sistem de calcul exploatat n timp real trebuie s se caracterizeze printro mare siguran n funcionare. n acest scop se practic: a) dublarea sau triplarea unitilor vitale ale
sistemului de calcul, cu posibilitatea de comutare automat ntre ele, n caz de defect; de exemplu: a1)
sisteme de calcul dotate cu un procesor de rezerv ;a2) sistem de calcul cu memoria extern n
oglind, adic scrierea n memoria extern se face concomitent pe dou uniti care au acelai mod de
adresare (pentru sistemele tranzacionale); b) se memoreaz pe suport extern toate tranzaciile realizate
n sistem, procedeu numit jurnalizarea tranzaciilor; n caz de incident, datele pot fi recuperate prin
reluarea tranzaciilor din jurnal i prelucrarea lor (pentru sistemele tranzacionale).

15. n ce const procedura de preboot?


Preboot
la instalarea sistemului de operare
la PC compatibil IBM hard-disc-ul este mprit n maxim 4 partiii primare
una dintre partiii este numit extended partition care poate cuprinde la rndul ei 4 partiii din
care una extended s.a.m.d.
primul sector din disc este numit master boot record (MBR) i conine

boot code format din instruciuni executabile

partition table cu 4 intrri ce definesc adresa fiecrei partiii pe disc


una dintre partiii va avea un marcaj ce o va identifica drept boot partition
primul sector din aceast partiie este numit boot sector

16. Care sunt modurile de lucru i nivelurile de operare ale procesoarelor din familia x86?
Moduri de lucru ale procesorului x86
Real mode fiecare proces are acces la primul 1MB de memorie fr nici o restricie
Virtual mode permite executarea mai multor aplicaii n real mode
System management mode nu este folosit de sistemele din categoria NT
Protected mode este cel mai utilizat mod de lucru al procesorului
Niveluri de operare n modul protejat
Protected mode ofer 4 niveluri de operare:

Nivelul 0 (kernel mode) sunt disponibile mecanismele de memorie virtual i


protecia momoriei; se pot executa instruciuni privilegiate de manipulare a regitrilor procesorului

Nivelurile 1 i 2 nu se folosesc

Nivelul 3 (user mode) ofer cel mai mare nivel de protecie nepermind nici unui
proces s acceseze memoria sau codul altui proces

17. Prezentai i comentai pe scurt arhitectura SO Windows.


Arhitectura sistemului de operare Windows
Arhitectur generic pentru: Windows NT 3.x, Windows NT 4.0, Windows 2000, Windows XP,
Windows Server 2003

18. Prezentai componenta Windows Kernel.


Kernel mode (modul Kernel)
Gzduiete toate procesele privilegiate care ruleaz pe nivelul 0 al arhitecturii modului protejat
n modul Kernel sistemul de operare i driver-ele perifericelor au acces complet la ntreg
spaiul de memorie al sistemului putnd ocoli sistemul de securitate

Deoarece nucleul sistemului de operare ruleaz n modul Kernel este vital ca toate aceste
componente s fie riguros proiectate i testate pentru a nu viola securitatea sistemului
Acesta este motivul pentru care a fost introdus sistemul driver-signing care avertizeaz
utilizatorul la instalarea unor programe driver neautorizate
Cuprinde trei sisteme primare

Hardware Abstraction Layer

Windows Kernel

Windows Executive
Hardware Abstraction Layer HAL
Este singura component a sistemului Windows care este dependent de hardware (cod
dependent de procesor)
Protejaz sistemul prin controlul accesului la resursele hardware
Elibereaz celelalte componente, de nivel ridicat, de lucrul cu particularitile hardware-ului
Este localizat n fiierul Hal.dll
Windows Kernel
Este rezident n memorie i nu poate fi evacuat pe disc
Execuia codului din Windows Kernel nu poate fi suspendat
Este localizat n fiierul Ntoskrnl.exe; componenta de nivel sczut
Este scris n C i n limbaj de asamblare pentru partea de lucru cu regitrii procesorului
Este construit ca un sistem orientat obiect ce conine dou grupuri de obiecte:

control objects - obiecte pentru realizarea controlului

dispatching objects - obiecte pentru realizarea comunicrii (sincronizare, planificare)


19. Prezentai componenta Windows Executive.
Windows Executive
Este localizat n fiierul Ntoskrnl.exe; componenta de nivel ridicat
Include interfee (API Application Programming Interface metod de definire a unui set
standard de apeluri de funcii) care permit comunicaia dintre modul utilizator i kernel
Este rezident n memorie i nu poate fi evacuat pe disc
Creaz foarte puine fire de execuie proprii pentru c funcioneaz n regim de rspuns la
cererile proceselor din modul utilizator
Gestioneaz operaiile de I/O, securitatea, comunicarea ntre procese, memoria, prin
intermediul componentelor proprii (I/O Subsystem, Object Manager, Security Reference Monitor,
Process Manager, Plug and Play subsystem, Power Manager, Virtual Memory Manager, Cache
Manager)
20. Ce este un fir de execuie?
Fir de execuie
Fir (fir de execuie) - Reprezint o subunitate a procesului
un proces poate avea mai multe fire
un fir partajeaz structurile de date i spaiul de memorie al procesului
firul are i propriile sale structuri de date
comutarea ntre procese necesit salvarea strii procesului i a structurilor de date

comutarea ntre firele unui proces este mult mai simpl deoarece trebuie salvate mult mai
puine date
fiecare fir are asignat un obiect ce conine informaii despre fir, care este gestionat de
managerul de obiecte
Tipuri de fire:

Fire user mode; create procese utilizator

Fire kernel mode; create de entiti ce se execut n modul kernel

21. Ce este un proces?


Proces
Proces - reprezint o secven de activiti care se execut la un moment dat n sistemul de calcul
un set de activiti din program care nu se pot suprapune.
este determinat de o secven de instruciuni (o procedur) din programul care se execut
un proces se desfoar n timp, ntre iniierea (generarea) i distrugerea (ncheierea) sa
este descris de un obiect care este gestionat de managerul de obiecte (Windows); n general
vectorul de stare al procesului
un proces este iniiat de un alt proces (n general)
termenul de proces este folosit pentru a desemna obiectul activitii procesorului, n timpul
execuiei unui program
se caracterizeaz prin:

prelucrrile care se realizeaz, determinate de secvena de instruciuni care


controleaz procesul

contextul de lucru asupra cruia acioneaz procesul, prin intermediul


prelucrrilor, i care include resursele alocate procesului
Utilizarea resurselor sistemului

Proces
imprimanta
tastatura / mouse

CPU

fisier

unitate de memorie externa

22. Explicai care sunt strile prin care poate trece un proces.
Strile unui proces
ntre momentul iniierii unui proces i distrugerea procesului, evoluia procesului se
caracterizeaz printr-o succesiune de stri, care se nlnuie automat, sub controlul sistemului de
operare.
Strile prin care trece un proces i ordinea de nlnuire a acestor stri depind att de proces, n
sine, ct i de contextul de execuie al procesului
Modalitatea de comutare ntre strile procesului este determinat de tehnica de exploatare a
sistemului de calcul folosit de sistemul de operare.
Strile unui process
nelansat n execuie, atunci cnd procesul a fost generat dar nu a fost onorat nc cererea de
lansare n execuie a sa;
pregtit pentru activare (READY) cnd cererea de lansare n execuie a procesului a fost
onorat, procesul a fost ncrcat n memoria intern i este pregtit pentru activare
ntrerupt cnd un proces n execuie a fost ntrerupt i ateapt activarea sa, adic reluarea
execuiei sale din punctul n care a fost ntrerupt; parametrii care descriu procesul n momentul
ntreruperii sale sunt memorai n vectorul (obiectul) de stare al procesului, pentru a permite
continuarea acestuia n momentul relurii sale;
activ (RUN), cnd procesul are alocat procesorul i sunt n curs de desfurare prelucrrile
aferente procesului;
suspendat (blocat) sau proces n ateptare (WAIT), n cazul n care execuia procesului a fost
ntrerupt, procesul este dezactivat, n ateptarea realizrii unui eveniment, de exemplu, eliberarea
unei resurse solicitate;
complet, cnd procesul a fost complet executat i urmeaz dezalocarea resurselor afectate
procesului i distrugerea procesului.
Comutarea ntre strile unui proces
iniierea procesului, genereaz cererea de lansare n execuie a procesului; procesul este n
starea de proces nelansat n execuie
lansarea n execuie a procesului determin trecerea lui din starea de proces nelansat n
execuie n starea de proces pregtit pentru activare (READY)
activarea procesului determin trecerea lui din starea de proces pregtit pentru activare n
starea de proces activ (RUN)
dezactivarea procesului determin revenirea lui din starea de proces activ n starea de proces
ntrerupt (READY - pregtit pentru activare)

blocarea procesului activ determin trecerea lui n starea de proces n ateptare (WAIT)
deblocarea procesului determin trecerea lui din starea de proces blocat n starea de proces
pregtit pentru activare (READY)
completarea procesului determin trecerea lui din starea de proces activ n starea de proces
complet
distrugerea procesului complet determin nlturarea lui din sistem.
Exploatarea in monotasking
Initiere

Activare
Proces
initiat

Proces
activ

Incheiere

Proces
complet

Distrugere

Exploatarea in multitasking
Initiere

Activare
Proces
initiat
Blocare
Proces in
asteptare

Proces
activ

Incheiere

Dezactivare
Intrerupere

Proces
complet

Distrugere

Activare
Proces
gata de
activare

Deblocare

23. Ce este funcia de prioritate?


Funcia de prioritate
determin prioritatea de activare a fiecrui proces funcie de:

cererea real de resurse, ca n cazul exploatrii n multiprogramare

cererea estimat de timp pentru execuie, la sistemele exploatate n timp real

timpul petrecut n sistem, ca n cazul sistemelor exploatate n timp real

prioriti prestabilite, cum este cazul exploatrii n multiprogramare, etc.


algoritmi pentru stabilirea prioritii:

prioritile sunt definite la intrarea lucrrii n sistem i nu pot fi modificate

prioritile sunt calculate de SO i sunt ataate dinamic proceselor n execuie (la


sistemele time-sharing sau n timp real)

lucrarea cea mai veche n sistem va fi executat prima; duce la scderea timpului
maxim de ateptare a unei lucrri;

la un interval fix, de 1 secund, se recalculeaz prioritile, pentru fiecare proces n


execuie, ca raport dintre timpul afectat de procesor procesului (timpul de RUN) i timpul total
petrecut de proces n memorie (timpul de proces n execuie); n continuare, se activeaz procesele
n ordinea cresctoare a acestui raport; aplicarea acestui algoritm duce la scderea timpului mediu
de rspuns al sistemului (n sistemul de operare UNIX)
24. Ce este regula de arbitraj?
Regula de arbitraj
stabilete ordinea de servire n cazul prioritilor egale
este definit de un algoritm de planificare a proceselor
algoritmi de planificare pentru procesele cu prioriti egale:
algoritmul FIFO:

determin activarea proceselor n ordinea sosirii lor.


timpul de ateptare pn la activarea procesului nu ine seama de timpul de serviciu
solicitat de fiecare proces

algoritmul favorizeaz procesele care au alocat procesorul o durat de timp mai mare, n
detrimentul celor care solicit procesorul o durat de timp mai redus.
algoritmul Round-Robin,
fiecare proces din sistem este asignat procesorului pentru un anumit interval de tip
timpul de execuie al proceselor este mprit de sistem n segmente de timp egale
coada proceselor n starea READY este parcurs circular
algoritmul este utilizat la sistemele exploatate n time-sharing

25. n ce const tratarea seciunii critice?


Tratarea seciunii critice
Regula 1: un singur proces trebuie s poat executa o seciune critic, la un moment dat

orice alt proces care solicit executarea seciunii critice va primi permisiunea de a o
executa numai dup ncheierea execuiei ei de ctre procesul n curs

chiar dac durata execuiei seciunii critice este necunoscut aprioric nici un proces nu
trebuie s atepte nedefinit de mult pentru a intra n seciunea critic
Regula 2: seciunea critic este nenteruptibil, adic oprirea unui proces, prin dezactivare sau
blocare, poate avea loc numai n afara seciunii critice
Resursa critica

Alta resursa

Procese

P1

P2

t1 t2

t3

t4

t5

t6

Durata
alocarii

26. Prezentai procesele paralele i procesele concurente.


Procese paralele
se afl simultan n execuie se afl simultan n execuie
timpul total de execuie cuprinde perioade comune tuturor
aceste procese nu se intercondiioneaz reciproc
nu colaboreaz ntre ele (sunt procesele care utilizeaz seturi de resurse disjuncte ale sistemului
i nu este necesar s comunice ntre ele)
n cazul existenei mai multor procesoare, paralelismul execuiilor este efectiv, n sensul c
fiecare proces se execut pe un alt procesor
n cazul unui singur procesor, procesele paralele se execut pe rnd prin alternarea strii RUN
cu strile READY sau WAIT
la programarea execuiei proceselor paralele, sistemul de operare trebuie s asigure funciile
obinuite de gestionare a proceselor: evidena proceselor din sistem, planificarea, alocarea i
dezalocarea resurselor.
Procese concurente
pot intercondiiona reciproc n timpul execuiei n paralel, prin folosirea n comun a unor
resurse
pentru procesele concurente executate n paralel pot exista momente cnd execuia unui proces
este dependent de execuia altui proces sau de rezultatele execuiei n curs de desfurare a altui
proces.
resursa critic - resursa care nu poate fi accesat simultan de procese concurente
seciunea critic - o secven de program care nu trebuie s fie executat simultan de procese
concurente
27. Ce este impasul, cnd apare, cum se previne i cum se nltur?
Impasul (interblocarea proceselor)
-este o problem legat de alocarea n comun a unor resurse la mai multe procese concurente
-poate apare ntre procese a cror execuie este condiionat de utilizarea exclusiv a acelorai
resurse
-o ateptare circular a dou procese, pentru eliberarea uneia din cele dou resurse solicitate, care
este alocat exclusiv celuilalt proces
-poate dura un timp nedefinit i nu poate fi ntrerupt din interiorul proceselor
Resursa 1

Resursa 2

Procese

P1

P2
t1 t2

t3

t4

timp

Condiiile de apariie a impasului


-condiia de cerere de alocare circular: exist un lan de procese n care fiecare dintre ele ateapt
eliberarea unei resurse utilizate de alt proces din lan
-condiia de excludere mutual a proceselor: procesele solicit controlul exclusiv al resurselor pe
care le utilizeaz
-condiia de ateptare a alocrii resurselor: procesele pstreaz resursele alocate deja, atunci cnd
ateapt alocarea altor resurse
-condiia de nepreempie: resursele nu sunt eliberate de procesele la care au fost alocate pn nu au
fost utilizate complet
Prevenirea impasului
-prealocarea resurselor: -procesul trebuie s cear toate resursele necesare cnd solicit
ncrcarea n sistem; -sistemul verific dac exist riscul apariiei unui impas; -dac nu, procesul
este ncrcat, n cazul n care toate resursele solicitate sunt disponibile; -dac nu sunt disponibile
toate resursele solicitate, procesul ateapt ndeplinirea condiiilor
-alocarea controlat a resurselor: -procesele trebuie s declare de la nceput toate resursele care
le sunt necesare; -procesele sunt lansate n execuie, chiar dac nu sunt disponibile toate resursele;
-alocarea resurselor se face controlat, urmrindu-se evitarea impasului; -n cazul n care apariia
impasului este iminent n momentul alocrii unei noi resurse, se blocheaz procesul care a
solicitat resursa pn cnd se depete iminena impasului
Ieirea din impas
-Se reseteaz sistemul de calcul: -ntreruperea forat a tuturor proceselor din sistem; -se pierd
rezultatele intermediare ale tuturor proceselor n execuie din sistem
-Se alege un proces prin a crui distrugere se nltur impasul i se distruge acest proces: -numai n
cazul n care sistemul de operare dispune de modaliti de detectare a procesului care a generat
impasul; -n acest caz, se pierd numai rezultatele intermediare ale execuiei procesului care se
distruge
-Dac procesul care va fi distrus este prevzut cu puncte de reluare, atunci el va putea fi reluat din
punctul cel mai apropiat de stadiul curent al execuiei sale
28. Prezentai sincronizarea cu bit indicator.
Bit indicator
-fiecrei resurse i poate fi asociat cte un bit indicator al strii de ocupare a resursei (lock-bit).
-prin convenie, bitul indicator este setat pe 0, dac resursa este disponibil, respectiv pe 1, dac
resursa este alocat altui proces;
-nainte de a aloca o resurs unui proces, se verific starea lock-bit -ului:
-dac valoarea este 0, procesul are acces la resurs i se seteaz bitul pe 1, pn la ncheierea
utilizrii resursei de ctre proces, cnd bitul se reseteaz pe 0 i resursa devine disponibil;
-n cazul n care bitul este 1, procesul rmne n ateptare, sistemul executnd verificarea periodic
a lock-bit -ului, pn cnd acesta devine 0 i procesului i se poate aloca resursa.
Inconvenientul acestei metode const n faptul c, dei procesul este n starea WAIT, procesorul
este afectat procesului pentru testarea valorii din lock-bit (procesorul execut n mod repetat o
aceeai instruciune de testare a strii bitului indicator). E preferabil ca, pe timpul ct procesul

ateapt, procesorul s fie eliberat, pentru a putea executa alte sarcini, pentru alte procese din
sistem.

29. Prezentai sincronizarea cu bit semafor.


Bit semafor
-Inconvenientul metodei prin utilizarea biilor indicatori poate fi depit prin crearea unei liste cu
toate procesele n ateptare pentru o resurs
-introducerea i extragerea proceselor din list poate fi gestionat automat, cu ajutorul unui bit
semafor s, gestionat de funciile pereche pentru alocare A() i pentru dezalocare D()
-pentru fiecare resurs partajat din sistem exist un bit semafor s i o list a proceselor n
ateptare, pentru alocarea resursei
-bitul semafor s este setat iniial la valoarea 1
-funcia de alocare asociat resursei este executat cnd un proces solicit alocarea resursei; funcia
decrementeaz bitul s i aloc resursa procesului numai dac valoarea bitului s este 0; n caz
contrar, procesul este trecut n coada de ateptare
-funcia de dezalocare asociat resursei este executat cnd un proces elibereaz resursa; funcia
incrementeaz bitul s i scoate din coad primul proces cruia i aloc resursa numai dac valoarea
bitului s este negativ sau 0; n caz contrar, bitul s are valoarea 1, deci coada de ateptare este
goal.
Variabila semafor este resurs critic pentru funciile de alocare i de dezalocare iar cele dou
funcii sunt seciuni critice pentru procese. Execuia celor dou funcii nu trebuie blocat i asupra
variabilei semafor nu trebuie s acioneze, la un moment dat, dect una dintre aceste funcii.
-s=i (i numrul de uniti ale resursei)
-a(s) activat de o cerere de alocare:
-decrementeaz i aloc, dac s>=0
-decrementeaz i trece procesul n coada de ateptare, dac s<0
-d(s) activat de o cerere de dezalocare:
-incrementeaz i aloc, dac s<=0
-incrementeaz, dac s>0.
30. Prezentai mecanismul de sincronizare direct.
Sincronizare direct, prin comunicarea ntre procese, utilizate pentru procese concurente, pentru
care execuia unui proces este condiionat de rezultatul execuiei altor procese, sau pentru procese
care fac schimb de informaii.
1)funcii primitive; 2)cutii potale
Funcii primitive
-permite deblocarea unui proces care a intrat n starea de ateptare, cu funcii de tipul WAIT( )
pentru un eveniment, de ctre un alt proces, care execut o funcie de setare a indicatorului de
eveniment respectiv
-se poate realiza i schimbul de date ntre cele dou procese, utiliznd directive ale sistemului de
operare de tipul SEND(proces destinatar,adresa mesaj) i RECEIVE(adresa mesaj)
-comunicarea are loc n momentul n care procesul expeditor lanseaz comanda SEND( ), urmat
de execuia comenzii RECEIVE( ) de ctre procesul destinatar

-pentru unele sisteme de operare, directivele SEND si RECEIVE opereaz i asupra indicatorilor
de eveniment, pentru sincronizarea proceselor
Cutii potale
-zone de buffer n memoria intern, destinate comunicrii ntre procese
-un proces creaz o cutie potal n care depune informaii care pot fi extrase de celelalte procese
-condiia unei comunicri corecte este ca mesajele transmise s poat fi preluate integral, corect i
n ordinea n care au fost produse
In gestionarea comunicatiei prin aceasta metoda trebuie sa se aibe in vedere unele restrictii:
-capacitatea limitat a bufferului: (expeditorul poate ncearca s expedieze mai multe mesaje dect
poate memora bufferul; n acest caz exist posibilitatea acoperirii mesajelor, nainte ca ele s fie
preluate); -vitezele diferite ale proceselor expeditor i destinatar (destinatarul poate s preia mai
repede mesajele dect le poate depune expeditorul; n acest caz exist posibilitatea prelurii
repetate a unui mesaj)
Regula de sincronizare trebuie sa respecte anumite conditii: -mesajele trebuie preluate din buffer n
ordinea n care au fost scrise; numrul mesajelor transmise i nerecepionate nu trebuie s
depeasc numrul mesajelor care pot fi memorate n buffer; -numrul mesajelor recepionate nu
trebuie s depeasc numrul mesajelor emise.
31. Prezentai tipurile de ntreruperi tratate de un SO.
Tipuri de ntreruperi
-dup sursa de ntrerupere Hardware; -Software (-programate; -de excepie)
-dup natura evenimentului: -Externe procesului; -Interne procesului
ntreruperi hardware: -generate de surse hardware, pentru evenimente externe procesului;
-dispozitivele periferice pot solicita, printr-o cerere de ntrerupere, servicii sau aciuni specifice;
-dispozitivele hardware de supraveghere a funcionrii normale a sistemului de calcul pot emite
cereri de ntrerupere n cazul sesizrii unor anomalii de funcionare (circuitele detectoare de
paritate, circuite specializate pentru sesizarea scderii tensiunii de alimentare a sistemului, etc.)
ntreruperi software programate: -generate cu ocazia execuiei unui program, cu scopul de a
solicita anumite servicii; -nu apar ntmpltor, n timpul execuiei programului, ci sunt generate
intenionat, prin intermediul unei instruciuni specializate care se insereaz n program i care,
atunci cnd se execut, lanseaz o cerere de ntrerupere
ntreruperi software de excepie: -apar n timpul execuiei unui program, cnd se ncearc
executarea unor operaii nepermise; -sunt determinate de condiii de excepie n execuia
programului; -sunt generate n scopul evitrii unei evoluii imprevizibile sau eronate; -exemple:
mprirea la 0; depirea domeniului de valori disponibil pentru anumite moduri de reprezentare a
datelor; utilizarea, ntr-o instruciune, a unui cod de operaie necunoscut; ncercarea de acces ntr-o
zon de memorie protejat, etc; -sunt sincrone cu programul, dac apare n timpul executrii unui
program, cu un anumit set de date, atunci va apare de fiecare dat cnd programul respectiv se
execut cu acest set de date
32. Prezentai procesul de tratare a unei ntreruperi.
Rutina de tratare a intrepruperii: -program de sistem specializat pt fiecare nivel de intrerupere;
-pot exista si rutine de tratare a intreruperii proprii unor programe de aplicatii.
Tratarea intreruperilor:

1.lansarea cererii de ntrerupere


2.transmiterea pe un nivel de ntrerupere
3.ntreruperea temporar a procesului activ (activitatea UCP poate fi ntrerupt la ncheierea
execuiei unei instruciuni main)
4.salveaz starea procesului n execuie, prin memorarea pe stiv a coninutului registrului contor e
program, a cuvntului de stare program i a registrelor generale
5.accept ntreruperea i localizeaz rutina de ntrerupere
6.execut rutina de tratare a ntreruperii de pe nivelul corespunztor
7.reface contextul de execuie al procesului ntrerupt
8.reia procesul din punctul n care a fost ntrerupt pornind de la starea din momentul ntreruperii

33. Prezetai mecanismul de alocare paginat a memoriei.


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; funcia de mapare
determin adresa fizic pe baza numrului paginii fizice corespunztoare;
-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.
Tabel de pagini
-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; -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 va fi reluat
34. Prezetai mecanismul de alocare segmentat a memoriei.
Alocarea segmentat se realizeaza astfel:
-programul este mprit n segmente care pot avea lungimi diferite
-pentru execuie, segmente ale programului sunt ncrcate pe rnd, n memoria intern
-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.
35. Prezetai mecanismul de alocare segmentat-paginat a memoriei.
Alocarea segmentat i paginat combina cele doua metode (segmentata si paginata) si se
realizeaza astfel:
-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
Acest mod de alocare are toate avantajele celor doua moduri de alocare (segmentata si paginata). A
fost implementat prima data pt platforma MULTICS. Este folosit de sistemul de operare Ms-DOS
si VMS pentru lucrul cu memoria xtinsa.
36. Prezentai mecanismul de eviden a ocuprii memoriei.
Pentru a face posibil alocarea memoriei interne la procesele din sistem este necesar realizarea
unei evidene a ocuprii memoriei, adic evidena zonelor libere i a zonelor ocupate din memoria
intern; n acest scop trebuiesc asigurate dou funcii: Functia de ocupare e memoriei: -Functia
de eliberare e memoriei
Funcia de ocupare a memoriei: - realizeaz scoaterea din evidena zonelor libere a zonei n care
se face transferul de date din memoria extern
Ocuparea integral a partiiei P3

libera
ocupata

P1
P2

P1

P3

P3
P4

P4
null

P5
P6

Aceasta se realizeaza astfel:

P2

null

P5
P6

-se parcurge lista partiiilor libere, examinnd cmpul li, pn la identificarea unei valori
convenabile, lk
-dac partiia k se va aloca integral, atunci ea trebuie scoas din lista partiiilor libere i trebuie
recalculat ak pentru a fi pointer la partiia care urmeaz fizic partiiei k
Ocuparea parial a partiiei P5
p

libera
ocupata

P1
P2

P1
P2

P3
P4
P5
P6
P7

P3
P4
null

P5

null

P6

-dac partiia k se va aloca parial, ea se divide n partiia k, de lungime lk, alocat, i n partiia
k, de lungime lk, liber

37. Prezentai mecanismul de eviden a eliberrii memoriei.


Pentru a face posibil alocarea memoriei interne la procesele din sistem este necesar realizarea
unei evidene a ocuprii memoriei, adic evidena zonelor libere i a zonelor ocupate din memoria
intern; n acest scop trebuiesc asigurate dou funcii: Functia de ocupare e memoriei: -Functia de
eliberare e memoriei
Funcia de eliberare a memorie: care elibereaz zona de memorie, atunci cnd nu mai este
necesar procesului cruia i fusese alocat, prin trecerea ei n evidena zonelor libere.
Aceasta se realizeaza astfel:
-se calculeaz adresa fizic a partiiei eliberate: pj=aj-lj
-se caut n lista partiiilor libere partiia i care ndeplinete condiiile ca: ai-1<pj i ai >pj (partiia j
trebuie inserat ntre partiia i i partiia i+1)
-comasarea a dou partiii libere adiacente se face prin nlocuirea adresei memorate n prima
partiie cu adresa memorat n partiia care i urmeaz i tergerea celei de-a doua partiii din lista
partiiilor
-se verific sistematic, la fiecare eliberare a unei zone, dac exist posibilitatea concatenrii cu o
zona liber adiacent
-se evit astfel fragmentarea memoriei interne
Eliberarea partiiei P5
p

P1
P2

P1
P2

null

P3
P4
P5
P6
P7

null

P3
P4
P5
P6
P7

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