The goal of the course is to introduce the students to modern operating systems design. Both practical and theoretical aspects of operating Systems will be studied. The course will cover 5 main topics, namely, Module 1: Introduction This module will provide a top level description of modern operating systems.
Module 2: kernels and processes Introduces the students to the design and implementation of different operating system kernels in some details.
Module 3: concurrency, synchronization and scheduling In this module we will cover threads and the semantics of concurrency, synchronization of multi-threaded programs, deadlocks, race conditions, processor scheduling and other related topics.
Module 4: memory management We will cover topics related to memory such as hardware and software address translation mechanisms, caching and virtual memory.
Module 5: I/O and File Systems This module introduces the students to the File system abstraction, different storage devices and filesystems
We will flip the classroom for this course, a technique that has been proven very effective to improve the learning of students. To flip the classroom, we will use the Scalable-Learning platform developed at Uppsala ( https://www.scalable-learning.com/). Labs and assignments will include work with an embedded operating system, a mobile operating system, and a desktop server operating system.
Course Book: The book used will be mainly "Operating Systems: Principles and Practice" by Thomas Anderson (Author), Michael Dahlin the 2014 edition (or later). The course will follow the book closely while making use of a lot of the excellent open-source materials on the topic.
To be admitted you must have 60 ECTS-credits in Computing Science or 2 years of completed studies, in both cases including good knowledge and experience of the programming language C, including working with threads. You should also have knowledge and experiences of programming directly with/to an operatingsystem. These requirements are fulfulled by the course C-programming and Unix or equivalent.
Applicants in some programs at Umeå University have guaranteed admission to this course. The number of places for a single course may therefore be limited.
Application deadline was
15 October 2018.
Please note: This second application round is intended only for EU/EEA/Swiss citizens.