Learning outcomes
|
Knowledge of the main theoretical and projectual features of the operating systems. Knowledge of the main elaboration resources abstractions, associated policies and mechanisms for their management. Ability in applying the above knowledge and in using know-how to complete tasks and solve more general problems. Prowess in looking at the computer as a concurrent components and shared resources set. Ability to use acquired knowledge, skills and personal methodological abilities in work or study situations.
|
Contents |
The course is intended as a general introduction to the techniques used to implement a real operating systems and related kinds of systems software. A fundamental component of designing an operating system is in selecting the proper set of resource abstractions, associated policies and mechanisms for their management. In this course, various resource types and their common abstractions are studied. For example, abstractions for memory, computations context, CPU, files. Then mechanisms (algorithms) for manipulating, partitioning and scheduling the resources for both internal use and for allocating to clients are taken into account.
CONTENTS:
-
Introduction: what operating systems do, mainframe, desktop, multiprocessor, distributed, real-time, embedded.
-
Operating-system structures: operating-system services, system calls, virtual machines, operating-system design and implementation.
-
Processes: process concept, synchronization, the critical-section problem (Peterson’s Solution, Test-and-Set, Semaphores), scheduling algorithms, methods for handling deadlocks.
-
File-system implementation: file-system structure and implementation, directory implementation, allocation methods, free-space management, performance, consistence.
|