( english version )
Operating systems ( 6 CFU )
Prof. Francesco Zanichelli
     Tel. 0521 905710 - Fax. 0521 905723           E-mail. francesco.zanichelli@unipr.it           Home page. http://www.ce.unipr.it/~mczane

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.

Part I

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. Virtualization.

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.
Deadlock management.
CPU scheduling and main algorithms.

Part II

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.
Client-server examples.

Attività d'esercitazione
Lab exercises on Linux PCs at the “Laboratorio Informatica di base” laboratori.
Exercises on UNIX/LINUX commands and shells. Exercises on process interaction under UNIX/LINUX.

Modalità d'esame
Written examination on the theory of Operating Systems (Part I of the course).
Computer exercise on UNIX/LINUX system programming.

Final grade is weighted on theory (40%) and UNIX (60%) grades.

Programming course.

Testi consigliati
Operating Systems Concepts - 8/ed, A. Silberschatz, P. B. Galvin, G. Gagne
Wiley 2008,ISBN-13: 978-0470128725
Advanced Linux Programming, http://www.advancedlinuxprogramming.com

stampa il programma ~ torna indietro