This course examines the design and implementation of operating system kernels and surveys the background theories and algorithms
By the end of this course, students will be able to outline the structure of typical operating system kernels and explain important concepts such as interrupt-based kernel implementations, process management, synchronization, mutual exclusion, memory managements, file systems, I/O systems and so on. In addition, students will be able to explain the implementation of Unix-like operating systems through a series of programming exercises using xv6.
operating system kernels, system calls, processes, scheduling, synchronization, mutual exclusion algorithms, memory management, virtual memory, file systems, protection mechanisms, security mechanisms
✔ Specialist skills | Intercultural skills | Communication skills | Critical thinking skills | Practical and/or problem-solving skills |
Classroom learning and programming exercises
Course schedule | Required learning | |
---|---|---|
Class 1 | Roles and Functions of Operating Systems | Understand the roles and functions of operating systems |
Class 2 | Overview of Unix and xv6 | Understand the overview of Unix and operations of xv6 |
Class 3 | Interrupts and System Calls | Understand interrupts and system calls |
Class 4 | Processes and Threads (1): Basics, Multiprocessing | Understand the basic concepts of process and threads as well as multiprocessing |
Class 5 | Processes and Threads (2): Process Scheduling | Understand process scheduling algorithms and their implementation methods |
Class 6 | Processes and Threads (3): Synchronization and Mutual Exclusion Algorithms | Understand the concepts of synchronization and mutual exclusion algorithms |
Class 7 | Processes and Threads (4): Implementations of Synchronization and Mutual Exclusion Mechanisms | Understand the implementation methods of synchronization and mutual exclusion mechanisms |
Class 8 | Memory Management (1): Objectives and Basic Concepts | Understand the objectives and basic concepts of memory management |
Class 9 | Memory Management (2): Concepts and Algorithms for Virtual Memory Systems | Understand the concepts of virtual memory systems and related algorithms |
Class 10 | Memory Management (3): Implementations of Virtual Memory Systems | Understand the implementation methods of virtual memory systems |
Class 11 | File Systems (1): Objectives and Basic Concepts | Understand the objectives and basic concepts of file systems |
Class 12 | File Systems (2): File Management Algorithms | Understand file management algorithms |
Class 13 | File Systems (3): Implementations of File Systems | Understand the implementation methods of file systems |
Class 14 | I/O Systems and their Implementations | Understand I/O systems and their Implementations |
Class 15 | Protection Mechanism and Security | Understand protection mechanism and security |
None required (course materials will be provided via OCW-i)
"Xv6: a simple, Unix-like teaching operating system", Russ Cox, Frans Kaashoek and Robert Morris, 2016. (document distributed with xv6)
Programming Exercises (4 times): 60%
Final Exam: 40%
Students must have succesfully completed the related courses or have equivalent knowledge.
Students are desired to have familiarity with basic Unix terminal commands.