Sunteți pe pagina 1din 9

Definiti procesul.

Un proces este un program secvential in executie, impreuna cu zona sa de date, stiva si


numaratorul de instructiuni (program counter).
Orice proces este executat secvential, iar mai multe processe pot sa ruleze in paralel. De cele
mai multe ori, executia in paralel se realizeaza alocand pe rand procesorul cate unui proces. Desi la un
moment dat se executa un singur proces, in decurs de o secunda de exemplu, pot fi executate portiuni
din mai multe procese. Din aceasta schema rezulta ca un process se poate gasi, la un moment dat, in
una din urmatoarele stari:
- in executie (RUNNING) procesul se gaseste in executie atunci cand procesorul ii
executa instructiunile;
- pregatit pentru executie (READY) este un proces care, desi ar fi gata sa isi continue
executia, este lasat in asteptare din cauza ca un alt proces este in executie in mod voit sau
procesul efectureaza o operatie in afara procesorului, mare consumatoare de timp (cum e
cazul operatiilor de intrare iesire acestea sunt mai lente si intre timp procesorul ar
putea executa parti din alte procese);
- blocat (BLOCKED).

Cum se creeaza un proces?


Sunt patru pasi principali care duc la crearea unui proces:
- initializarea sistemului;
- executarea unui sistem de apel pentru crearea unui proces de catre un proces aflat deja in
rulare;
- o cerere de creare proces a utilizatorului;
- initializarea unui set de batch jobs (secventa de comenzi care se executa fara interventie
din afara).
Cum se incheie executia unui proces?
Un proces se poate incheia din cauza unuia din patru motive:
- iesire normala (voluntara);
- iesire pricinuita de eroare (voluntara);
- eroare fatala (involuntara);
- incheiere pricinuita de alt process (involuntar).
1. Normal exit (voluntar)
2. Error exit (voluntar)

3. Fatal error (involuntar)


4. Prin apelul de sistem kill (involuntar)
Caracterizati ierarhia de procese.
In unele sisteme, cand un proces creaza un altul, procesul parinte contiua sa fie asociet cu cel
copil. Procesul copil poate si el sa creeze unul sau mai multe procese, astfel creandu-se o ierarhie.
Un proces printe creeaz proprii si fii care la rndul lor pot crea alte procese.
n UNIX ierarhia format se numete grup de procese. Un proces printe nu poate dezmo teni
procesul fiu.
n Windows nu exist ierarhie de procese. Un proces printe dezmo tene te procesul fiu prin
pasarea handler-ului cu care controleaz procesul fiu, unui alt proces.

Descrieti starea procesului : Starea procesului (n execu ie, suspendat, etc.)

Cum se realizeaza implementarea unui proces.

Fiecare dispozitiv de I/O are asociat un vector de ntreruperi care conine adresele procedurilor
serviciului de ntreruperi. S presupunem ca procesul1 se afl n execu ie i are loc o
ntrerupere hardware.
1. La momentul ntreruperii PC, PSW(program status word) i regi trii afereni
procesului sunt stocai n stiv.
2. Computerul trece apoi la adresa specificat de vectorul de ntrerupere (din acest
moment prsim zona hardware)
3. La apelul procedurii, se salveaz regi trii procesului1 n tabela de procese (se
realizeaz n cod de asamblare).
4. Se golete stiva i SP puncteaz ctre o stiv temporar utilizat de rutina
procesului2(se realizeaz n cod de asamblare).
5. Se execut rutina procesului2 i se apeleaz o procedur scris n limbaj evoluat (C)
care realizeaz task-ul pentru care procesul2 a fost lansat.
6. Planificatorul de procese preia controlul i decide care proces va fi lansat ulterior
procesului2.

Ce reprezinta un thread?
Threadul este cea mai mica unitate de procesare care poate fi programata de un sistem de
operare.
Fire de execuie-Thread
(a) Trei procese, fiecare deine propriul thread
(b) Un proces cu trei thread-uri

Ce inseamna multithreading?

Termenul multithread se poate referi la faptul ca mai multe threaduri exista in acelasi proces
sau rularea in paralel a mai multor threaduri, echivalentul mai multor procese rulate pe acelasi
calculator.
Modele:
Kernel-level threading threaduri create de utilizator care au corespondenta 1-1 cu entitati
din kernel. Este cea mai simpla implementare de threaduri.
User-level threading (many to one)- toate threadurile de la nivel de aplicatie ajung intr-o
singura entitate de la nivel kernel. Singurul dezavantaj major este ca nu poate beneficia de accelerare
hardware pe procesoarele multithread sau pe sistemele multi-procesor.
Hybrid threading (many to many) un numar de threaduri de aplicatii ajung la un numar de
entitati kernel (procesoare virtuale). Acesta este un compromis intre ULT si KLT. Este mai complex
de implementat decat celelalte doua.
Descrieti modelul unui thread.

Proprieti deinute de toate thread-urile unui proces


Proprieti individuale ale fiecrui thread

Fiecare thread deine propria lui stiv

Justificati necesitatea threadurilor.


Principalul motiv pentru existenta threadurilor este ca in multe aplicatii au loc mai multe
activitati in acelasi timp,care se pot bloca ocazional. Prin descompunerea unor astfel de aplicatii in
secvente thread care ruleaza cvasi paralel, modelul de programare devine mai simplu.
Un alt motiv este ca sunt mai usor de creat si distrus decat procesele dat fiind faptul ca nu au
resurse atasate.
Dati exemplu de utilizare a thread-urilor.
Un procesor word cu trei thread-uri:

A multithreaded Web server:

Trei modaliti de dezvoltare a unui server web:

Ce reprezinta o masina cu stari finite?


Masinile cu stari finite reprezinta o metoda foarte eficienta pentru modelarea circuitelor
secventiale. Prin modelarea masinilor cu stari finite intr-un limbaj de descriere hardware si utilizarea
programelor, programatorul se poate concentra asupra modelarii secventei dorite de operatii fara a-si
pune problema in privinta implementarii circuitului (aceasta operatie este lasata programului).
Care sunt avantajele si dezavantajele thread-urilor?
Ele partajeaza acelasi spatiu de adrese si sunt mai rapide decat procesele (la task-switch, nu se
mai schimba si spatial de adrese).
Marele dezavantaj este problema la sincronizare.
Fiecare thread are propriul context, format din registri CPU si stiva.
Descriei ULT, KLT.

Care sunt avantajele i dezavantajele ULT, KLT?


Caracterizai implementrile hibride ale thread-urilor.

Descrieti thread-urile pop-up.


Sunt threaduri create de sistem la aparitia unui mesaj, pentru a se ocupa de mesajul respectiv.

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