Operating Systems

Pasquale FOGGIA Operating Systems

0612700030
DIPARTIMENTO DI INGEGNERIA DELL'INFORMAZIONE ED ELETTRICA E MATEMATICA APPLICATA
EQF6
COMPUTER ENGINEERING
2020/2021



OBBLIGATORIO
YEAR OF COURSE 2
YEAR OF DIDACTIC SYSTEM 2017
PRIMO SEMESTRE
CFUHOURSACTIVITY
324LESSONS
324EXERCISES


Objectives
The course is aimed at the acquisition of knowledge about the organization, operation and resource management (for resources such as CPU, memory and devices) of a computer. In particular, knowledge and understanding about the architecture of the operating system, its main functions, and the problems (policies and mechanisms) involved in the design and implementation of modern operating systems, together with aspects related to the operating system support for memory allocation and inter-process communication and synchronization.

Knowledge and understanding
Knowledge of the functions of a modern operating system, in particular the management of processes, memory, peripherals and files, and understanding of basic techniques for the implementation of these functions (scheduling algorithms, memory allocation, page replacement and file system), and of inter-process communication.

Applied knowledge and understanding
Understanding what happens inside the operating system during the execution of a program. Ability to use system calls of an operating system for process synchronization and memory management. Ability to develop simple shell scripts.

Prerequisites
The course requires the propedeuticity of the Fondamenti di Programmazione (Programming Foundations) course. For an effective achievement of the course objectives, the knowledge acquired in the Calcolatori Elettronici (Electronic Computers) course is required.

Contents
Introduction (Lez/Ese/Lab: 2/0/0 h)
Operating Systems history. Main familes of current operating systems. The Unix family. The layered model of an Operating System.

The kernel and the process management (Lez/Ese/Lab: 8/0/6 h)
Processes and multitasking. Process states. Scheduling. Priority. Process management in batch, time-sharing and real-time systems. Unix process management. Threads. Synchronization: mutexes, semaphores, condition variables. Deadlock.

Memory (Lez/Ese/Lab: 6/0/4 h)
Memory problems: relocation and protection. Swapping and dynamic loading. The memory model of a Unix process. Virtual memory. MMU and paging.

I/O and file management (Lez/Ese/Lab: 8/0/6 h)
Peripherals abstraction and virtualization. Device drivers. Driver dynamic loading. File systems. Partitions and volumes. RAID systems. Physical allocation. File management. Directory management. Journaling. Access control: permissions and ACLs. Networked file systems. File system examples for Unix. File permissions for Unix.

The operating system shell (Lez/Ese/Lab: 4/0/4 h)
General characteristics of a shell. The bash shell. Remote access and SSH. Shell scripts. Environment variables. Path. File management commands. I/O redirection. Control structures. Pipes and background processes. Commands for process and job management. The find command. Regular expressions and the grep and sed commands.

TOTAL Lez/Ese/Lab: 28/0/20
Teaching Methods
The course includes frontal lectures and laboratory exercitations. In laboratory exercitations, students are required to write C programs and shell scripts using the Linux operating system.

Course attendance is compulsory. To access the final exam, students must have attended at least 70% of the teaching hours.

Verification of learning
The exam is composed of a written test and an oral interview, graded in 30-ths. To access the oral interview, the student must pass the written test with at least 18/30. During the course, a partial written test (prova in itinere) will be held, that, if passed, exonerates the students from a part of the final written test.

The written test is aimed at evaluating the understanding of the main mechanisms for the management of processes, memory and files, and the ability to write simple C programs using the system calls and shell scripts for the bash shell.

The oral interview is aimed at evaluating the level of theoretical knowledge, the autonomy of analysis and judgement and the exposition ability of the student.

The minimum passing grade (18) is attributed when the student has a fragmentary knowledge of the theoretical contents and a limited ability of applying the acquired knowledge. The maximum grade (30) is attributed when the student shows a complete knowledge of the theroretical aspects and a significant capability of applying the knowledge to solve problems similar to the ones presented in the course. The “Lode” (honors) is awarded when the student shows a deep knowledge and understanding of the theoretical aspects, an excellent language propriety and a significant ability of autonomous elaboration in the application of the acquired knowledge also to contexts differing from the ones presented in the course.

Texts
*Silberschatz, Galvin, Gagne: “Sistemi operativi: Concetti ed esempi”, decima edizione, Addison-Wesley.
*Additional material (notes, tutorials) will be provided by the teachers during the course.
More Information
Course language is Italian.
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2022-05-23]