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. General data
Code	Subject	
MIC0002	Distributed Operating Systems	

Semester	Hours: C+S+L	Category	Status	
3	2+0+2	speciality	compulsory	

II. Full status faculty members
Name and	Scientific	Didactic	Chair	Type of activity	
surname	title	title		C	S	L	
BOIAN Rares Florin	Ph.D.	Lect.	Computer Systems	*			

Associated faculty members
Name and	Scientific	Institution	Type of	Type of activity	
surname	title		position	C	S	L	

III. Course objectives
In the first part learning by the students the advanced Unix inter-process communications and concurrent programming using threads. The second part present a introduction in distributed operating systems. Our focus is on IP and Internet addressing, DNS mechanism and CGI designing. Third part the socket communications is presented. Last part treats the client / server methods in graphic interfaces in X-Window and Windows NT	

IV. Course content
The course will present the following major subjects: 
1)	Operating systems theory – follow-up and completion of the first semester
2)	UNIX multi-tasking and concurrency 
3)	Threads
4)	Socket communication
5)	Distributed operating sistems theory and introduction into middleware	

V. Bibliography
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 distribuită în Internet; metode şi aplicaţii. Ed. Albastră, grupul Microinformatica, Cluj, 1997
4.	BOIAN F.M. FERDEAN C.M., BOIAN R.F., DRAGOS R.C. Programare concurentă pe platforme Unix, Windows, Java. Ed. Albastră, grupul Microinformatica, Cluj, 2002
5.	BURAGA S. Tehnologii Web. Ed. MATRIX ROM, Bucureşti, 2001
6.	IGNAT I. KACSO A. Unix: generarea proceselor. Ed. Albastră, 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.	*** UNIX Unleashed, Internet Edition. http://docs.rinet.ru:8083/UNIXi/
11.	. *** Windows NT4 Server Unleashed. http://docs.rinet.ru:8083/NT4/	

VI. Weekly didactic activities
Lecture
Weeks 1 – 2
1. Operating systems theory
- Physical level I/O: buffers, I/O channels, disk operation planning
- File system: architecture, directory systems, acces
- Virtual machines: vmware, cygwin, Solaris zones, Linux user mode

Weeks 3 - 6
2.Multiprocessing and concurrency in Unix
- Unix signal; using the signals.
- Inter Process Communications.
- IPC for shared memory.
- IPC for message queues.
- IPC for semaphores
- POSIX and Solaris threads

Weeks 7 – 8
3. Windows operating systems
- Architecture
- File systems
- Inter-process communication
- Threads

Weeks 9 - 10
4. Socket communication
- The socket concept: definitions, socket adresses, characteristics.
- Communication scenarios
- System calls for socket communications.
- Examples for communications between Unix and Windows.

Weeks 11 - 13
5. Distributed Operating Systems
- Concepts, distributed algorithms, general architecure
- OS classical distributed services: NFS, TELNET(SSH), FTP (rfc).
- Middleware platforms: RPC, CORBA, RMI,  distributed shared memory, distributed file systems, message passing

Week 14
4. Client / server techniques and graphic interfaces
- X-Window
- X-window graphical interface package.
- Architecture and X protocol.
- X-window API bases

Laboratories
1. Shell programming review.
2. Unix process review
3. Python (1)
4. Python (2)
5. Unix signals
6. Message queues
7. Semaphores and shared memory.
8. POSIX / Solaris threads and synchronization.
9. Windows threads and synchronization
10. Client - server communications using socket.
10. Concurrent servers
11. API X programming.
12. RPC 
13. Close the laboratory activity
14. Applications exam

VII. Didactic methods used
The main teaching methods used in the course are: exposition, discussions, individual study, home-works, quizzes, practical projects. The lectures are based on the bibliography entries presented above: books, articles, web-sites. The practical projects are solved during the lab hours and at home. The projects are either programming or administrative assignments to be implemented on the operating system being studied.	

VIII. Assessment
A compulsory application and an writing exam on finish of the semester. The mark is a mean between:
- 	the exam mark 40%;
- 	the application mark 40%;
- 	the semester activity: quality of programs, documentations etc. 20%

Course requirements and details can be found on the course web-site: http://www.cs.ubbcluj.ro/~rares/course/ie/dos	

IX. Additional references

	Dean,							Chair head,

	Date,							Course responsible,
								Lect. BOIAN Rares Florin, Ph.D.