john nebunu 27-37
DESCRIPTION
John Nebunu 27-37TRANSCRIPT
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