Subject: Distributed Operating Systems	Code: MIC0002	

Semester	 Hours: C+S+L	Type	 Section	
3	2+0+2	compulsory	Computer Science	

Teaching Staff in Charge	Prof. BOIAN Florian Mircea, Ph.D., florin@cs.ubbcluj.ro
Lect. ROBU Judit, Ph.D., robu@cs.ubbcluj.ro
Lect. BOIAN Rares Florin, Ph.D., rares@cc.ubbcluj.ro
Asist. COBARZAN Claudiu, claudiu@cs.ubbcluj.ro
Asist. STERCA Adrian Ioan, forest@cs.ubbcluj.ro	
Aims	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 treat the client / server methods in graphic interfaces in X-Window and Windows N	
Content	Courses

1.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

2. The Internet adressing systems
- TCP/IP and IP6 protocols. 
- IP adresses and classes of adresses.
- Domain specifications.
- DNS mechanism.
- Using URL for Internet resources addressing.
- Web communications.
- The http protocol and the HTML language.
- Client Web interractions: HTML forms and sensitive maps.
- Server Web interraction: CGI technology.

3. Distributed operating systems
- Distributed system, distributed algorithm distributed operating system; main characteristics.
- OS classical distributed services: NFS, TELNET(SSH), FTP (rfc).
- The socket concept: definitions, socket adresses, characteristics.
- Socket communications: frames (sceens?).
- System calls for socket communications.
- Exemples for communications between Unix and Windows.

4. Client / server techniques and graphic interfaces
- X-Window
- X-window graphical interface package.
- Architecture and X protocol.
- X-window API bases
- MS Windows
- OS Windows NT and 2000. 
- Windows NT OS archicture.
- Event base programming in Windows.
- Window aplications using Windows API.

Laboratories
1. X using.
2. Unix signals.
3. Shared memory, without synchronization
4. Queue of messages.
5. Semaphores and shared memory.
6. POSIX / Solaris threads without synchronization.
7. Synchronization in POSIX / Solaris threads.
8. Home-page design. Form HTML with CGI interractions.
9. Client - server communications using socket.
10. Socket communications with standard services.
11. API X programming.
12. API MS-Windows programming. 
13. Close the laboratory activity
14. Applications exam	
Selective References	1. BOIAN F.M. Sisteme de operare interactive. Ed. Libris, Cluj, 1994
2. BOIAN F.M. Programare distribuită în Internet; metode şi aplicaţii. Ed. Albastră, grupul Microinformatica, Cluj, 1997
3. 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
4. BURAGA S. Tehnologii Web. Ed. MATRIX ROM, Bucureşti, 2001
5. BURAGA S., TARHON V., TANASĂ S. Programare Web în Bash şi Perl. Ed. Polirom, Iaşi, 2002
6. IGNAT I. KACSO A. Unix: generarea proceselor. Ed. Albastră, grupul Microinformatica, Cluj, 1995
7. NYE A. Xlib Programming Manual. Sun Press, 1988
8. *** HTML 4.01 Specification. http://www.w3.org/TR/1999/REC-html401-19991224
9. *** UNIX Unleashed, Internet Edition. http://docs.rinet.ru:8083/UNIXi/
10. *** Windows NT4 Server Unleashed. http://docs.rinet.ru:8083/NT4/	
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 programms, documentations etc. 20%