OPERATING SYSTEMS - canale 1Academic Year 2016/2017 - 2° Year
Credit Value: 6
Scientific field: ING-INF/05 - Information processing systems
Taught classes: 35 hours
Exercise: 15 hours
Term / Semester: 1°
The students shall acquire knowledge and skills about:
- Operating system design and programming in Linux/UNIX environments.
- Resource virtualization and management (CPU, central memory, secondary memory, peripherals).
- The concept of process and thread and how to handle both.
- Concurrency control on mutual exclusive resources.
- Linux shell commands.
The student will develop programming skills with the system calls for:
-process creation and management, signal generation and handling, interprocess communication;
- concurrency control;
- creating and managing multithread applications.
Detailed Course Content
Operating Systems Introduction
Operating systems concepts. History and classification of operating systems. The POSIX standard.
Operating systems structure. Multiprocessor OS structure.
Processes and Threads
Signals and signal handling.
Thread implementation. POSIX threads. The pthread.h library.
Scheduling. Real-time systems scheduling. Linux scheduling.
Critical regions. Race conditions. Mutual exclusion. Busy waiting. Semaphores and Mutexes. Program examples.
Unnamed Pipes, FIFOs, Message queues, Shared memory.
Classical IPC problems. Program examples.
Client/server model. Sockets.
Deadlock characterization, detection, prevention, avoidance.
Virtual memory. Page replacement. Segmentation.
File. Directories. File system implementation.
File system examples.
Input and Output.
I/O Hardware. I/O Software.
1) Theory: Abraham Silberschatz, Peter Baer Galvin, Greg Gagne, “Sistemi Operativi, Concetti e esempi”, Nona Edizione, Pearson, ISBN 9788865183717.
Alternative option for theory: Andrew S. Tanenbaum, “I moderni sistemi operativi 4/Ed.", 2016, ISBN 9788891901019.
2) Programming part: R. Stones, N. Matthew, “Beginning Linux Programming”, 4th edition, Wrox Press, 2007. Disponibile in rete