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 | |
Class 2 | Overview of Unix and xv6 | |
Class 3 | Interrupt and System Calls | |
Class 4 | Processes and Threads (1): Basica, Multiprocessing and Scheduling | |
Class 5 | Processes and Threads (2): Synchronization and Mutual Exclusion Algorithms | |
Class 6 | Processes and Threads (3): Implementations of Synchronization and Mutual Exclusion Mechanisms | |
Class 7 | Memory Management (1): Objectives and Basic Concepts | |
Class 8 | Memory Management (2): Concepts and Algorithms for Virtual Memory Systems | |
Class 9 | Memory Management (3): Implementations of Virtual Memory Systems | |
Class 10 | File Systems (1): Overview and File Management Algorithms | |
Class 11 | File Systems (2): Implementations of File Systems | |
Class 12 | File Systems (3): Applications (Database, Information Retrieval, etc.) | |
Class 13 | I/O Systems and their Implementations | |
Class 14 | Network Systems | |
Class 15 | Protection Mechanism and Security, System Design and System Management Technologies |
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, 2014. (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.