After studying this course students should:
- be able to indicate the goals of an operating system;
- know the hardware-support that is minimally necessary to perform a modern operating system;
- know how to describe the components of an operating system (functionally);
- be able to expose the different design methodologies;
- know how to describe the most important algorithms that are used for implementing theses components, weighing their pros and cons and be able to indicate the necessary hardware support;
- be able to make a responsible choice between these algorithms on the basis of certain criteria and the available hardware;
- be able to develop parallel cooperative programmes and provide the necessary synchronisation tasks;
- be able to compare operating systems and give a justified advice.
Students are supposed to have sufficient knowledge about the functioning of a computer and its peripherals. Students are also expected to have knowledge about a procedural and/or object-oriented computer language.
Is also included in other courses
- Bachelor of Informatics 180 ects.
What is an operating system? Evolution of operating systems. Different types of operating systems.
2) Computer system (Hardware)
Programme interruptions (interrupts), input and output, hardware protection, general system architecture.
3) General structure of an operating system
Components, services, supervision calls, system programmes, structure, virtual machines, design and development, installation.
Concept, proces scheduling, operations on processes, cooperative processes, threads, interproces communication
5) CPU scheduling
Concepts, criteria, algorithms, multiprocessor scheduling, real-time scheduling, evaluation.
6) Process synchronisation
Background, critical section problem, synchronisation HW, semaphores, classical synchronisation problems, critical areas, monitors, examples.
7) Impasses (Deadlocks)
System model, characterization, methods to deal with impasses: prevention, avoidance, detecting and repairing, combined approach.
8) Memory management
Background, logical and physical adress space, swapping, connected allocation, pagination, segmentation, numbered segmentation.
9) Virtual memory
Background, pagination on request, performance, replacement of pages, replacement algorithms, frame allocation, thrashing, additional considerations, segmentation on request.
10) File system
File, access methods, directory structure, protection, consistence.
11) Implementation of a file system
Structure of a file system, allocation methods, management of free space, implementation of directories, efficiency and performance, recovery procedures.
12) Secundary memory management
Structure of a disk, disk scheduling, disk managment, swap-space management, reliability, stable memory.
Goals, protection domain, access matrix, implementation of the access matrix, revocation rights, capability-based systems, language-based protection.
Security problem, causes, security policy, "deliberate" threats, authentication, measures, cryptography.
15) Case studies