The displayed memo is not the latest version. Show (latest version).
Headings denoted with an asterisk ( * ) is retrieved from the course syllabus version Autumn 2021
Content and learning outcomes
Course contents
The course provides knowledge of the principles of and how one can implement
abstractions of hardware
virtualisation of resources and timetabling of assignments; mainly as regards execution, memory and persistent storage.
The structure of an operating system is studied to increase the knowledge of these concepts and also give skills in efficient use of the abstraction level that an operating system offers.
Intended learning outcomes
Having passed the course, the student should be able to:
explain how multi-threaded processes are structured
explain how an operating system can handle several processes at the same time
implement parts of the functions of an operating system.
For higher grades, the student should also be able to
explain how virtualisation of memory is implemented
explain how memory management is implemented
explain properties for different scheduling algorithms
explain properties for different types of process communication
explain implementation of more advanced file system.
Learning activities
During the course we will have a number of scheduled lectures. At these lectures we will discuss questions related to the topics foudn in the course literature and prerecorded lectures available.
There are also sessions scheduled where teaching assistants will help you with the programming assignments that you will have during the course. The programming assignments are not compulsory and should not be presented but questionson the exam will be based on these assignments.
Preparations before course start
Recommended prerequisites
Specific prerequisites autumn 2020:
As from HT20 the specific prerequisite for course ID1020 Algorithms and data structures, is considered to be fulfilled if course component “ARBA - Course work, 4.5 credits” is approved.
ID1019 Programming II, is not a requirement for eligibility.
Literature
The course is based on:
Remzi H. Arpaci-Dusseau och Andrea C. Arpaci-Dusseau, "Operating Systems: Three Easy Pieces", Arpaci-Dusseau Books.
The book is avialable online at OSTEP. It is a very good book and it does not cost very much so I recomend that you buy a copy.
Equipment
The course is designed so that you shoudl be able to use your own computer. If you do not have access to a computer you can use the computers available in the computer room. All exercises will work fine except for one that requires you to have root access.
We will during the course use the x86 as the example ISA. If you have the latest Mac computer you will have M1 processor but there are no parts of the course that relies on an x86 architecture.
Software
We will use Linux as a reference operating system and it's advisable that you have access to this. You can do this using your won laptop and either:
have Ubuntu installed or
if you have MacOS you will be fine since it's a Unix operating systems or
if you have WIndows installed use Windows Subsystem for Linux.
If you have Windows or MacOS you can also run a Ubuntu system under a virtual machine.
All programing tasks are in C so you need a programming environment where you can write, compiel and run small C programs.
Support for students with disabilities
Students at KTH with a permanent disability can get support during studies from Funka:
The course will use C programs to understand how an operating system works. The course is however not a programming course. The course requires that you either have enough C programing experience form before or can gain the knowledge by yourself during the course. The assistants that are working with teh course could help you if you have problems.
Examination and completion
Grading scale
A, B, C, D, E, FX, F
Examination
SEMA - Seminar, 1.5 credits, Grading scale: P, F
TENA - Examination, 6.0 credits, Grading scale: A, B, C, D, E, FX, F
Based on recommendation from KTH’s coordinator for disabilities, the examiner will decide how to adapt an examination for students with documented disability.
The examiner may apply another examination format when re-examining individual students.
The section below is not retrieved from the course syllabus:
Seminar ( SEMA )
Three projects should be proesented in written and by attending at scheduled seminas. In addition to this other studens reports should be read and evaluated.
Examination ( TENA )
The examin will (if nothing else stated) be given in Canvas.
Grading criteria/assessment criteria
The examin will be divided into several parts where each part adress a learning goal.
The first part is for grade E and is about how processes are structured and how an operating system can handle multiple processes at the same time. This does not inklude how this is implemented but the consequences this has for a programmer.
The other parts are related to how things are implemented under the hood. The areas are:
virtualisation of memory
memory management by a process (malloc/free)
scheduling algorithms
process communication
file systems
Each part is given pass/fail and the grade is then based on how many parts one passed: 2 gives a D, 3 a C, 4 a B and 5 an A.
Opportunity to complete the requirements via supplementary examination
FX will be given.
Opportunity to raise an approved grade via renewed examination
You're welcome to go up for an extra exam. Check with your student coordinator.
Ethical approach
All members of a group are responsible for the group's work.
In any assessment, every student shall honestly disclose any help received and sources used.
In an oral assessment, every student shall be able to present and answer questions about the entire assignment and solution.
The section below is not retrieved from the course syllabus:
Code of honour
In this course, the EECS code of honour applies, see: http://www.kth.se/en/eecs/utbildning/hederskodex.