Search course

Use the search function to find more information about the study programmes and courses available at Chalmers. When there is a course homepage, a house symbol is shown that leads to this page.

Graduate courses

Departments' graduate courses for PhD-students.

​​​​
​​

Syllabus for

Academic year
EDA093 - Operating systems
Operativsystem
 
Syllabus adopted 2019-02-07 by Head of Programme (or corresponding)
Owner: MPCSN
7,5 Credits
Grading: TH - Pass with distinction (5), Pass with credit (4), Pass (3), Fail
Education cycle: Second-cycle
Major subject: Computer Science and Engineering, Software Engineering
Department: 37 - COMPUTER SCIENCE AND ENGINEERING


Teaching language: English
Application code: 12111
Open for exchange students: No
Block schedule: C+

Module   Credit distribution   Examination dates
Sp1 Sp2 Sp3 Sp4 Summer course No Sp
0117 Examination 6,0c Grading: TH   6,0c   24 Oct 2020 am J   04 Jan 2021 am J,  17 Aug 2021 pm J
0217 Laboratory 1,5c Grading: UG   1,5c    

In programs

MPHPC HIGH-PERFORMANCE COMPUTER SYSTEMS, MSC PROGR, Year 2 (elective)
TIDAL COMPUTER ENGINEERING - Common branch of study, Year 3 (compulsory elective)
MPCSN COMPUTER SYSTEMS AND NETWORKS, MSC PROGR, Year 1 (compulsory)
MPEES EMBEDDED ELECTRONIC SYSTEM DESIGN, MSC PROGR, Year 2 (elective)

Examiner:

Vincenzo Massimiliano Gulisano

  Go to Course Homepage


Eligibility

General entry requirements for Master's level (second cycle)
Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.

Specific entry requirements

English 6 (or by other approved means with the equivalent proficiency level)
Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.

Course specific prerequisites

The student should have good understanding of computer organization and basic knowledge in low level programming and be familiar with terms like assembler, interrupt and so on, i.e. contents of the course Machine oriented programming. The student needs to also have knowledge on data structures e.g. trees, linked lists, hash tables, i.e. contents of the course "Data structures", as well as some programming skills (at least 7.5 course points in programming). Knowledge of basic probability theory can be an advantage, but can also be acquired during the course via complementary reading.

Aim

Operating systems exist everywhere where computer systems exist, not just in desktops and servers but also in vehicles, phones and embedded industrial systems. This course provides an introduction to the design and implementation of operating systems. In particular, the aim is to explain the structure and function of an operating system and its cooperation with the computing system it supports; illustrate key operating system aspects and algorithms in operating system implementations; accompany with concrete examples and prepare students for future courses.

Learning outcomes (after completion of the course the student should be able to)

After successful completion of the course participants will be able to demonstrate knowledge and understanding of: 1. The core functionality of modern operating systems: Processes/threads, scheduling, virtual memory and file systems, aspects of parallelism, kernels, shells, micro kernels, virtual machines. 2. Key concepts and algorithms in operating system implementations: synchronization, deadlock-avoidance/prevention, memory management, processor scheduling, disk scheduling, virtual machines, file systems organization 3. Implementation of simple OS components. 4. The participants will also be able to: * appreciate the design space and trade-offs involved in implementing an operating system. * Write C programs that interface to the operating system at the system call level. * Implement a piece of system-level code in the C programming language. * some programing using multithread synchronization constructs.

Content

The course provides an introduction to the design and implementation of operating systems. Topics covered include: concurrent processes, resource management, deadlocks, memory management techniques, virtual memory, processor scheduling, disk scheduling, file systems, distributed file systems and micro kernels, virtual machines and security and protection schemes. During its development, the course does not only present key components of operating systems, but also discusses their design and implementation challenge and their evolution from pioneer to modern mobile-based ones. Examples include Unix, Linux, Windows, mobile-devices operating systems.

Organisation

Lectures, exercises and labs. The labs place emphasis on hands-on experience with operating systems design. Students practice by using and constructing essential modules in operating systems, such as multiprogramming, scheduling, memory management, implementation of unix-like shell functionality. Part of the labs will use Pintos, an educational operating system supporting kernel threads, loading and running of user programs and a file system. Pintos is among the international well-established platforms for top quality hands-on labs.

Literature

Andrew S. Tanenbaum, Herbert Bos: Modern Operating Systems (4th ed.). Prentice Hall Press, 2015.

or

A. Silberschatz, P. Galvin, G. Gagne: Operating System Concepts, Ninth Edition, Wiley 2010;

Articles.

Examination including compulsory elements

Written examination. Approved laboratory hand-in exercises.


Page manager Published: Thu 04 Feb 2021.