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.
Case studies: implementation of some concepts in Windows and UNIX/Linux.
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, 8ed., Addison-Wesley
LINUX for Programmers and Users. G. Glass & K. Ables, Pearson Prentice Hall, 2006
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.
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.