Sunteți pe pagina 1din 24

Bilet de examinare Nr.

1. Denumiţi 4 cauze pentru a studia sistemele de operare

 pentru utilizarea resurselor hardware în scopuri speciale poate fi necesar să se creeze un sistem de
operare propriu sau să se introducă modificări în sistemul existent;
 de alegerea corectă a sistemului de operare şi a versiunii concrete poate depinde viabilitatea şi
eficacitatea sistemului de calcul;
 este ideal ca utilizatorul să interacţioneze cu sistemul de operare cunoscând toate subtilităţile ultimului,
deoarece sistemul de operare este un intermediar între calculator şi utilizator;
 multe metode şi concepte, utilizate în domeniul sistemelor de operare, pot fi implementate cu succes şi în
alte domenii.

2. Ce se numeşte multiprogramare?
Multiprogramarea este un termen utilizat în cazul unui sistem în care pot exista simultan câteva procese în
stare de execuţie. Un proces se consideră în stare de execuţie, dacă calculele au început, dar la momentul
considerat nu au fost terminate sau întrerupte (terminare din cauza unei erori sau din alte motive). Nu este
obligatoriu ca un proces care se află în starea de execuţie să fie şi executat de procesor la un moment dat.
Principalele avantaje şi restricţii ale multiprogramării pot fi prezentate în rezumat după cum urmează:
 un sistem cu multiprogramare este mai complicat pentru că el trebuie să asigure partajarea memoriei şi
protecţia reciprocă a programelor;
 multiprogramarea necesită dispozitive speciale pentru reactivarea programelor şi protecţia memoriei;
 un sistem cu multiprogramare asigură o utilizare mai uniformă a diferitor resurse: unitatea centrală,
memoria, organele de intrare-ieşire;
 multiprogramarea permite reducerea timpului de răspuns în cazul lucrărilor de durată mică într-un sistem
cu prelucrare secvenţială.

3. Care sunt 4 funcţii pe care trebuie să le îndeplinească componenta de gestionare a procesorului


a) Planificarea proceselor
b) Crearea proceselor
c) Distrugerea proceselor
d) Mesaje dintre procese

4. În ce constă mecanismul devierilor?


O deviere (trap, eng., dèroutement, fr.) semnalizează o anomalie în derularea unei instrucţiuni, care
prohibitează executarea instrucţiunii. Originile pot fi diverse:
 date incorecte, care conduc la imposibilitatea execuţiei corecte a instrucţiunii (împărţirea la zero, de
exemplu),
 tentativa executării unei operaţii interzise de mecanismul de protecţie (violarea protecţiei memoriei,
executarea unei instrucţiuni privilegiate în modul program, etc.),
 instrucţiune neexecutabilă (cod neautorizat de operaţie, adresă în afara memoriei existente, utilizarea
unui dispozitiv opţional, care este lipsă în configuraţia dată, etc.).

5. Ce este o realizare strict ierarhică a SO?


Masina extinsa a dus la crearea notiunii de masina ierarhica. Aceasta masina este divizata in 2 nivele :
- Primul nivel ( functii cheie, utilizate de majoritatea modulelor de sistem)
- Al doilea nivel ( unele modele care pot fi executate in cadrul unei masini extinse externe) .
Masina extinsa interna si externa este subdivizate in mai multe nivele :
1) Administrare procesoare, planificare procese
2) Administrare memorie
3) Administrare procesoare(nivel superior, mesaje, creare si distrugere procese)
4) Administrare dispozitive
5) Administrare informatie
Bilet de examinare Nr. 2
1. Ce este un sistem de operare?

Prin noţiunea sistem de operare înţelegem modulele program ale unui sistem de calcul, care administrează
resursele tehnice (procesoare, memoria operativă şi secundară, dispozitive de intrare/ieşire, fişiere). Modulele în
cauză soluţionează situaţiile de conflict, optimizează productivitatea sistemului, sporesc eficienţa utilizării lui.
Ele sunt un fel de intermediar (interfaţă) între programele utilizatorului şi componentele tehnice ale
calculatorului. Alte denumiri istorice: program de administrare, monitor, supervizor.

2. Ce se subinţelege prin stare a calculatorului electronic user şi supervisor?


Exista 2 moduri de functionare a calculatorului , care se deosebesc printr-un bit indicator in cuvintul de stare :
modul supervizor si modul program. Setul de instructiuni care pot fi executate in modul program este o
submultime a modului supervizor. Instructiunile rezervate modului supervizor pot fi numite previlegiate. Aici
pot fi gasite instructiunile de intrare-iesire si cele legate de intreruperi si protectie.

3. Care sunt 4 funcţii pe care trebuie să le îndeplinească componenta de gestionare a informaţiei?


- Creare
- Modificare
- Cautare
- Distrugere

4. Care sunt funcţiile cele mai simple ale celor 5 nivele ale unei maşini ierarhice?

Niv 1.Administrarea procesoarelor (nivelul inferior) Nivelul 4. Administrarea dispozitivelor


 planificarea proceselor  urmărirea stărilor tuturor dispozitivelor
Nivelul 2. Administrarea memoriei periferice
 alocarea memoriei  planificarea intrărilor/ieşirilor
 eliberarea memoriei  iniţierea operaţiilor de intrare/ieşire
Ni 3.Administrarea procesoarelor (nivelul superior) Nivelul 5. Administrarea informaţiei
 crearea şi distrugerea unui proces  crearea şi distrugerea unui fişier
 transmiterea şi recepţionarea mesajelor între  deschiderea şi închiderea unui fişier
procese  citirea şi înscrierea unui fişier.
 lansarea unui proces
 oprirea unui proces

5. Ce este o întrerupere mascată?


Întreruperea este un mecanism care impune procesorul să observe anumite evenimente. Pot exista mecanisme
care permit să nu se acorde atenţie unei anume întreruperi – întrerupere mascată.
Adesea este utilă protejarea, contra unor întreruperi anume, a execuţiei unei suite de instrucţiuni (de
exemplu, poate fi interzisă întreruperea unui program de tratare a întreruperii). Aceasta ar însemna întârzierea
comutării contextului, comutare, provocată de sosirea unui semnal asociat unui nivel oarecare de întrerupere. Se
zice atunci, că nivelul este mascat sau inhibat (întrerupere mascată). Ridicarea inhibării ("demascarea") va
autoriza schimbarea ulterioară a contextului. Informaţiile asociate mascării întreruperilor se află în cuvântul de
stare a procesorului.

6. Ce este o cale de acces?

Trecerea de la identificator la adrese printr-un set de relatii se numeste cale de acces.


Programul unui sistem utilizează nume pentru a desemna obiectele acestui sistem. Numele unui obiect este o
informaţie cu funcţie dublă: pe de o parte permite să se facă distincţia obiectului dat de alte obiecte; pe de altă
parte, el serveşte ca şi cale de acces la obiect, adică el poate fi interpretat în scopul efectuării unor acţiuni
asupra obiectului.
7. Ce este durata de existenţă a unui obiect? Exemplificaţi.

Noţiunea de durată de existenţă sau de viaţă a unui obiect poate fi extinsă şi pentru căile de acces,
înţelegând prin aceasta perioada de timp în care acestea există (intervalul de timp care separă crearea de
distrugere).

1) Obiecte interne: acestea sunt instrucţiunile, care compun textul procedurii. Durată lor de viaţă
coincide cu durată de viaţă a procedurii.
2) Obiecte locale: acestea sunt variabilele, declarate în interiorul procedurii. În cazul unui apel
recursiv, un exemplar nou al fiecărui obiect local este creat la fiecare apel şi identificatorul său
desemnează ultimul exemplar creat (celelalte rămânând inaccesibile până la returul la nivelul
corespunzător).
3) Obiecte remanente şi obiecte globale: acestea sunt obiectele care existau deja la apelul procedurii
şi care vor supravieţui la retur; durata lor de viaţă este fie cea a procesului (obiecte remanente),
fie cea a unei proceduri, care înglobează procedura dată (obiecte globale).
4) Obiecte externe: sunt obiectele construite şi păstrate independent de procedura şi procesul
considerat (alte proceduri, fişiere, etc.). Durata lor de viaţă nu depinde de cea a procedurii sau a
procesului; ele pot fi create sau distruse în mod dinamic în timpul execuţiei procedurii.
5) Parametri: parametrii formali sunt identificatori, utilizaţi în interiorul procedurii şi care sunt
legaţi doar în momentul apelării.
Bilet de examinare Nr. 3

1. Denumiţi 4 cauze pentru a studia sistemele de operare

 pentru utilizarea resurselor hardware în scopuri speciale poate fi necesar să se creeze un sistem de operare propriu sau să se
introducă modificări în sistemul existent;
 de alegerea corectă a sistemului de operare şi a versiunii concrete poate depinde viabilitatea şi eficacitatea sistemului de
calcul;
 este ideal ca utilizatorul să interacţioneze cu sistemul de operare cunoscând toate subtilităţile ultimului, deoarece sistemul de
operare este un intermediar între calculator şi utilizator;
 multe metode şi concepte, utilizate în domeniul sistemelor de operare, pot fi implementate cu succes şi în alte domenii.

2. Numiţi 4 tipuri de resurse.


- Memoria
- Procesorul
- Intrarea-iesirea
- Programele

3. Care este schema de comandă a unui proces tehnologic (chimic)?

Reactor
Robinete
A
Captoare C
B

Semnale de
măsură
Înregistrări
Semnale de comandă
Calculator

Fig.1.5. Schema unui proces


chimic

Procesul de producere este comandat de un calculator care îndeplineşte următoarele funcţii:


 Reglare. Pentru o derulare bună a procesului de fabricaţie parametrii de funcţionare (temperatura, presiunea, concentraţia,
etc.) trebuie să se afle într-o plajă de valori predefinite. Pentru aceasta va fi acţionat debitul de intrare a materiilor prime A sau
B. Parametrii de funcţionare sunt măsuraţi cu ajutorul unor captoare. Calculatorul preia aceste măsurări şi, în dependenţă de
algoritmul de comandă, acţionează robinetele de intrare.
 Înregistrare. Rezultatele măsurărilor sunt periodic înregistrate; valorile lor sunt afişate pe un tablou de bord şi recopiate într-
un fişier ("jurnal de bord") în scopul unor prelucrări ulterioare (date statistice).
 Securitate. În cazul în care unul dintre parametrii măsuraţi depăşeşte o valoare critică predefinită reactorul trebuie oprit
imediat.
Acest mod de funcţionare introduce unele restricţii, descrise mai jos.
Măsurările sunt făcute periodic; fie
T valoarea intervalului de timp dintre două măsurări consecutive, iar
t - timpul total de prelucrare a datelor de către calculator.
Sistemul va funcţiona doar în cazul respectării relaţiei de restricţionare t  T.
Securitatea sistemului are prioritate maximă. Depăşirea unor valori critice trebuie să fie detectată în orice moment şi tratarea acestor
accidente va întrerupe toate operaţiile în curs de execuţie.

4. Numim context...
Numim context al unei activităţi mulţimea informaţiilor accesibile procesorului în cursul acestei activităţi. Contextul activităţii este
compus din contextul procesorului (registrele programabile şi interne) şi contextul memoriei (segmentul procedurii şi segmentul
datelor). Trecerea de la o activitate la alta este realizată de instrucţiuni speciale: apelarea şi returul din procedură, care realizează
comutarea contextului.

5. Descrieţi metoda aşteptării active.

Pentru tratarea cu ajutorul aşteptării active a cazului în care mai multe procese actualizează şi consultă variabile comune, unele
maşini au o instrucţiune, care realizează într-o manieră indivizibilă consultarea şi actualizarea unui amplasament de memorie.
Această instrucţiune, adesea numită Test And Set (tas), este utilizată în sistemele multiprocesorale (în sistemele monoprocesor
mascarea întreruperilor este suficientă pentru asigurarea excluderii mutuale).
Fie m adresa amplasamentului de memorie considerat, sau lacătul, iar R un registru al procesorului. Prin convenţie, dacă lacătul
este în 0, secţiunea critică este liberă, iar dacă este 1 – ea este ocupată. Efectul lui Test And Set este descris mai jos (Mp[m]
desemnează amplasamentul de memorie cu adresa m):

tas R, m : <blocare acces la Mp[m]>


R:=Mp[m]
Mp[m]:=1
<eliberare acces la Mp[m]>

6. Cum poate fi limitat timpul de execuţie a unui program?


Limitarea timpului de executie a unui program poate fi efectuată cu ajutorul devierilor, care provoacă emitarea unui mesaj de
eroare, oprirea programului curent și trecerea la programul următor.

7. Descrieţi algoritmul de scriere în metoda de I-E buferizate în memorie.


Diferenţa considerabilă dintre viteza de lucru a unităţii centrale şi cea a organelor periferice impune "buferizarea" intrărilor-
ieşirilor, adică introducerea unei zone de memorie-tampon între periferic şi programul utilizatorului. Scopul este de a reduce
timpul de inactivitate a unităţii centrale, dezlegând funcţionarea acesteia de periferice. Programul utilizatorului va transfera
informaţiile din sau spre zona-tampon, iar această zonă-tampon va servi, în mod paralel, drept sursă sau destinaţie la schimbul de
date cu perifericul. Dezlegarea unităţii centrale de periferic este cu atât mai bine realizată cu cât este mai mare capacitatea zonei-
tampon. Adesea, pentru a nu supraîncărca memoria principală, zona-tampon este situată pe discul fix.
1) Citire
Un program de citire este o procedură citire(înregistrare), care prezintă drept rezultat valoarea înregistrării citite. Această
procedură, realizată printr-o apelare a supervizorului, are ca efect citirea din zona-tampon a înregistrării următoare. Citirea este
posibilă doar dacă zona-tampon conţine cel puţin o înregistrare, care nu a fost încă citită. În caz contrar, activitatea apelantă trece
în starea de aşteptare. În ambele cazuri, continuitatea alimentării zonei-tampon este asigurată de citirea unei înregistrări de la
perifericul de intrare, dacă un transfer nu are deja loc.

8. Specificaţi funcţia de acces deschiderea unui fişier.

Un fişier f poate fi deschis pentru citire sau scriere. Unele organizări autorizează scrierea începând de la o înregistrare oarecare.
Considerăm, că scrierea se face la sfârşitul fişierului şi deschiderea pentru scriere iniţializează fişierul în “vid”.
Deschiderea este realizată prin operaţia:
deschide(mod):
if mod=citire then
f.rest:=<şirul înregistărilor fişierului>
else
f:=<vid>
endif;
f.mod:=mod;
avansare
unde funcţia avansare este definită după cum urmează:
if f.rest=vid then
f.sfârşit:=true
else
f.primul:=<pointer pe primul(f.rest)>;
f.rest:=f.rest-primul(f.rest)
endif

9. Ce numim procese independente?


Contextele unor procese diferite pot avea părţi comune. Două procese, contextele cărora sunt disjuncte, se numesc independente; ele
nu pot avea interacţiuni reciproce. Partea contextului, care aparţine unui singur proces, se numeşte context privat al procesului dat.

10. Ce este un eveniment memorizat?


Un eveniment memorizat (e) este o variabilă, care poate lua două valori: sosit şi non_sosit, valoarea iniţială este non-sosit. Asupra
evenimentului memorizat sunt posibile două operaţii, care sunt acţiuni indivizibile:
e:=<valoare> -- atribuirea imediată a unei valori
aşteptare(e).
Operaţia aşteptare(e), executată de un proces p, are următoarea specificaţie:
if e = non_sosit then
starea(p) := blocat -- p este trecut în “aşteptarea lui e”
endif
Când e ia valoarea sosit, toate procesele care aşteptau e trec în starea activ.
Bilet de examinare Nr. 4

1. Ce este un sistem de operare?

Prin noţiunea sistem de operare înţelegem modulele program ale unui sistem de calcul, care administrează
resursele tehnice (procesoare, memoria operativă şi secundară, dispozitive de intrare/ieşire, fişiere). Modulele în
cauză soluţionează situaţiile de conflict, optimizează productivitatea sistemului, sporesc eficienţa utilizării lui.
Ele sunt un fel de intermediar (interfaţă) între programele utilizatorului şi componentele tehnice ale
calculatorului. Alte denumiri istorice: program de administrare, monitor, supervizor.

2. Care este scopul principal al unui sistem de operare d.p.d.v. al utilizării resurselor?
Resursele fizice ale sistemelor de calcul contemporane posedă caracteristici tehnice extraordinare şi pot fi
utilizate în cele mai diverse scopuri. Însă aceste resurse fără componentele logice de sistem (software de sistem)
întâmpină dificultăţi majore în relaţiile cu mediul în care trebuie să funcţioneze. Acesta este motivul principal
al creării sistemelor de operare, destinaţia cărora este administrarea (gestiunea, controlul) resurselor tehnice
principale şi asigurarea unei interfeţe comode (plăcute, prieteneşti) între utilizator şi calculator.

3. Care sunt funcţiile cele mai simple ale celor 5 nivele ale unei maşini ierarhice?

Niv1.Administrarea procesoarelor (nivelul inferior) Nivelul 4. Administrarea dispozitivelor


 planificarea proceselor  urmărirea stărilor tuturor dispozitivelor
Nivelul 2. Administrarea memoriei periferice
 alocarea memoriei  planificarea intrărilor/ieşirilor
 eliberarea memoriei  iniţierea operaţiilor de intrare/ieşire
Ni 3.Administrarea procesoarelor (nivelul superior)
 crearea şi distrugerea unui proces Nivelul 5. Administrarea informaţiei
 transmiterea şi recepţionarea mesajelor între  crearea şi distrugerea unui fişier
procese  deschiderea şi închiderea unui fişier
 lansarea unui proces  citirea şi înscrierea unui fişier.
 oprirea unui proces

4. Care sunt restricţiile introduse de funcţionarea unui sistem de comandă a unui proces tehnologic?
Procesul de producere este comandat de un calculator .
Măsurările sunt făcute periodic; fie
T valoarea intervalului de timp dintre două măsurări consecutive, iar
t - timpul total de prelucrare a datelor de către calculator.
Sistemul va funcţiona doar în cazul respectării relaţiei de restricţionare t  T.
Securitatea sistemului are prioritate maximă. Depăşirea unor valori critice trebuie să fie detectată în orice
moment şi tratarea acestor accidente va întrerupe toate operaţiile în curs de execuţie
Existenţa unor restricţii stricte a duratei de prelucrare a informaţiilor, noţiunea de tratare prioritară, conectarea
la nişte dispozitive exterioare de măsurare şi acţionare, sunt caracteristice aplicaţiilor informatice "în timp real".
Pot fi menţionate şi alte domenii cu comandă în timp real: centralele telefonice, comanda aparatelor de zbor,
robotica, monitoringul medical, etc.
În cazul acestor sisteme caracteristica principală este fiabilitatea, or rezultatele unei funcţionări neadecvate pot
fi catastrofale. Sistemul trebuie să garanteze un serviciu minim în cazul unor căderi în pană a dispozitivelor
tehnice, unor evenimente accidentale sau erori umane.

5. Contextul activităţii este compus din...

Contextul activităţii este compus din contextul procesorului (registrele programabile şi interne) şi contextul
memoriei (segmentul procedurii şi segmentul datelor).

6. Care sunt operaţiile ce au loc la comutarea contextului unui procesor?


Comutarea contextului unui procesor permite executarea într-o manieră indivizibilă (atomară) a
următoarelor două operaţii:
1. trecerea cuvântului de stare într-un amplasament specificat al memoriei,
2. încărcarea în cuvântul de stare a conţinutului unui alt amplasament specificat al memoriei.

7. Ce este un nivel de observare?

Nivel de observare - o suită de acţiuni ale unui proces ca o acţiune unică, adică observarea derularii unui
proces considerând o unitate de execuţie mai puţin fină decât instrucţiunea. De exemplu, dacă vom redefini
noţiunea de acţiune elementară ca execuţie a unei proceduri, traiectoria procesului va conţine doar stările
definite de fiecare apel şi retur de procedură. Nivelul de observare cel mai fin (cel al instrucţiunilor) este numit
nivel de bază.

8. Ce este un monitor şi care sunt componentele lui?


Un monitor este constituit dintr-o mulţime de variabile de stare şi o mulţime de proceduri, care utilizează
aceste variabile. Unele dintre aceste proceduri, numite externe, sunt accesibile utilizatorilor monitorului;
numele acestor proceduri sunt numite puncte de intrare ale monitorului. Procesele, care utilizează monitorul
pentru a se sincroniza, nu au acces direct la variabilele de stare. Monitorul poate fi utilizat doar prin apelarea
procedurilor sale externe; acestea permit blocarea sau deblocarea proceselor conform specificaţiilor problemei.
Condiţiile de blocare sau deblocare sunt exprimate ca funcţie ale variabilelor de stare, iar mecanismul de
execuţie a monitorului garantează manipularea acestor variabile în regim de excludere mutuală. În fine, un
monitor conţine un fragment de cod de iniţializare, executat o singură dată la crearea monitorului.
Blocarea şi deblocarea proceselor se exprimă, în procedurile monitorului, prin intermediul unor condiţii. O
condiţie este declarată ca şi o variabilă, dar nu are “valoare”: o condiţie c poate fi utilizată doar prin intermediul
a trei operaţii sau primitive, efectul cărora este descris mai jos (prin p am notat procesul, care le execută)
c.aşteptare : blochează procesul p şi îl plasează în “aşteptarea lui c”
c.vid : funcţie cu valori booleene (true, dacă nu există nici un proces în aşteptarea lui c, altfel false)
c.semnalizare : if non c.vid then <deblocarea proceselor care sunt în aşteptarea lui
c> endif
Bilet 5
1. Ce reprezintă procesoarele d.p.d.v. al unui sistem de operare?

Din punctul de vedere al unui sistem de operare, un procesor este acea unitate care asigură procesarea instrucțiunilor și datelor
acestuia(so). Procesorul încorporează unitatea de comandă (Control Unit, CU) şi unitatea logico-aritmetică (Arithmetic Logical
Unit, ALU). Unitatea de comandă controlează funcţionarea unităţii logico-aritmetice.

2. Care sunt 4 funcţii pe care trebuie să le îndeplinească componenta de gestionare a informaţiei?

Se consideră că informaţia, care circulă într-un sistem de calcul constă din obiecte; obiectele sunt entităţile asupra cărora sunt
efectuate anumite operaţii. Toate operaţiile pot fi clasificate în patru categorii, numite funcțiile componentei de gestionare a
informației:
 de creare,
 de modificare,
 de căutare,
 de distrugere a obiectelor.

3. Aduceţi un exemplu de organizare a unui calculator electronic.

Vom considera cazul calculatoarelor personale:


Configuraţia cea mai simplă a unui calculator personal (PC) include o unitate centrală, o memorie principală, un display, o tastatură şi
un mouse. Această configuraţie, de obicei, este completată de o memorie secundară şi o imprimantă .

Memoria
Imprimanta
secundară

Procesorul

Utilizatorul unui atare sistem va cere minimum următoarele două tipuri de servicii:
Memoria
 identificarea şiprincipală
crearea unor fişiereDisplay
sau mulţimi structurate
Tastatura de informaţii;Mouse
stocarea acestor fişiere în memoria secundară;
transferarea informaţiilor între fişiere şi dispozitivele de intrare/ieşire;
 executarea unor programe existente în PC sau introduse sub formă de fişiere; introducerea datelor necesare pentru executarea
programului (de la tastatură, din fişier sau de la alte surse); listarea rezultatelor la display, imprimantă sau copierea lor într-un
fişier.
Sistemul de operare va acorda aceste servicii prin intermediul unui limbaj special, numit limbaj de comandă sau utilizând mouse-ul
şi o interfaţă grafică a utilizatorului (GUI - graphical user interface)

4. Care sunt funcţiile principale ale unui sistem de operare în cazul unor procese tehnologice?

Funcţiile principale ale sistemului de operare în cazul unor procese tehnologice sunt:
 acţionarea organelor externe (citirea semnalelor captoarelor, comanda robinetelor);
 evidenţa timpului real (declanşarea periodică a ciclului de calculare a semnalelor de comandă);
 reacţia la evenimentele exterioare (oprire de urgenţă);
 gestiunea informaţiilor (păstrarea şi întreţinerea fişierului jurnalului de bord).

5. Cum se face trecerea de la o activitate la alta?

Activitate- fenomenul care rezultă din execuţia neîntreruptă a unei proceduri unice.
Context al unei activităţi- mulţimea informaţiilor accesibile procesorului în cursul acestei activităţi.
Trecerea de la o activitate la alta este realizată de instrucţiuni speciale: apelarea şi returul din procedură, care realizează comutarea
contextului.
Exemplul : O procedură p (apelantă) provoacă execuţia unei proceduri q (apelate) cu ajutorul unei secvenţe de apel care conţine
următoarele etape:
 Pregătirea parametrilor, transmişi de către procedura p procedurii q,
 Salvarea parţială a contextului lui p, necesar la retur,
 Înlocuirea contextului procedurii p prin contextul lui q.
La revenire din procedura q avem o schemă practic simetrică, doar contextul lui q fiind pierdut:
 Pregătirea rezultatelor, transmise de către procedura q procedurii p,
 Restabilirea contextului procedurii p, salvat înainte de apel.◄
6. Care sunt cele două scheme de comutare a contextului?

1. Salvare în amplasamente fixe.


i= numărul de ordine al cauzei care a provocat comutarea contextului.
Csp_vechi= adresa locației de memorie unde este conținut cuvântul de stare program vechi;
Csp_nou= adresa locației de memorie unde este conținut cuvântul de stare program nou.
Comutarea se produce conform schemei:
Mp[csp_vechi[i]]:=<cuvânt de stare program>
<cuvânt de stare program>:= Mp[csp_nou[i]]
2. Salvare într-o stivă. Aici avem acelaşi procedeu în ceea ce constă cuvântul de stare nou. Însă cuvântul de stare vechi nu
este salvat într-un amplasament fix, ci într-o stivă specială:
ptr :=ptr+1
stiva[ptr] :=<cuvânt de stare program>
<cuvânt de stare program> := Mp[csp_nou[i]]

7. Care este algoritmul administrării lucrărilor în timp partajat?


Un sistem de operare cu partajarea timpului trebuie să garanteze fiecărui utilizator un timp acceptabil de răspuns. Acest rezultat este
obţinut prin alocarea succesivă a procesorului pentru tranşe de timp foarte mici (cuante) programelor utilizatorilor.
Activitatea unui utilizator conţine două componente: timpul de reflecţie (gândire), în care utilizatorul elaborează, propune subiecte de
lucru, introducând în calculator informaţii şi timpul de aşteptare, când aşteaptă executarea de către sistem a serviciului cerut. Timpul de
reflecţie este de o durată medie mult mai mare decât timpul de aşteptare şi sistemul poate să servească simultan mai mulţi utilizatori,
folosind timpul mort, datorat perioadei de reflecţie.

8. Exemplificaţi noţiunile de paralelism real şi pseudo-paralelism.


Să considerăm două programe distincte P şi Q, executarea cărora produce două procese distincte p și q. Executarea setului (p, q)
poate să se producă în diferite moduri:
p q
(1)

p q p q p q
(2)

p q
(3)

Schemele de mai sus pot fi comentate astfel:


 schema 1: este executat mai întâi tot procesul p, apoi procesul q la fel în întregime,
 schema 2: sunt executate şiruri de instrucţiuni ale procesului p în mod alternativ cu şiruri de instrucţiuni ale procesului q, şi tot
aşa până la terminarea ambelor procese,
 schema 3: executarea proceselor p şi q este simultană; în acest caz sunt necesare două procesoare.
Analizând schemele de la nivelul de observare la care, prin convenţie, executarea completă a fiecărei dintre programele P şi Q
reprezintă o acţiune unică, spunem că :
a) schema de tip 1 este a unei execuţii secvenţiale a lui p şi q. Ea este caracterizată de relaţiile:
sfârşit(q) < început(p) sau sfârşit(p) < început(q)
b) schemele de tip 2 sau 3 sunt scheme de execuţie paralelă. Ele sunt caracterizate de
sfârşit(p) > început(q) sau sfârşit(q) > început(p).
Analizând schemele la nivel de instrucțiune (nivel de bază) putem face o distincţie între schemele 2 şi 3. În schema 2, întrucât există doar un
singur procesor, la un moment de timp dat doar o singură acţiune poate fi executată, contrar schemei 3. Se va spune că în schema 3 are loc
un paralelism real, iar în schema 2 – un pseudo-paralelism. Paralelismul real necesită două procesoare distincte.

9.Ce este o condiţie în cazul unui monitor?


Un monitor este constituit dintr-o mulţime de variabile de stare şi o mulţime de proceduri, care utilizează aceste variabile.
Procesele, care utilizează monitorul pentru a se sincroniza, nu au acces direct la variabilele de stare. Ele utilizeză monitorul doar prin
apelarea procedurilor externe; acestea permit blocarea sau deblocarea proceselor.
Blocarea şi deblocarea proceselor se exprimă, în procedurile monitorului, prin intermediul unor condiţii. O condiţie este declarată
ca şi o variabilă, dar nu are “valoare”: o condiţie c poate fi utilizată doar prin intermediul a trei operaţii sau primitive, efectul cărora
este descris mai jos (prin p am notat procesul, care le execută)
c.aşteptare : blochează procesul p şi îl plasează în “aşteptarea lui c”
c.vid : funcţie cu valori booleene (true, dacă nu există nici un proces în aşteptarea lui c, altfel false)
c.semnalizare : if non c.vid then <deblocarea proceselor care sunt în aşteptarea lui c> endif
BILET 6
1. Ce reprezintă nucleul unui sistem de calcul?

Componentele principale ale unui calculator sunt: procesorul, memoria, unităţile de stocare pe termen lung, dispozitivele de intrare-
ieşire (tastatura, display-ul, mouse-ul etc.).
Procesorul(CPU) încorporează unitatea de comandă (CU) şi unitatea logico-aritmetică (ALU).
Memoria este o zonă de lucru de mare viteză, unde CPU stochează datele şi programele pentru a le consulta în mod rapid.Distingem
memoria centrală (operativă) şi memoria secundară (externă, de lungă durată). Memoria operativă este electronică sub formă de cipuri,
de obicei cu acces aleator (RAM – Random Access Memory) şi trebuie să fie alimentată cu tensiune pentru a păstra datele.
Procesorul şi memoria operativă formează nucleul calculatorului, toate celelalte dispozitive fiind cunoscute sub denumirea de
periferie (dispozitive periferice).
2. Definiţi (grafic) şi comentaţi modelul stărilor elementare ale unui proces.

Proces- suită temporală de execuţii de instrucţiuni. Evoluţia în timp a unui proces presupune un consum de resurse.
Ciclul de viaţă a unui proces poate fi reprezentat printr-un set de stări ale procesului şi trecerea de la o stare la alta. Vom evidenţia
trei stări elementare ale unui proces:
ales – procesului i s-a alocat un procesor, este în curs de execuţie;
blocat – procesul aşteaptă să se producă un anumit eveniment, a cărui apariţie este indispensabilă;
eligibil – procesul are la dispoziţie toate resursele necesare lipsă fiind doar procesorul.

3.???? Când facem cunoştinţă cu un calculator nou care vor fi întrebările la care se caută răspuns d.p.d.v. al utilizatorului
simplu?
Ce sistem de operare rulează/acceptă acest calculator?
Care sunt capacitățile, ce poate oferi sistemul de operare?
Ce aplicatii pot fi instalate pe acest calculator?
4. Care sunt caracteristicile principale ale sistemelor tranzacţionale?
Caracteristicile principale ale sistemelor cu tranzacţii sau tranzacţionale sunt următoarele:
 sistemul gestionează un set de informaţii sau baze de date, care pot atinge volume importante;
 asupra acestor informaţii pot fi executate un anumit număr de operaţii predefinite, sau tranzacţii;
 sistemul este dotat cu un mare număr de puncte de acces şi un mare număr de tranzacţii se pot derula simultan.
Ca exemplu pot fi menţionate sistemele de rezervare a biletelor de tren sau avion, de gestionare a conturilor bancare, de arhivare şi
consultare a documentelor.
Restricţiile sunt în primul rând legate de integritatea şi coerenţa internă a informaţiilor, care formează bazele de date. Calităţile
obligatorii ale unui sistem tranzacţional sunt disponibilitatea şi fiabilitatea;

5. Care sunt etapele pe care le conţine secvenţa de apel? Dar de retur?


Cazul procedurilor:
Apelare
1) alocarea unei zone în stiva de execuţie pentru mediul procedurii apelate
baza:=top
top:=top+dimensiunea mediului
2) salvarea informaţiilor de retur
baza_veche:=temp
memorizarea adresei de retur
3) ordonarea parametrilor
4) executarea unei ramificaţii la procedura apelată.
Retur
1) salvarea rezultatului într-un amplasament stabilit
2) restabilirea informaţiilor de retur şi eliberarea mediului
temp:=adresa de retur
top:=baza
baza:=baza_veche
3) returul
ramificare *temp ramificare indirectă
O eventuală salvare şi restabilire a registrelor sunt lăsate în seama procedurii apelante.
6. Cum pot fi clasificate întreruperile în trei categorii?
Întrerupererile sunt un mecanism de comutare a contextului. Ele pot fi clasificate în :

Denumirea mecanismului Cauza Utilizarea


Întrerupere Exterioară derulării instrucţiunii Reacţionare la un eveniment asincron
curente extern
Deviere Legată de derularea instrucţiunii Tratarea unei erori sau situaţii
curente excepţionale
Apelarea supervizorului Comutare explicită Apelarea unei funcţii a S.O.

7. Ce este un canal, un controler, un periferic?


1) Un canal este un procesor specializat în operaţiile de intrare-ieşire. El poate fi lansat doar de un procesor central, nu posedă
întreruperi, dar poate întrerupe un procesor central. Setul de instrucţiuni ale canalului îi permite să acţioneze controlerele şi
perifericele, care-i sunt conectate.
2) Un contróler este un dispozitiv de comandă adaptat la un tip concret de echipament periferic. Destinaţia principală a unui
controler este de a permite conectarea a mai multor periferice de acelaşi tip la un singur controler. La un moment de timp dat
un singur periferic poate transmite informații prin controler, alte periferice pot executa alte operații care nu țin de transfer.
3) Un periferic este un organ capabil să transfere informaţii din sau spre un suport extern.
8. Ce este o resursă critică?
Fie o mulţime de procese contextele cărora au un obiect comun, care poate fi utilizat la un moment de timp dat de un singur proces. Se va
spune în acest caz, că obiectul constituie o resursă critică pentru procesele date. Astfel de procese se spune că sunt în excludere
mutuală.

9. Specificaţi cele trei primitive ataşate unei condiţii de monitor.


O condiție poate fi utilizată doar prin intermediul primitivelor(operații):
c.aşteptare : blochează procesul p şi îl plasează în “aşteptarea lui c”
c.vid : funcţie cu valori booleene (true, dacă nu există nici un proces în aşteptarea lui c, altfel false)
c.semnalizare: if non c.vid then <deblocarea proceselor care sunt în aşteptarea lui c> endif
BILET 7
1. Care dispozitive ale unui sistem de calcul sunt numite periferice?
Memoria secundară( destinată păstrării îndelungate a datelor), dispozitivele de intrare(tastatura şi mouse-ul),
dispozitivele de ieşire(monitorul) poartă numele de periferice (dispozitive periferice). Cu alte cuvinte, un
periferic este o unitate (aparat) de hardware ce este inclus sau se adaugă unui sistem de calcul pentru a-i
extinde funcționalitatea. Denumirea de periferic este aplicată de obicei acelor unități componente care pot fi
opționale prin natura lor.
2. Definiţi (grafic) şi comentaţi modelul stărilor unui proces.
ales – procesului i s-a alocat un procesor, este în curs de execuţie;
blocat – procesul aşteaptă să se producă un anumit eveniment, a cărui apariţie este indispensabilă;
eligibil – procesul are la dispoziţie toate resursele necesare lipsă fiind doar procesorul.

Această figură sugerează existenţa “veşnică” a proceselor. Pentru modelarea procesului real au fost adăugate
trei stări suplimentare:
 prezentare – utilizatorul prezintă sistemului sarcina, sistemul trebuie să reacţioneze la cererea
utilizatorului,
 păstrare – sarcina este reprezentată în formă internă, dar resursele nu sunt încă alocate,
 terminare – calculele corespunzătoare procesului au luat sfârşit, toate resursele alocate procesului pot
fi eliberate şi întoarse sistemului.

3. ?????Când facem cunoştinţă cu un calculator nou care vor fi întrebările suplimentare la care se
caută răspuns d.p.d.v. al unui profesionist?
Care este capacitatea memoriei operative? (RAM)
Care sunt capacitățile procesorului?(viteza de procesare, mărimea registrelor interne)
Care este numărul de nuclee?
Care este capacitatea memoriei secundare?.......

4. Care sunt calităţile obligatorii ale unui sistem de operare a unui sistem tranzacţional?
Calităţile obligatorii ale unui sistem de operare a unui sistem tranzacţional sunt disponibilitatea şi
fiabilitatea, adică proprietatea sistemului de a cădea foarte rar în pană şi de a evita goluri în funcţionare din
cauza defectării uneia sau mai multor componente ale sale. Pentru unele sisteme poate fi importantă şi toleranţa
la defecţiuni.

5. Care sunt funcţiile realizate de mecanismul de execuţie secvenţială?


Mecanism de execuţie secvenţială realizează funcţiile următoare:
 Salvarea şi restabilirea contextului la apelare şi retur,
 Transmiterea parametrilor între procedurile apelantă şi apelată,
 Administrarea unei zone de lucru proprii fiecărei proceduri, cu permisiunea apelurilor recursive.
6. Ce este un program de tratare a unei întreruperi?
O întrerupere este comutarea contextului procesorului declanşată de o cauză externă derulării instrucţiunii
curente. O întrerupere permite să cerem procesorului să suspende executarea programului curent, din primul
punct întreruptibil, şi să treacă la execuţia unui program predefinit. Acesta din urmă este numit program de
tratare a întreruperii (interrupt handler, eng., traitant de l'interruption, fr.). Programul de tratare a
întreruperii este executat într-un context diferit de cel al programului întrerupt, diferenţa fiind legată de modul
de tratare, protecţie, informaţiile accesibile, etc.

7. Ce numim operaţie de intrare/ieşire şi ce semnifică o astfel de operaţie?


Prin noţiunea de intrare-ieşire numim orice transfer de informaţii din sau spre nucleul calculatorului.
Operaţiile de I/E semnifică:
 transferurile de informaţii dintre diferite nivele ierarhice ale memoriei,
 transferurile de informaţii din sau spre mediul exterior (organe periferice locale sau la distanţă, captoare
sau dispozitive de acţionare, alte calculatoare, etc.).

8. Care sunt motivele utilizării noţiunii de resurse virtuale?


Funcţionarea corectă a unei mulţimi de procese, care participă la îndeplinirea unei lucrări comune, implică
relaţii logice de cooperare. Este comod să se separe această cooperare de concurenţa pentru resursele fizice cu
scopul de a simplifica înţelegerea şi aplicarea celor două tipuri de relaţii. Pentru aceasta este folosită noţiunea
de resurse virtuale: fiecărei resurse fizice critice i se asociază tot atâtea copii imaginare (sau virtuale) ale
acestei resurse câte procese concurente solicită utilizarea ei.

9. Care sunt problemele-tip legate de sincronizare?


O implementare incorectă a sincronizării poate duce la blocarea tuturor proceselor pe un timp îndelungat.
Implementarea condiţiilor de sincronizare nu poate fi corect realizată numai cu ajutorul operaţiilor de
aşteptare. Consultarea şi modificarea variabilelor de stare, care intervin în aceste condiţii, trebuie să fie
executate în regim de excludere reciprocă. Observaţia dată ne impune să introducem un mecanism de
sincronizare, care în mod automat ar asigura acest regim de funcţionare.
BILET 8
1. Ce se numeşte task (lucrare)?

Prin lucrare (sarcină, task) vom înţelege un set de acţiuni, necesare pentru îndeplinirea unui lucru anume. Sarcina poate conţine
mai mulţi paşi. Paşi de task sunt unităţi de lucru, care vor fi îndeplinite consecutiv, de exemplu trei paşi – compilare, încărcare şi
executare. Primind un task de la utilizator, sistemul de operare poate crea câteva procese.
2. Ce este o “maşină extinsă” (reprezentaţi grafic şi comentaţi)?

3.
Componentele hardware ale unui calculator sunt de fapt limitate în operațiile disponibile. Există operații, care impun executarea a sute
sau chiar mii de operații standard disponibile componentelor hard. Din această cauză SO conțin instrucțiuni pentru a extinde operațiile
executate de către elementele unui calculator.
Setul de instrucțiuni realizat în mod standard de către un calculator și cele suportate de către sistemul de operare introduc termenul de
mașină extinsă. Nucleul SO este executat direct pe componentele hardware, adică pe mașina goală, iar aplicațiile utilizatorului – pe
mașina extinsă.

4. ????Ce este un registru al indicatorilor de condiţii într-un PC? (flags?)

Registrul PSW – "program status word" – păstrează indicatorii de stare ai procesorului;


a. o parte din indicatori caracterizează rezultatul obţinut în urma unei anumite instrucţiuni:
 ZF – rezultat 0,
 SF – semnul rezultatului
 OF – "overflow" indică o depăşire de capacitate la ultima operaţie aritmetică
 PF – indicator de paritate (arată paritatea rezultatului)
 CF – indicator de transport ("carry"), arată dacă s-a generat un transport
 AC – indicator de transport auxiliar, arată dacă după primii 4 biţi s-a generat un transport
o o parte din indicatori controlează modul de lucru al procesorului:
 IF – indicator de întrerupere (interrupt"), daca este setat (1 logic) atunci se blochează toate întreruperile
mascabile, în caz contrar (0 logic) se validează
 DF – indicatorul de direcţie, arată direcţia de parcurgere a şirurilor de caractere la instrucţiunile pe şiruri
(în ordine ascendentă sau descendentă a adreselor)

5. Care este destinaţia unui sistem cu partajarea timpului?

Exploatarea unui calculator conform principiului timpului partajat oferă utilizatorilor posibilităţi analogice unui calculator individual,
permiţând beneficiul unor servicii comune la un preţ redus.
Destinaţia principală a unor astfel de sisteme este furnizarea serviciilor necesare unei mulţimi de utilizatori, fiecare dintre ei
beneficiind:
 de servicii echivalente serviciilor unui calculator individual;
 de servicii legate de existenţa unei comunităţi de utilizatori: partajarea informaţiilor, comunicaţii între utilizatori.

6. Care este structura de date, utilizată în cazul procedurilor? Ce este mediul procedurii?
Structura de date utilizată în cazul procedurii este o stivă de execuţie. Presupunem respectarea următoarelor ipoteze:
 Parametrii unei proceduri sunt transmişi prin valori; la retur un singur rezultat este returnat,
 Procedurile pot fi apelate recursiv (direct sau indirect).
La fiecare apelare a procedurii o structură de date numită regiune a mediului (sau simplu mediul procedurii) este creată în vârful
stivei de execuţie, care va dispare la returul respectiv. O procedură apelată recursiv are în stivă atâtea medii câte execuţii neterminate
există pentru această procedură.
Mediul conţine următoarele informaţii:
a) informaţii de salvare şi legăturile de retur
 un pointer la baza contextului procedurii apelante
 adresa returului
 un amplasament pentru rezultat
b) parametri
 n+1 amplasamente, primul conţinând numărul de parametri, iar următoarele - valorile acestora
 variabilele locale şi spaţiul de lucru al procedurii.
Aceste informaţii, cu excepţia spaţiului de lucru, sunt păstrate în amplasamente pentru care deplasarea în raport cu originea
mediului este cunoscută şi fixă, fiind posibilă adresarea relativă a lor (faţă de baza mediului). Spaţiul de lucru este adresat din vârful
stivei.

6. Descrieţi schematic tranziţiile de stare pentru un nivel de întrerupere?

Pentru unele nivele de întrerupere efectul sosirii semnalului de întrerupere poate fi suprimat (nu doar întârziat). Totul se va
petrece în acest caz ca şi cum însăşi cauza întreruperii a fost suprimată: nivelul întreruperii este dezarmat. Un nivel dezarmat poate fi
rearmat, adică repus în serviciu.
Atunci când toate condiţiile necesare pentru ca o întrerupere să fie luată în consideraţie sunt prezente, nivelul se numeşte activ.
Această stare corespunde executării programului de tratare a întreruperii.

7. Care este schema de adresare a perifericelor?


 Fiecare periferic este desemnat printr-o adresă care permite să evidenţiem:
 canale legate de memorie,
 controlere ataşate fiecărui canal,
 dispozitive periferice ataşate fiecărui controler.
 La un nivel anume adresa este un simplu număr de ordine. Un periferic este desemnat printr-o adresă compusă
<numărul canalului, numărul controlerului, numărul dispozitivului periferic>.
Un controler poate fi conectat la mai multe canale, iar un periferic la mai multe controlere, care vor fi, obligator, de acelaşi
tip. Astfel, un periferic are mai multe căi de acces la memorie (doar una singură poate fi activă la un moment de timp dat) şi
poate fi desemnat prin mai multe adrese.

8. ????? Care sunt relaţiile între timpul logic şi timpul real?


Sistemele în timp real sunt dedicate, de obicei, funcţionării în cadrul unor sisteme de comandă şi este necesar ca valorile anumitor
atribute să se încadreze în limite destul de restrictive, dictate de dinamica proceselor comandate.

9. Ce este o resursă banalizată?


Considerăm o resursă pentru care există un număr fix de N exemplare. Un proces poate accesa la cerere n unităţi din cele N, le
poate utiliza şi apoi elibera. O unitate, folosită de un proces, se numeşte alocată procesului, care o utilizează, pentru toată perioada de
la accesare până la eliberare. Toate unităţile sunt echivalente din punctul de vedere al proceselor utilizatoare, vom mai zice că resursa
este banalizată. Zonele-tampon din memoria principală sau pe disc, unităţile de bandă magnetică, etc. sunt exemple de resurse
banalizate.
Bilet de examinare Nr. 9
A. Răspundeţi la întrebări sau continuaţi formularea
1. Care este destinaţia sistemului de operare d.p.d.v. al spaţiului de adresare?
SO creează procesele și gestionează programele, care rulează.
Ansamblul programelor şi datelor accesate în timpul procesului, formează spaţiul de adrese. Conţine două exemple de spaţii
de adresare – unul pentru procesul de intrare/ieşire şi altul pentru procesul UC. Una din destinaţiile sistemului de operare
este de a asigura proiectarea spaţiului de adresare a unui proces în memoria fizică. Pentru rezolvarea acestei probleme sunt
utilizate atât resurse tehnice,cât şi resurse logice.
2. Ce este o “maşină ierarhică” (reprezentaţi grafic şi comentaţi)?

Componentele hardware ale unui calculator sunt de fapt limitate în operațiile disponibile. Există operații, care impun
executarea a sute sau chiar mii de operații standard disponibile componentelor hard. Din această cauză SO conțin
instrucțiuni pentru a extinde operațiile executate de către elementele unui calculator.
Setul de instrucțiuni realizat în mod standard de către un calculator și cele suportate de către sistemul de operare introduc
termenul de mașină extinsă. Nucleul SO este executat direct pe componentele hardware, adică pe mașina goală, iar
aplicațiile utilizatorului – pe mașina extinsă.

3. Ce este un PSW?
Starea procesorului este determinată de conținutul registrelor acestuia. Registrele pot fi:
 adresabile, numite registre generale, manipulate de programe,
 registre speciale - cuvânt de stare program (program status word, PSW).
PSW este un registru de control al sistemelor IBM 360 și a succesorilor acesteia, care îndeplinește rolul unui registru de
stare și a counter-ului de program în alte arhitecturi. Deși unele cîmăuri ale PSW pot fi modificate, utilizînd instrucțiuni,
care nu necesită privilegii, majoritatea pot fi schimbate doar prin intermediul instrucțiunilor privilegiate.
PSW, fiind un registru de 64 biți descrie:
 Masca întreruperilor
 Stările de privilegii
 Condiția codului
 Adresa intrucțiunii

4. Care sunt problemele care apar datorită conceptului de partajare a timpului?


Problemele care apar datorită conceptului de partajare a timpului sunt o combinaţie a problemelor existente în cazul unui
calculator individual cu cele din sistemele tranzacţionale şi pot fi clasificate după cum urmează:
• definirea maşinii virtuale oferite fiecărui utilizator;
• partajarea şi alocarea resurselor fizice comune: procesoare, memorii, dispozitive de comunicaţie;
• gestionarea informaţiilor partajate şi a comunicaţiilor.

5. Care sunt operaţiile executate la apelarea procedurii?


O procedură p (apelantă) provoacă execuţia unei proceduri q (apelate) cu ajutorul unei secvenţe de apel care conţine
următoarele etape:
 Pregătirea parametrilor, transmişi de către procedura p procedurii q,
 Salvarea parţială a contextului lui p, necesar la retur,
 Înlocuirea contextului procedurii p prin contextul lui q.
La revenire din procedura q avem o schemă simetrică, doar contextul lui q fiind pierdut:
Pregătirea rezultatelor, transmise de către procedura q procedurii p, Restabilirea contextului procedurii p, salvat înainte de
apel.◄

6. Ce este o deviere?
O deviere - semnalizează o anomalie în derularea unei instrucţiuni, care interzice executarea instrucţiunii. Originile pot fi diverse:
 date incorecte ce duc la imposibilitatatea executiei corecte a instructiunii(de ex.impartirea la 0)
 incercarea executarii unei operatii interzise de mecanismul de protectie cum ar fi violarea protectiei memoriei;
 instructiune neexecutabila cum ar fi de exemplu un cod neautorizat de operatie.
Devierile mai pot fi clasificate si conform cauzelor care le genereaza , insa asupra unei devieri nu putem aplica notiunea de
masca, o deviere poate fi suprimata nu si retardata.

7. Descrieţi algoritmul de I-E sincrone, avantajele şi dezavantajele lui.


În acest caz nu există nici un fel de paralelism între procesare şi transferul informaţiilor. Procesorul este ocupat pentru toată
durata transferului.
Specificarea mecanismului:
Operaţia de bază constă în transferarea unor informaţii elementare de volum fix între un amplasament de memorie şi un
dispozitiv periferic. Presupunem că volumul informaţiei transmise, care depinde de perifericul considerat, este un octet.
Starea ansamblului controler-periferic este definită printr-un cuvânt de stare, aflat în controler. Acest cuvânt de stare conţine
o mulţime de indicatori booleeni, dintre care doar 3 ne vor interesa aici:
Preg : perifericul este pregătit (gata) de funcţionare,
Term : transferul este terminat; perifericul este gata să transfere un nou caracter,
Err : în cursul transferului a avut loc o eroare.
Controlerul este comandat de unitatea centrală cu ajutorul a trei instrucţiuni de intrare-ieşire, efectul cărora este descris mai
jos:
IN(adr_mem, adr_perif) : cerere de transfer tip intoducere a unui octet,
OUT(adr_mem, adr_perif) : cerere de transfer tip extragere a unui octet,
TEST(adr_perif) : copie CS într-un registru cu scopul de a consulta indicatorii.

8. Exemplificaţi problema excluderii mutuale.


Executarea tratării întreruperii este declanşată de sfârşitul transferului fizic al unei înregistrări, activitate, care are loc paralel
cu executarea programului primitivei citire (înregistrare) pe procesor. Drept rezultat, este posibil ca întreruperea să survină
într-un punct oarecare (observabil) al executării acestei primitive, ceea ce va însemna intercalarea executării programului de
tratare a întreruperii între două puncte oarecare ale programului citire (înregistrare).
Exemplu. Să considerăm instrucţiunea a doua din programul citire(înregistrare):
if non citire_activ then
citire_activ:=true;
lansare_perif_de_intrare(qcitire)
endif
Ea se descompune în următoarele instrucţiuni elementare:
a) load R, citire_activ
b) jifz R, urm -- ramificare dacă true
c) …
urm: …
<aşteptare>
Presupunem că întreruperea soseşte între instrucţiunile (a) şi (b), valoarea pusă în R de (a) este true; programul de tratare a
întreruperii pune citire_activ în false. După prelucrarea întreruperii, instrucţiunea (b) este executată cu R având valoarea
true şi activitatea apelantă trece în starea de aşteptare în care rămâne un timp indefinit.
Putem afirma, că validitatea variabilelor comune (de ex. citire_activ, nvcitire etc.,) nu poate fi garantată dacă autorizăm
sosirea întreruperilor de terminare a operaţiilor de intrare-ieşire în orice moment de timp. Apelarea supervizorului pentru a
realiza secvenţa de cod citire_înreg trebuie executată cu întreruperile de intrare-ieşire mascate.
Situaţia dată este cunoscută sub numele de excludere mutuală şi este o consecinţă a execuţiei activităţilor asincrone.
9. Descrieţi modelul cititorului şi redactorului.
Să considerăm un fişier manipulat de procese din două clase diferite: cititori, care consultă fişierul fără a modifica
conţinutul lui şi scriitori, care pot modifica acest conţinut. Fie pentru un moment arbitrar de timp ncit şi nscr numărul de
cititori şi de scriitori, respectiv, care folosesc o procedură de acces la fişier. Cererea de asigurare a coerenţei fişierului ne
impune să respectăm următoarele restricţii:
(nscr=0) şi (ncit=0) -- fişier în citire
sau (nscr =1) şi (ncit=0) -- fişier în scriere
Fie fich un monitor care asigură respectarea acestor restricţii. Vom impune următoarea formă a acceselor la fişier:
proces cititor proces scriitor
fich.debut_citire; fich.debut_scriere;
<acces citire> <acces scriere>
fich.terminare_citire; fich.terminare_scriere;
Procedurile debut_citire, terminare_citire, debut_scriere, terminare_scriere trebuie să asigure respectarea restricţiilor de mai
sus.
Presupunem că cititorii au prioritate în faţa scriitorilor (o scriere nu va fi autorizată, dacă există cititori în aşteptare).
Definim următoarele variabile de stare:
scr = o scriere este în curs (valoare booleană)
nc = numărul de cititori în aşteptare sau în curs de citire
Condiţiile de depăşire se vor exprima după cum urmează:
aut(citire) : scr=false (nu există scrieri curente)
aut(scriere): scr=false şi nc=0 (nici scrieri nici citiri în curs, nici cititori în aşteptare)
Bilet de examinare Nr. 10
1. Ce se subînţelege prin stare a calculatorului electronic user şi supervisor?
Sistemele de calcul permit doar SO executarea unor instrucţiuni anumite (speciale), programele
utilizatorilor neavând acces la aceste instrucţiuni. Aceasta poate fi realizat definind două moduri de
funcţionare a calculatorului, care se deosebesc printr-un bit indicator în cuvântul de stare: modul
supervizor şi modul program.
2. Ce înseamnă utilizarea conceptului de maşină extinsă în cazul SO ?
Acest concept, în cazul sistemelor de operare, poate fi utilizat în două nivele şi conduce la noţiunea de
maşină ierarhică:
Primul nivel - funcţiile cheie, utilizate
de majoritatea modulelor de sistem, pot
fi realizate în cadrul unei maşini extinse
interne.
Nivelul doi - unele module pot fi
executate în cadrul unei maşini extinse
externe, analogic proceselor
utilizatorului.
Modulele sistemului, plasate în cadrul
maşinii extinse, spre deosebire de
modulele care aparţin straturilor
proceselor, formează nucleul sistemului
de operare. Conceptu de maşină
ierarhică este pe larg utilizat în
proiectarea programelor mari utilizând
metodele, cunoscute sub denumirea programare modulară sau programare structurală. Nu există reguli
stricte în privinţa numărului de nivele, amplasării modulelor pe nivele, componenţa nucleului. De obicei,
nucleul conţine doar cele mai necesare şi evidente funcţii, celelalte, atunci când este posibil, vor fi prezente
ca procese de sistem separate.

3. Care este configuraţia unui PC?


Configurația de bază a unui calculator personal include o unitate centrală, un monitor, tastatură, mouse,
imprimantă și alte dispozitive de intrare/ieșire.
Unitatea centrală este compusă din placa de bază, procesor, memorie RAM (conectate prin magistrale),
unități de stocare și alte dispozitive.

4. Care sunt caracteristicile obligatorii ale unui sistem cu partajare a timpului?


Sunt sisteme care furnizează serviciile necesare unui număr mare de utilizatori, fiecare dintre ei
beneficiind de o mașină virtuală, echivalentă cu un calculator personal. De asemenea, aceste SO permit
transmiterea informațiilor de la un utilizator la altul, împărțind între utilizatori resursele hardware
disponibile: ceasul procesorului, memoria RAM și cea externă. Atributele unui astfel de sistem includ
pe cele ale unui calculator personal și ale unui sistem tranzacțional. Totuși partajarea resurselor tehnice
comune implică necesitatea unui grad înalt de eficacitate, dar și de siguranță pentru datele partajate. De
asemenea, o importanță mare o au disponibilitatea, fiabilitatea, securitatea, exploatarea optimă a
caracteristicilor resurselor fizice, calitatea interfeţei şi serviciilor utilizatorului, facilitatea adaptării şi
extensibilităţii.

5. Care sunt operaţiile executate la returul din procedură?


O procedură p (apelantă) provoacă execuţia unei proceduri q (apelate) cu ajutorul unei secvenţe de apel
care conţine următoarele etape:
 Pregătirea parametrilor, transmişi de către procedura p procedurii q,
 Salvarea parţială a contextului lui p, necesar la retur,
 Înlocuirea contextului procedurii p prin contextul lui q.
La revenire din procedura q avem o schemă simetrică, doar contextul lui q fiind pierdut:
1. Pregătirea rezultatelor, transmise de către procedura q procedurii p,
2. Restabilirea contextului procedurii p, salvat înainte de apel.◄

6. Ce este un apel al supervizorului?


Apel al supervizorului este o instructiune chemata sa provoace o comutare a contextului procesorului.
Acest proces este analogic apelarii unei proceduri, insa modificarea contextului este mai profunda
pentru ca ea afecteaza intreg cuvintul de stare , nu doar contorul ordinal.
Destinatia unui apel al supervizorului este aceea de a permite apelarea unei proceduri a sistemului de
operare, pretinzind la drepturi mai mari direct din programul utilizatorului.
Mecanismul comutarii contextului permite asigurarea protectiei , impunind careva conditii de intrare a
procedurii apelate, iar ca rezultat
- un context nou este specificat in noul cuvint de stare, fiind amplasat intr-o zona de memorie
inaccesibila pentru utilizatori;
- programul de tratare a apelului supervizorului incepe prin verificarea drepturilor utilizatorului de a
executa acest apel, si stabileste validarea parametrilor trimisi.

7. Descrieţi programul driverului pentru Intrările-Ieșirile sincrone.


Programul driver-ului
Fie că vrem să extragem o secvenţă de n caractere care se află într-un masiv T[0..n-1]. Caracterul T[i],
dacă i>0, poate fi extras doar dacă a fost transferat T[i-1]. Pentru a verifica această condiţie se testează
iterativ (aşteptare activă) indicatorul term.
iniţializare : term:=false;
TEST(adr_perif);
if nonpreg then
<tratare eroare>
endif;
for i:=0 to n-1 do
OUT(adr T[i],adr_perif);
ciclu : TEST(adr_perif);
if err then
<tratare eroare>
endif;
if nonterm then goto ciclu
endif;
endfor
Intrările-ieşirile sincrone sunt folosite la microprocesoarele cele mai simple sau atunci când procesorul
nu poate fi exploatat în mod util în timpul transferului.

8. Ce reprezintă primitivele fork şi join?


Primele primitive, propuse pentru gestionarea dinamică a proceselor, au fost fork şi join. Istoric şi
cronologic, aceste operaţii au fost introduse pentru organizarea executării paralele a programelor pe un
sistem multiprocesoral, noţiunea de proces nefiind încă clară.
Fie P o procedură. Instrucţiunea
id := fork(p),
executată de procesul p (părinte), creează un proces nou q (fiul), care va fi executat paralel cu p.
Primitiva fork prezintă ca rezultat identificatorul lui q (sau nil, dacă imposibilă).
După ce fork crează un proces fiu q, primitiva join q permite procesului părinte să fixeze un punct de
rendez-vous cu acest fiu. Executarea lui join q blochează procesul părinte până când q nu va executa
exit. Primitivele fork şi join au avantajele şi dezavantajele instrucţiunii go to din programarea
secvenţială.
9. Ce este modelul producătorului şi consumatorului şi unde se utilizează?
Un proces (producătorul) trimite mesaje unui alt proces (consumatorul), utilizând o zonă tampon în
memoria comună. Mesajele sunt de lungime fixă şi capacitatea tamponului este de N mesaje.
Specificaţiile comunicaţiei:
un mesaj dat poate fi preluat doar o singură dată după ce a fost depozitat în tampon,
un mesaj nu poate fi pierdut;
dacă tamponul conţine N mesaje nepreluate, nu pot fi depozitate alte mesaje,
o operaţie “imposibilă” blochează procesul, care încearcă să o execute.

Condiţiile de depăşire (n numărul de mesaje din tampon, care nu au fost încă preluate):
aut(depozitare) : n < N -- tamponul nu este plin
aut(preluare) : n > 0 -- tamponul nu este vid

Respectarea acestor restricţii este asigurată de un monitor tampon, utilizat astfel:


proces producător proces consumator
... ...
produce(mesaj); tampon.preluare(mesaj);
tampon.depozitare(mesaj); consumare(mesaj);
Bilet de examinare Nr. 11
1. Care este destinaţia resurselor hardware de protecţie a memoriei?
Protejarea memorie facilitează kernel-ul să limiteze accesul unui proces la memoria calculatorului. Există diferite metode de
protejare a memoriei, inclusiv segmentarea memoriei și paginarea. Toate metodele au nevoie de un anumit nivel de suport
hardware care nu există la toate calculatoarele.
n ambele cazuri (segmentare și paginare), anumiți regiștri din modul protejat, specifică procesorului ce adresă de memorie
ar trebui permisă pentru accesul unui program n curs de rulare. Tentativele de a accesa alte adrese vor declanșa ntreruperi
care vor determina procesorul să reintre n modul administrator, punând kernel-ul la conducere. Aceasta se numește ncălcare
a segmentării, denumită pe scurt Seg-V. Deoarece este foarte dificil să se atribuie un rezultat semnificativ unei astfel de
operațiuni și pentru că de obicei este un semn al unui program ce funcționează incorect, n general kernel-ul va recurge la
terminarea programului respectiv și va ntocmi apoi un raport de eroare.
Windows 3.1-Me a avut un anumit nivel de protecție a memoriei, dar programele puteau ușor ocoli necesitatea de a o folosi.
n Windows 9x toate aplicațiile MS-DOS rulau n modul administrator, oferindu-le control aproape nelimitat asupra
calculatorului. Sistemul va intra ntr-o protecție generală care va indica detectarea unei ncălcări de segmentare a memoriei.
n majoritatea sistemelor Linux, o parte din hard disk este rezervată pentru memoria virtuală, n momentul n care este
instalat sistemul de operare. Această operațiune este cunoscută sub denumirea de spațiu swap. Sistemul de operare Windows
utilizează un fișier swap n loc de o partiție.

2. Care sunt cele două moduri de utilizare a conceptului de m. Ex. în cazul sistemelor de operare?
Modulele sistemului, plasate în cadrul maşinii extinse, spre deosebire de modulele care aparţin straturilor proceselor,
formează nucleul sistemului de operare. Conceptu de maşină ierarhică este pe larg utilizat în proiectarea programelor mari
utilizând metodele, cunoscute sub denumirea programare modulară sau programare structurală. Nu există reguli stricte în
privinţa numărului de nivele, amplasării modulelor pe nivele, componenţa nucleului. De obicei, nucleul conţine doar cele
mai necesare şi evidente funcţii, celelalte, atunci când este posibil, vor fi prezente ca procese de sistem separate.

3. Care este secvenţa tipică de activităţi în cazul elaborării unui program pe un PC?
elaborarea unui program;
• introducerea programului cu ajutorul tastaturii şi a unui editor de texte;
• execuţia programului introducându-se datele necesare de la tastatură şi extrăgând rezultatele la display sau imprimantă;
• modificarea programului, dacă rezultatele nu sunt satisfăcătoare şi repetarea execuţiei;
• perfectarea versiunii finale a programului, inclusiv documentarea la necesitate a acestuia;
• exploatarea unui program;
• cererea de execuţie a unui program deja existent.
• afişarea rezultatelor pe ecran, listarea la imprimantă sau copierea lor într-un fişier pentru o utilizare ulterioară.

4. Descrieţi ce este starea şi contextul procesorului.


Starea procesorului este determinată de conținutul registrelor acestuia. Registrele pot fi:
 adresabile, numite registre generale, manipulate de programe,
 registre speciale - cuvânt de stare program (program status word, PSW).
PSW este un registru de control al sistemelor IBM 360 și a succesorilor acesteia, care îndeplinește rolul unui registru de
stare și a counter-ului de program în alte arhitecturi. Deși unele cîmăuri ale PSW pot fi modificate, utilizînd instrucțiuni,
care nu necesită privilegii, majoritatea pot fi schimbate doar prin intermediul instrucțiunilor privilegiate.
PSW, fiind un registru de 64 biți descrie:
 Masca întreruperilor
 Stările de privilegii
 Condiția codului
 Adresa intrucțiunii
Masca întreruperilor.
 Referitoare la contextul accesibil al memoriei şi drepturile de acces asociate: tabele de segmente, indicatori de
protecţie a memoriei, etc.
 Referitoare la derularea activităţii curente: codul condiţiei, contorul operaţiei următoare (contor ordinal). Pentru
unele calculatoare contorul, care conţine adresa operaţiei următoare, poate fi un registru distinct al cuvântului de
stare, pentru altele el este un câmp al acestui cuvânt.

5. Cum pot fi simulate instrucţiunile opţionale lipsă?


Simularea instrucţiunilor lipsă. Tentativa executării unei instrucţiuni opţionale lipsă generează o drivere de tipul instrucţiune
inexistentă. Realizarea prin program:
procedura iniţializare;
dev_nou:=<activ,master,mascat, adr tratare_deviere>;
csp[ADD_FL]:= <activ,slave,demascat, adr ADD_FL>;
……
csp [DIV_FL]:= <activ,slave,demascat, adr DIV_FL>;
procedura tratare deviere;
begin
save(zonă);
case cauză of
……
instrucţiune inexistentă:
cod_op:=Mp[dev_vechi.co].cod_operaţie;
case cod_op of
……
ADD_FL: determinarea operanzilor;
introdu_în_stivă(stivă_utilizator,dev_vechi.co+1);
încarcă_csp(csp[ADD_FL])
……
else -- caz de eroare
<tratarea erorii>
end;
end;
restabilire(zonă);
încarcă_csp(dev_vechi)
end

6. Descrieţi metoda I-E asincrone.


Specificarea mecanismului.
Terminarea procesului de transferare a caracterului T[i] este semnalizată printr-o întrerupere. Dacă acest caracter nu este
ultimul (i<n-1), următorul caracter poate fi transmis. Procesul este declanşat de transferul primului caracter. Acest transfer
este cerut de către programul principal prin intermediul unui apel a supervizorului (SVC intrare sau ieşire), care are drept
parametri:
adresa perifericului,
numărul de caractere care vor fi transferate,
adresa de origine sau de destinaţie a primului caracter,
booleanul term, valoarea TRUE a căruia semnalizează sfârşitul transferului.
Programul principal programul de tratare a întreruperii
term:=FALSE (la părăsirea lui T[i])
SVC i:=0;
ieşire OUT(adr T[i], adr_perif);
save context;
TEST(adr_perif);
… if err then
<tratare eroare>else
if i<n-1 then
<tratare paralelă> i:=i+1;
OUT(adr T[i], adr_perif)
… else
term:=TRUE
if term then endif
… endif;
<restabilire context>
7. Ce este un punct de sincronizare?
Restricţiile de sincronizare pot fi exprimate prin următoarele două forme echivalente:
1. Se va impune o ordine de succesiune în timp logic pentru unele puncte ale traiectoriei temporale ale procesului,
2. Se va impune unor procese o condiţie de autorizare a depăşirii acestor puncte ale traiectoriei lor temporale.
Punctele privilegiate astfel se vor numi puncte de sincronizare.
Vom utiliza noţiunea de aşteptare pentru specificarea sincronizării proceselor. Această specificare se va produce în două
etape:
definirea punctelor de sincronizare pentru fiecare proces,
asocierea unei condiţii de depăşire fiecărui punct de sincronizare, condiţie exprimată prin intermediul variabilelor de stare a
sistemului.
Vom ilustra acest mod de specificare pentru cele două exemple precedente. Notăm un punct de sincronizare prin ps, iar
condiţia de depăşire asociată prin aut(ps). Dacă această condiţie are valoare TRUE, procesul în cauză este autorizat să
execute instrucţiunea etichetată cu ps.
Exemplul 3.6: var f : boolean init false
procesul p procesul q
scriere(a); <debut_q>;
f:=true;
<continuare_p> ps : citire(a)
aut(ps) : f:=true
A fost introdusă variabila de stare f pentru a exprima condiţia “procesul p a terminat acţiunea scriere(a)”.◄
Bilet de examinare Nr. 12
1. Care este destinaţia resurselor hardware de întrerupere?
O întrerupere este comutarea contextului procesorului declanşată de o cauză externă derulării instrucţiunii curente. Fizic,
întreruperea înseamnă trimiterea unui semnal procesorului, acest semnal provocând schimbarea stării unuia dintre indicatorii,
consultaţi în cursul executării fiecărei instrucţiuni. Semnalul poate proveni de la alt procesor, de la un organ de I/E, de la un
dispozitiv extern, şi în genere, de la orice proces fizic, extern procesorului întrerupt. O întrerupere permite să cerem
procesorului să suspende executarea programului curent, din primul punct întreruptibil, şi să treacă la execuţia unui program
predefinit. Acesta din urmă este numit program de tratare a întreruperii. Programul de tratare a întreruperii este executat într-
un context diferit de cel al programului întrerupt, diferenţa fiind legată de modul de tratare, protecţie, informaţiile accesibile,
etc.

2. Ce reprezintă nivelurile maşinii extinse d.p.d.v. al unui sistem de operare?


Primul nivel - funcţiile cheie, utilizate de majoritatea modulelor de sistem, pot fi realizate în cadrul unei maşini extinse interne.
Nivelul doi - unele module pot fi executate în cadrul unei maşini extinse externe, analogic proceselor utilizatorului.
Modulele sistemului, plasate în cadrul maşinii extinse, spre deosebire de modulele care aparţin straturilor proceselor, formează
nucleul sistemului de operare. Conceptu de maşină ierarhică este pe larg utilizat în proiectarea programelor mari utilizând
metodele, cunoscute sub denumirea programare modulară sau programare structurală. Nu există reguli stricte în privinţa
numărului de nivele, amplasării modulelor pe nivele, componenţa nucleului. De obicei, nucleul conţine doar cele mai necesare şi
evidente funcţii, celelalte, atunci când este posibil, vor fi prezente ca procese de sistem separate.

3. Care este secvenţa tipică de activităţi în cazul exploatării unui program pe un PC?
Exemple de secvenţe tipice de activităţi în cazul unui PC:
• elaborarea unui program;
• introducerea programului cu ajutorul tastaturii şi a unui editor de texte;
• execuţia programului introducându-se datele necesare de la tastatură şi extrăgând rezultatele la display sau imprimantă;
• modificarea programului, dacă rezultatele nu sunt satisfăcătoare şi repetarea execuţiei;
• perfectarea versiunii finale a programului, inclusiv documentarea la necesitate a acestuia;
• exploatarea unui program;
• cererea de execuţie a unui program deja existent.
• afişarea rezultatelor pe ecran, listarea la imprimantă sau copierea lor într-un fişier pentru o utilizare ulterioară.

4. În ce constă concepţia tratării pe loturi?


Primele sisteme erau caracterizate prin prelucrarea secvenţială a taskurilor. Timpul de execuţie a programelor era relativ
mare, instrumentele de depanare – primitive, fiecare programator îşi încărca în mod individual programul (pachetul de
cartele perforate), apăsa butoane, controla conţinutul locaţiunilor de memorie, etc. (1950 – 1956).
Sporirea vitezei de calcul, dar şi a preţului calculatoarelor cerea o utilizare mai eficientă a timpului de calculator. Nu putea fi
tolerată situaţia ca un calculator să “nu facă nimic”, atunci când utilizatorul îşi încarcă în mod manual programul. Au fost
propuse programe de monitorizare (monitoare), care treceau de la o lucrare la alta în mod automat, utilizatorul fiind
responsabil de organizarea corectă a programelor în cadrul unui pachet – primele încercări de prelucrare pe loturi (1956 –
1959).

5. Ce înţelegem prin operaţii asincrone?


Pentru cazuri mai generale sunt necesare mecanisme suplimentare, cum ar fi conceptele de asincronism sau de protecţie
reciprocă între activităţi.
Prin asincronism înţelegem efectul care îl pot avea asupra derulării unei activităţi anumite evenimente exterioare.
Numim protecţie reciprocă între activităţi o modificare mai profundă a contextului, atunci când se trece de la o activitate la
alta, în comparaţie cu ceea ce are loc în cazul unei simple apelări de procedură.
Un caz tipic de asincronism este executarea intrărilor-ieşirilor simultan cu execuţia unui program. Trebuie să fie asigurată
posibilitatea informării programului despre terminarea unui transfer de informaţii.

6. Cum este măsurată capacitatea memoriei unui calculator?


Măsurarea capacităţii memoriei. Un sistem de operare presupune a fi utilizat pentru diverse configuraţii ale calculatorului.
Capacitatea memoriei, numărul şi natura dispozitivelor periferice, etc., pot fi diferite. Sistemul de operare trebuie să se
adapteze configuraţiei concrete, ca şi condiţiilor particulare de utilizare (număr de utilizatori, priorităţi, etc.). Crearea unei
asemenea versiuni specifice se numeşte generarea sistemului de operare. Pentru a reduce frecvenţa generărilor S.O. unii
parametri de configurare pot fi determinaţi în mod automat la iniţializare.
Astfel, poate fi determinată capacitatea memoriei operative utilizând o deviere pentru adresa amplasamentului de memorie
inexistent. Memoria constă dintr-un număr nbloc de blocuri (care trebuie determinat), fiecare bloc conţinând p cuvinte. Un
program executat la iniţializarea sistemului încearcă să acceseze ciclic primul cuvânt al fiecărui bloc; tentativa de accesare a
primului bloc inexistent în configuraţia curentă provoacă, prin deviere, părăsirea buclei. Numărul de blocuri este egal cu
numărul primului bloc neimplantat (blocurile fiind numerotate începând cu 0).

Realizarea prin program:


program principal:
begin
dev_nou:= <activ,master,mascat, adr măsurare>;
i:=1;
ciclu
<accesare cuvânt cu adresa i.p>;
i:=i+1;
endciclu;
ieşire ciclu: nbloc:=i;
dev_nou := <activ,master,mascat, adr tratare_deviere>;
end
procedura măsurare; -- apelare prin deviere
if cauză = adresă în afara memoriei then
csplucrare:= <activ,master,mascat, adr ieşire ciclu>;
încarcă_csp(csplucrare)
endif
La ieşirea din programul de măsurare a capacităţii memoriei se va restabili tratarea normală a devierilor (procedura
tratare_deviere).

7. Specificaţi problema I-E buferizate în memorie.


Diferenţa considerabilă dintre viteza de lucru a unităţii centrale şi cea a organelor periferice impune "buferizarea" intrărilor-
ieşirilor, adică introducerea unei zone-tampon de memorie între periferic şi programul utilizatorului. Scopul este de a reduce
timpul de inactivitate a unităţii centrale, dezlegând funcţionarea acesteia de periferice.
Programul utilizatorului va transfera informaţiile din sau spre zona-tampon, iar această zonă-tampon va servi, în mod paralel,
drept sursă sau destinaţie la schimbul de date cu perifericul. Dezlegarea unităţii centrale de periferic este cu atât mai bine
realizată cu cât este mai mare capacitatea zonei-tampon. Adesea, pentru a nu supraîncărca memoria principală, zona-tampon
este situată pe discul fix.
Pentru descrierea modelului sunt necesare următoarele specificaţii:
• schimburile de informaţii cu perifericele se va face prin înregistrări de lungime fixă,
• zona-tampon este de volum fix egal cu N înregistrări,
• pentru un program utilizator, schimbul de informaţii cu zona-tampon trebuie să simuleze schimbul cu perifericul, drept
consecinţă, ordinea de depozitare sau de extragere a informaţiilor trebuie să fie bine stabilită şi nici o înregistrare să nu
fie pierdută,
• aşteptările inutile trebuie reduse la minimum, atât în cazul unităţii centrale, cât şi a perifericului,
• capacitatea suporturilor nu este limitată: în cazul unei operaţii de citire organul de intrare va fi totdeauna alimentat; în
cazul unei operaţii de scriere, organul de ieşire poate accepta întotdeauna o înregistrare,
• transferul se va efectua fără eroare.

8. Care este necesitatea introducerii stării blocat şi tranziţiile datorate acestei stări?
Starea „blocat” a procesului face ca acesta să aştepte să se producă un anumit eveniment, a cărui apariţie este indispensabilă.

9. Ce este gestionarea dinamică a proceselor?


În sistemele cele mai simple procesele sunt în număr constant şi create odată pentru totdeauna la generarea sistemului de
operare. În sistemele performante, mai ales în cele interactive, procesele sunt comandate dinamic. Astfel, în Multics, un
proces nou este creat odată cu admiterea unui nou utilizator; în Unix, la executarea fiecărei comenzi.
Primitivele de creare şi distrugere a proceselor pot fi puse în şarja sistemului de operare sau la dispoziţia utilizatorilor.
Crearea unui proces presupune alocarea resurselor şi iniţializarea contextului. Distrugerea unui proces eliberează toate
resursele care i-au fost alocate.

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