Sunteți pe pagina 1din 15

1.

Un sistem de operare reprezinta un set de programe care asigura gestionarea


resurselor unui sistem de calcul, implementand algoritmi destinati sa
maximizeze performantele si sa realizeze o interfata intre utilizator si sistemul
de calcul, extinzand, dar simplificand setul de operatii disponibile.
2. Tehnica de inmagazinare pe benzi sau disk-uri se numeste job spooling.
3. Functiile unui sistem de operare:
a. Interfata cu utilizatorul
b. Gestiunea fisierelor
c. Gestiunea memoriei
d. Gestiunea proceselor
e. Tratarea erorilor
f. Gestiunea sistemului
4. Tipuri de nucleu:
a. monolithic
b. modular
c. extensibil
d. multinivel
e. micronucleu(microkernel)
5. Microkernelul: sistemul de operare e alcatuit din mai multe procese, fiecare
asigurand anumite servicii
6. Din punct de vedere al accesului la memorie, sistemele de operare pot fi:
a. UMA: uniform memory access
b. NUMA: non uniform memory access
c. NORMA: no remote memory access
7. Taskurile pot fi:
a. Sporadice
b. Aperiodice
c. Periodice
8. Din punct de vedere al importantei deadline-ului, sistemele de timp reale pot
fi:
a. Hard real time: actiunea unui task ce depaseste deadline-ul este 0 sau
negative
b. Soft read time: daca actiunea unui task depaseste deadline-ul, are o valoare
indiferenta
9. Windows 2000, Hardware Abstraction Layer(HAL): izoleaza sistemul de
operare de specificul platformei hardware
10.
Un sistem de operare contine doua mari parti: partea de control si
partea de servicii
11.
Drivere: transforma apelurile functiilor I/O ale utilizatorului in cereri
specific componentei hardware
12.
Executia unui proces se poate face in doua moduri:
a. Modul utilizator: procesele au acces numai la propria zona de stiva, date si
cod
b. Modul nucleu: procesul contine instructiuni privilegiate si poate avea acces la
structurile de date ale nucleului
13.
Procesul este un program in executie.
14.
Procesele sunt create:
a. La initializarea sistemului(reboot)
b. La executia unui apel de functie pentru crearea de procese(fork())
c. La cererea unui utilizator de creare a unui proces
d. La initializarea unui job
15.
Procesele sunt terminate:

a.
b.
c.
d.
16.
17.
a.

Normal: terminarea programului(voluntar)


Eroare: terminare cu eroare(voluntar)
Fatal error: divide by 0, core dump(involuntar)
Terminat de un alt proces(involuntar)
Prioritate: baza(60)+utilizare_recenta_CPU/constanta(2)+valoare_nice(0)
Zona U este caracterizate de:
Un pointer la intrarea in tabela proceselor corespunzatoare procesului la care
este atasata zona U
b. Identificatorul utilizatorului real si efectiv
c. Timpii de executie ai procesului si descendentilor sai in mod nucleu si in mod
utilizator
d. Modul de reactie a procesului la semnale
e. Identificatorul terminalului de control
f. Eroarea aparuta in timpul apelului unei functii de sistem
g. Valoarea returnata de o functie sistem
h. Parametru de I/O
i. Directorul current
j. Tabela descriptorilor de fisiere utilizator(TDFU)
k. Dimensiunea limita a procesului si a fisierelor
l. Masca pentru drepturile de acces la fisierele create
18.
Proces Control Block: furnizeaza date cu privire la identificarea
procesului, informatiile de stare(registri vizibili utilizatorului), informatiile de
control ale procesului
19.
Tabela proceselor contine urmatoarele campuri:
a. Starea procesului
b. Localizarea procesului in memoria interna sau in memoria secundara folosita
pentru swapping
c. Dimensiunea procesului
d. Identificatorii atasati utilizatorului si grupului sau
e. Identificatorul procesului
f. Descriptorul evenimentului care a produs trecerea procesului in starea de
asteptare
g. Parametric de planificare pentru obtinerea procesului
h. Semnalele trimise procesului, dar inca netratate
i. Diferiti timpi care indica timpul de executie in mod utilizator si in mod nucleu
pentru calculul prioritatii procesului; un camp folosit pentru SIGALARM
20.
Tabela regiunilor per proces: poate intra in tabela proceselor, in zona
u, sau intr-o zona de memoria alocata acestui scop
21.
Contextual unui proces consta din:
a. Contextual utilizator
b. Contextual registrelor
c. Contextual nivel nucleu
22.
Pasii care se executa la o schimbare de context sunt:
a. Decizia daca trebuie sa se execute o schimbare de context
b. Salvarea contextului vechiului proces
c. Alegerea noului proces de catre planificatorul de procese
d. Restaurarea contextului noului proces
23.
Un THREAD reprezinta unul sau mai multe subtask-uri in cadrul task-ului
executat de un proces
24.
Relatiile intre thread-uri si procese:
a. 1 la 1: fiecare proces are un singur thread
b. n la 1: fiecare proces poate avea mai multe thread-uri(cel mai folosit caz)

c. 1 la n: intalnit in unele sisteme distribuite; un thread se poate muta pe masini


diferite si in spatii diferite
d. n la n: conbinatie intre cele doua de mai sus: se poate comuta intre domenii
diferite pentru a realize anumite operatii cheie
25.
Operatiile care se pot realize asupra thread-urilor:
a. spawn: crearea unui nou proces
b. block: astptarea unui eveniment
c. unblock: aparitie unui eveniment duce la deblocare
d. finish: terminarea threadului
26.
Lightweight proces(Procese usoare - LWP): aceste procese pot fi
vazute ca un intermediar intre threadurile utilizator si threadurile kernel
suporta unul sau mai multe threduri utilizator care vor corepunde unui thread
kernel
27.
Zombie: proces terminat, dar din diferite motive inca mai are structura sa
in tabela de procese
28.
Sincronizarea este actiunea ce permite modificarea starii un proces
29.
Zona de program prin care se apeleaza o resursa critica se numeste
sectiune critica(SC)
30.
Accesul unor procese la resursele critice se face printr-un protocol de
excludere mutual(EM) ce presupune o sincronizare ce permite modificarea
starii proceselor si eventual comunicatii
31.
Descriptorul de fisier descrie starea fisierelor utilizate de un proces
32.
In proiectarea semafoarelor trebuie avute in vedere urmatoarele
situatii:
a. Sectiunile critice trebuie incadrate de P si V, ceea ce unerori este mai greu de
urmarit
b. Un proces nu poate fi distrus in SC
c. Verificarea corectitudinii programelor nu este usoare
d. Gestiunea cozii poate duce la aparitia unor problem de proiectare
33.
Semafoare private: numai un singur proces Q poate aplica P si V asupra
lui, celelalte procese putand executa V. valoarea initiala a unui semafor privat
este 0
34.
Un monitor reprezinta o structura de date formata din
a. Variabile de sincronizare, numite si variabile conditii
b. Resurse partajate si proceduri de acces la resurse(resursele pot fi externe sau
interne)
35.
Din momentul in care se acceseaza o procedura a monitorului, un proces
trece prin urmatoarele stari:
a. Asteptare in coada de intrare a monitorului
b. Asteptatea intr-o coada pe o variabila de conditie(wait)
c. Suspendarea prin executia signal, care reacctiveaza un proces in asteptare pe
o variabila de conditie
d. Executia normala instructiunilor unei procedure din monitor
36.
Starile proceselor in cazul sincronizarii folosind bariere:
a. Toate procesele, mai putin unul, ajung la bariera si sunt blocate
b. Ultimul proces ajunge la bariera
c. Toate procesele isi continua executia mai departe
Dezavantaj: se consuma timp CPU inutil daca nu este echilibrata
incarcarea proceselor
37.
Algoritmul de asteptare activa. Dezavantaje: consumarea inutila de
timp CPU pentru un proces care asteapta si gradul ridicat de dificultate in

elaborarea protocoalelor de intrare si iesire, lucru ce poate duce pe langa


neclaritati la aparitia de erori
38.
Se numeste blocaj situatia in care o resursa ceruta de un proces este
mentinuta in starea ocupat de catre alt proces aflat la randul lui in asteptarea
eliberarii unei resurse
39.
Etapele parcurse de un proces pentru obtinerea unei resurse sunt:
a. Cererea de acces: daca cererea nu este satisfacuta imediat, procesul este
nevoit sa astepte
b. Utilizare: procesul poate folosi resursa
c. Eliberare: procesul elibereaza resursa
40.
Resursele pot fi:
a. Reutilizabile: utilizate de un proces si apoi eliberate pentru a putea fi utilizate
de alte procese(timp CPU, canale I/O, memoria principala si virtuala, fisiere,
baze de date, semafoare)
b. Consumabile(intreruperi, semnale, mesaje, informatii din bufferele de I/O)
41.
Un set de procese se afla in stare de interblocare atunci cand
oricare proces din set se afla in asteptarea unui eveniment ce poate fi produs
numai de catre un alt proces din setul respective
42.
Interblocare apare in sistem daca si numai daca sunt indeplinite simultan
urmatoarele conditii
a. Excluderea mutual
b. Ocuparea si asteptarea
c. Imposibilitatea achiziionarii fortate
d. Asteptarea circular
43.
Daca graful de alocare al resurselor nu contine bucle, atunci in sistem
nu exista interblocare.
44.
Daca fiecare tip de resursa este format dintr-un singur element, atunci
existenta unei bucle in cadrul grafului arata ca in sistem a aparut interblocare
45.
Inlaturarea planificarii nepreemtive:
a. Daca unui proces ii sunt blocate unele cereri, atunci el sa elibereze resursele
allocate
b. Daca un proces cere o resursa care este alocata altui proces, SO poate
preempta al doilea proces si sa ii ceara sa elibereze resursa
46.
Inlaturarea asteptarii circulare:
a. Definirea unei ordonari liniare a resurselor(o prioritate)
b. Odata ce o resursa a fost obtinuta, numai resursele care urmeaza din lista pot
fi obtinute
47.
Detectarea blocajelor: strategii de rezolvare a situatiilor in care se
detecteaza blocaje:
a. Sunt oprite toate procesele blocate
b. Se salveaza starea proceselor blocate la un moment anterior aparitiei
blocajului(checkpoint)
c. Se restarteaza procesele(este posibil sa se ajunga la un nou blocaj)
d. Procesele sunt oprite succesiv pana cand nu iese din starea de blocaj
e. Alocarea preemptive a resurselor pana la disparitia blocajului
48.
Criteria de selectie a proceselor blocate:
a. Cel mai putin timp procesor consumat pana in present
b. Cele mai putine rezultate produse pana in present
c. Cel mai mult timp de rulare ramas estimat
d. Cele mai putine resurse alocate din totalul celor cerute pana in present
e. Cea ma mica prioritate
49.
Revenirea din blocaje, solutii posibile:

a. Oprirea tuturor proceselor blocate; se presupune ca avem puncte de control a


rularii si mecanisme pentru restartarea proceselor din acele puncte de
control; este posibil sa se ajunga din nou la blocaj(se presupune ca daca
avem sufficient timp, blocajul nu va aparea)
b. Procesele sunt oprite succesiv pana cand se iese din starea de blocaj
c. Alocare preemptiva a resurselor pana la disparitia blocajului
d. Restartarea proceselor de la punctul anterior obtinerii resurselor
e. Achizitionarea fortata a resurselor de la anumite procese si alocarea lor altor
procese pana la eliminarea blocajului
50.
Evitarea blocajelor: nu se permite startarea unui proces daca cererile de
resurse pot duce la blocaj; nu se permit cererile successive de resurse ale unui
proces daca alocarea lor poate duce la blocaj
51.
Planificarea nepreemptiva: cand un proces trece din starea running in
starea waiting si cand un proces este terminat
52.
Planificarea preemptive: cand un proces trece din starea running in
starea ready si cand un proces poate trece din starea waiting in starea ready
53.
Modalitatea de interventie stabileste momentele in care planificatorul
intra in actiune
54.
Functia de prioritate are ca argument procesele si parametrica
sistemului
55.
Regula de arbitraj stabileste o ordine in caz de prioritati egale(servirea
in ordine cronologica, servirea circular sau aleatoare)
56.
Inversarea unei prioritati apare atunci cand un proces de prioritate
scazuta acceseaza o sectiune critica, apoi un proces de prioritate mare
acceseaza si el SC respective si se blocheaza
57.
Mostenirea prioritatii: de fiecare data cand un proces detine o SC
pentru care asteapta si alte procese, i se acorda respectivului proces maximul
prioritatii proceselor aflate in asteptare
58.
Efectul de convoi: apare cand o multime de procese au nevoie de o
resursa pentru un timp scurt, iar un altul detine resursa pentru un timp mult mai
lung, blocandu-le pe primele
59.
Linux: avem trei algoritmi(clase) de planificare:
a. FIFO real-time
b. Round-robin real-time
c. Non-real-time
60.
Memoria cache contine informatiile cele mai recente utilizate de CPU
61.
Memoria operativa contine programele si datele pentru toate procesele
existente in sistem
62.
Memoria expandata: mecanism ce permite ca mai multe chipuri de
memorie operative sa aiba, alternative, aceeasi adresa de memorie; astfel,
avem de-a face cu memoria secundara care are ca support memoria interna
63.
Memoria de arhivare este gestionata de utilizator si consta din fisiere,
baze de date etc rezistente pe diferite suporturi de stocare a informatiei
64.
Adresarea relativa: se foloseste pentru realizarea de salturi intr-un
program, precizandu-se sensul si numarul de locatii pentru care trebuie sarit
pentru a ajunge la noua adresa
65.
Alocarea cu partitii fixe: se mai numeste si alocare statica si presupune
decuparea memoriei in zone de lungime fixa numite partitii
66.
Alocarea absoluta: se face pentru programe pregatite de editorul de
legaturi pentru a fi rulate intr-o zona de memorie si numai acolo

67.
Alocarea relocabila: adresarea in partitie se face cu baza si
deplasament; la incarcarea in memorie a programului, in registrul lui de baza se
pune adresa de inceput partitiei
68.
Alocarea cu partitii variabile: in functie de solicitari si de capacitatea
de memorie ramasa disponibila la un moment dat, numarul si dimensiunea
partitilor se modifica automat
69.
Alocarea paginate a memoriei: instuctiunile si datele fiecarui program
sunt impartite in zone de memorie de lungime fixa, numite pagini virtuale.
Paginile virtuale se pastreaza in memoria secundara. Memoria operativa se
pastreaza, este impartita in zone de lungime fixa, numite pagini fizice sau
cadrane. Fiecare proces are propria lui tabela de pagini, in care este trecuta
adresa fizica a paginii virtuale, daca ea este prezenta in memoria operativa
70.
Alocarea segmentata a memorie: introduce faptul ca textul unui
program poate fi plasat in zone de memorie distincte, fiecare zona continand o
bucata de program numit segment
71.
Alocarea segmentata si paginata a memoriei: fiecare proces are
propria lui tabela de segmente. Fiecare segment are propria lui tabela de pagini.
Fiecare intrare in tabela de segmente are un camp rezervat: adresa de inceput a
tabelei de pagini proprii segmentului
72.
Memoria virtuala este o tehnica ce permite executia proceselor chiar
daca acestea nu se afla integral in memorie. Un avantaj direct este acela al
rularii unor programe cu dimensiuni mai mari decat cele ale memoriei fizice.
73.
Paginarea la cerere: nu se introduce in memorie intregul program ci
numai cateva pagini, atunci cand sunt necesare
74.
Daca se incearca folosirea unei pagini care nu este inca in memorie, se va
genera o eroare de tip pagina lipsa.
75.
Anomalia lui Belady: rata de aparitie a erorilor de tip lipsa sa creasca o
data cu cresterea numarului de cadre alocate si nu sa scada cum ar fi normal
76.
Alforitmul LRU(Last recently used): alege pagina cu cea mai lunga
durata de neutilizare.
77.
Algoritmul a doua sansa: in momentul verificarii starii ueni pagini se
inspecteaza bitul de referire asociabil. Daca este 0, pagina va fi inlocuita, daca
are valoarea 1, I se da paginii o a doua sansa(bitul de referire asociat primeste
valoarea 0 iar timpul de sosire in memorie porneste valoarea momentului
curent), trecandu-se(in ordinea FIFO) la verificarea starii urmatoarei pagini.
78.
Algoritmul LFU(last frequently use): selecteaza pentru inlocuire
pagina care are asociat cel mai mic numar de referiri
79.
Algoritmul MFU(most frequently use): considera ca pagina care are
asociat cel mai mic numar de referiri este probabil cel mai recent introduce in
memorie si este posibil ca programul sa o foloseasca in continuare
80.
Metode de alocare a cadrelor: metoda primei potriviri(First Fit):
memoria solicitata este alocata in prima zona in care incape; principalul avantaj
este simplitatea cautarii de spatiu liber
81.
Metoda celei mai bune potrivi(Best Fit): se cauta aceasta zona libera
care dupa alocare lasa cel mai putin spatiu liber
82.
Metoda celei mai rele potriviri(Worst Fit): se cauta zonele libere care
dupa alocare lasa cel mai mult spatiu liber

83.
Metoda alocarii prin camarazi(Buddy-System): aceasta metoda
exploateaza reprezentarea binara a adreselor si faptul ca din ratiuni tehnologice,
dimensiunea memoriei interne este un multiplu al unei puteri a lui doi
84.
Linux:
a. alocarea paginilor(algoritmul Buddy)
b. inlocuirea paginii(a doua sansa)
c. alocarea memoriei pentru kernel(algoritmul Buddy)
85.
Fisiere de tip pile(gramada): datele sunt calculate in ordinea in care
apar; scopul este acumularea si salvarea unei cantitati de date; inregistrarile pot
avea campuri diferite; nu au o strucutura bine definita; accesul la o inregistrare
poate fi foarte costisitor din punct de vedere al timpului
86.
Fisiere cu organizare secventiala: inregistrarile au un format fix;
cautarea intr-un astfel de fisier implica procesarea tuturor inregistrarilor; este
dificila inregistrarea unor articole noi, o solutie ar fi folosirea unei liste inlantuite
pentru organizarea structurii fisierului
87.
Fisiere cu acces direct prin pozitie: are articole cu format fix care sunt
plasate in sectoare vecine; Solutia se poate extinde cu mici modificari si la
fisiere cu format variabil
88.
Fisiere inverse: contine pentru fiecare cheie specificata de utilizator
adresele disc la care se afla articolele care contin cheia respective
89.
Fisiere multilista: fiecarei chei dintr-un articol ii este atasata un pointer
catre articolul urmator care contine aceeasi cheie
90.
Fisiere secventiale indexate: articolele vor fi scrise pe suport in acces
secvential si plasate in ordinea crescatoare a indexului. Articolele sunt grupate
in blocuri de informatii numite pagini
91.
Fisiere selective: materializeaza functia de regasire printr-un simplu
calcul efectuat de CPU
92.
Fisiere organizate folosind B-arbori: fiecare nor este prevazut cu m
locuri in care pot fi memorate m chei. In fiecare nod pot fi maxim m chei si
minim m/2
93.
B-arborele: contine chei numai in nodurile terminale(Frunze ale arborelui)
94.
B-arborele extins: adaugarea unei informatii de zestre pe langa fiecare
pointer din B-arbore, informatie ce consta dintr-un numar intreg care retine care
cheie contine subarborele indicat de pointer
95.
FAT(File Allocation Table): pastreaza informatiile legate de spatiul
alocat fiecarui fisier
96.
Alocarea contigua: un fisier pe disc trebuie sa ocupe un set de adrese
consecutive pe disc
97.
Alocarea inlantuita: fiecare fisier este inregistrat intr-un sir de blocuri
legate intre ele printr-o lista inlantuita
98. Alocare indexata: pe langa blocurile atasate fisierului, la crearea fisierul
respective, creeaza un bloc special numit bloc de index
99. Journal File System(JFS): scrierile pe disc sunt realizate asincron, datorita
faptului ca dupa terminarea unei cereri de scriere la disc, informatiile sunt
inregistrate in log-uri si apoi facute modificari in tabela descriptorilor de fisier
100.
HPTS(High performance File System): organizeaza discul in volume si
rezerva primele 18 sectoare pentru blocul de boot, superbloc si blocul de
rezerva. Aceste blocuri contin informatii de control, care sunt utilizate pentru
initializarea sistemului, gestiunea sistemului de fisiere si refacerea sistemului de
fisiere dupa producerea de erori

101.
Sisteme de fisiere distribuite: permit distribuirea sistemului de fisiere
pe masini diferite fizic, pastrand totusi datele disponibile de pe aceste masini.
Un avantaj imediat este backup-ul usor al datelor si managmentul acestora:
RFS, NFS-UNIX, COS, Active Directory - Windows
102.
Dispozitivele de I/O sunt formate dintr-o component mecanica si una
electronic numita controller. Un Controller poate gestiona mai multe dispozitive
identice
103.
DMA(Direct Memory Acces): blocurile de date sunt mutate direct in
memorie fara implicarea procesorului procesorul este implicat numai la
inceputul si sfarsitul operatiei
104.
Dispozitivele de I/O:
a. dispozitive bloc(discul)
b. dispozitive caracter(imprimanta, mouse, terminale, adaptoare de retea)
105.
Algoritmul FEEDBACK: se foloseste cand nu se cunoaste timpul de care
mai are nevoie un proces ca sa isi termine executia. Sunt penalizate procesele
care ruleaza prea mult si pot duce la aparitia fenomenului de infometare,
daca nu variem algoritmii de planificare si prioritate in functie de cozile de
asteptare
106.
Algoritmul SCAN: miscarea capetelor incepe de la ultimul cilindru la
primul si serveste toate cererile pe care le primeste. Dupa servirea cererii de la
adresa cea mai mica de cilindrul solicitat, capetele isi schimba sensul de mers,
servind cererile aparute ulterior, servind cererile de pe cilindul solicitat cu cea
mai mare adresa, apoi schimbadu-si sensul.

Definiii Sisteme de Operare - SO

Un sistem de operare reprezinta un set de programe care asigura gestionarea


resurselor unui sistem de calcul implementand algoritmi destinati sa maximizeze
performantele si realizeaza o interfata intre uilizator si sistemul de calcul, extinzand dar
totusi si simplificand setul de operatii disponibile.
Job spooning este tehnica de inmagazinare pe benzi sau discuri.
Functiile unui sistem de operare sunt: interfata cu utilizatorul, gestiunea fisierelor,
gestiunea memoriei, gestiunea proceselor, tratarea erorilor, gestiunea sistemului.
Tipurile de nucleu sunt: monolitic, modular, extensibil, multinivel, micronucleu(microkernel = in care SO este alcatuit din mai multe procese fiecare asigurand mai multe
servicii).
Dupa accesul la memorie SO pot fi: UMA(uniform access memory), NUMA(non uniform
access memory), NORMA(no remote memory access).
Task-urile pot fi: sporadice, periodice si aperiodice.
Dupa importanta deadline-ului SO sunt: hard(actiunea unui task ce depaseste deadlineul este 0 sau negativ), soft(actiunea unui task ce depaseste deadline-ul este
indiferenta).

Drivere-le transforma actiunile de I/O ale utilizatorului in cereri specifice componentei


hardware.
Un sistem de operare contine doua parti: de control si servicii.
Procesul este un program in executie.
Executia unui proces se poate face in 2 moduri: utilizator (procesele au acces numai la
propria zona de cod, date si stiva utilizator), nucleu(procesul contine instructiuni
privilegiate si poate avea acces la structuri de date ale nucleului).
Crearea proceselor se poate face: la initializarea sistemului(reboot), la executia unui
apel de functie pentru crearea unui proces(fork), la cererea utilizatorului de a crea un
nou proces, la initializarea unui job.
Terminarea proceselor este: normala(terminarea programului - voluntar),
eroare(terminare cu eroare - voluntar), fatal error(divide by 0), core dump(involuntar),
terminata de un alt proces(involuntar).
Zona u este caracterizata de: un pointer la intrarea in tabela proceselor
corespunzatoare procesului la care este atasata zona u, identificatorul utilizatorului real
si efectiv, timpii de executie al procesului si descendentilor sai in modul utilizator si
nucleu, modul de reactie a procesului la semnale, identificatorul terminalului de control,
eroarea aparuta in timpul apelului unei reactii de sistem, valoare returnata de o functie
de sistem, parametrii de I/O, directorul curent, tabela descriptorilor de fisiere
utilizator(TDFU), dimensiunea limitata a procesului si a fisierelor, masca pentru
drepturile de acces la fisierele create.
Process Control Block furnizeaza date cu privire la identificarea procesului, informatiile
de stare(registri vizibili utilizatorului), informatiile de control al procesului.
Tabela proceselor contine urmatoarele campuri: starea procesului, localizarea
procesului in memoria interna sau in memorie secundara folosita pentru swapping,
dimensiunea procesului, identificatorii atasati utilizatorului si grupului sau,
identificatorul procesului, descriptorul evenimentului care a produs trecerea procesului
in starea de asteptare, parametrii de planificare pentru obtinerea procesului, semnale
trimise procesului inca netratate, diferiti timpi care indica timpul de executie in mod
utilizator si in mod nucleu pentru calculul prioritatii procesului.
Tabela regiunilor per proces poate intra in tabela proceselor, in zona u sau intr-o zona
de memorie alocata acestui scop.
Contextul unui proces consta din: contextul utilizator, contextul registrelor, contextul
nivel nucleu.
La o schimbare de proces se executa pasii: decizia daca trebuie sa se execute o
schimbare de context, salvarea contextului vechiului proces, alegerea noului proces de
catre planificatorul de procese, restaurarea contextului noului proces.
Thread-ul este unul sau mai multe subtask-uri in cadrul task-ului executat de un proces.

Relatii intre thread-uri si procese: 1 la 1 (fiecare proces are un singur thread), n la 1


(fiecare proces are mai multe thread-uri), 1 la n (poate comuta intre masini diferite
pentru a realiza anumite operatii cheie), n la n (poate comuta intre domenii diferite
pentru a realiza unele operatii cheie).
Operatiile care se pot excuta asupra thread-urilor sunt: spawn, block, unblock,finish.
Lightweight processes pot fi vazute ca un intermediar intre thread-urile utilizatorului si
thread-urile kernel.
Zombie reprezinta un proces terminat dar care totusi se mai gaseste in tabela de
procese.
Sincronizarea este actiunea ce permite modificarea starii unui proces.
Sectiunea critica este zona de program prin care se apeleaza o resursa critica.
Protocol de excludere mutuala este procedura prin care se face accesul unor procese la
resursele critice ce presupune o sincronizare ce permite modificarea starii proceselor si
eventual comunicatiei.
Descriptorul de fisier descrie starea fisierelor utilizate de proces.
In proiectarea semafoarelor trebuie avute in vedere urmatoarele: sectiunile critice
trebuie incadrate de P si V ceea ce uneori este mai greu de urmarit, un proces nu poate
fi distrus in sectiunea critica, verificarea corectitudinii programelor nu este usoara,
gestiunea cozii poate duce la aparitia unor probleme de proiectare.
Semafoare private: numai un singur proces Q poate aplica P si V asupra lui, celelalte
procese putand executa numai V. Valoarea initiala a unui semafor privat este 0.
Un monitor este o structura de data formata din variabilele de
sincronizare(conditie),resurse partajate si proceduri de acces la resurse. Procedurile pot
fi interne sau externe. Din momentul in care se acceseaza o procedura a monitorului,
un proces trece prin starile urmatoare: asteptare in coada de intrare a monitorului,
asteptarea intr-o coada pe o variabila de conditie (wait), suspendarea prin executia
signal, care reactioneaza un proces de asteptare pe o variabila de conditie, executia
normala instructiunilor unei proceduri din monitor.
Starile unui proces in cazul sincronizarii folosind bariere: toate procesele mai putin
ajung unul ajung la bariera si sunt blocate, ultimul proces ajunge la bariera, toate
procesele isi continua executia mai departe (dezavantaj se consuma timp CPU util dar
nu este echilibrata incarcarea proceselor).
Algoritmul de asteptare activa consuma timp util CPU pentru un proces care asteapta si
are un grad ridicat de dificultate in elaborarea protocoalelor de intrare si iesire lucru ce
poate duce pe langa neclaritati si la aparitia de erori.
Blocaj-ul este situatia in care o resursa ceruta de un proces este mentinuta in starea
ocupat de catre alt proces aflat la randul lui in asteptarea eliberarii unei resurse.

Obtinerea unei resurse se face prin parcurgerea etapelor: cerere de acces (daca
cererea nu este satisfacuta imediat procesul este nevoit sa astepte), utilizarea
(procesul poate folosi resursa), eliberare (procesul elibereaza resursa).
Resursele pot fi: reutilizabile (utilizate de un proces si apoi eliberate pentru a putea fi
utilizate de alte procese timp CPU, canale I/O, memorie principala si virtuala, fisiere,
baze de date, semafoare) sau consumabile (intreruperi, semnale, mesaje, informatii din
buffer-ele I/O ).
Interblocare. Un set de procese se afla in starea de interblocare atunci cand oricare
proces din set se afla in asteptarea unui eveniment ce poate fi produs numai de catre
un alt proces din setul respectiv. Interblocarea apare in sistem daca si numai daca sunt
indeplinite conditiile: excludere mutuala, ocupare si asteptare, imposibilitatea
achizitionarii fortate, asteptare circulara. Daca graful de alocare al resurselor nu contine
bucle atunci in sistem nu exista interblocare. Daca fiecare tip de resursa este format
dintr-un singur tip element atunci existenta unei bucle in cadrul grafului arata ca in
sistem a aparut o interblocare.
Inlaturarea planificarii nepreemptive: daca unui proces ii sunt blocate unele cereri
atunci elementele trebuie sa elibereze resursele alocate, daca un proces cere o resursa
care este alocata altui proces, SO poate preempta al doilea proces si sa ii ceara sa
elibereze resursa.
Inlaturarea asteptarii circulare: definirea unei ordonari liniare a resurselor (o prioritate),
o data ce o resursa a fost obtinuta, numai resursele care urmeaza din lista pot fi
obtinute.
Detectarea blocajelor: Strategii de rezolvare a situatiilor in care se detecteaza blocaje:
sunt oprite toate procesele blocate, se salveaza starea proceselor blocate la un anumit
moment anterior aparitiei blocajului (checkpoint) si se restarteaza procesele (este
posibil sa se ajunga din nou la blocaj), procesele sunt oprite succesiv pana cand se iese
din starea de blocaj, alocarea preemptiva a resurselor duce la disparitia blocajului.
Criterii de selectie a proceselor blocate: cel mai putin timp procesor consumat pana in
prezent, cele mai putine rezultate produse pana in prezent, cel mai mult timp de rulare
ramas estimat, cele mai putine resurse alocate din totalul celor cerute pana in prezent,
cea mai mica prioritate.
Oprirea blocajelor presupune faptul ca procesele sunt oprite succesiv pana cand se iese
din starea de blocaj. Alocarea preemptiva a resurselor se face pana la disparitia
blocajului.
Evitarea blocajelor: nu se permite startarea unui proces daca cererilede resurse pot
duce la blocaj, nu se permit cererile succesive de resurse ale unui proces daca alocarea
lor poate duce la blocaj.
Planificarea nepreemptiva: cand un proces trece din starea running in starea ready si
cand un proces este terminat.

Planificare preemptiva: cand un proces trece din starea running in starea ready si din
starea waiting in starea ready.
Modalitatea de interventie stabileste momentele in care planificatorul intra in actiune.
Functia de prioritate are ca argumente procesele si parametrii sistemului.
Regula de arbitraj stabileste o ordine in caz de prioritati egale (servirea in ordine
cronologica, servirea circulara sau aleatoare).
Inversarea unei prioritati apare atunci cand un proces de prioritate scazuta acceseaza o
sectiune critica apoi apare un proces de prioritate mare care foloseste si el sectiunea
critica si astfel se blocheaza.
Mostenire a prioritatii: de fiecare data cand un proces detine o sectiune critica pentru
care asteapta si alte procese i se acorda respectivului proces maximul prioritatii
proceselor aflate in asteptare.
Efectul de convoi apare cand o multime de procese are nevoie de o resursa pentru un
timp scurt, iar un altul detine resursa pentru un timp mai indelungat blocandu-le pe
primele.
Linux: avem 3 logaritmi (clase) de planificare FIFO real-time; round-rolin real-time;
non-real-time.
Memoria cache contine informatiile cele mai recent utilizate de CPU.
Memoria operativa contine programele si datele pentru toate procesele existente in
sistem.
Memoria expandata este un mecanism ce permite ca mai multe chip-uri de memorie
operativa sa aiba, alternativ, aceeasi adresa de memorie. Astfel avem de-a face cu
memorie secundara care are ca suport memoria interna.
Memoria de arhivare este gestionata de utilizator si consta din fisiere, baze de date
rezidente pe diferite suporturi de stocare a informatiei.
Adresarea relativa se foloseste pentru realizarea de salturi intr-un program, precizanduse sensul si numarul de locatii peste care trebuie sarit pentru a ajunge la noua adresa.
Alocarea cu partitii simple se mai numeste si alocare statica si presupune decuparea
memoriei in zone de lungime fixa numite partitii.6
Alocarea absoluta se face pentru programe pregatite de editorul de legaturi pentru a fi
rulate intr-o zona de memorie si numai acolo.
Alocarea relocabila este adresarea in partitie si se face cu baza si deplasament la
incarcarea in memorie a programului, in registrul lui de baza se pune adresa de inceput
a partitiei.

Alocarea cu partitii variabile se face in functie de solicitari si de capacitatea memoriei


raasa disponibila la un moment dat, numarul si dimensiunea partitiilor se modifica
automat.
Alocarea paginata a memoriei: instructiunile si datele fiecarui program sunt impartite in
zone de lungime fixa, numite pagini virtuale. Paginile virtuale se pastreaza in memoria
secundara memoria operativa este impartita in zone de lungime fixa, numite pagini
fixe sau cadre. Fiecare proces are propria lui tabela de pagina, in care este trecuta
adresa fizica a paginii virtuale, daca ea este prezentata in memoria operativa.
Alocarea segmentata a memoriei introduce faptul ca textul unui program poate fi plasat
in zone de memorie destincte, fiecare zona continand o bucata de program numita
segment.
Memoria virtuala este o tehnica ce permite executia proceselor chiar daca acestea nu
se afla integral in memorie. Un avantaj distinct este acela al rularii unor programe de
dimensiuni mai mari decat cele ale memoriei fizice.
Paginarea la cerere: nu se introduce in memorie intregul program ci numai cateva
pagini atunci cand sunt necesare. Daca se incearca folosirea unei pagini care nu este
inca in memorie se va genera o eroare de genul pagina lipsa.
Anomalia lui Balady: rata de aparitie a erorilor de tip lipsa sa creasca odata cu
cresterea numarului de cadre alocate si nu sa scada cum ar fi normal.
Algoritmul LRU(last recently used) alege pagina cu cea mai lunga durata de
neutilizare.
Algoritmul a doua sansa in momentul verificarii starii unei pagini se inspecteaza
bitul de referire asociat. Daca este 0 atunci pagina va fi inlocuita. Daca este 1 atunci i
se da paginii o a doua sansa (bitul de referire asociat primeste valoarea 0 iar in timpul
de sosire in memorie primeste valoarea momentului curent), trecandu-se (in ordinea
FIFO) la verificarea starii urmatoarei pagini.
Algoritmul LFU(least frequently used) selecteaza pentru inlocuire pagina care are
asociat cel mai mic numar de referire.
Algoritmul MFU(most frequently used) considera ca pagina care are asociat cel mai
mic numar de referiri este probabil cea mai recent introdusa in memorie si este posibil
sa o foloseasca in continuare.
Metoda primei potriviri (First Fit) memoria solicitata este alocata in prima zona in care
incape, principalul avantaj fiind simplitatea cautarii de spatiu liber.
Metoda celei mai bune potriviri (Best Fit) se cauta accea zona libera care dupa alocare
lasa cel mai putin spatiu liber.
Metoda celei mai rele potriviri (Worst Fit) se cauta zonele libere care dupa alocare lasa
cel mai mult spatiu liber.

Metoda alocarii prin camarazi (Buddy -system) aceasta metoda exploateaza


reprezentarea liniara a adreselor si faptul ca din ratiuni tehnologice, dimensiunea
memoriei interne este un multiplu al unei puteri a lui doi.
Fisiere de tip pile (gramada) datele sunt colectate in ordinea in care apar, scopul
fiind acumularea si salvarea unei cantitati de date, inregistrarile putand avea campuri
diferite. Nu au o structura bine definita si accesul la o inregistrare poate fi foarte
costisitor din punct de vedere a timpului.
Fisiere cu organizare secventiala inregistrarile au un format fix, cautarea intr-un astfel
de fisier implica procesarea tuturor inregistrarilor, este dificila inregistrarea unor
articole noi, o solutie fiind folosirea unei liste inlantuite pentru organizarea structurii
fisierului.
Fisiere cu acces direct prin pozitie are articole cu format fix care sunt plasate in
sectoare vecine, solutia putandu-se extinde cu mici modificari si la fisierele cu format
variabil.
Fisiere inverse contine pentru fiecare cheie specificata de utilizator adresele disc la
care se afla articolele care contin cheia respectiva.
Fisiere multilista fiecare cheie dintr-un articol ii este atasat un pointer catre articolul
urmator care contine aceeasi cheie.
Fisiere secvential indexate articolele vor fi scrise pe suport in acces secvential si sunt
plasate in ordinea crescatoare a indexului. Articolele sunt grupate in blocuri de
informatii numite pagini.
Fisiere selective materializeaza functia de regasire printr-un singur calcul efectuat de
CPU.
Fisiere organizate folosind B-arbori fiecare nod este prevazut cu m locuri in care pot fi
memorate m chei, pot fi maximum m chei si minimum m/2 chei.
B-arborele contine chei numai in nodurile terminale. B-arborele extins permite
adaugarea unei informatii de zestre pe langa fiecare pointer din B-arbore.
FAT(File Allocation Table) pastram informatiile legate de spatiul alocat fiecarui fisier.
Alocarea inlantuita un fisier este inregistrat intr-un sir de blocuri legate intre ele printro lista inlantuita.
Alocarea contigua un fisier pe disc trebuie sa ocupe un set de adrese consecutive pe
disc.
Alocarea indexata pe langa blocurile atasate fisierului, la crearea fisierului respectiv,
creeaza un bloc special numit bloc de index.
JFS (Journal File System) scrierile pe disc sunt realizate asincron datorita faptului ca
dupa terminarea unei cereri de sosire la disc informatiile sunt inregistrate in log-uri si
apoi sunt facute modificarile in tabela descriptorilor de fisier.

HPFS (High Performance File System) organizeaza discul in volume si rezerva primele
18 sectoare pentru blocul de boot, superbloc si blocul de rezerva. Aceste blocuri contin
informatiile de control care sunt utilizate pentru initializarea sistemului, gestiunea
sistemului de fisiere si refacerea sistemului de fisiere dupa producerea de erori.
Sisteme de fisiere distribuite permit distribuirea sistemului de fisiere pe masini diferite
fizic, pastrand totusi datele disponibile de pe acele masini. Un avantaj imediat este
backup-ul usor al datelor si managementul acestora. RFS, NFS-UNIX, Active DirectoryWindows.
Dispozitivele de I/Osunt formate dintr-o componenta mecanica si una electronica
numita controller. Un astfel de controller poate gestiona mai multe dispozitive identice.
DMA(Direct Memory Access) blocurile de date sunt mutate direct in memorie fara
implicarea procesorului, acesta fiind implicat numai la inceputul si sfarsitul operatiei.
Dispozitivele de I/O: dispozitive bloc (discul), dispozitive caracter (imprimanta, mouse,
terminale, adaptoare de retea).
Blocaj situatia in care o resursa ceruta de un proces este mentinuta in starea ocupat
de catre alt proces aflat la randul lui in asteptarea eliberarii unei resurse.
Conditii de interblocare: excludere mutuala, ocupare si astptare, imposibilitatea
achizitionarii fortate, asteptare circulara.
Algoritmul feedback se foloseste cand nu se cunoaste timpul de care mai are nevoie
un proces ca sa-si termine executia. Sunt penalizate procesele care ruleaza prea mult si
pot duce la aparitia fenomenului de infometare. Nu variem algoritmul de planificare si
prioritatile in functie de caile de asteptare.
Algoritmul SCAN miscarea capetelor incepe de la ultimul cilindru catre primul si
serveste toate cererile pe care le primeste. Dupa servirea cererii de la adresa cea mai
mica de cilindru solicitat, capetele isi schimba sensul de mers, servind cererile aparute
ulterior iar apoi cererile de pe cilindrul solicitat cu cea mai mare adresa,apoi iar se
schimba sensul.
Registre mapate: Comunicatia dintre controller-e si unitatea central se realizeaz
prin intermediul unor registre, care de cele mai multe ori fac parte din spatiul de
adrese de memorie (sunt mapate n memorie memory mapped I/O). Aceste
registre mapate n memorie se acceseaz la fel ca orice locatie de memorie,
singura diferent fiind timpul de acces mai redus. Aceste registre sunt utilizate de
sistemul de operare pentru a nscrie parametri si comenzi si pentru a citi starea
dispozitivului respectiv si codurile de eroare.

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