( english version )
Operating systems A ( 5 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.

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.

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.

Modalità d'esame
Written mid-term examination on the theory of Operating Systems (Part I of the corse).
Written exam: exercises on UNIX/LINUX system programming.

Testi consigliati
W. Stallings, "Sistemi Operativi", Jackson Libri, 2000
K. Wall, M. Watson, M. Whitis, "Programmare in Linux – Tutto & Oltre", Apogeo, 2000

stampa il programma ~ torna indietro