Study-unit

Course name Computer science and electronic engineering
Study-unit Code A003144
Curriculum Ingegneria informatica
Lecturer Carla Binucci
Lecturers
  • Carla Binucci
Hours
  • 54 ore - Carla Binucci
CFU 6
Course Regulation Coorte 2022
Supplied 2024/25
Learning activities Caratterizzante
Area Ingegneria informatica
Sector 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