Studying at the University of Verona
Here you can find information on the organisational aspects of the Programme, lecture timetables, learning activities and useful contact details for your time at the University, from enrolment to graduation.
Study Plan
This information is intended exclusively for students already enrolled in this course.If you are a new student interested in enrolling, you can find information about the course of study on the course page:
Laurea in Informatica - Enrollment from 2025/2026The Study Plan includes all modules, teaching and learning activities that each student will need to undertake during their time at the University.
Please select your Study Plan based on your enrollment year.
1° Year
Modules | Credits | TAF | SSD |
---|
2° Year activated in the A.Y. 2015/2016
Modules | Credits | TAF | SSD |
---|
Un insegnamento a scelta tra i seguenti
3° Year activated in the A.Y. 2016/2017
Modules | Credits | TAF | SSD |
---|
Un insegnamento a scelta tra i seguenti
Modules | Credits | TAF | SSD |
---|
Modules | Credits | TAF | SSD |
---|
Un insegnamento a scelta tra i seguenti
Modules | Credits | TAF | SSD |
---|
Un insegnamento a scelta tra i seguenti
Legend | Type of training activity (TTA)
TAF (Type of Educational Activity) All courses and activities are classified into different types of educational activities, indicated by a letter.
Operating Systems (2015/2016)
Teaching code
4S00019
Credits
12
Language
Italian
Scientific Disciplinary Sector (SSD)
ING-INF/05 - INFORMATION PROCESSING SYSTEMS
The teaching is organized as follows:
Teoria
Laboratorio [Laboratorio 1]
Laboratorio [Laboratorio 2]
Learning outcomes
The course introduces to operating system design, with particular regards to concepts related to the architecture of an operating system, and to the management and synchronization of processes and resources.
At the end of the course, the students will be able to understand how an operating system works and they will know how to:
- develop or update components of an operating system;
- develop applications that use the functionality offered by the operating system.
Program
Theory:
-------
* Introduction: Evolution and role of the operating system. Architectural concepts. Organization and functionality of an operating system.
* Process Management: Processes. Process status. Context switch. Process creation and termination. Thread. User-level threads and kernel-level threads. Process cooperation and communication: shared memory, messagges. Direct and indirect communication.
* Scheduling: CPU and I/O burst model. Long term, short term and medium term scheduling. Preemption. Scheduling criteria. Scheduling algorithm: FCFS, SJF, priority-based, RR, HRRN, multiple queues with and without feedback. Algorithm evaluation: deterministic and probabilistic models, simulation.
* Process synchronization: data coherency, atomic operations. Critical sections. SW approaches for mutual exclusion: Peterson and Dekker's algorithms, baker's algorithm. HW for mutual exclusion: test and set, swap. Synchronization constructs: semaphores, mutex, monitor.
* Deadlock: Deadlock conditions. Resource allocation graph. Deadlock prevention. Deadlock avoidance. Banker's algorithm. Deadlock detection e recovery.
* Memory management: Main memory. Logical and physical addressing. Relocation, address binding. Swapping. Memory allocation. Internal and external fragmentation. Paging. HW for paging: TLB. Page table. Multi-level paging. Segmentation. Segment table. Segmentation with paging.
* Virtual memory: Paging on demand. Page fault management. Page substitution algorithms: FIFO, optimal, LRU, LRU approximations. Page buffering. Frame allocation: local and global allocation. Thrashing. Working set model. Page fault frequency.
* Secondary memory. Logical and physical structure of disks. Latency time. Disk scheduling algorithms: FCFS, SSTF, SCAN, C-SCAN, LOOK, C-LOOK. RAID.
*File System: file, attributes and related operation. File types. Sequential and direct access. Directory structure. Access permissions and modes. Consistency semantics. File system structure. File system mounting. Allocation techniques: adjacent, linked, indexed. Free space management: bit vector, lists. Directory implementation: linear list, hash table.
* I/O subsystem: I/O Hardware. I/O techniques: programmed I/O, interrupt, DMA. Device driver and application interface. I/O kernel services: scheduling, buffering, caching, spooling.
Laboratory:
------------
* Shell programming in Unix/Linux.
* Introduction to the system programming in Unix/Linux.
* System calls for I/O.
* System calls for process management.
* System calls and techniques for inter-process communication and synchronization (pipe, fifo, message queue, share memory, semaphores, ...).
Bibliography
Activity | Author | Title | Publishing house | Year | ISBN | Notes |
---|---|---|---|---|---|---|
Teoria | A. Silberschatz, P.B. Galvin, G. Gagne | Sistemi operativi. Concetti ed esempi. (Edizione 9) | Pearson | 2014 | 9788865183717 |
Examination Methods
The exam is composed of two parts: theory and laboratory.
To pass the exam, the student must show
- they have understood the principles related to how an operating system works
- they are able to describe the concepts in a clear and exhaustive way without digressions
- they are able to apply the acquired knowledge to solve application scenarios described by means of exercises, questions and projects.
Theory:
-------
The final exam consists of a written test containing questions and exercises.
Laboratory:
-----------
The exam can be taken in two modes: oral or written.
Oral mode:
During the course, students must solve 4 homeworks and provide the corresponding solutions within deadlines defined by the theacher. Then, at the end of the course, on the second half of June, each student must present orally the provided solutions to the theacher.
The exam can be taken in oral mode only on the first week of July.
The observance of deadlines is mandatory. Students that miss the deadline cannot take the exam in the oral mode.
Written mode:
The exam consists of solving some exercises related to system programming by means of shell scripts and/or C programs.
Total grade
-----------
The total grade (thery+laboratory) is given by:
theory_grade*0.5 + laboratory_grade*0.5.
Teaching materials e documents
-
Calendario lezioni I semestre (it, 43 KB, 1/5/16)
-
Date appelli (it, 32 KB, 3/8/16)
-
Materiale didattico (it, 0 KB, 9/28/15)
-
Calendario didattico II semestre (it, 53 KB, 5/10/16)
-
Materiale didattico - Laboratorio (it, 39 KB, 2/25/16)