Course teached as: B006818 - SISTEMI OPERATIVI 3-years First Cycle Degree (DM 270/04) in COMPUTER SCIENCE
Teaching Language
Italian
Course Content
Operating systems structure and operations; processes, threads and CPU scheduling; deadlocks characterization and management; main and virtual memory management; file system interface and implementation; mass-storage structure and I/O system management.
Shell commands in UNIX/Linux. The C programming language. UNIX/Linux system calls. System programming and inter-process communication in UNIX/Linux.
Theory
Required Textbook:
Sistemi Operativi. A.Silberschatz & P.B.Galvin & G.Gagne, 9ed., Addison-Wesley.
Optional Textbooks:
Sistemi Operativi. P.Ancillotti & M. Boari & A. Ciampolini & G. Lipari, 2ed., McGraw-Hill.
I Moderni Sistemi Operativi. A.S. Tanenbaum & H. Bos, 4ed., Pearson.
Laboratory
BASH Programming – Introduction HOWTO. http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html
Programming in C - UNIX System Calls and Subroutines using C. http://www.cs.cf.ac.uk/Dave/C/CE.html
The Linux Kernel Module Programming Guide - P.J.Salzman, 2007. http://www.tldp.org/LDP/lkmpg/2.6/lkmpg.pdf
Learning Objectives
Knowledge and understanding:
Operating systems’ internal structure and operations of their components; Issues related to design and implementation of the different operating systems’ components, with special care for the hardware/software relationships and for the interaction with user programs.
Knowledge and understanding skills applied:
More conscious and effective use of operating systems and of the tools they provide.
Total number of hours of the course: 225
Number of hours for personal study and other individual learning activities: 147
Number of hours for classroom activities: 56
Number of hours for laboratory activities (laboratory classes): 24
Number of hours per course tests: 4
Further information
Prof. Pugliese’s office hours: by appointment (contact the teacher by phone or e-mail)
Dott. Lollini’s office hours: by appointment (contact the teacher by phone or e-mail)
Type of Assessment
The exam consists of two tests, one concerning the theory part and one concerning the laboratory part.
The theory test consists of a written exam including theory questions and exercises to be solved through the practical application of the theory. At the request of the student or the teacher, in case the student has achieved a score equal to or greater than 16 in the written exam is obtained, it is also possible to take an oral exam. In this case, the mark of the theory test is determined by arithmetic mean of the scores obtained in the written test and in the oral exam.
The laboratory test consists in the development of a software project, in groups of 2-3 students, and an oral exam that includes the discussion of the project. The mark of the laboratory test is determined by arithmetic mean of the scores obtained in the evaluation of the project and in the oral exam.
The final mark of the examination is finally determined by making a weighted average of the mark obtained in the theory test (weight 2/3) and the mark obtained in the laboratory test (with weight 1/3).
Course program
Operating system’s main functions. Mode of operation. Interrupts. System calls. Processes. State diagram. Operations on processes. Processes and threads. CPU management. Scheduling policies. Techniques for deadlocks prevention and detection. Main memory management. Contiguous allocation. Paging. Segmentation. Virtual memory. Pages replacement techniques. Secondary-storage management. The file system. Directories and files. Files access methods. Files allocation on disk. File system interface and implementation. Management of I/O devices: polling, interrupt, DMA. Disk requests’ scheduling policies. Case studies: implementation of some concepts in Windows and UNIX/Linux.
Laboratory module: Shell commands in UNIX/Linux. The C programming language UNIX/Linux system calls. System programming and inter-process communication in UNIX/Linux. Basic concepts of system administration UNIX/Linux.