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
Condividi su