|Politecnico di Torino|
|Academic Year 2010/11|
Operating systems and system programming
Master of science-level of the Bologna process in Telecommunications Engineering - Torino
Master of science-level of the Bologna process in Computer And Communication Networks Engineering - Torino
The course are taught in English.
This course is part of the Master Degree in Computer and Communication Networks Engineering, given during the I teaching period of the I year.
The course aims at introducing the basic elements of the Operating Systems architecture, describing the basic structure of OSs and the working principles from the point of view of both the advanced user and the system programmer. The course will also deepen some concepts of Operating Systems Design.
Expected learning outcomes
- Knowledge of the classification of the Operating Systems.
- Knowledge of the operating systems architecture as a collection of resource managers.
- Knowledge of operating system kernel structures.
- Knowledge of concurrent programming based on processes and threads.
- File systems, memory, system calls. Virtual machines.
- Unix shell.
- Linux kernel and compiling issues. Linux drivers.
Prerequisites / Assumed knowledge
- Being able to develop C programs
- Knowledge of the Computer Organization and Architecture: in particolar of processor structure and memory organization
- Knowledge of the interrupt system and of the basics of Assembly programming
Operating system architecture (0.5 credit)
- Operating system classification
- Operating system structure, managed resources and modules
- Kernel: models
Processes and threads (1 credit)
- Concurrent processes
- Managing processes
Processes and threads syncronization (1,5 credits)
- Semaphores: variables and primitives
- High level primitives
- Inter-Process Communication
- Deadlock problem
- Posix Threads
File system, memory, system calls, virtual machines (1 credit)
- File system
- System calls
- Virtual Machines
Unix shell (1 credit)
- Bash, awk.
- Gcc compiler.
Linux kernel and Linux drivers (1 credit)
- Linux kernel compiling
- Linux drivers writing
Laboratories (2 credits)
- Using and programming a Linux system
- Managing and compiling the Linux kernel
Texts, readings, handouts and other learning resources
Slides used from the teacher.
Essential Linux Device Drivers
Prentice-Hall, 2008, ISBN-10: 0-13-239655-6
Silbershatz A., Galvin. P., Gagne G.
Sistemi Operativi. Concetti ed Esempi
8^ Edizione, Pearson Education Italia, 2009, ISBN-10: 8-87-192233-6
W.Richard Stevens, Stephen A. Rago
Advanced Programming in the UNIX Environment
Addison Wesley; 2 edition (7 July 2005),ISBN-10: 0201433079 ISBN-13: 978-0201433074
Assessment and grading criteria
Written exam with an expected duration of 60 minutes, with questions and exercises on the main topics course.
Laboratory homework could add additional points.
Programma definitivo per l'A.A.2010/11