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 |
---|
Mathematical analysis 1
Computer Architecture
2° Year activated in the A.Y. 2023/2024
Modules | Credits | TAF | SSD |
---|
3° Year activated in the A.Y. 2024/2025
Modules | Credits | TAF | SSD |
---|
1 module among the following
Modules | Credits | TAF | SSD |
---|
Mathematical analysis 1
Computer Architecture
Modules | Credits | TAF | SSD |
---|
Modules | Credits | TAF | SSD |
---|
1 module among the following
Modules | Credits | TAF | SSD |
---|
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 (2023/2024)
Teaching code
4S00019
Credits
12
Language
Italian
Scientific Disciplinary Sector (SSD)
ING-INF/05 - INFORMATION PROCESSING SYSTEMS
Courses Single
Authorized
The teaching is organized as follows:
Teoria
Laboratorio [Laboratorio 1]
Laboratorio [Laboratorio 2]
Learning objectives
The course aims to provide an introduction to the principles and design of operating systems, with particular regard to the concepts related to the software architectures of an operating system, the management and synchronization of processes and the management of the resources of the system. At the end of the course, the student will have acquired knowledge and skills related to the internal organization, operation and services of an operating system. In particular, the student will have learned: - the main functionalities of an operating system with respect to users and application programs; - the strategies adopted by an operating system to manage the resources of a computer; - the techniques used to implement the different components of an operating system. Furthermore, the student will be able to apply the acquired knowledge and will have adequate comprehension skills for: - develop programs with the awareness of how the operating system manages the resulting processes; - develop applications that use the primitives (system calls) provided by the operating system; - develop and modify components of an operating system. Finally, the student will be able to: - autonomously evaluate the advantages and disadvantages of different design choices within the services offered by an operating system; - carry out a laboratory project and present the relative results motivating the choices with language appropriateness; - develop the necessary skills to continue the study related to operating systems, addressing advanced issues related to the scenarios of distributed, real time and embedded systems.
Prerequisites and basic notions
- Computer architecture
- C Programming
Program
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, messages. 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:
------------
- Introduction to the shell Bash of Unix/Linux
- System calls for the file system
- System calls for processes
- System calls for threads
- System calls for signals and pipes
- System calls for fifo and message queues
- System calls for semaphores and shared memory
- Scheduling and memory management in MentOS
Bibliography
Didactic methods
The theory will include lectures and exercise sessions. The laboratory will be based on solving practical problems on the computer.
Theory and laboratory will be interleaved to put into practice by hands-on computer experience the concepts and algorithms learned in the theory part.
Learning assessment procedures
The exam has two parts, one for theory and one for the laboratory.
Theory
---------
The exam of the theory module is a written test, containing open-ended questions and exercises.
Laboratory
-----------------
The exam of the laboratory module has two parts: 1) development of a laboratory project according to the specifications provided by the instructor, 2) oral discussion of the project, and computer solution of system programming problems followed by their oral discussion.
Evaluation criteria
The student is required 1) to understand the basic principles of operating systems, and 2) to be able to expose them orally and verbally, and 3) to apply them to the solution of applicative problems delivered as exercises, questions and projects.
Criteria for the composition of the final grade
The final grade is obtained from grade_theory*0.5 + grade_laboratory*0.5.
We uploaded under Moodle a document with a detailed description of the complete rules for the exams of theory and laboratory.
Exam language
Italiano.
Teaching materials e documents
-
Gestione dei processi (en, 1858 KB, 11/1/23)
-
Memoria (en, 2296 KB, 11/1/23)
-
Processi (en, 1048 KB, 10/19/23)
-
Sincronizzazione (en, 1109 KB, 11/1/23)
-
Storia dei sistemi informatici (en, 3134 KB, 11/1/23)
-
XX-TV Temi d'esame (it, 3877 KB, 2/5/24)
-
XX-TV Temi d'esame - avvertenze per l'uso (it, 5 KB, 2/5/24)