Documente Academic
Documente Profesional
Documente Cultură
John Nebunu 27-37
John Nebunu 27-37
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
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
+
....
(cod instructiune, tip adresare, operand1)
Memoria
interna
Adresa X+Y
Adresa X de memorie
Valoare operand
Adresa T
Adresa K de memorie
Adresa T
Valoare operand
Memoria
interna
....
(cod instructiune, tip adresare, operand1)
Adresa K
Adresa K de memorie
Valoare operand
Valoare operand
Registrul R
Valoare operand
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
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
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
procese concurente
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:
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
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 tranzacionale
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
P2
P2
P3
P2
P3
P3
timp
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
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:
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
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
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:
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:
Proces
imprimanta
tastatura / mouse
CPU
fisier
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
lucrarea cea mai veche n sistem va fi executat prima; duce la scderea timpului
maxim de ateptare a unei lucrri;
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
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
Resursa 2
Procese
P1
P2
t1 t2
t3
t4
timp
ateapt, procesorul s fie eliberat, pentru a putea executa alte sarcini, pentru alte procese din
sistem.
-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:
-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
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
P1
P2
P1
P2
null
P3
P4
P5
P6
P7
null
P3
P4
P5
P6
P7