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:
- You have a Finnish personal identity number, or
- you are a student at the University of Helsinki, or
- you are a student at a HAKA member institution.
Open University reserves the right to make changes to the study programme.
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.
Computer Organization I or equivalent knowledge
Courses Introduction to Data Communication and Distributed systems.
The student learns to
- 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
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.
Student: lectures, independent work on exercises, small croup discussions in exercise sessions, exams
Instructor and teaching assistants: creating the lecture material, lectures, supervising exams, exercises and their solutions, supervising exercise sessions, making exam questions and their solutions, grading the exams, supervising teaching assistants, updating course information online, bookkeeping for the course, student grading
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.
- See information on the faculty course page.
- It is possible to participate in exercise gropus online over Zoom. No physical participation is required.
- Department of Computer Science organizes the exam.
- Exams will be taken online (at least until summer 2021).
- Course exam options:
- [To be decided] Weekday xx.xx.xx21 time.
- No separate registration for online Exams.
- If you need some special arragements or support for the examination, contact your education specialist at least 10 days beforehand. Read more: Instructions for online examinations / Arragements for students in need of special support
The course is part of the subject studies in Computer Science.