|Politecnico di Torino|
|Academic Year 2017/18|
1st degree and Bachelor-level of the Bologna process in Computer Engineering - Torino
Mandatory course in the Bachelor Degree curricula in Computer Engineering, the class is held at the first semester of the third year. The main targets of the class are to present the basic elements of the operating systems architecture and to introduce the basic concepts and methodologies of concurrent programming. The course also illustrates how to manage an operating system by means of shell commands, filters, and shell scripts.
Expected learning outcomes
• Classification of modern operating systems.
• Main operating system functionalities.
• Administration of UNIX/Linux systems by means of commands, shells, filters, scripts and scripting languages.
• The architecture of an operating systems considered as a resource manager.
• Process and threads manipulation, i.e., the ability to create, synchronize, terminate processes and threads.
• Use of concurrent programming to solve simple problems.
• Classical synchronization problems.
Prerequisites / Assumed knowledge
• Knowledge of the language C syntax.
• Good programming skill in C language and the ability to solve problem by writing programs.
• Knowledge of computer system architecture: in particular on the processor and memory organization an data type and structures.
• Knowledge of the interrupt mechanism.
• Basic on an assembler language.
• Operating system architecture (3.0h)
o Operating system classification.
o Structure of an operating system, managed resources and modules.
o Possible organizations of the operating system kernel.
• The Linux operating system (6.0h)
o User commands.
o System commands.
• The advanced Linux operating system (5.5h)
o Script languages.
• The file system (3.0h).
• Processes (11.0h)
o Introduction to processes and concurrent programming.
o Advanced process control.
o Inter-process communication.
• Threads (4.5h)
o Main concepts.
o Differences from processes.
o The PThread library.
• Processes and thread synchronization (6.0h)
o Software and hardware solutions to synchronization.
o Semaphore variables and primitives.
o Classical synchronization problems (producer and consumer, readers and writers, philosophers, etc.).
• The AWK language (3.0h).
• CPU scheduling (1.5h).
• Deadlock (1.5h).
The course 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.
Laboratories (about 15 hours overall) allow students to solve typical problems (with complex commands, filters, scripting or C programs on a Linux personal computer) and applying all theory and practice aspects analyzed during the classroom lessons.
Texts, readings, handouts and other learning resources
All lessons' handouts and laboratory exercises (with solutions) are available from the teacher or the course Web site. The World Wide Web is an excellent source of material for selected and specific topics.
The reference texts, covering most, but not all, topics, are the following:
• A. Silbershatz, P. Galvin, G. Gagne, "Operating System concepts", John Wiley & Sons, Inc.
• A. S. Tanenbaum, H. Bos, "Modern Operating Systems", Pearson.
• W. R. Stevens "Advanced programming in the UNIX Environment", Addison-Wesley Publishing Company.
Assessment and grading criteria
The exam includes a written test. The test lasts 100 minutes and includes two parts:
• 3-4 exercises and/or questions related to topics presented in the lectures.
• 2-3 exercises and/or questions related to topics developed during the classroom and laboratory practices. Those usually involve concurrent programming, shell commands, script programs, etc.
During the exam it is not possible to use any book or note but the cheat-sheet made available by the teachers on specific topics (shell command, shell script, AWK language).
The written test is evaluated as follows:
• Each exercise has a weight equal to 6 points, with a final total mark of 36 (6x6=36)
• Both the theory and the practice parts have a threshold equal to about 50% of the corresponding global mark. The exam is passed only if both parts receive a pass grade.
• The final mark is equal to the sum of all exercise marks.
Programma definitivo per l'A.A.2017/18