OBJECTIVES OF THE COURSE
This class introduces the fundamental principles and concepts that constitute the Operating Systems. We analyze the techniques for handling and for the coordination of system resources, in order to model a physical machine as an abstract device, for user convenience.
The Lab class offers an introduction to Operating Systems, with a particular focus on linux and unix based systems. The goal is to provide a method and the tools to program the shell and control the system (C).
COURSE CONTENTS SUMMARY
Summary of Computer Architectures
Processes and Thread.
Modelization of a process: state, generation and termination. Thread model: use and implementation. Interaction paradigms: sharing, synchronization and communication. Scheduling.
Resources Managements. Basic policies. Deadlock: definition, avoidance, prevention, detection, removal. Classical Examples.
Problem definition. Swapping. Paging. Segmentation.
I/O devices management.
Devices and controllers. I/O software. Management: interrupt, drivers, device independent software. Devices: character based devices, magnetic disks.
Unix/Linux OS. History, structure and user interface.
Unix shell. Bash shell, shell scripting, filters.
System Programming in C. Syscalls and system libraries, process control, interprocess communication, threads and multithreading, file-system access and I/O.
Silberschatz, Galvin, Gagne: Sistemi operativi. 8th edition, Pearson
ASSESSMENT METHODS AND CRITERIA
Joined oral written exam
Oral lesson and laboratory