OPERATING SYSTEMS
cod. 05613

Academic year 2011/12
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
48 hours
of face-to-face activities
6 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.
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

Programming course.

Course unit content

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.

Full programme

- - -

Bibliography

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

Teaching methods

Class lectures on OS theory and UNIX/Linux.
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.

Assessment methods and criteria

Written examination on the theory of Operating Systems (Part I of the course) or midterm exam.
Computer exercise on UNIX/LINUX system programming.
Optional programming assignment on Linux process management.


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

Other information

Course website on http://lea.unipr.it