Course syllabus

Course-PM

EDA093 / DIT401 EDA093 / DIT401 Operating systems lp1 HT22 (7.5 hp)

The course is offered by the Department of Computer Science and Engineering.

Useful links

This course contains both self-managed activities, as well as parts with live interactions with the teacher.
Almost all live interactions will take place physically @ Chalmers (see the Course Summary below for details) but it will also be possible to connect via Zoom to all such activities.
I will also try my best to record all Zoom sessions and upload the recordings in due time during the course.
THE ONE AND ONLY Zoom link we are going to use is this one: https://chalmers.zoom.us/j/65785356482?pwd=TXZkdWhCbi91L0pqZzZYZkJmTWxPZz09 

Do you want to propose questions for the exam? https://forms.gle/pe2dDLrWRPgA5VC9A (see introductory lecture for information about this)

Log of events

  • 22/09/12: uploaded minutes of the first meeting with the student representatives: firstmeeting_studentrepresentatives.pdf
  • 22/09/01: fixed exam dates, fixed introductory slides, uploaded videos from lecture 1, listed student representatives
  • 22/08/19: Publishing Canvas page: please notice that many parts are still work in progress!
  • 22/08/09: Started preparing the Canvas page.

Course purpose

The course provides an introduction to the design and implementation of operating systems. Topics covered include concurrent processes, resource management, deadlocks, memory management, virtual memory, processor scheduling, disk scheduling, file systems, and security issues in operating systems. The labs emphasize hands-on experience with operating systems design. Students practice by using and constructing essential modules in operating systems, such as multiprogramming, implementation of UNIX-like shell functionality, and concurrency.

Learning objectives:

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, microkernels, 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 programming using multithread synchronization constructs.

Course literature

  • Modern Operating Systems by Andrew S. Tanenbaum (fourth edition)

The course is taught by:

The teaching assistants are

  • Fareed Mohammad Qararyah, qarayah@chalmers.se
  • Sonia Rani Gupta, soniar@chalmers.se
  • Pirah Noor Soomro, pirah@chalmers.se
  • Konstantinos Sotiropoulos, ioanniss@chalmers.se
  • Hadis Shirkosh, shirkosh@chalmers.se

Student representatives

Exam Dates

  • 2022/10/22
  • 2023/01/03
  • 2023/08/15

Schedule

TimeEdit

Course summary:

Date Details Due