- Docente: Alessandro Ricci
- Credits: 9
- SSD: ING-INF/05
- Language: Italian
- Moduli: Alessandro Ricci (Modulo 1) Andrea Santi (Modulo 2)
- Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
- Campus: Cesena
- Corso: First cycle degree programme (L) in Electronics, Informatics and Telecommunications Engineering (cod. 8196)
Learning outcomes
The Operating Systems course provides an introduction of the main
aspects that concern modern operating systems, from their design to
their functioning and use, system programming and concurrent
programming basics. In particular, at the end of the course
students:
- know the main aspects that concern modern operating systems architecture, functioning and use, including process management, memory management, I/O management, File System management, virtualization
- are able to develop system programs using the C programming language, in particular in POSIX environments, and using UNIX shell scripting language;
- are able to develop simple concurrent programs, in particular multi-process programs in C and multi-threaded programs in Java and C
- are able to understand and modify the implementation of the kernel a modern operating system - Linux kernel is chosen as reference case study.
Course contents
The course is composed by the following parts
Theory:
- Introduction to modern Operating Systems
- Process management
- Memory management
- I/O subsystems and network management
- Protection and Security
- Virtualization
Practice/Lab:
- System programming (System Programming in assembly language (intro), System Programming in C)
- Shell and script programming in Unix Shell (Bourne)
- Linux Kernel Programming
- Introduction to concurrent programming (multi-process programming C/POSIX, multi-threded programming in Java)
Readings/Bibliography
The course textbook for the theory is:
"Operating Systems Concepts (8th ed.)" (Silbershatz, Galvin,
Gagne), Wiley.
For the practice:
"Linux Kernel Development" (Robert Love), Novell.
Teaching methods
Six credits (60 hours) are devoted to theory and exercises in the
lecture-hall, and three credits (30 hours) to practice in
lab.
Assessment methods
The final assessment is composed by two parts:
- written examination, composed by exercises about the content of the course
- practice, composed by a set of programming assignments to be done in lab and home
- oral exam, about the theory
Teaching tools
The main reference for the course content is the set of course
notes (slides) discussed during the lessons and available for
download from the course web site. For the practice, a laboratory
with different kind of OS is available. All the material is
available on the ufficial web site of the course.
Links to further information
http://www.moodle.unibo.it/course/view.php?id=284
Office hours
See the website of Alessandro Ricci
See the website of Andrea Santi