The course gives an introduction to operating systems, how to implement them, and how to program against them efficiently, with particular focus on thread programming and synchronization between threads within a program.
Course description for study year 2021-2022. Please note that changes may occur.
Semester tution start
Number of semesters
Language of instruction
Faculty of Science and Technology, Department of Electrical Engineering and Computer Science
How to protect the operating systems from malicious software
Be capable of programming against the operating system API
Be capable of programming parts of an operating system
Be capable of implementing simple mechanisms for resource management
Know how to program with threads
Know how to exploit virtualization for resource management
Know important general principles for resource management for computer systems.
The course gives an introduction to operating system architectures and mechanisms for resource management in computer systems. Specific topics covered: Virtualization: the process abstraction, processor scheduling, memory management, address spaces, address translation, caching and virtual memory. Concurrency: threads, concurrency, parallelism, synchronized access to shared data, locks, condition variables, semaphores and channel-based synchronization. Persistence and Networking: File systems, networking programming, distributed systems, network file system. Operating System security.
The course includes programming assignments covering the main concepts of the course, such as memory management, scheduling, concurrency, parallelism and synchronization techniques, and tools to analyze and debug various aspects of such applications. The programming language used in this course is primarily Go (golang) along with some C.
Required prerequisite knowledge
ING100 Introductory course for engineers - Computer science and electrical engineering
DAT110 Introduction to Programming
Form of assessment
A - F
Mandatory programming assignments. Pass/Fail. Approval requires submitting your solution to our system for automated evaluation, followed by in-lab approval. All programming assignments must be passed to sit for the exam.
If a student fails to pass all the mandatory programming assignments, then the student must redo all assignments again the next time the subject is taught.
Completion of mandatory lab assignments are to be made at the times and in the groups that are assigned. Absence due to illness or for other reasons must be communicated as soon as possible to the laboratory personnel. One cannot expect that provisions for completion of the lab assignments at other times are made unless prior arrangements with the laboratory personnel have been agreed upon.
Failure to complete the assignments on time or not having them approved will result in being barred from sitting for the exam.
Head of Department:
Method of work
6 hours lectures and 4 hours of guided lab exercises. Lab exercises requires additional non-guided work effort.