
DM510: Operating Systems
Entry requirements
Academic preconditions
Course introduction
In relation to the competence profile of the degree it is the explicit focus of the course to:
- Give competence to
- handle complex and development-oriented situations in academic and work settings
- identify their own learning needs and to structure own learning in different learning environments
- Give skills to
- make and justify decisions within the subject area
- describe, formulate, and communicate problems and results to either peers and non-specialists or partners and users
- Provide knowledge about
- principles for the design of computer hardware and operating systems, including distributed and parallel systems
Expected learning outcome
After the course the student is expected to have the following.
Knowledge of
- different architecture styles for realizing operating systems and the fundamental abstractions managed by an operating system.
- how several control flows can be realized and how synchronization and communication between control flows can be achieved.
- how memory can be virtualized and how it can be managed as a resource.
- file systems in general, their internals, and possible implementations of them.
- the interplay between system software/applications, operating system kernel, and computer hardware.
- the two main distributed operating system design principles.
- the notion of networks and the layered approach to realize network protocols, on a basic level.
- the notion of protection in an operating system and security problems such as virus, worm, Trojan horse and buffer overflow attack.
- different methods for virtualization of execution in operating systems (e.g. containerization), including advantages and disadvantages of the methods.
Skills in
- implementation of system programs using contemporary operating system abstractions.
- programming in the C programming language on the operating system level.
Competences in
- discussing problems related to concurrency
- discussing the methods used for CPU, disc and page-replacement scheduling.
- discussing how mass-storage can be attached to a computer system in the context of file systems, and discuss access to I/O systems in general.
- discussing existing solutions to security problems in operating systems.
Content
The following main topics are contained in the course:
Operating systems structure, system calls, interrupts, processes, multithreading, CPU scheduling, critical section problem, synchronization mechanisms, classical synchronization problems, atomic transactions, deadlock handling, swapping, memory allocation, paging, segmentation, demand paging, page replacement, frame allocation, files, directories, mounting, free space management, disk structure, disk scheduling, RAID, protection and security considerations, access matrices, encryption, authentication, distributed operating systems, networks, distributed file systems, virtualization, programming in C on operating system level