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.
Sistemi Operativi. P.Ancillotti & M. Boari & A. Ciampolini & G. Lipari, 2ed., McGraw-Hill
Sistemi Operativi. A.Silberschatz & P.B.Galvin & G.Gagne, 9ed., Addison-Wesley
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:
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.
Acquired skills:
operating systems’ internal structure and operations of their components.
Acquired skills at the end of the course:
more informed and effective use of operating systems and their tools.
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): 18
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
Written exam and software project.
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.