PORTALE DELLA DIDATTICA

PORTALE DELLA DIDATTICA

PORTALE DELLA DIDATTICA

Elenco notifiche



Operating systems

04JEZLM, 04JEZOA

A.A. 2026/27

Course Language

Inglese

Degree programme(s)

1st degree and Bachelor-level of the Bologna process in Ingegneria Informatica (Computer Engineering) - Torino
1st degree and Bachelor-level of the Bologna process in Ingegneria Informatica - Torino

Course structure
Teaching Hours
Lecturers
Teacher Status SSD h.Les h.Ex h.Lab h.Tut Years teaching
Co-lectures
Espandi

Context
SSD CFU Activities Area context
ING-INF/05 6 B - Caratterizzanti Ingegneria informatica
2023/24
Mandatory course in the Bachelor's Degree program in Computer Engineering, it is held in the first semester of the third year. Its main objectives are to present the basic elements of the architecture of the operating system and to teach the concepts and methods of concurrent programming. The course permits students to acquire specific knowledge about UNIX-like operating systems, with particular reference to the Linux system. It also introduces operating system management by means of shell commands, shell scripts, administration commands, and system calls.
• Classification of main modern operating systems. • Basic functionality provided by an operating system. • Architecture of an operating system seen as a manager and as a scheduler of system resources. • Process and thread management, that is the ability to use primary techniques for creating, synchronizing, and terminating processes and threads. • Skill for using system calls for the creation, synchronization and termination of processes and threads • Use of concurrent programming for solving elementary problems. • Analysis of classical synchronization problems.
• Architectural knowledge o Architecture of a processing system, with particular reference to the structure of a processor, to memory organization and to data types o Basic knowledge about interrupt mechanism • Programming and problem-solving knowledge o Basic and advanced syntax of the C programming language. o Static and dynamic abstract data types (ADT), such as vectors, matrices, lists, queues, stacks, etc., and constructs. o Advanced problem-solving, i.e., capacity to solve relatively highly complex problems by means of the C programming language.
• Operating system architecture (3.0h) o Introduction and classification of operating systems o Structure of an operating system, managed resources and main modules o Operating System Kernel: possible organizations • Basic aspects about the Linux operating system (6.0h) o User commands o System management commands • Advanced aspects about the Linux operating system (6.5h) o Shell o Script languages • The file system (3.0h) o File and allocation o Architecture of a file system • Processes (11.0h) o Introduction to processes and concurrent programming (system call fork and wait) o Advanced process control (system call exec and system) o Signals o Inter-process communication (pipe) • Threads (6.0h) o Main concepts (execution, passage of parameters, wait, etc.) o Differences between threads and processes, and type of threads o The PThread library in UNIX-like environment • Processes and thread synchronization (7.5h) o Software and hardware solutions to synchronization o Semaphore variables and primitives o Classical synchronization problems (producer and consumer, readers and writers, philosophers, etc.) o Parallel problem-solving • Processes scheduling (1.5h) • Deadlock (1.5h) • Laboratory practice about all previous listed topics and in a Linux operating system (15.0h)
The class can be divided into theory lectures, practice lessons and laboratories. There is no formal distinction between theory and practice as almost all course topics involve theory and practice aspects developed during the classroom lessons by the teacher. The course also includes about 15 hours of assisted laboratory exercises. The laboratory activity includes practical exercises on (practically) all the topics covered during the lessons and classroom exercises. For this reason laboratories are an integral and fundamental part of the course. The laboratory exercises are carried out using a Linux operating system (Ubuntu or similar) and involve the use of all the basic tools of the operating system, i.e., commands and shell languages, script writing, file-system and its management, development of concurrent programs with the C programming language.
• Material provided by the teacher o Slides used in classroom o Material used in laboratory, with particular reference to laboratory exercises and related solutions o Provided material on specific topics • Material (educational or not) available on the World Wide Web and in the course website • Books: o A. Silbershatz, P. Galvin, G. Gagne, “Operating System concepts”, John Wiley & Sons, Inc. o A. S. Tanenbaum, H. Bos, “Modern operating systems”, Pearson College o W. R. Stevens "Advanced programming in the UNIX Environment", Addison-Wesley Publishing Company
Lecture slides; Text book; Exercises; Exercise with solutions ; Lab exercises; Lab exercises with solutions; Video lectures (current year); Video lectures (previous years); Multimedia materials; Simulation tools; Student collaboration tools;
Exam: Written test;
The exam consists of a written test. The written test is carried out by means of a computer, using the university platform "Exam". Depending on the sanitary situation, the exam is taken either onsite, i.e., in one of the laboratories, or online, i.e., remotely. In the first case, the instructors provide the required assistance and control activity, directly in the laboratories. In the second one, the exam is taken integrating the "Exam" platform with the proctoring tools available within the portal system. All students have to read the University regulations related to the exams and to obtain the necessary hardware and software tools needed for it. All students are required to respect the ethical code defined by the University. In the case of problems of infrastructural nature, students must promptly communicate the problem via email no later than one hour after the end of the test. If irregularities are found, the professors reserve the right to perform an oral verification on all topics of the course. The written test includes from 6 to 18 open (with manual correction) or close questions (with automatic correction by means of the exam platform). These questions are aimed at verifying: • The knowledge acquired during the course and related to both the theoretical and the more practical aspects • The ability to solve problems involving the theoretical and practical knowledge acquired, with particular attention to shell commands, script languages, main aspects of system programming and concurrent programming. The test lasts about 120 minutes. Books, overheads, and notes are not allowed. Laptops, cellular phones, etc. are forbidden. The reference notes deemed as necessary (such as the ones on Linux shell commands, BASH shell scripts, and the Pthreads library) will be made directly available within the "Exam" platform. In the case of suspects during the written test, the teachers reserve the right to cancel the test itself or to evaluate the candidate by means of a further oral examination. The written test is evaluated up to 36 points. All marks larger or equal to 32 or 33 (depending on the written text) will be automatically converted in 30 with honor.
In addition to the message sent by the online system, students with disabilities or Specific Learning Disorders (SLD) are invited to directly inform the professor in charge of the course about the special arrangements for the exam that have been agreed with the Special Needs Unit. The professor has to be informed at least one week before the beginning of the examination session in order to provide students with the most suitable arrangements for each specific type of exam.
Esporta Word