john nebunu 27-37

44
Sisteme de operare 1. Prezentaţi analizele lexicale şi semantice din procesul de compilare. Analiza lexicală se realizează la nivelul fiecărei linii program şi constă în : eliminarea caracterelor nesemnificative (de exemplu spaţiile, comentariile, etc) identificarea unităţilor 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 construcţiilor sintactice de bază (instrucţiuni, expresii, liste, etc.) interpretarea conţinutului lor generarea unor structuri proprii de descriere a fiecărei construcţii, prin intermediul unei structuri arborescente, numită arbore de derivare 2. Prezentaţi 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 fiecărei linii program şi constă în : -eliminarea caracterelor nesemnificative (de exemplu spaţiile, comentariile, etc) -identificarea unităţilor 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 construcţiilor sintactice de bază

Upload: joao006

Post on 14-Sep-2015

242 views

Category:

Documents


1 download

DESCRIPTION

John Nebunu 27-37

TRANSCRIPT

1

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.

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.

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.

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.

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.

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.

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 systemsPlanificarea 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

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

10. Explicai funcionarea SO n time-sharing.

Exploatarea n time-sharingExploatarea 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 propriu-zise 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-sharing1. 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

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:

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.

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 real1. 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 real

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 printr-o 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 WindowsArhitectur 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 execuieFir (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?

ProcesProces - 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

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.

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

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

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