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.
The course consists of 12-16 lectures to which practical smaller assignments be connected. The practical assignments are intended to give an increased understanding of the concepts that are presented as well as to give the practical skills that is required to satisfy the aim of the course.
The course also has a larger assignment that should be carried out during the course. The assignment should give increased understanding of how an operating system is built in practice and how it functions.
Literature and preparations
Specific prerequisites *
Completed courses corresponding to:
ID1018 Programming I
IS1200 Computer Hardware Engineering
ID1020 Algorithms and Data Structures
ID1019 Programming II.
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.
No information inserted
The course will be based on:
Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau, "Operating System: Three Easy Pieces", Arpaci-Dusseau Books.
Andrew S. Tanenbaum, “Modern Operating Systems", Prentice-Hall
Examination and completion
Grading scale *
A, B, C, D, E, FX, F
Grading scale: P, F
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.
In agreement with KTH´s coordinator for disabilities, it is the examiner who decides to adapt an examination for students in possess of a valid medical certificate.. The examiner may permit other examination forms at the re-examination of few students
Opportunity to complete the requirements via supplementary examination
No information inserted
Opportunity to raise an approved grade via renewed examination
Operating systems are an integral part and necessary pre-requisite for many of the progression courses offered by the ICT school. Theses courses mainly fall into one of three categories: Computer Engineering, Software Engineering and Communication systems.
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.
In this course, the EECS code of honor applies, see: http://www.kth.se/en/eecs/utbildning/hederskodex.