fişa disciplinei
1. Date despre program
1.1 Instituţia de învăţământ superior	Universitatea Babeş-Bolyai Cluj-Napoca	
1.2 Facultatea	Matematică şi Informatică	
1.3 Departamentul	Informatică	
1.4 Domeniul de studii	Calculatoare şi tehnologia informaţiei	
1.5 Ciclul de studii	Licenţă	
1.6 Programul de studiu / Calificarea	Ingineria informaţiei - limba română	
2. Date despre disciplină

2.1 Denumirea disciplinei	Sisteme de operare distribuite	
2.2 Titularul activităţilor de curs	Prof. dr. Florian Mircea Boian	
2.3 Titularul activităţilor de seminar	Prof. dr. Florian Mircea Boian	
2.4 Anul de studiu	3	2.5 Semestrul	5	2.6. Tipul de evaluare	E	2.7 Regimul disciplinei	Opţional	
3. Timpul total estimat (ore pe semestru al activităţilor didactice)

3.1 Număr de ore pe săptămână	4	Din care: 3.2 curs	2	3.3 seminar/laborator	2	
3.4 Total ore din planul de învăţământ	56	Din care: 3.5 curs	28	3.6 seminar/laborator	28	
Distribuţia fondului de timp:	ore	
Studiul după manual, suport de curs, bibliografie şi notiţe	20	
Documentare suplimentară în bibliotecă, pe platformele electronice de specialitate şi pe teren	10	
Pregătire seminarii/laboratoare, teme, referate, portofolii şi eseuri	20	
Tutoriat	10	
Examinări 	9	
Alte activităţi: ..................	-	
3.7 Total ore studiu individual	69	
3.8 Total ore pe semestru	125	
3.9 Numărul de credite	5	
4. Precondiţii (acolo unde este cazul)

4.1 de curriculum	•		
4.2 de competenţe	•		
5. Condiţii (acolo unde este cazul)
5.1 De desfăşurare a cursului	•	Cerintele specifice cursului, ca şi cele ale activităţii de laborator  sunt postate la:
o	http://www.cs.ubbcluj.ro/~florin/SOD	
5.2  De desfăşurare a seminarului/laboratorului	•	Laboratoare cu acces la sisteme de operare Unix şi Windows, cu acces individual pe bază de user şi parolă
•	Cerintele specifice cursului, ca şi cele ale activităţii de laborator  sunt postate la:
o	http://www.cs.ubbcluj.ro/~florin/SOD	

6. Competenţele specifice acumulate
Competenţe profesionale	•	Definirea noţiunilor, conceptelor, teoriilor şi modelelor de bază din domeniul sistemelor de operare distribuite, a comunicaţiilor între sisteme.
•	Analiza critică şi utilizarea principiilor, metodelor şi tehnicilor de lucru pentru evaluarea cantitativă şi calitativă a proceselor din cadrul fiecărui tip de sistem de operare şi a mecanismelor de comunicaţie între acestea
•	Aplicarea conceptelor şi teoriilor fundamentale din domeniul arhitecturii calculatoarelor, a metodelor de programare şi a sistemelor de operare pentru elaborarea de proiecte profesionale
•	Abilitatea de a rezolva probleme de tip low-level privind interfaţa cu nucleele sistemelor de operare şi a mecanismelor low-level de comunicare	
Competenţe transversale	•	Executarea sarcinilor solicitate conform cerintelor precizate si în termenele impuse, cu respectarea normelor de etica profesionala si de conduita morala
•	Informarea si documentarea permanenta în domeniul sau de activitate în limba românaşi în limba engleză
•	Preocuparea pentru perfecţionarea rezultatelor activităţii profesionale prin implicarea în activităţile desfăşurate	

7. Obiectivele disciplinei (reieşind din grila competenţelor acumulate)
7.1 Obiectivul general al disciplinei	•	Insuşirea de către studenţi a mecanismelor evoluate de comunicare între procese Unix si Windows. Se pun bazele programarii concurente la nivel de threaduri. Se pun bazele comunicarii prin socket intre sisteme, cu aplicatii la Unix şi Windows. 
•	Aspecte teoretice şi practice privind sistemele de operare distribuite. Sunt descrise tehnologiile middleware pentru RPC, memorie partajata distribuita, sisteme de fişiere distribuite, obiecte partajate, interfeţe grafice: X-Window, middleware peste web	
7.2 Obiectivele specifice

	•	Comunicarea intre procese windows.
•	Multiprocesare şi concurenţă folosind threaduri (POSIX si Windows).
•	Comunicaţii prin socket (sub Unix si Windows).
•	Completări la teoria generală a sistemelor de operare.
•	Problematica middleware şi a sistemelor de operare distribuite.
•	Paradigma programării pe evenimente.	

8. Conţinuturi
8.1 Curs	Metode de predare	Observaţii	
Săpt. 1 Procese şi IPC în sistemele Windows.
•	Arhitectura Windows XP, Vista, Windows 7.
•	Procese Windows.
•	Pipe, IPC (cozi de mesaje, memorie partajata, semafoare) Windows.	Expunere: descriere, explicaţii, exemple practice, demonstraţii, discuţii pe studii de caz.		
Săpt. 2-4 Multiprocesare şi concurenţă folosind threaduri.
•	Conceptul de thread; tipuri şi familii de threaduri.
•	principalele caracteristici ale threadurilor POSIX.
•	Sincronizări prin variabile: mutex, cond, rdwr, semafoarevarelemente de sincronizare.
•	Obiecte purtătoare de atribute thread şi varabile de sincronizare.
•	Planificarea threadurilor.
•	Threaduri Solaris.
•	Threaduri Windows.
•	Threaduri Python	Expunere: descriere, explicaţii, exemple practice, demonstraţii, discuţii pe studii de caz.		
Săpt. 5-7 Comunicaţii prin socket.
•	Conceptul de socket: definire, adrese socket, caracteristici.
•	Scenarii de comunicare prin socket stream.
•	Descrierea principalelor funcţii utile în programarea comunicării prin socket stream.
•	Exemple de comunicare între Unix şi Windows.
•	Socket in Python
•	Aplicatii client / server cu threaduri si socket, sub Unix si Windows	Expunere: descriere, explicaţii, exemple practice, demonstraţii, discuţii pe studii de caz.		
Săpt. 8-10 Completări la teoria generală a sistemelor de operare.
•	Conceptul de proces: specificări, concurenţă, semafoare, impas.
•	Planificarea proceselor.
•	Gestiunea memoriei interne; politici de schimb cu memoria secundară.
•	Intrări / ieşiri la nivel fizic: zone tampon, canal I/O, lucrul fizic cu discul.
•	Sistemul de gestiune a fişierelor: acces, organizare, sisteme de directori.
•	Structura internă a sistemelor de fişiere UFS, FAT, NTFS.	Expunere: descriere, explicaţii, exemple practice, demonstraţii, discuţii pe studii de caz.		
Săpt. 11-13 Sisteme de operare distribuite.
•	Sistem distribuit, algoritm distribuit, sistem de operare distribuit; caracteristici.
•	Servicii distribuite oferite de SO clasice: SSH, FTP, NFS.
•	Platforme middleware: RPC, CORBA, RMI, memorie partajată distribuită, sisteme de fişiere distribuite, comunicaţii prin mesaje.	Expunere: descriere, explicaţii, exemple practice, demonstraţii, discuţii pe studii de caz.		
Săpt. 14 Paradigma programării pe evenimente.
•	Arhitectura aplicaţiilor fereastră Windows.
•	Arhitectura sistemului de ferestre X-Window; protocolul X.
•	Bazele programării pe evenimente Windows şi X-window.	Expunere: descriere, explicaţii, exemple practice, demonstraţii, discuţii pe studii de caz.		
			
Bibliografie
1.	BACON J. Concurrent Systems: Operating Systems, Database and Distributed Systems - an integrated approach. Addison-Wesley, 1998 
2.	BOIAN F, VANCEA A. BOIAN R. BUFNEA D., STERCA A., COBARZAN C., COJOCAR D. Sisteme de operare Ed. Risoprint, 2006 
3.	BOIAN F.M. Programare distribuita în Internet; metode si aplicatii. Ed. Albastra, grupul Microinformatica, Cluj, 1997
4.	BOIAN F.M. FERDEAN C.M., BOIAN R.F., DRAGOS R.C. Programare concurenta pe platforme Unix, Windows, Java. Ed. Albastra, grupul Microinformatica, Cluj, 2002
5.	BOIAN F.M.Servicii web;modele, platforme, aplicaţii. Ed. Albastră - grupul Microinformatica, Cluj, 2012
6.	BURAGA S. Tehnologii Web. Ed. MATRIX ROM, Bucuresti, 2001
7.	IGNAT I. KACSO A. Unix: generarea proceselor. Ed. Albastra, grupul Microinformatica, Cluj, 1995
8.	NYE A. Xlib Programming Manual. Sun Press, 1988
9.	STALLINGS W. Operating Systems: Internal and Design Principles. Prentice Hall, 1998. 
10.	TANENBAUM A.S. Distributed Operating Systems. Prentice Hall, 2005 
11.	Ubuntu - The Complete Reference; Richard Petersen MCGraw-Hill, 2009
12.	Windows 7 User Guide. Microsoft, 2009	
8.2 Seminar / laborator	Metode de predare	Observaţii	
1.  Procese Windows si comunicare prin pipe cu nume.	Explicaţii, exemplificări, dialog, studii de caz		
2.  Comunicare prin cozi de mesaje (mailslot) intre procese Windows.
	Explicaţii, exemplificări, dialog, studii de caz		
3.  Comunicare prin memorie partajata intre procese Windows.	Explicaţii, exemplificări, dialog, studii de caz		
4.  Threaduri POSIX; sincronizarea threadurilor.	Explicaţii, exemplificări, dialog, studii de caz		
5.  Comunicaţii prin socket stream.	Explicaţii, exemplificări, dialog, studii de caz		
6.  Aplicaţii client / server folosind threaduri si socket.	Explicaţii, exemplificări, dialog, studii de caz		
    Incheierea activităţii de laborator.			
    Examen practic			
			
Bibliografie
1.	BOIAN F, VANCEA A. BOIAN R. BUFNEA D., STERCA A., COBARZAN C., COJOCAR D. Sisteme de operare Ed. Risoprint, 2006 
2.	BOIAN F.M. Programare distribuita în Internet; metode si aplicatii. Ed. Albastra, grupul Microinformatica, Cluj, 1997
3.	BOIAN F.M. FERDEAN C.M., BOIAN R.F., DRAGOS R.C. Programare concurenta pe platforme Unix, Windows, Java. Ed. Albastra, grupul Microinformatica, Cluj, 2002
4.	BOIAN F.M.Servicii web;modele, platforme, aplicaţii. Ed. Albastră - grupul Microinformatica, Cluj, 2012
5.	IGNAT I. KACSO A. Unix: generarea proceselor. Ed. Albastra, grupul Microinformatica, Cluj, 1995
6.	NYE A. Xlib Programming Manual. Sun Press, 1988
7.	Ubuntu - The Complete Reference; Richard Petersen MCGraw-Hill, 2009
8.	Windows 7 User Guide. Microsoft, 2009	

9. Coroborarea conţinuturilor disciplinei cu aşteptările reprezentanţilor comunităţii epistemice, asociaţiilor profesionale şi angajatori reprezentativi din domeniul aferent programului
•	Prin insusirea conceptelor teoretico-metodologice si abordarea aspectelor practice incluse in disciplina Sisteme de operare distribuite, studentii dobandesc un bagaj de cunostinte consistent, in concordanta cu competentele partiale cerute pentru ocupatiile posibile prevazute in Grila 1 – RNCIS
•	Cursul respectă IEEE and ACM Curriculla Recommendations for Computer Science studies. 
•	Cursul există în programa de studii a universităţilor şi facultăţilor de profil din România
•	Conţinutul cursului este foarte bine apreciat de către companiile de software care are ca şi angajaţi absolvenţi ai acestui curs	

10. Evaluare
Tip activitate	10.1 Criterii de evaluare	10.2 metode de evaluare	10.3 Pondere din nota finală	
10.4 Curs	Insuşirea şi înţelegerea corectă a problematicii tratate la curs	Examen scris în timpul sesiunii	40%	
	Rezolvarea corectă a problemelor			
10.5 Seminar/laborator	Abilitatea de a rezolva probleme practice specifice cursului, direct la calculator şi în timp limitat	Examen practic în ultimele 2 săptămâni ale semestrului	30 %	
	Activitatea desfăşurată în laborator	Colocviu în ultimele 2 săptămâni ale semestrului	30%	
10.6 Standard minim de performanţă	
•	Minimum nota 5 la fiecare dintre cele trei probe: examen scris, examen practic, activitatea de laborator	

Data completării		Semnătura titularului de curs		Semnătura titularului de seminar
21.09.2012			Prof. dr. Florian Mircea Boian	Prof. dr. Florian Mircea Boian

Data avizării în departament			Semnătura directorului de departament
...........................................			Prof. dr. Bazil Pârv