Sunteți pe pagina 1din 1

Test laborator

Sisteme Operare
Ianuarie 2013 1
1. Creati un script shell (bash) prin care se rezolva un sistem de ecua?ii de gradul 1:
aX + bY = c
dX + eY = f
Script-ul sa ceara introducerea valorilor a, b, c, d, e ?i f, iar apoi sa afi?eze rezultatul (valorile
pentru X ?i Y).
2. Scrieti o aplicatie client-server dupa urmatorul scenariu: procesul server creeaza un pipe
cu nume si l deschide (deschidere read). Procesul client genereaza un proces client fiu.
Procesul client fiu va deschide pipe-ul cu nume (deschidere write), n capatul celalalt al
pipe-ului asteptnd procesul server n starea read. ntre procesul client parinte si
procesul client fiu se va deschide un pipe fara nume. Fluxul de date va fi urmatorul:
procesul client parinte va astepta un sir de caractere de la utilizator; acest sir (provenit
de la intrarea standard stdin) va fi trimis prin pipe-ul fara nume catre procesul client fiu,
care, la rndul sau, l va trimite mai departe prin pipe-ul cu nume catre procesul server.
Procesul server va receptiona acest sir de caractere si l va afisa pe iesirea standard
(stdout), mpreuna cu data si ora afisarii.
3. .,Scrieti un program n C care creeaza un proces parinte si un proces fiu, si care sa rezolve
problema producator/consumator. Procesul parinte sa fie producatorul, iar procesul fiu
sa fie consumatorul. Scenariul este astfel: producatorul creeaza (produce) cte un fisier
ntr-un anumit director, iar consumatorul sterge (consuma) acel fisier. n director poate fi
produs/creat doar un singur obiect (fisier), iar al doilea obiect va fi produs doar daca
primul este deja consumat/sters. Producatorul va produce un fisier doar daca directorul
este gol. Producerea si consumarea fisierelor se considera a fi realizate n sectiuni critice.
Pot semnalele sa furnizeze o cale sigura de rezolvare a acestei probleme ? Argumentati.
mpreuna cu codul sursa sa se prezinte algoritmul folosit pentru rezolvarea problemei.
4. Descrieti actiunile efectuate de nucleul unui sistem de operare atunci cnd are loc o
comutare de context ntre procese.