OS services, concurrency control, OS implementation.

This course is part of studies in Computer and Data Science study track of Bachelor's Programme in Science (in English) and in Tietojenkäsittelytieteen kandiohjelma (in Finnish).

Course goals include the services that an operating system provides to applications, concurrency control mechanisms, basic structure of an operating system, and its implementation from application and system viewpoints.

Prerequisites: Computer Organization I, 5 cr (Tietokoneen toiminta, 5 op)

Text book: Stallings, Operating Systems - Internals and Design Principles, 9th ed, Pearson 2018.



Teemu Kerola's picture

Teemu Kerola

Published, 27.3.2020 at 17:00

Mini exam 4 and course grading is complete. Results should be in Oodi now, and mini exam results are shown in Exam Results page linked to the schedule.

Replacement exam 22.4.2020 will be a Moodle exam. Sign up to it normally 2 weeks in advance. If you have any trouble signing up, please wait first until 6.4.2020. If you still can not sign up, email me about it.

Teemu Kerola's picture

Teemu Kerola

Published, 27.2.2020 at 19:43

Mini exam 3 grading is complete. Links to the exam and model solutions are in the course schedule page.

You can ask for copies of the mini exam 3 (and mini exam 4) after March 9th. Please try to find me in my office (D220), or we can set up a meeting time via email (teemu.kerola (atcha)

Teemu Kerola's picture

Teemu Kerola

Published, 18.2.2020 at 12:31

Re: Poistumisharjoitus pidetään keskiviikkona 19.2.2020.

Ei huolta. Poistumisharjoitus ei häiritse minikoetta 3, keskiviikkona 19.2.2020 klo 12:15.

Re: Evacuation exercise on Wednesday, 19.2.2020

Do not worry. The evac exerc will not disturb mini exam 3, on Wed 19.2.2020 at 12:15.

Teemu Kerola's picture

Teemu Kerola

Published, 12.2.2020 at 14:51

Harjoitusten ryhmä 5 (pe 12-14) on ylitäysi. Siellä oli viime viikolla 62 opiskelijaa. Jos mahdollista, niin osallistukaa muihin ryhmiin.

Teemu Kerola's picture

Teemu Kerola

Published, 27.1.2020 at 10:22

Kurssilla on nyt jäljellä ainakin 228 opiskelijaa (318 ilmoittautuneesta). Passiviset opiskelijat on nyt siirretty ryhmään 99 ja kaikki aktiiviset ovat ryhmissä 1-5.

Ensimmäisellä viikolla harjoituksiin osallistuttiin seuraavanlaisesti:

Ryhmä 1 (Terho keskiviikko) 29
Ryhmä 2 (Harri keskiviikko) 49
Ryhmä 3 (Terho torstai) 35
Ryhmä 4 (Harri torstai) 43
Ryhmä 5 (Harri perjantai) 66

Perjantain ryhmä on siis ylitäysi. Jos siellä on jatkossa paikalla liikaa opiskelijoita, niin ryhmään kuuluvilla on etusija. Ryhmään ei oteta enää uusia opiskelijoita, ellei siellä jo olijoita siirry muihin ryhmiin.

Käykää noissa muissa ryhmissä, koska niissä on tilaa.

Teemu Kerola's picture

Teemu Kerola

Published, 22.1.2020 at 12:03

Koko Unitubessa käyttökatko 29.–30.1.2020

Uudistuksesta seuraa laaja, koko Unitube-palvelun kattava käyttökatko tammikuun viimeisellä viikolla juuri ennen julkaisua. Käyttökatko kestää koko keskiviikon ja torstain 29.–30.1.2020.

Ks. Flamman tiedote

Teemu Kerola's picture

Teemu Kerola

Published, 22.1.2020 at 12:00

There are total 319 students signed up for the course. Not all of them are participating.

We will move to queue (group 99) all students not participating to the 1st practice session this week (20-24.1.2020). This allows us to better know the actual class roster, and also better plan for space requirements for the 1st mini exam (5.2.2020). If all actual participants will not fit into B123, we will arrange for extra space.

If you are absent from the 1st practice session in week 4 (20-24.1.2020) and still want to continue the course, please send some email (by 26.1.2010) relating to it and you will not be moved to queue group 99.

Please note, that nobody is actually removed from the course, but only their group assignment is changed. If the need arises, your group assignment can easily be changed back to some active group.

Teemu Kerola's picture

Teemu Kerola

Published, 14.1.2020 at 11:46

Lectures in Finnish will be available both as streamed and as saved videos in UniTube, starting from Lecture 2 (15.1.2020). Streamed videos are always in same location (, and saved videos will be linked to the lecture (e.g. Lecture 2) once they become available in UniTube (e.g., next day).

Teemu Kerola's picture

Teemu Kerola

Published, 13.1.2020 at 14:57

Course assistants give general (including OS course) course counseling in "alapaja" BK107 Tuesdays 12:15-14 (Harri Kähkönen) and Thursdays 14.15-16 (Saska Dönges).

Teemu Kerola's picture

Teemu Kerola

Published, 29.11.2019 at 14:32

Kurssi pidetäänkin vielä tämän kerran suomeksi (kertausluennot englanniksi). Luennot (4h/vk) ovat suomeksi.

Jos joku suomenkielinen opiskelija haluaa suorittaa kurssin englanniksi, niin hänen tulee osallistua englanninkieliseen harjoitusryhmään ja tehdä kokeet englanniksi.


Course will be given this time primarily in Finnish, with summary lectures (2 hr/wk) in English. Normal lectures (4h/wk) are in Finnish.



Course Telegram group is tkt_kaja

It is intended for peer support for students, though course instructors may also follow the discussion. Please do not give direct answers to home works here, as that would take away good learning opportunities from your peer students.


Here is the course’s teaching schedule. Check the description for possible other schedules.

Mon 13.1.2020
12:15 - 14:00
Tue 14.1.2020
09:15 - 11:00
Wed 15.1.2020
12:15 - 14:00
Mon 20.1.2020
12:15 - 14:00
Tue 21.1.2020
09:15 - 11:00
Wed 22.1.2020
12:15 - 14:00
Mon 27.1.2020
12:15 - 14:00
Tue 28.1.2020
09:15 - 11:00
Wed 29.1.2020
12:15 - 14:00
Mon 3.2.2020
12:15 - 14:00
Tue 4.2.2020
09:15 - 11:00
Wed 5.2.2020
12:15 - 14:00
Mon 10.2.2020
12:15 - 14:00
Tue 11.2.2020
09:15 - 11:00
Wed 12.2.2020
12:15 - 14:00
Mon 17.2.2020
12:15 - 14:00
Tue 18.2.2020
09:15 - 11:00
Wed 19.2.2020
12:15 - 14:00
Mon 24.2.2020
12:15 - 14:00
Tue 25.2.2020
09:15 - 11:00
Wed 26.2.2020
12:15 - 14:00

Other teaching

22.01. - 26.02.2020 Wed 10.15-12.00
Terho Uotila
Teaching language: Finnish
22.01. - 26.02.2020 Wed 14.15-16.00
Harri Kähkönen
Teaching language: Finnish
23.01. - 27.02.2020 Thu 10.15-12.00
Terho Uotila
Teaching language: Finnish
23.01. - 27.02.2020 Thu 12.15-14.00
Harri Kähkönen
Teaching language: English
24.01. - 28.02.2020 Fri 12.15-14.00
Harri Kähkönen
Teaching language: Finnish


Course schedule page (see link "Schedule" below) has all lectures, homeworks, exams and answers linked to it.


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

You can also use the 8th edition, as well as older editions of the text book.


Conduct of the course


Lectures (Mon, Wed 12-14) are in Finnish.
Summary lectures (Tue 9-11) are in English. If there is no demand for them, they may be cancelled.
Practice session group 4 (Thu 12-14) is also inEnglish.

Homeworks can be done alone or with your study circle (friends).

In practice sessions all problems are first discussed in each table. In this discussion you may assume, that all students are familiar with problems and have at least tried to solve them. If you are not familiar with the problems in advance, you will not gain so much in the practice session as there is no time to cover each problem at that detail. The instructor present will consult each table as needed.

Practice sessions are in Finnish/English. In practice sessions in English (Thu 12-14), table discussions are in English or in Finnish (if everyone understands Finnish), but group discussions are in English.

About midway the practice session the instruction will give out model solutions, and there can be common discussion one some or all homework solutions. The model solutions will be collected back, but they will be available in the web the next week.

It is very helpful for your own learning to discuss and explain homework solutions to some other student, who has also worked on the same problem. Usually the student explaining the solution learns more than the student receiving help. However, please do not give other students your complete answer directly. They do not learn much from that. Good learning is achieved by alternating (a) your own studying, (b) solving practice problems, and (c) discussing problems and their various solutions with other students.

The goal of the homework is learning, not just getting points to pass the course or to get a better grade. Learning happens best when think about the problem, try to solve it your self, and then discuss your solution with other students. There are plenty of similar examples in lectures and text books. Using a homework problem solution only as readable example is a waste of good learning opportunity and a waste of a homework problem.

You will gain homework points from the practice session, but only for the problems you have done and only if you are present. You gain homework points (hwp) from solved problems. More difficult problems are worth 2 hwps. Hwps are then mapped to course points affecting your grade, so that some 5/6 (83%) of maximum hwps gives you the maximum points towards your grade.

There is no possibility to gain hwps without being present in practice sessions. You can not mail your homework answers anywhere. If you cannot attend your own practice session group, please visit some other group that week. If you are absent for 2 or more weeks for some good reason (illness etc), please see the instructor on how that could be taken into account for y our grade.


Course is done by participating actively the lectures, reading the text book, doing homework and discussing them in the practice sessions. You need to show own initiative and scheduling, so that your learning happens according to the weekly schedule. Lecture notes are in the departmental intranet, and you need departmental (TKT) user id to access them:
To apply for departmental user account, you really need to start by sending that email mentioned in the instructions.

During the lectures there are four small (45 min, 12 p) mini-exams (in Finnish/English) covering topics in preceding lectures and homework. You can redo some or all mini-exams (1-4) in the replacement exam, which is with the 1st separate exam following this course (April 22, 2020). You cannot redo the mini-exams after that separate exam. So, each mini-exam can be taken twice and the best result is used for each.

Course grade is based on mini-exams (48 p), and participation in homework sessions (12 p). To pass, you need at least 24/48 points from the exams, and at least 30/60 points overall.

Course bookkeeping (Tikli) has a place for homework sessions (Exercises) and four mini exams. Exams 5-8 are for replacement exams. Please check every now and then, that your points are correctly marked.


Compulsory course in basic studies in Bachelor of Computer Science Program.
Compulsory course in basic studies in Computer Science Specialization Path in Bachelor of Science Program.
Open for students in all other study programs.

Contents of the course Computer Organization I in advance.

Courses Introduction to Data Communication and Distributed Systems.

After this course student can Describe the services given by operating systems, and how those services work. Describe general operating systems structures with their interfaces. Describe the position of the operating system in modern data processing environment. Describe the tasks and the structure of operating systems. Describe the control systems and tasks to manage processes and threads. Describe different methods to protect processes and the use of different processor states (user/privileged) for that purpose. Describe various ways to execute threads at different levels. Describe basic scheduling techniques for one processor systems, multiprocesor systems, and real time systems. Compare the suitability of scheduling techniques with different work loads. Select and explain 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 in applications. Explain with examples, which factors lead to concurrent actions at hardware and software level. Explain the importance of different scenarios when examining the execution of concurrent programs. Give examples of common problems that may result in an incorrect concurrent solution. Explain the nondeterministic nature of the concurrent processes and its effects. Explain the advantages, disadvantages, implementation levels and implementation methods of concurrency. Explain the requirements for solutions to the concurrency proble (e.g., define correctness and correctness in all scenarios) and find a scenario leading to an erroneous outcome. Explain the basic concepts of concurrent execution: atomicity, critical phase (or 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 the necessary and adequate conditions for deadlock to occur. Design the solution to critical section problem using the most appropriate method: interrupt disabling, busy-wait, semaphore, monitor, messages. Explain the semaphore and monitor structures, and use them correctly in problem solving. Apply basic concurrency solution models in practical problem solving. Explain, how deadlock can be detected with the DDA algorithm, how the detected deadlock can be recovered from, and how deadlock can be prevented in advance by either the banker's algorithm or other means. Describe the general principle and key concepts of virtual memory (VM) implementation (paging, page table, address translation, TLB, page faults). Describe multi-level paged VM operation. Simulate at algorithm level the address translation in (multi-level) paged VM system. Analyze, how page size affects process operation and page table size. Justify selecting certain page size. Describe the benefits 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 how communication between peripheral devices and operating system works. Explain the basic scheduling algorithms for hard disk. Explain the basic idea of ??RAID implementations. Explain different RAID implementations and compare their features. Explain various file organization types and when they are practical to use (pile, sequential, indexed sequential, indexed, hashed). Explain use of B-trees in index implementation for files. Explain basic operating system security threats and the methods to secure the operating system against them. Explain the access control mechanisms in operating systems.

1st or 2nd year of studies, after the course Computer Organization I. Normal lecture course offered in period 3 in Spring semesters.

Operating systems structure and basic operating principles Processes and threads Mutual exclusion problem, synchronization problem, deadlock and starvation Memory management, virtual memory Process and thread scheduling (one processor systems, multiprocessor systems and real time systems) I/O management, disk scheduling, RAID, file management Operating system security, access control mechanisms

William Stallings, Operating Systems - Internals and Design Principles, 9th ed, Pearson 2018. All students should have access to the text book. New editions for the text book can be taken to use immediately after publication.

Student: lectures with small group discussions, doing the homeworks independently and discussing them in (small) groups in practice sessions, exams. Instructor and teaching assistants: creating the lecture material, lectures, supervising exams, homeworks and their solutions, supervising practice sessions, making exam questions and answers for them, grading the exams, supervising teaching assistants, updating course information in web, bookkeeping for the course, student grading.

Course grading is based of performance in exams as well as doing the homeworks and discussing the solutions
for them in practice sessions. Grade is given in scale 0-5.

Lecture course contains lectures, practice sessions and mini exams during lectures. You must be present in practice sessions and exams. With separate (final) exam, the grade is based solely on that exam.