Sunteți pe pagina 1din 12

Tema pentru laboratorul 3

 Să se determine toți utilizatorii (studenți) de pe serverul linux.scs.ubbcluj.ro care au pagină web


știind că directoarele lor personale se afla structurate pe ani și apoi pe grupe (în interiorul fiecarui
an) în directorul /home/scs. (Un utilizator are pagină de web dacă în directorul sau personal
există un director numit "public_html")

ALTE ENUNTURI DE PROBLEME ... IN CAZ CA VRETI SA EXERSATI

 Să se scrie un script shell care tot citește nume de utilizatori de la intrarea standard (nu ca
parametri!). Pentru fiecare utilizator citit, el va afișa ultimele 3 conectări (logări) ale acestuia (în
luna curentă), iar dacă acesta nu s-a conectat deloc în luna curentă va afișa mesajul "userul x nu
s-a conectat niciodată".

 Să se scrie un script shell care primește ca parametru un nume de director. Scriptul va șterge
fiecare fișier sursă C din directorul respectiv și va tipări sortat fiecare fișier ASCII text (nu numai
cele care au extensia .txt) din acest director.
 Să se scrie un script shell care primește ca parametru un nume de director și va determina
numărul total de linii din toate fișierele text din acest director și din toate subdirectoarele acestuia.
Se presupune că orice director va conține doar fișiere text.
 Să se scrie un script shell care primește ca parametrii un fișier cu utilizatori și un altul care
conține un text oarecare. Scriptul va trimite un mail fiecărui utilizator din primul fișier, acest mail
având ca și conținut textul din cel de-al doilea fișier.
 Să se scrie un script shell care îmi listează conținutul directorului curent. Se vor face trei afișări:
una sortată după numele fișierelor, alta după timpul ultimului acces la ele și cea de-a treia, după
dimensiunea în bytes a acestora.
 Să se scrie un script shell care îmi verifică dacă un număr este prim sau nu.
 Să se scrie un script shell care primește ca parametru un nume de utilizator. Să se determine
numele întreg al acelui utilizator și dacă el/ea este conectat(a) la sistem.
 Să se scrie un script shell care determină toate fișierele din directorul curent și din
subdirectoarele acestuia care au drept de scriere pentru others. (Din punct de vedere al accesului
la un fișier, utilizatorii se împart în 3 categorii: proprietar, grup și alții (others). Fiecare utilizator din
aceste grupuri poate avea 3 drepturi asupra fișierului respectiv: citire-r, scriere-w și execuție-x.)
 Se va scrie un script shell care compară conținutul a doua fișiere text și va tipări primele 5 linii
diferite.
 Să se scrie un script shell care numără procesele unui anumit utilizator dat ca parametru în linia
de comandă.
 Să se scrie un script shell care să afișeze numele complet și stația de pe care s-a logat fiecare
utilizator conectat la sistem.
 Să se scrie un script shell care va tipări numele de utilizator, numele complet al utilizatorului (full
user name) și directorul personal al tuturor utilizatorilor din sistem - nu numai a celor conectați.
(Utilizatorii unui sistem unix sunt reținuți în fișierul /etc/passwd)
 Să se scrie un script shell care va redenumi toate fișierele ".txt" din directorul curent și din toate
subdirectoarele acestuia, dându-le extensia ".ascii".
Tema pentru laboratorul 4
Prima problemă se rezolvă cu sed, iar cea de a doua cu grep.

 Să se schimbe între ele cuvintele de pe pozițiile 1 și 3 din fișierele date ca parametri. Cuvintele
conțin doar litere și sunt separate prin orice alt caracter.
 Să se afișeze numele tuturor utilizatorilor dați ca parametri linia de comandă care nu s-au
conectat niciodată la serverul curent.

ALTE ENUNTURI DE PROBLEME ... IN CAZ CA VRETI SA EXERSATI

 Să se șteargă toate liniile din fișierele date ca parametri care conțin un anumit text indicat într-un
prim parametru. (s)
 Să se șteargă din primele 30 de linii din fișierele date ca parametri acelea care conțin textul
indicat de primul parametru.(s)
 Să se înlocuiască într-un fișier text toate aparițiile unor numere formate dintr-o singură cifră astfel:
numărul format din cifra 1 se va locui cu cuvântul 'un', numărul 2 cu cuvântul 'doi', etc. Numerele
din 2 sau mai multe cifre nu se schimbă (de ex. 11). (s)
 Pentru o listă de directoare date ca parametri (și din subdirectoarele acestora) să se șteargă
toate fișierele al căror nume sunt date în fișierul dat ca prim parametru. (g)
 Pentru anumiți utilizatori dați linia de comandă se cere să se afișeze dacă au lucrat la o anumită
dată sau nu. (g)
 Se cere să se șteargă toate aparițiile cuvintelor date ca parametri din fișierul care este dat ca
prim parametru. (s)
 Să se înlocuiască al treilea cuvânt din fiecare linie cu primul cuvânt. Cuvintele sunt separate de ':'
și conțin doar litere sau cifre. (s)
 Să se convertească un fișier html într-un fișier text folosind comanda sed (să se elimine tot
conținutul fișierului html aflat între caracterele '<' și '>'). (s)
 Să se afișeze conținutul tuturor fișierelor text din directorul dat ca parametru linia de comandă și
din subdirectoarele lui.(g)
 (g)
 Să se înlocuiască toate caracterele care nu sunt litere mari cu un caracter indicat de primul
parametru. Fișierele tratate sunt indicate de ceilalți parametri. (s)
 Să se afișeze numele tuturor utilizatorilor din sistem care fac parte dintr-un anumit grup al cărui
identificator este dat ca parametru linia de comanda. Să se afișeze și numele grupului. (g)
 Să se afișeze numele tuturor fișierelor binare din directoarele date ca parametri linia de comandă
și din subdirectoarele acestora. (g)
 Să se afișeze pentru fiecare utilizator din linia de comandă, un mesaj indicând dacă este permisa
sau nu listarea conținutului directorului gazdă. (g)
 Să se șteargă cuvintele de pe pozițiile 2 și 4 din fișierele indicate ca parametri. Cuvintele conțin
doar litere sau cifre și sunt despărțite prin spațiu. (s)
 Să se șteargă toate cuvintele care conțin cel puțin o cifră din fișierele date ca parametri. (s)
 Să se afișeze numele fișierelor din linia de comandă care conțin un anumit cuvânt dat și el ca
parametru linia de comandă. Se cere să se afișeze și numărul acestor fișiere. (g)
 Să se înlocuiască toate vocalele litere mici din fișierele date ca parametri cu litere mari
corespunzătoare și viceversa. (s)
 Să se adauge în fața fiecărei litere mici cuvântul indicat ca prim parametru. Fișierele tratate sunt
ceilalți parametri din linia de comanda. (s)
 Pentru o listă de servere date ca parametri linia de comandă se cere să se afișeze dacă sunt
accesibile sau nu. Pentru a se testa dacă un server este accesibil sau nu se poate folosi
comanda ping. (g)
 Să se afișeze numele tuturor utilizatorilor care execută o anumită comanda dată ca
parametru. (g)
 Să se afișeze numele tuturor utilizatorilor care s-au conectat la serverul curent într-o anumita dată
și de la o anumită mașina date ca parametri linia de comandă. (g)
 (s)
 Pentru o anumită listă de utilizatori, dată linia de comandă, se cere să se afișeze dacă lucrează
sau nu. (g)

Tema pentru laboratorul 5


 Să se afișeze dintr-o listă de fișiere numele acelui fișier care are număr maxim de cuvinte și
numărul cuvintelor.

ALTE ENUNTURI DE PROBLEME ... IN CAZ CA VRETI SA EXERSATI

 Să se calculeze si afișeze login-ul și suma cifrelor din login pentru fiecare utilizator din sistem
care are login-ul compus dintr-o combinație alfanumerică.
 Să se afișeze pentru o mașina Linux numărul mediu de utilizatori pentru un interval orar (hh:mm-
hh:mm) în decursul unei luni calendaristice. Se va folosi comanda last.
 Să se facă suma tuturor câmpurilor, care reprezintă numere valide, din liniile unui fișier . La
terminarea analizei lui să se afișeze suma obținută și raportul dintre numărul de linii care conțin
numere valide și cele care nu conțin deloc numere valide. Aceasta să se facă pentru oricâte
fișiere. (Ex: Suma =XXXXXX ContineNr/NuContineNR = 100 / 25)
 Să se afișeze din fiecare fișier numerele liniilor care au lungimea cel puțin 10. De asemenea să
se afișeze conținutul liniilor respective mai puțin primele 10 caractere. La terminarea analizei unui
anumit fișier se va afișa numele fișierului și numărul de linii care au fost afișate.
 Să se afișeze conținutul oricâtor fișiere după cum urmează: primul fișier afișat așa cum este iar
fișierul următor cu cuvintele din linii cuvintele fiind separate de :) scrise în ordine inversă. (Modul
de afișare se reia pentru fișierele următoare).
 Să se afișeze numele tuturor fișierelor din linia de comandă care conțin propoziții în care se
repeta un cuvânt mai mult sau egal de două ori. Se va afișa deasemenea pentru fiecare
asemenea caz numărul liniei și cuvântul implicat.(prima sa apariție în propoziția respectivă)
 Să se înlocuiască într-un număr oarecare de fișiere orice apariție a unui anumit cuvânt cu un alt
cuvânt; cuvintele respective vor fi date în linia de comandă awk ca și parametri).
 Să se afișeze pentru oricâte fișiere, pentru liniile din acestea care sunt mai lungi de 30 de
caractere, numărul liniei (din cadrul fișierului), primul cuvânt și ultimul.
 Să se afișeze liniile din fișiere care conțin un același cuvânt aflat în pozitii consecutive. Pentru
liniile respective să se afișeze și numărul liniei precum și cuvântul implicat.(în cadrul fișierului din
care face parte).
 Să se afișeze conținutul oricâtor fișiere, fiecare fișier fiind afișat începând cu ultima linie,
continuând cu cea anterioara acesteia s.a.m.d.
 Să se afișeze pentru fiecare fișier din linia de comandă raportul dintre numărul de vocale și
numărul de consoane.
Ex (file1.txt v/c = 123/12).
 Să se afișeze numărul de fișiere din linia de comanda a lui awk, numărul total de cuvinte și
numărul mediu de cuvinte din fișiere.

 Să se afișeze pentru fiecare fișier: numele acestuia, și numărul mediu de cuvinte per linie per
fișier (media numărului de cuvinte pentru liniile fișierului). Se va afișa și media numărului de
cuvinte pentru toate fișierele luate la un loc.
 Să se afișeze pentru o mașina Unix login-ul și numărul utilizatorilor care au fost logați în sistem
într-un interval orar al unei date (acești parametri vor fi specificați în linia de comandă). (hh:mm-
hh:mm 10-oct-2002). Data se poate specifica în orice format. Se va folosi eventual comanda last.

Tema pentru laboratorul 6


 Se dă un fișier text. Să se creeze un director care să conțină 26 de fișiere dicționar, astfel: primul
fișier conține, ordonate alfabetic, câte unul pe linie, toate cuvintele din fisierul text care încep cu
litera 'A', al doilea cu litera 'B' s.a.m.d.

ALTE ENUNTURI DE PROBLEME ... IN CAZ CA VRETI SA EXERSATI

 Se dă un program C. Să se determine, pentru fiecare funcție definită în program, numărul


locurilor unde este apelată, afișându-se și numerele de linii din program unde apar aceste apeluri.
 Se dă un fișier cu studenții grupei ordonați în funcție de media notelor primite la sesiunea din
iarna. Dându-se pentru fiecare student notele la cele 5 examene din vară (în fișierul 'notevara') să
se actualizeze fișierul inițial și să se afișeze studenții care vor primi bursă (media peste 8.50).
 Să se scrie un program Shell care primește ca parametri două nume de directoare și mută
ramura desemnată de cel de-al doilea director ca subramura a primului, adăugând extensia .unu
la fiecare fișier.

 Să se scrie un program de supraveghere care acționează astfel: la fiecare conectare și
deconectare din sistem a unor anumiți utilizatori (furnizați ca parametri) va salva într-un fișier
numele, ora, dacă este vorba despre conectare sau deconectare și serverul la care s-a produs
acțiunea.
 Se dă un program Pascal. Să se determine pentru fiecare procedură definită în program numărul
locurilor unde este apelată, afișându-se și numerele de linii din program unde apar aceste apeluri.
 Să se scrie un program Shell de supraveghere care salvează într-un fișier toți utilizatorii care
lansează comanda ftp, precizând ora, și (dacă este accesibil) serverul la care se încearcă
realizarea conexiunii ftp.
 Să se scrie un program Shell care, începând din directorul dat ca parametru, în jos, face o lista a
tuturor numelor care apar (fișiere și directoare), și pentru fiecare nume de fișier afișează numărul
maxim al liniilor care se repetă (în același fișier).
 Să se scrie un program Shell de supraveghere care să acționeze astfel: la fiecare nouă conectare
în sistem, pe terminalul de la care s-a realizat conectarea, să se afișeze o listă a tuturor
utilizatorilor activi din sistem și în dreptul fiecarul utilizator să se afișeze numărul proceselor active
lansate de către acesta.
 Pentru o listă de nume de fișiere dată și pentru un director dat, să se afișeze pentru fiecare nume
de fișier toate subdirectoarele în care acesta apare. Să se afișeze subdirectoarele în ordinea
descrescătoare a datei creării fișierului.
 Se dă un fișier cu studenții grupei ordonați în funcție de media notelor primite la sesiunea din
iarna. Dându-se pentru fiecare student notele la cele 5 examene din vara (în fișierul 'notevara') să
se actualizeze fișierul inițial astfel încât sa conțină clasamentul real pe anul universitar respectiv.
 Se dă un fișier text. Să se creeze un director care să conțină 10 de fișiere dicționar, astfel: primul
fișier conține, ordonate alfabetic, câte unul pe linie, toate cuvintele din fișierul text care încep cu
cifra '0', al doilea cu cifra '1' s.a.m.d.
 Să se scrie un program Shell care primește ca parametri două nume de directoare și mută
ramura desemnată de cel de-al doilea director ca subramura a primului, dar se copiază numai cu
fișierele .txt
 Pentru o listă de nume de fișiere dată și pentru un director dat, să se afișeze pentru fiecare nume
de fișier toate subdirectoarele în care acesta apare. Să se afișeze subdirectoarele în ordinea
descrescătoare a dimensiunii fișierului. (Un fișier poate avea dimensiuni diferite in subdiretoare
diferite).
 Să se scrie un program Shell care, începând din directorul dat ca parametru, în jos, face o lista a
tuturor numelor care apar (fișiere și directoare), și pentru fiecare nume de fișier afișează numărul
fișierelor cu același nume.
 Se dă un program C. Să se determine, pentru fiecare variabilă globală definită în program,
numărul locurilor unde este folosită, afișându-se și numerele de linii din program unde apare prin
referință.

Tema pentru laboratorul 8


 Se cere sa se elimine numerele pare dintr-un fisier. Numele fisierului se va transmite programului
ca si parametru in linia de comanda.

ALTE ENUNTURI DE PROBLEME ... IN CAZ CA VRETI SA EXERSATI

 Sa se afiseze la iesirea standard continutul unui fiser text adaugand cate o linie goala dupa
fiecare linie de text. Nu se vor face presupuneri referitoate la lungimea maxima a unei linii.
Numele fisierului se va transmite programului ca si parametru in linia de comanda.
 Sa se numere toate literele fiecarei linii dintr-un fisier. Nu se vor face presupuneri referitoare la
lungimea maxima a unei linii.
 Sa se scrie un program care primeste in linia de comanda ca si parametrii doua cuvinte si numele
unui fisier. Programul va afisa la iesirea standard continutul fisierului, inlocuind aparitiile primului
cuvant cu al doilea.
 Sa se scrie un program care sterge dintr-un fisier octetii aflati la adrese pare. Numele fisierului se
va transmite programului ca si parametru in linia de comanda.
 Sa se intercaleze liniile a doua fisiere care se presupune a fi ordonate. Numele celor doua fisiere
se vor transmite programului ca si parametrii in linia de comanda.

 Sa se afiseze la iesirea standard continutul unui fiser text stergand fiecare linie goala din fisier.
Nu se vor face presupuneri referitoate la lungimea maxima a unei linii. Numele fisierului se va
transmite programului ca si parametru in linia de comanda.
 Sa se numere toate cifrele fiecarei linii dintr-un fisier. Nu se vor face presupuneri referitoare la
lungimea maxima a unei linii.
 Sa se inverseza ordinea octetilor dintr-un fisier. Numele fisierului se va transmite programului ca
si parametru in linia de comanda.
 Sa se compare continutul a doua fisiere date ca si parametri in linia de comanda. Comparatia se
va face pe blocuri de cate 1KB. Programul va afisa numarul de blocuri din fiecare fisier si numarul
de blocuri identice gasite.
 Sa se numere cuvintele fiecarei linii dintr-un fisier. Nu se vor face presupuneri referitoare la
lungimea maxima a unei linii.
 Sa se scrie un program care primeste in linia de comanda ca si parametrii numele unui fisier si
mai multe cuvinte. Programul va afisa la iesirea standard continutul fisierului, stergand aparitiile
tuturor cuvintelor date ca parametrii. Nu se vor face presupuneri referitoate la numarul de cuvinte
date in linia de comanda.
 Sa se scrie un program care primeste in linia de comanda ca si parametrii un numar si numele
unui fisier. Programul va sterge din fisier aparitiile pare ale numarului.
 Sa se scrie un program care duplica intr-un fisier octetii aflati la adrese impare. Numele fisierului
se va transmite programului ca si parametru in linia de comanda.
 Sa se scrie un program care primeste in linia de comanda ca si parametrii un cuvant si numele
unui fisier. Programul va sterge din fisier aparitiile cuvantului.
 Sa se numere toate caracterele fiecarei linii dintr-un fisier. Nu se vor face presupuneri referitoare
la lungimea maxima a unei linii.

Tema pentru laboratorul 9


 Să se calculeze suma unui șir de numere folosind metoda divide et impera: un proces împarte
șirul în două subșiruri pe care le dă altor două procese (fii) să le calculeze suma, după care
adună cele două rezultate obținute. Procesele fii aplică în continuare aceeași tehnică.

ALTE ENUNTURI DE PROBLEME ... IN CAZ CA VRETI SA EXERSATI

 Fie un fișier ce conține în ordine primele N numere naturale. Fie Pi procesul care elimină toți
multiplii lui i cuprinși în intervalul de la 2 la N dat. Folosind un număr adecvat de astfel de procese
să se scrie un program care determină toate numerele prime cuprinse între 1 și N dat.
 Fie Pi procesul ce verifica dacă i este un divizor pentru N dat și determină ordinul de multiplicitate
al acestui divizor. Lansând în execuție o structură adecvata de astfel de procese, să se
descompună în factori primi numarul N dat.
 Fie Pi procesul ce determină frecvența de apariție a literei i într-un text dat. Să se scrie un
program care afișează o statistică relativ la frecvența de apariție a fiecarei litere.
 Se dă un șir de numere. Să se calculeze suma cuburilor acestor numere, astfel încât cubul
fiecărui element al șirului să fie calculat de câte un proces.
 Se dă un șir de litere. Folosind în cate un proces pentru fiecare vocala, sa se elimine toate
vocalele din acest sir.

 Fie un fișier ce conține N numere întregi. Folosind două tipuri de procese (unul pentru
determinarea minimului și celălalt pentru determinarea maximului valorilor dintr-un șir de
numere), să se scrie un program care determină cel de-al k-lea element în ordine crescătoare a
unui șir de numere întregi, fără a ordona șirul.
 Un număr natural este perfect dacă este egal cu suma divizorilor săi diferiți de el însuși. Folosind
un număr adecvat de procese să se scrie un program care determină toate numerele perfecte
mai mici decit N dat.
 Să se calculeze produsul unui șir de n numere folosind metoda divide et impera: Un proces
împarte șirul în două subșiruri pe care le dă altor două subprocese (fii) să le înmulțească, după
care înmulțește rezultatele obținute. Cele două subprocese fii aplică în continuare aceeași
metodă.
 Se dă expresia aritmetică (a+b*c) / (a-b+d-c) + a*b*c*d. Să se scrie un program care determină
valoarea acestei expresii, astfel încât fiecare operație aritmetică să fie executată de câte un
proces.
 Se dă un șir de numere x1, x2, ..., xn. Să se calculeze sumele parțiale x1, x1+x2, x1+x2+x3, ...,
x1+x2+...+xn, folosind câte un proces pentru fiecare sumă parțială.
 Fie P un proces ce determină cmmdc a două numere. Folosind o structură adecvată de astfel de
procese să se scrie un program ce determină cmmdc a N numere date.
 Se dă un polinom A=(a0, a1, ...,an). Să se calculeze valoarea polinomului A într-un punct x,
folosind schema lui Horner și mai multe procese. De exemplu: a0+a1*x+a2*x 2 se poate calcula
astfel:

Tema pentru laboratorul 10


 Să se implementeze următorul sistem de procese, în care muchiile indică modul de comunicare
între procese:

ALTE ENUNTURI DE PROBLEME ... IN CAZ CA VRETI SA EXERSATI

 Clientul ii transmite serverului un nume de fisier, iar serverul ii intoarce clientului numele tuturor
directoarelor care contin fisierul indicat.
 Să se implementeze următorul sistem de procese, în care muchiile indică modul de comunicare
între procese:

 Să se implementeze următorul sistem de procese, în care muchiile indică modul de comunicare


între procese:


 Clientul ii transmite serverului un nume de server Unix, si primeste lista tuturor utilizatorilor care
lucreaza in acel moment la serverul respectiv.
 Clientul transmite serverului un nume de fisier iar serverul intoarce clientului continutul fisierului
indicat sau un mesaj de eroare in cazul ca fisierul dorit nu exista.
 Clientul ii transmite serverului un nume de utilizator iar serverul ii intoarce clientului numarul de
procese executate de utilizatorul respective.
 Să se implementeze următorul sistem de procese, în care muchiile indică modul de comunicare
între procese:

 Clientul ii transmite serverului un un nume de director, iar serverul ii retransmite clientului numarul
total de bytes din toate fisierele din directorul respectiv.
 Clientul ii transmite serverului un nume de director si primeste de la acesta lista tuturor fisierelor
text din directorul respectiv, respectiv un mesaj de eroare daca directorul respectiv nu exista.
 Clientul ii transmite serverului un nume de utilizator, iar serverul ii returneaza informatiile indicate
de "finger" pentru utilizatorul respectiv, respectiv un mesaj de eroare daca numele respectiv nu
indica un utilizator recunoscut de sistem.
 Să se implementeze următorul sistem de procese, în care muchiile indică modul de comunicare
între procese:

 Clientul ii transmite serverului un nume de fisier si un numar octal. Serverul va verifica daca
fisierul respectiv are drepturi de acces diferite de numarul indicat. Daca drepturile coincid, va
transmite mesajul "Totul e OK!" daca nu va seta drepturile conform numarului indicat si va
transmite mesajul "Drepturile au fost modificate".
 Clientul ii transmite serverului un nume de fisier si primeste de la acesta un mesaj care sa indice
tipul fisierului sau un mesaj de eroare in cazul in care fisierul nu exista.
 Să se implementeze următorul sistem de procese, în care muchiile indică modul de comunicare
între procese:

 Să se implementeze următorul sistem de procese, în care muchiile indică modul de comunicare


între procese:

 Clientul ii transmite serverului un nume de fisier iar serverul intoarce clientului numarul de cuvinte
din fisierul respectiv.
 Clientul ii transmite serverului un nume de utilizator, iar serverul ii intoarce clientului numele
complet al utilizatorului si directorul personal.
 Clientul ii transmite serverului un nume de fisier iar serverul intoarce clientului numarul de linii din
fisierul respectiv.
 Clientul ii transmite serverului un nume de utilizator, iar serverul ii returneaza clientului datele la
care utilizatorul respectiv s-a conectat.
 Clientul ii transmite serverului un nume de director iar serverul ii intoarce clientului continutul
directorului indicat, respectiv un mesaj de eroare in cazul in care acest director nu exista.

Tema pentru laboratorul 11


 Clientul ii transmite serverului un nume de fisier si un numar octal. Serverul va verifica daca
fisierul respectiv are drepturi de acces diferite de numarul indicat. Daca drepturile coincid, va
transmite mesajul "Totul e OK!" daca nu va seta drepturile conform numarului indicat si va
transmite mesajul "Drepturile au fost modificate".

ALTE ENUNTURI DE PROBLEME ... IN CAZ CA VRETI SA EXERSATI

 Clientul ii transmite serverului un nume de fisier, iar serverul ii intoarce clientului numele tuturor
directoarelor care contin fisierul indicat.
 Să se implementeze ătorul sistem de procese, în care muchiile indică modul de comunicare între
procese:

 Să se implementeze următorul sistem de procese, în care muchiile indică modul de comunicare


între procese:

 Să se implementeze următorul sistem de procese, în care muchiile indică modul de comunicare


între procese:

 Clientul ii transmite serverului un nume de server Unix, si primeste lista tuturor utilizatorilor care
lucreaza in acel moment la serverul respectiv.
 Clientul transmite serverului un nume de fisier iar serverul intoarce clientului continutul fisierului
indicat sau un mesaj de eroare in cazul ca fisierul dorit nu exista.
 Clientul ii transmite serverului un nume de utilizator iar serverul ii intoarce clientului numarul de
procese executate de utilizatorul respective.
 Să se implementeze următorul sistem de procese, în care muchiile indică modul de comunicare
între procese:

 Clientul ii transmite serverului un un nume de director, iar serverul ii retransmite clientului numarul
total de bytes din toate fisierele din directorul respectiv.
 Clientul ii transmite serverului un nume de director si primeste de la acesta lista tuturor fisierelor
text din directorul respectiv, respectiv un mesaj de eroare daca directorul respectiv nu exista.
 Clientul ii transmite serverului un nume de utilizator, iar serverul ii returneaza informatiile indicate
de "finger" pentru utilizatorul respectiv, respectiv un mesaj de eroare daca numele respectiv nu
indica un utilizator recunoscut de sistem.
 Să se implementeze următorul sistem de procese, în care muchiile indică modul de comunicare
între procese:


 Clientul ii transmite serverului un nume de fisier si primeste de la acesta un mesaj care sa indice
tipul fisierului sau un mesaj de eroare in cazul in care fisierul nu exista.
 Să se implementeze următorul sistem de procese, în care muchiile indică modul de comunicare
între procese:

 Să se implementeze următorul sistem de procese, în care muchiile indică modul de comunicare


între procese:

 Clientul ii transmite serverului un nume de fisier iar serverul intoarce clientului numarul de cuvinte
din fisierul respectiv.
 Clientul ii transmite serverului un nume de utilizator, iar serverul ii intoarce clientului numele
complet al utilizatorului si directorul personal.
 Clientul ii transmite serverului un nume de fisier iar serverul intoarce clientului numarul de linii din
fisierul respectiv.
 Clientul ii transmite serverului un nume de utilizator, iar serverul ii returneaza clientului datele la
care utilizatorul respectiv s-a conectat.
 Clientul ii transmite serverului un nume de director iar serverul ii intoarce clientului continutul
directorului indicat, respectiv un mesaj de eroare in cazul in care acest director nu exista.
Tema pentru laboratorul 12
 Să se scrie două programe care vor să incrementeze, respectiv să decrementeze un același
număr întreg fără semn stocat într-un fișier, întreg având inițial valoarea 500. Procesele se
termină atunci când valoarea întregului este fie 0 fie 1000. La sfârșit fiecare proces va afișa
numărul de operații (incrementări sau decrementări) pe care le-a efectuat. Accesul la fișier se va
face prin blocarea prealabilă a acestuia. Să se verifice corectitudinea programelor rulând:
a) mai multe programe care decrementează și mai puține care incrementează
b) mai multe programe care incrementează și mai puține care decrementează.

ALTE ENUNTURI DE PROBLEME ... IN CAZ CA VRETI SA EXERSATI

 Să se implementeze o listă prin intermediul unui fișier. Lista conține numere întregi. Adăugarea
unui element se va face la începutul listei iar extragerea se va face de la sfârșitul listei (adică,
adăugarea presupune inserarea unui întreg la începutul fișierului, și scoaterea presupune
truncarea fișierului și ștergerea de la sfârșitul acestuia a unui număr întreg). Accesul la fișierul
care memorează lista se va face sincronizat. Să se pornească mai multe procese concurent care
să efectueze operații de adăugare / scoatere din listă.
 Să se scrie două programe consumator și aprovizionare care consumă respectiv, aprovizionează
un depozit alimentar. Depozitul alimentar este un fișier care conține înregistrări de forma (char
marfă[20], int cantitate). Mai multe instanțe ale proceselor consumator și mai multe instanțe ale
proceselor aprovizionare vor acționa în același timp asupra depozitului. Să se simuleze lucrul cu
depozitul, având grijă să se sincronizeze accesul la depozit prin blocarea fișierului depozit.
 Să se scrie un program care manipulează un fișier ce conține n2 înregistrări: înregistrările sunt
considerate elementele unei matrici M pătratice de ordin n. Un program va calcula în mod repetat
fie suma elementelor de pe o linie, fie suma elementelor de pe o coloana (numărul liniei sau
coloanei se generează aleator). Suma se va depozita în ultimul element de pe linie, respectiv în
ultimul element de pe coloană. Odată un element adunat, el va fi modificat în 0 (pentru a nu fi
adunat de două ori). Să se calculeze în M[n, n] sumă elementelor din matrice, prin rularea în
paralel a mai multor astfel de programe. Programul va bloca corespunzător partea din fișier
asupra careia operează. Toate procesele se opresc la calcularea sumei finale.
 Să se scrie două programe care operează pe un fișier ce conține n 2 întregi cu valorea 0 sau 1,
înregistrările sunt considerate elementele unei matrici M pătratice de ordin n. Primul program
generează un i și un j aleator, i, j ∈ [1 .. n], și verifică dacă în jurul lui M[i, j] (din cei 3, 5 sau 8
vecini ai acestuia) există mai multe elemete 0 decât 1 (sau egale). Dacă da, toți vecinii lui M[i, j]
devin 0. Al doilea program efectuează operația inversă. Fiecare program va bloca o porțiune
corespunzătoare din fișier înainte de a face orice verificare și modificare și o va debloca după.
Atenție, în fișier matricea se memorează ca un vector linie). Programele se termină când
matricea conține fie numai 0, fie numai 1.

 Să se implementeze o stivă prin intermediul unui fișier. Lista conține numere întregi. Adăugarea
unui element se va face la începutul listei iar extragerea se va face tot de la început listei (adică,
adăugarea presupune inserarea unui întreg la începutul fișierului, și scoaterea presupune
ștergerea de la începutul fișierului a unui număr întreg). Accesul la fișierul care memorează stiva
se va face sincronizat. Să se pornească mai multe procese concurent care să efectueze operații
de adăugare / scoatere din stivă.
 Să se scrie un program care operează asupra unui fișier ce conține n 2 înregistrări de forma (int
valoare, int adunat): înregistrările sunt considerate elementele unei matrici M pătratice de ordin n.
Atributul adunat din fiecare înregistrare va avea inițial valoarea 0. Programul va genera repetat un
număr k aleator, și k perechi (im, jm), m = 1, ... k, cu im, jm ∈ [1..n], și va aduna în componenta
valoare a elementul M[ik, jk] suma valorilor elementelor M[im, jm], m = 1, ..., k. De asemenea va
seta atributul adunat al elementului M[im, jm], m = 1, ..., k la valoarea 1 (indicând prin aceasta ca
valoarea respectivă a fost adunată). Atributul adunat al elementului M[ik, jk] rămâne 0, indicând
prin aceasta faptul ca suma parțiala calculată în M[ik, jk] trebuie adunată mai departe. Folosind
mai multe procese care rulează în paralel să se calculeze suma elementelor din matrice. Fiecare
proces va bloca înregistrările din fișier asupra cărora operează. Procesele se opresc la calculul
sumei finale.

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