- Grupa 231:
- Numiti doua extensii din sistemul de operare Windows care lanseaza programe (orice extensie). Sa se numeasca si tipul programelor pe care le lanseaza (ex: .bat, .exe, .ini, .txt, .doc, etc.)
- Numiti doua periferice externe folosite pentru stocarea datelor (HDD, Flash driver, CD-ROM, disc RAM, banda magnetica, etc.)
- De cate discete de m MB este nevoie pentru a stoca o informatie de dimensiune n GB?
- Numiti doua caracteristici de selectie pe care se bazeaza programele de schedule-ing pentru procese (prioritate, timp CPU, date fixate de utilizator prin comanda $at, etc.)
- Scrieti o functie C sub forma int myFunct(int *tab, int n), unde tab este o lista de identificatori a n procese fiu. Functia asteapta terminarea tuturor proceselor din tabela. Daca cel putin un proces nu s-a terminat, atunci se returneaza -1. Daca toate procesele s-au terminat, se returneaza media aritmetica a codurilor de retur.
- Scrieti o functie C sub forma int myFunct(int id, (int *)f(), int *ret) unde id e identificatorul unui semafor, care apeleaza semaforizat functia desemnata de f (inainte de apel semaforul se decrementeaza si dupa apel semaforul se incrementeaza). La adresa desemnata de ret se va depune codul de returl al functiei f. Se lucreaza doar cu primul semafor din vector. myFunct returneaza 0 in caz de succes sau -1 in caz de eroare.
- Note: 2 x 10, 4 x 9. 3 x 8 si restul, distribuit intre 6 si 7. Doar 3 x 5 si nici un picat. La oral notele au si crescut (9->10, 7->9), dar in mare parte au ramas la fel.
- Grupa 232:
- Numiti cele 3 categorii de virusi.
- Numiti tipurile de IPC SYSTEM V.
- Care este situatia cea mai frecventa de esec a unui apel din familia exec?
- Enuntati signatura a 2 apeluri de sistem UNIX.
- Scrieti o functie C char *myFunct ( char *fis, int *n ) care intoarce adresa unei zone de memorie unde s-au depus toate vocalele din fisierul cu numele fis. La adresa memorata de n se va depune lungimea zonei de memorie returnate. In caz de eroare se va returna NULL.
- Scrieti o functie C int myFunct ( int *tab, int n, (void *)funct( int x ), int val ) care lanseaza un proces fiu care mai intai mascheaza semnalele din vectorul tab, ce are lungime n si apoi va executa functia desemnata de funct cu argumentul val. Se va returna -1 in caz de eroare sau daca procesul fiu nu s-a terminat normal si 0 altfel.
- Grupa 233:
- Descrieti cele 2 operatii elementare asupra semafoarelor (conform Dijkstra)
- Signatura msgsnd si msgrcv.
- Enumerati starile unui proces (nu neaparat Unix)
- Ramura matematicii care sta la baza proiectarii algoritmilor de detectare a deadlockului. (Raspuns: grafurile)
- int myFunct(int* pid, int*sig, int n) unde tablourile pis si sig au fiecare n elem. Fctia transmite fiecarui proces din pis semnalul coresp din sig. Se va intoarce 0 in caz de succes si -1 caz de eroare.
- int myFunct(char**fin,char*fout,int n, int k) unde fin este un vector de n nume de fisiere. In fisierul cu numele dat de fout se va scrie al k-lea caracter din fiecare fisier cu numele dat de intrarile din fin. Se va intoarce 0 in caz de succes, -1 eroare.
- Grupa 242:
- Enumerati System IPC V.
- Enumerati 4 tipuri de fisiere.
- Spuneti pasii necesari accesarii unui disc.
- 2 gestionare de fisiere sub windows.
- int myFunct(char *buf,int fd, int *poz), unde df este ID-ul unui fisier din descriptorul de fisiere al programului. Se citeste din fisier caracter si se pune in buf pe pozitia *poz, dupa care se incrementeaza circular *poz; returneaza 0 respectiv -1 daca a terminat cu success respectiv a dat de o eroare.
- int myFunct(char *f1, char *f2, int m, int n) Se iau caracterele din fisierul f1 dintre pozitiile m si n si se pun la sfarsitul lui f2 (daca nu exista se creaza), se pun numai litere si cifre, restul caracterelor se sar; returneaza -1 in caz de eroare sau numarul de caractere puse in f2 in caz de succes.
- Note: Un singur 8, restul 6-7 sau picat. Oralul a fost durere...
- Grupa 243:
- sa se specifice apelul functiei care creaza un segment de memorie partajata care sa foloseasca IPC_ PRIVATE
- sa se explice deadlock pentru 2 procese
- sa se explice fenomenul de deadlock circular intre Pn procese
- sa se specifice o strategie de evitare a deadlock- ului
- sa se scrie o functie int myFunc(key_ t cheie) care sa transforme literele mici in litere mari si invers, din stringul de la inceputul segmentului de memorie desemnat de "cheie"
- sa se scrie o functie myFunc(char *f, char *s) care returneaza - 1 in caz de eroare, 1 daca primele caractere din fisierul f coincid cu cele din stringul s, si 0 altfel (asadar la problema asta trebuia sa verifici daca sirul de caractere s se gaseste la inceputul continutului fisierului desemnat de "f")
- note: un 10, vreo cinci de 9, cativa picati... iar majoritatea sub 8, avand in vedere ca au intrat la oral.
- In majoritatea cazurilor oralul a scazut nota, si este de preferat ocolirea lui daca materia nu este stiuta perfect, si nu aveti indemanare peste medie in C
|
|