OPERATING SYSTEMS A
Learning outcomes of the course unit
The course introduces the main methodological tools for the analysis of system software, in particular for the UNIX/LINUX Operating System.
In the first part the process model of an OS is presented, together with the management of hardware resources. In the second part the main features of UNIX/LINUX are described both at user level and the system programming level.
Fundamentals of Computer Science (suggested)
Course contents summary
Introduction to Operating Systems. Batch, time-sharing and spooling systems.
Processing and I/O parallelization. The interrupt systems: device and timer interrupts.
Interrupt handling. Modelling of a simple OS and technique for increasing the performance.
Multitasking e process model. Protection system. CPU operating modes. Systems calls.
I/O handling. Layered structure of OSs.
Concept of process. Process state and descriptor. Concurrent processes. Cooperation and competition among processes. Shared memory interaction. Mutual exclusion and critical sections. Semaphores e synchronization primitives.
Message passing interaction. Send/receive primitives, designation and synchronization.
CPU scheduling and main algorithms.
Introduction to UNIX and LINUX.
UNIX File System. File access rights. Main system commands. I/O redirection and piping. Command shell. Foreground and background command execution.
Physical organization of the file system. Process image. Program development in UNIX.
File and I/O primitives. System calls for process management: creation, execution and exit.
Interprocess communication facilities: unreliable and reliable signals, pipes, FIFOs and sockets.
Lab exercises on Linux PCs at the “Laboratorio Informatica di base” laboratories.
Exercises on UNIX/LINUX commands and shells. Exercises on process interaction under UNIX/LINUX.
Written mid-term examination on the theory of Operating Systems (Part I of the corse).
Written exam: exercises on UNIX/LINUX system programming.