OPERATING SYSTEMS A
cod. 13120

Academic year 2008/09
2° year of course - Second semester
Professor
Academic discipline
Sistemi di elaborazione delle informazioni (ING-INF/05)
Field
Ingegneria informatica
Type of training activity
Characterising
45 hours
of face-to-face activities
5 credits
hub:
course unit
in - - -

Learning objectives

The course introduces the main methodological tools for the analysis of system software, in particular for the UNIX/LINUX Operating System.<br />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.<br />

Prerequisites

Fondamenti di Informatica A (suggested)

Course unit content

Part I<br /><br />Introduction to Operating Systems. Batch, time-sharing and spooling systems.<br />Processing and I/O parallelization. The interrupt systems: device and timer interrupts.<br />Interrupt handling. Modelling of a simple OS and technique for increasing the performance.<br />Multitasking e process model. Protection system. CPU operating modes. Systems calls. <br />I/O handling. Layered structure of OSs. <br /><br />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. <br />Message passing interaction. Send/receive primitives, designation and synchronization.<br />CPU scheduling and main algorithms.<br /> <br />Part II<br /><br />Introduction to UNIX and LINUX.<br />UNIX File System. File access rights. Main system commands. I/O redirection and piping. Command shell. Foreground and background command execution.<br /><br />Physical organization of the file system. Process image. Program development in UNIX.<br />File and I/O primitives. System calls for process management: creation, execution and exit.<br />Interprocess communication facilities: unreliable and reliable signals, pipes, FIFOs and sockets.<br />Client-server examples.<br />

Full programme

- - -

Bibliography

W. Stallings, "Sistemi Operativi", Jackson Libri, 2000 <br />K. Wall, M. Watson, M. Whitis, "Programmare in Linux – Tutto & Oltre", Apogeo, 2000<br />

Teaching methods

Written examination on the theory of Operating Systems (Part I of the corse). <br />Written exam: exercises on UNIX/LINUX system programming.<br /> Lab exercises on Linux PCs at the “Laboratorio Informatica di base” lab. <br />Exercises on UNIX/LINUX commands and shells. Exercises on process interaction under UNIX/LINUX.<br />

Assessment methods and criteria

- - -

Other information

- - -