Kuva: Pixabay

This course introduces the main components and principles of operating system design: how to virtualize the CPU and memory, and how concurrency and persistency are maintained by the operating system.

This course is identical with the University of Helsinki Department of Computer Science course Operating Systems. Information on the course materials, lectures, exercises and exam are found on the course page.



Emilia Oikarinen

Julkaistu, 16.1.2021 klo 20:52

It seems that it is not possible to automatically grant access to Moodle for participants registered for this course. I'll check the registrations from time to time and add any new students, but you can also email me directly so you don't have to wait (firstname.lastname@helsinki.fi).

Emilia Oikarinen

Julkaistu, 14.1.2021 klo 14:51

Operating Systems course starts with a Zoom-lecture on Monday January 18, 2021. The Zoom-link is available for registered participants via the Moodle-page of the course (follow the Moodle-link in the course page). See the Moodle page also for relevant course information. Welcome!

- Emilia

Ilmoittautuminen ja opintomaksu

75 euros (More information)

WHO - Ten (10) people can enroll on the course through the Open University.

WHEN - Enrollment begins 45 days before the beginning of the course. You can see the exact enrollment dates through clicking on the enrol button on the top of this page.

HOW - Use the enrol button on the top of this page to enroll if you meet one of the following criteria:

  1. You have a Finnish personal identity number, or
  2. you are a student at the University of Helsinki, or
  3. you are a student at a HAKA member institution.


During your studies
How can I become a student?
Practical instructions for studying
Ar­range­ments for stu­dents in need of spe­cial sup­port

Open University reserves the right to make changes to the study programme.


This course is suitable to you if you

  • want learn about the main components and principles of operating system design, and
  • have knowledge of the components of a computer system and how programs are executed on hardware

The course is

  • compulsory in the intermediate studies in the Bachelor's Programme in Computer Science.
  • compulsory in subject studies in computer and data science in the Bachelor's Programme in Science.
  • open for students in other study programmes.

As prerequisites, prior knowledge of the components of a computer system and how programs are executed on hardware is assumed.

Before taking this course, you should have completed

  • Computer Fundamentals I (Tietokoneen toiminnan perusteet, AYTKT100051)
  • Computer Fundamentals II (Tietokoneen toiminnan jatkokurssi, AYTKT100052)

or have equivalent knowledge

Courses Introduction to Data Communication and Distributed systems.

After the course you can

  • summarize the key services of an operating system (OS) and their operation
  • describe the essential structures of an OS together with their interfaces
  • describe the position of OS in modern data processing environment
  • describe the structure and the functionalities of operating systems
  • describe the control systems and process and thread management
  • describe different methods to protect processes and the use of different processor states (user/privileged) for that purpose
  • describe different types of thread execution (user-level, kernel-level)
  • describe basic process scheduling techniques in uniprocessor, multiprocessor, and real-time systems
  • compare the suitability of different scheduling algorithms on different work loads
  • choose (and justify the choice) the most practical way to execute threads for given software system
  • explain how shared memory and other methods are used for process and thread communication
  • explain the need for concurrency using examples illustrating concurrent operations of hardware and software level
  • explain the importance of different scenarios when examining the execution of concurrent programs
  • provide examples of common problems that may results in an incorrect concurrent solution
  • explain the nondeterministic nature of process execution and its implications
  • explain the advantages, disadvantages, implementation levels, and methods of concurrency
  • explain the requirements for concurrency solutions (e.g., in terms of correctness in all scenarios) and finding a scenario leading to failed outcome
  • explain the basic concepts of concurrent execution: atomicity, critical section, synchronization, communication, deadlock
  • explain the basic concurrency problems: critical section problem, turn ticket, readers-writers, producer-consumer, client-server, and boom synchronization
  • describe the occurrence of a deadlock and explain necessary and sufficient conditions for a deadlock to occur
  • design a solution to critical section problem using the most appropriate method, e.g., interrupt disabling, busy-wait, semaphore, monitor, messages
  • explain the semaphore and monitor structures, and use them correctly in problem solving
  • apply concurrency handling mechanisms to solve practical problems
  • explain how deadlock can be detected using DDA-algorithm, how to recover from deadlock, and how a deadlock can be prevented using, e.g., banker's algorithm
  • describe the general principles of implementing virtual memory (VM) together with the key concepts (paging, page table, address translation, translation lookaside buffer, page faults)
  • describe multi-level paged VM operation
  • simulate at algorithm level the address translation in (multi-level) paged VM system
  • analyze the effect of page size in process operation and page table size, and justify a choice made for a certain page size
  • describe the advantages and disadvantages of (multilevel) paging and segmentation methods
  • describe at algorithm level the VM implementation: page fetch and replacement policies, resident set size management policies, multiprogramming level policies
  • describe the basic structure of the file system and its components
  • explain the communication between peripheral devices and operating system
  • explain the basic scheduling algorithms for hard disks
  • explain the basic idea of RAID, and explain different RAID implementations comparing their features
  • explain different file organization types and when they should be used (pile, sequential, indexed sequential, indexed, hashed)
  • explain the use of B-trees for index implementation for files
  • explain basic OS security threats and the methods to secure the operating system against them
  • describe access control mechanism in operating systems

During the spring term of the second year, after the course Computer Organization I.

Spring, period 3

  • Design and principles of an operating system
  • Processes and threads
  • Concurrency: mutual exlusion, syncronization, deadlock, and starvation
  • Memory management, virtual memory
  • Process scheduling (uniprocessor, multiprocessor, and multicore systems, real-time systems)
  • I/O management, disk scheduling, RAID, file management
  • Operating system security, access control


  • William Stallings, Operating Systems - Internals and Design
    Principles, 9th ed, Pearson 2018.

All students should have access to the course book.

A newer edition of the course book can be taken into use immediately after its publication.

The evaluation is based on the completed exercises and active participation in exercises sessions, and a course exam or mini exams.

The course is graded on the scale 0-5.

See information on the course materials and completing the course on the faculty course page.

The course can be completed online, as distance learning (at least until Summer 2021).


  • Complete lecture schedule on the faculty course page.
  • From Monday 18.1.2021 to Wednesday 3.3.2021.
  • Lecture schedule
    • Mondays 12.15 - 14.00 (English)
    • Tuesdays 9.15 - 11.00 (English)
    • Wednesdays 12.15 - 14.00 (Finnish).
  • It is possible to stream lectures during lecture times through Zoom. No physical participation is required.
  • Lecture recordings will be accessible after the lecture hours.
  • No lecture participation is required if you watch the recordings afterwards.


  • Enrolled students will be added to the course Moodle space.
  • Use your University of Helsinki user id to access Moodle.

Exercise groups

  • See information on the faculty course page.
  • It is possible to participate in exercise gropus online over Zoom. No physical participation is required.


Emilia Oikarinen

The course is part of the subject studies in Computer Science.