Sisteme de operare (Andrei Baranga)

De la Cursuri - Facultatea de Matematica si informatica

Salt la: navigare, căutare

5T4Bar <a href="http://sbsjhqcyhrlw.com/">sbsjhqcyhrlw</a>, [url=http://rfwjenbsyueu.com/]rfwjenbsyueu[/url], [link=http://qgqogljaixed.com/]qgqogljaixed[/link], http://szyltnfitmit.com/



Cuprins

2010-2011 - anul 2 - semestrul 1 - Domeniul de Informatica

Cursuri

Descriere

  • 2 ore de curs / saptamana
  • 2 ore de laborator / saptamana
  • 5 credite

2, http://cheapmedsonline.co.uk/ cialis price,

Notare

  • laborator: 25% (se tine cont de prezenta si de activitate)
  • examen: (doar cu cartea / cartile profesorului pe banca) 75%
    • daca iei sub 8, trebuie sa intri la oral, altfel ai 4
      • la examenul oral nu mai ai voie cu materiale ajutatoare si vei primi 2 subiecte de teorie
      • nota finala va fi compusa din:
        • 25% laborator
        • 25% nota din examen
        • 25% subiectul 1
        • 25% subiectul 2
    • daca iei peste 8, poti sa optezi daca dai sau nu proba orala; conditiile de sustinere si notare sunt cele de mai sus;

Bibliografie

  • Baranga Andrei - "Introducere in sistemul de operare UNIX" - Ed. Albastra, 2007
  • Baranga Andrei - "Dezvoltarea aplicatiilor in C/C++ sub UNIX" - Ed. Albastra, 2007
  • Tanenbaum A. S. - "Operating Systems: design an implementation" - Prentice Hall, 1987
  • Tanenbaum A. S. - "Modern Operating Systems" - Prentice Hall, 1992

Subiecte date la examen

  • Grupa 242:
  1. Viteza de transmisie în rețea este de 1Mb/s. În cât timp se vor transfera 10Tb? (enunt foarte ambiguu)
  2. Numiți 5 tipuri de fișiere UNIX.
  3. Enunțați 5 caracteristici memorate de un i-nod UNIX.
  4. Enunțați 5 tipuri de periferice.
  5. Se consideră definiția de mai jos. Scrieți o funcție C MYSTR *myFunct(char *dir, int *n) care construiește un vector de structuri `MYSTR` ce conțin fiecare numele fișierelor și caracteristicile i-nodurilor din directorul cu numele `dir`. `n` comtinre (sic) numărul de elemente din `vec`. Se întoarce `NULL` în caz de eroare. (in `n` se va afla numarul de fisiere. Tu trebuie sa il aflii, nu iti este dat.)
 typedef struct  
 {  
     char name[NAME_MAX];  
     struct stat st;  
 } MYSTR;  
6. Scrieți o funcție C double myFunct(char *f, double *vec, int n, int *err) unde `f` este numele unui fișier ce conține în format binar elemente de tip double, iar `n` numărul de elemente din `vec`. Funcția returnează produsul scalar dintre `vec` și vectorul format din primele `n` elemente din `f`. Dacă sunt mai puțin de `n` elemente în `f`, atunci elementele lipsă vor fi considerate ca având valoarea `0.0`. `err` este parametru de ieșire și va avea valoarea `0` în caz de success și `-1` în caz de eroare.



2009-2010 - anul 2 - semestrul 1 - Domeniul de Informatica

Cursuri

Descriere

  • 2 ore de curs / saptamana
  • 2 ore de laborator / saptamana
  • 5 credite

2, http://cheapmedsonline.co.uk/ cialis price,

Notare

  • laborator: 25% (se tine cont de prezenta si de activitate)
  • examen: (doar cu cartea / cartile profesorului pe banca) 75%
    • daca iei sub 8, trebuie sa intri la oral, altfel ai 4
      • la examenul oral nu mai ai voie cu materiale ajutatoare si vei primi 2 subiecte de teorie
      • nota finala va fi compusa din:
        • 25% laborator
        • 25% nota din examen
        • 25% subiectul 1
        • 25% subiectul 2
    • daca iei peste 8, poti sa optezi daca dai sau nu proba orala; conditiile de sustinere si notare sunt cele de mai sus;

Bibliografie

  • Baranga Andrei - "Introducere in sistemul de operare UNIX" - Ed. Albastra, 2007
  • Baranga Andrei - "Dezvoltarea aplicatiilor in C/C++ sub UNIX" - Ed. Albastra, 2007
  • Tanenbaum A. S. - "Operating Systems: design an implementation" - Prentice Hall, 1987
  • Tanenbaum A. S. - "Modern Operating Systems" - Prentice Hall, 1992

Subiecte date la examen

  • Grupa 231:
    1. 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.)
    2. Numiti doua periferice externe folosite pentru stocarea datelor (HDD, Flash driver, CD-ROM, disc RAM, banda magnetica, etc.)
    3. De cate discete de m MB este nevoie pentru a stoca o informatie de dimensiune n GB?
    4. 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.)
    5. 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.
    6. 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:
    1. Numiti cele 3 categorii de virusi.
    2. Numiti tipurile de IPC SYSTEM V.
    3. Care este situatia cea mai frecventa de esec a unui apel din familia exec?
    4. Enuntati signatura a 2 apeluri de sistem UNIX.
    5. 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.
    6. 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:
    1. Descrieti cele 2 operatii elementare asupra semafoarelor (conform Dijkstra)
    2. Signatura msgsnd si msgrcv.
    3. Enumerati starile unui proces (nu neaparat Unix)
    4. Ramura matematicii care sta la baza proiectarii algoritmilor de detectare a deadlockului. (Raspuns: grafurile)
    5. 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.
    6. 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:
    1. Enumerati System IPC V.
    2. Enumerati 4 tipuri de fisiere.
    3. Spuneti pasii necesari accesarii unui disc.
    4. 2 gestionare de fisiere sub windows.
    5. 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.
    6. 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:
    1. sa se specifice apelul functiei care creaza un segment de memorie partajata care sa foloseasca IPC_ PRIVATE
    2. sa se explice deadlock pentru 2 procese
    3. sa se explice fenomenul de deadlock circular intre Pn procese
    4. sa se specifice o strategie de evitare a deadlock- ului
    5. 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"
    6. 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



2008-2009 - anul 2 - semestrul 1 - Domeniul de Informatica

Cursuri

  • dupa cartea profesorului [1]

Descriere

2, http://cheapmedsonline.co.uk/ cialis price,

Notare

  • laborator: 25%
  • examen: ( doar cu cartea profesorului pe banca) 75% scris daca iei peste 8 si nu vrei oral

sau 25% scris si 50% oral. Oral obligatoriu daca iei sub 8. Daca nu te prezinti ti se pune automat 4.

  • prezenta
    • se tine cont doar la laborator

Bibliografie

  1. Andrei Baranga. "Dezvoltarea aplicatiilor in C/C++ sub sistemul de operare UNIX". Editura Albastra, 2006
  • Tanenbaum A. S. - "Operating Systems: design an implementation" - Prentice Hall, 1987
  • Tanenbaum A. S. - "Modern Operating Systems" - Prentice Hall, 1992

Subiecte date la examen

  • Grupa 233
    1. Procedura care permite initiliazarea unui proces cu alta prioritate decat cea initiala. Raspuns : nice
    2. Numele algoritmului de gestionare a proceselor in Unix. Raspuns : Round Robin
    3. Descrieti cel mai simplu scenariu de deadlock .
    4. Enumerati doua tipuri de periferice.
    5. o functie C care primea ca parametru id-ul lui vector de semafoare de tip mutex , un pointer la char si un pointer la functie. trebuia sa punem semaforul pe 0, sa apelam functia pointata de al 3-lea parametru avand ca parametru pointerul la char si sa punem semaforul pe 1. succes return 0 , esec return -1
    6. o functie int myStack(int *a,int max,int *n,int *val,int oper) care trebuia sa simuleze o stiva , a fiind adresa primului element din stiva, max numarul maxim de elemente pe care le poate avea stiva, n numarul curent de elemente si daca oper era 0 trebuia sa punem in stiva valoarea de la adresa val si daca era 1 sa extragem din stiva la adresa val. succes return 0, esec return -1
  • Grupa 242
    1. Numiti algoritmul de criptare/decriptare care fol si chei private si publice (RSA)
    2. Numiti cele 3 categorii principale de virusi
    3. Numiti doua caracteristici ale proceselor in UNIX
    4. Care sunt drepturile asupra unui fisier in UNIX (3 drepturi)
    5. scrieri o functie int *myFunct(int *n) care asteapta terminarea tuturor celor proceselor fiu, pune intr-un vector pid-urile acestora si returneaza adresa acestuia. de asemenea *n va retine numarul de procese fiu
    6. Scrieti o functie void myHand(int sig) care va instala handlerul de N ori(N definit cu #define) si la sfarsit instaleaza handlerul implicit.



2007-2008 - anul 2 - semestrul 1 - Domeniul de Informatica

Cursuri

  • dupa cartea profesorului [1]

Descriere

2, http://cheapmedsonline.co.uk/ cialis price,

Notare

  • laborator: 25%
  • examen: ( doar cu cartea profesorului pe banca) 75% scris daca iei peste 8 si nu vrei oral

sau 25% scris si 50% oral. Oral obligatoriu daca iei sub 8. Daca nu te prezinti ti se pune automat 4.

  • prezenta
    • se tine cont doar la laborator

Bibliografie

  1. Andrei Baranga. "Dezvoltarea aplicatiilor in C/C++ sub sistemul de operare UNIX". Editura Albastra, 2006
  • Tanenbaum A. S. - "Operating Systems: design an implementation" - Prentice Hall, 1987
  • Tanenbaum A. S. - "Modern Operating Systems" - Prentice Hall, 1992

Subiecte date la examen

  • Grupa 232
    1. Scrieti prototipul unei functii care scrie intr-un fisier sau la iesirea std.
    2. Ce este memoria cache? (Nu a procesorului!)
    3. Scrieti o functie c: int funct(char* f1, char* f2, int m, int n) f1, f2: nume de fisiere, care copiaza de la pozitia m pana la pozitia n din fisierul f1 in fisierul f2 (pe care mi se pare ca il si creeaza). Returneaza 0 in caz de succes, -1 in caz de eroare. Atentie la parametri incorecti.



2006-2007 - anul 2 - semestrul 1 - Domeniul de Informatica

Cursuri

  • dupa cartea profesorului [1]

Descriere

2, http://cheapmedsonline.co.uk/ cialis price,

Notare

  • laborator: 50%
  • examen: 50% ( doar cu cartea profesorului pe banca, sau cu o fituica sub forma unei foi A4 )
  • prezenta
    • se tine cont doar la laborator, cam 10% din nota de la laborator

Bibliografie

  1. Andrei Baranga. "Dezvoltarea aplicatiilor in C/C++ sub sistemul de operare UNIX". Editura Albastra, 2006
  • Tanenbaum A. S. - "Operating Systems: design an implementation" - Prentice Hall, 1987
  • Tanenbaum A. S. - "Modern Operating Systems" - Prentice Hall, 1992

Subiecte date la examen

  • Grupa 244
    1. Numiti 2 sisteme de operare.
    2. Numiti 2 strategii de inlocuire a paginilor(gestiunea memoriei)
    3. Explicati, pe scurt, notiunea de memorie virtuala.
    4. Numiti 2 periferice la care accesul se face in mod bloc.
    5. Scrieti o functie C: char *myfunct(int *p, char c), unde p este vector de 2 descriptori deschisi, asociati unui tub p[0] in citire si p[1] in scriere, care transmite pe tub caracterul c si citeste din tub un mesaj alcatuit astfel: primul caracter este lungimea mesajului urmand informatia (aici nu stiu exact oricum era ceva de genul: mesajul abc->3abc). Mesajul se depune in memorie si se returneaza adresa la care a fost depus. In caz de insucces, returneaza NULL.
    6. Scrieti o functie C: int myfunct(int *pid, int *sig, int n), unde vectorii pid si sig au acelasi numar de elemente, si anume n. Se vatransmite fiecarui proces indentificat de elemntele lui pid semnalul corespunzator indentificat de elementul din sig. Functia returneaza 0 in caz de succes si valoarea lui errno in caz de eroare.
  • Grupa 241
    1. Descrieti modalitatile de comunicare intre procese din IPC System V. Raspuns: cozi de mesaje, memorii partajate si semafoare
    2. Care este algorimtul de scheduling al proceselor? Raspuns: Round Robin
    3. Explicati concepul de deadlock.
    4. O pagina are 64 kb. Memoria are 128 MB. Cate pagini sunt in memorie?
    5. Scrieti o functie c: int funct(char* f1, char* f2, char *f3, char *fout) - parametrii sunt nume de fisiere - care face o interclasare intre f1,f2,f3 in fout astfel caracter din f1 caracter din f2 caracter din f3 caracter din f1 caracter din f2 caracter din f3 etc returneaza 0 in caz de succes, -1 in caz de eroare
    6. Scrieti o functie c int funct(char* f, char *word), f nume de fisier care cauta in f cuvantul de lungime minima si il pune in word; returneaza -1 in caz de eroare si pozitia in fisier a cuvantului de lungime minim altfel.