OPERATING SYSTEMS A
cod. 13120

Academic year 2009/10
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

<br />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.

Prerequisites

Fundamentals of Computer Science (suggested)

Course unit content

<br />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

 <br />A. Silbershatz, P. Galvin, G. Gagne, 'Operating Systems Concepts', seventh ed., John Wiley & Sons, 2004.<br />
W. Richard Stevens, Stephen A. Rago, Advanced Programming in the UNIX(R) Environment (2nd Edition), Addison-Wesley Professional Computing Series 2005

Teaching methods

<br /><br />Class lectures<br />Lab exercises on Linux PCs at the ¿Laboratorio Informatica di base¿ laboratories.<br />Exercises on UNIX/LINUX commands and shells. Exercises on process interaction under UNIX/LINUX.<br /> <br />Examinations<br /> <br />Written mid-term examination on the theory of Operating Systems (Part I of the corse). <br />Written exam: PC-based exercise on UNIX/LINUX system programming.

Assessment methods and criteria

- - -

Other information

- - -