Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă
Domeniul: Informatică
Programul de studii: Informatică - în limba engleză
Limba de predare: Engleză

SYLLABUS

I. General data
Code	Subject	
MID0003	Operating Systems	

Semester	Hours: C+S+L	Category	Status	
2	2+0+2	fundamental	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
Learning by the students of the general theory of Operating Systems. Gaining the necessary skills to operate and to design specific applications on the Unix operating system, using Shell scripts, the main Unix text commands, and C programming with processes. Comparative discussion of the features presented by the Windows family of operating systems against the UNIX systems.	

IV. Course content
The course will present the following major subjects:
1.	The user interface of the UNIX operating systems
2.	UNIX system calls and internal structures
3.	Windows system calls and internal structures
4.	File systems for Unix, Windows (2003, XP, Vista), DOS
5.	Operating systems theory: structure, functions, processes, memory management.

The students will have to resolve twelve lab projects related to the subjects 1 to 4 above.	

V. Bibliography
1. BACON J. Concurrent Systems: Operating Systems, Database and Distributed Systems - an integrated approach. Addison-Wesley, 1998
2. BOIAN F.M. Sisteme de operare interactive. Ed. Libris, Cluj, 1994.
3. BOIAN F.M. De la aritmetica la calculatoare. Ed. Presa Universitara Clujeana, Cluj, 1996.
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. IGNAT I. KACSO A. Unix: generarea proceselor. Ed. Albastra, grupul Microinformatica, Cluj, 1995.
6. ROCHKIND M.J. Advanced Unix Programming. Prentice Hall, 1985.
7. STALLINGS W. Operating Systems: Internal and Design Principles. Prentice Hall, 1998.
8. TANENBAUM A.S. Distributed Operating Systems. Prentice Hall, 2002 
9. *** UNIX Unleashed, Internet Edition. http://docs.rinet.ru:8083/UNIXi/
10. *** UNIX Unleashed, System Administrator's Edition. http://docs.rinet.ru:8083/UNIXs/ 	

VI. Weekly didactical activity subjects
Lectures
Weeks 1 - 3
1. The Unix OS: external interfaces
- The general structure of the Unix OS
- Regular expressions, file specifications, generic specifications of files
- Filters; general aims, sort, awk, sed, grep (the othess, into laboratoryes)
- The command shell processors:sh, csh, ksh, bash; general aims
- Internal shell commands; external managements of the processes
- Shell programming; aplications
- High levels of the directories form the Unix system file
- The mounting
- Symbolic and hard links

Weeks 4 - 6
2. The Unix OS: system calls, internal structures
- The correspondig between files and processes in Unix
- I/O with handle calls: open, close, lseek, read, write, dup, dup2 
- File protected
- File blocks
- The Unix processes: structure
- The system calls for processes: fork, wait, exit, exec*
- Inter process communications with: pipe, popen, FIFO
- Elements of the Unix administration

Weeks 7 – 8
3. The Windows operating systems
- General structure of the operating system
- Windows processes
- Windows Inter Process Communication
- File locking in Windows
- Elements of Windows administration

Weeks 9 - 10
3. File systems for OS
- General problems about disk and files management
- The disk access scheduling
- Internal structure of a DOS disk and DOS file system; the FAT table
- Internal structure of a WindowsNT & 2000; NTFS mechanism, the file MFT
- Internal structure of a Unix disk and Unix system files; the i-node structure
- RAID systems

Week 11 - 14
4. The general theory of the operating systems
- Types of system computers and operating systems; classifications
- I/O channel, multiple buffers. Multiprograming. 
- The functions and the general structure of a OS
- The process concept: specifications, concurency, semaphores, deadlock
- The process scheduling
- Memory management
- The memory scheduling problems

Laboratories
1. (a) UNIX commands for working with files (b) C Tutorial: sections 1-5 2009-02-27
2. (a) Shell Programming (I) (b) C Tutorial: sections 6-8 2009-03-06
3. (a) SED and GREP utilities (b) C Tutorial: sections 9-11 2009-03-13
4. AWK programming 2009-03-20
5. (a) Shell Programming (II) (b) MAKE utility. Working with UNIX files in C 2009-03-27
6. UNIX Processes 2009-04-03
7. UNIX Processes 2009-04-10
8. File locking in UNIX 2009-04-17
9. File locking in UNIX 2009-05-01
10. UNIX inter-process communication through PIPE and POPEN 2009-05-08
11. UNIX inter-process communication through FIFO 2009-05-15
12. Closing lab activities 2009-05-22
13. Practical exam 2008-05-29	

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 a written 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%

If the semester activity grade is less than 5, the practical exam requirements will be increased by 50% and its ratio in the final grade will become 60%

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

IX. Additional references

	Dean,							Chair head,

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