Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă
Domeniul: Calculatoare şi tehnologia informaţiei
Programul de studii: Ingineria informatiei - in limba engleza
Limba de predare: Engleză

SYLLABUS

I. Date generale
Codul	Disciplina	
MIC0002	Sisteme de operare distribuite	

Semestrul	Ore: C+S+L+P	Categoria	Statutul	
3	2+0+2+0	specialitate	obligatorie	

II. Cadre didactice cu norma de bază în Universitate
Numele şi	Titlul	Gradul	Catedra	Tipul activităţii	
prenumele	ştiinţific	didactic		C	S	L	
BOIAN Florian Mircea	Dr. 	Prof.	Informatică	*			

Cadre didactice asociate
Numele şi	Titlul	Instituţia	Tipul	Tipul activităţii	
prenumele	ştiinţific		postului	C	S	L	

III. Obiectivele disciplinei
In prima parte se urmăreşte însuş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. Partea a doua tratează 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	

IV. Conţinutul disciplinei
1. Comunicarea intre procese windows.
2. Multiprocesare şi concurenţă folosind threaduri (POSIX si Windows).
5. Comunicaţii prin socket (sub Unix si Windows).
3. Completări la teoria generală a sistemelor de operare.
4. Problematica middleware.
6. Sisteme de operare distribuite.
7. Paradigma programării pe evenimente.	

V. 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.  BURAGA S. Tehnologii Web. Ed. MATRIX ROM, Bucuresti, 2001
6.  IGNAT I. KACSO A. Unix: generarea proceselor. Ed. Albastra, grupul Microinformatica, Cluj, 1995
7.  NYE A. Xlib Programming Manual. Sun Press, 1988
8.  STALLINGS W. Operating Systems: Internal and Design Principles. Prentice Hall, 1998. 
9.  TANENBAUM A.S. Distributed Operating Systems. Prentice Hall, 2005 
10. Ubuntu - The Complete Reference; Richard Petersen (MCGraw-Hill, 2009)
11. Windows 7 User Guide. Microsoft, 2009	

VI. Tematica activităţilor didactice pe săptămâni
Curs

Săpt. 1
1. Procese şi IPC în sistemele Windows.
_  Arhitectura Windows XP, Vista, Windows 7.
_  Procese Windows.
_  Pipe, IPC (cozi de mesaje, memorie partajata, semafoare) Windows.

Săpt. 2-4
2. 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

Săpt. 5-7
5. 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

Săpt. 8-10
3. 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.

Săpt. 11-13
6. 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.

Săpt. 14
7. 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. 

Laborator
1.  Procese Windows si comunicare prin pipe cu nume.
2.  Comunicare prin cozi de mesaje (mailslot) intre procese Windows.
3.  Comunicare prin memorie partajata intre procese Windows.
4.  Threaduri POSIX; sincronizarea threadurilor.
5.  Comunicaţii prin socket stream.
6.  Aplicaţii client / server folosind threaduri si socket.
    Incheierea activităţii de laborator.
    Examen practic.	

VII. Metode didactice folosite
Metodele de bază utilizate în cazul predării cursului şi a laboratorului sunt: expuneri, conversaţii, studiu individual, teme, proiecte aplicative. Disciplina are alocate ore de curs şi ore de laborator. La curs se folosesc materiale bibliografice specifice: cărţi, articole, referinţe de pe Internet. La laborator se urmăreşte dezvoltarea practică a unor proiecte şi rezolvarea unor probleme, fie de programare fie de administrare, folosind calculatorul şi pachete software specifice	

VIII. Evaluare
Nota finala este medie ponderata a trei note componente:
Examen scris şi practic la finele semestrului:
-	nota de la lucrarea scrisă 40%;
-	nota la lucrarea practică 30%;
Activitatea de laborator: calitatea programelor, documentaţii etc. 30%

Daca din motive intemeiate nu s-a putut preda satisfacator activitatea de laborator, atunci partea practica a examenului final va avea pondere 60% cu cerinte marite cu 50% 

Cerintele cursului sunt postate la:
http://www.cs.ubbcluj.ro/~florin/SOD	

IX. Bibliografie suplimentară

	Decan,						Directorul Departamentului de Informatică,
	Prof. dr. TAMBULEA Leon		Prof. Dr.  BOIAN Florian Mircea

	Data,						Titular curs,
	01.10.2011					Prof. Dr.  BOIAN Florian Mircea