Unit
- Course
- Computer science and electronic engineering
- Study-unit Code
- A003144
- Curriculum
- Ingegneria informatica
- Teacher
- Carla Binucci
- Teachers
-
- Carla Binucci
- Hours
- 54 ore - Carla Binucci
- CFU
- 6
- Course Regulation
- Coorte 2022
- Offered
- 2024/25
- Learning activities
- Caratterizzante
- Area
- Ingegneria informatica
- Academic discipline
- ING-INF/05
- Type of study-unit
- Obbligatorio (Required)
- Type of learning activities
- Attività formativa monodisciplinare
- Language of instruction
- Italian
- Contents
- - Operating system structures.
- Processes.
- Cpu scheduling.
- Process synchronization.
- Main memory and virtual memory.
- Secondary memory.
- File-system.
- Introduction to Linux operating system at the user level. - Reference texts
- - Abraham Silberschatz, Peter Baer Galvin, Greg Gagne, Operating System Concepts, Ninth Edition, John Wiley & Sons, Inc., 2012
- Educational objectives
- The main aim of this teaching is to provide students the following knowledge:
- Understanding of the fundamental concepts underlying the operation of modern operating systems.
- Basic knowledge of Linux - user side.
The main skills will be functional to:
- Solve problems related to the management of computer resources (Processor, Primary and Secondary Memory)
- Interact with the Linux operating system at the user level - Prerequisites
- In order to fully understand some of the topics covered in the course, it is strongly recommended to have completed the Fundamentals of Computer Science exam. Several topics covered in the module require knowledge of C programming principles.
- Teaching methods
- The course is organized with lectures and exercises on the topics covered in the course.
- Other information
- Learning verification modality
- Written exam with open questions and exercises.
- Duration: about 120 minutes
- Structure: open questions and exercises
- Grade: 30/30
Objective: Verify the acquired knowledge regarding the theoretical concepts of the course and the ability to apply such concepts to practical cases. - Extended program
- - Introduction: Overview of what a operating system is and what it does; structures of operating systems.
- Processes: Concept of process; Process scheduling; Process operations, inter-process communication.
- Process synchronization: Critical section problem; Hardware for synchronization; Mutex locks; Semaphores; Typical synchronization problems.
- CPU scheduling: Fundamental concepts; Scheduling criteria; Scheduling algorithms; Scheduling for multiprocessor systems; Examples of operating systems.
- Deadlock (overview): System model; Characterization of deadlock situations.
- Main memory: Logical and physical address spaces; Process swapping; Contiguous memory allocation; Paging; Page table structure; Architecture examples.
- Virtual memory: Demand paging; Page replacement algorithms; Frame allocation; Trashing.
- Threads (overview): Thread concept; User-level threads and kernel-level threads; CPU scheduling in the presence of threads.
- Secondary memory: Disk scheduling; Swap space management.
- File system: File concept; Access methods; Directory and disk structure; Protection; Directory implementation; Allocation methods: contiguous, linked, FAT, indexed, UNIX i-node; Free space management.
- Introduction to Linux: Introduction to Linux; Using the shell and basic terminal commands; Main system calls for process management. - Obiettivi Agenda 2030 per lo sviluppo sostenibile
- 4,9