(Posted Apr 14, 2026)
(Posted Apr 14, 2026)
(Posted Apr 9, 2026)
The following schedule is tentative and subject to change without notice.
| Day | Topic | Reading |
|---|---|---|
| 3/3 | Course overview | |
| 3/5 | Introduction to operating systems | 2 |
| 3/10 | Architectural support for OS | 6 |
| 3/12 | ||
| 3/17 | Processes | 4, 5 |
| 3/19 | CPU scheduling (Updated on 3/19) | 7, 8 |
| Lab Session 1 @ 7:00pm (Online) | ||
| 3/24 | ||
| 3/26 | Virtual memory | 13, 14, 15, 16 |
| 3/31 | Paging | 18 |
| 4/2 | Page tables | 20 |
| 4/7 | Invited Talk: Optimizing the Linux Scheduler for Gaming… and the Road Ahead (Dr. Changwoo Min) | |
| 4/9 | TLB | 19 |
| 4/10 | Lab Session 2 @ 6:00pm (Online) | |
| 4/14 | Memory Mapping | |
| 4/16 | Swapping | 21, 22 |
| 4/21 | Midterm Exam | |
| 4/23 | Virtual Memory Implementations | 23 |
| 4/28 | Threads | 26, 27 |
| 4/30 | Locks | 28 |
| 5/5 | National Holiday | |
| Semaphores | 31 | |
| 5/7 | Monitors | |
| 5/12 | ||
| 5/14 | Condition variables | 30 |
| 5/19 | I/O | |
| 5/21 | Hard disk drives (HDDs) | 36, 37 |
| 5/26 | File systems | 39 |
| 5/28 | File system implementation | 40 |
| 6/2 | Fast file system | 41 |
| 6/4 | File system consistency | 42 |
| 6/9 | Solid state drives (SSDs) | 44 |
| 6/11 | Final Exam |
Credit: Most of slides for this lecture are based on materials provided by the authors of the textbook and references.
For project submission and automatic grading, we are running a dedicated server at https://sys.snu.ac.kr. If you want to access the sys server outside of the SNU campus, please send a request via a Google Form whose URL is posted in the eTL.
CPU hotplugging is the ability of an operating system to dynamically bring a CPU core online or take it offline while the system is running. This mechanism is useful for power management, fault isolation, and adapting the number of active CPUs to the current workload. In this project, you will extend xv6 so that individual harts can be turned on and off at runtime in a controlled and safe manner. The goal is to understand the low-level interaction between the scheduler, interrupts, and multiprocessor hardware while implementing a practical OS mechanism for dynamic CPU management.
System calls are interfaces that allow user applications to request various services from the operating system kernel. This project aims to explore and understand how system calls are implemented in the xv6 operating system.
xv6 is an instructional operating system developed by MIT based on Ken Thompson and Dennis Ritchie’s Unix version 6 (v6). In this course, we will use xv6-riscv, a version recently ported to a multi-core RISC-V machine. The goal of this project is to set up your development environment on Linux or macOS and familiarize yourself with our project submission server.
| When | 14:00 - 15:15 (Tuesday / Thursday) |
| Where | Lecture room #301-203, Engineering Building I |
| Instructor | Jin-Soo Kim Professor, Dept. of Computer Science and Engineering, SNU |
| Language | Korean |
| Course Description | This course covers fundamental operating system concepts, such as process management, memory management, I/O systems, and file systems, with an in-depth study of the latest Linux operating system. In addition, students will engage in several hands-on projects using the xv6 instructional OS. |
| Textbook | Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau, Operating Systems: Three Easy Pieces, Arpaci-Dusseau Books, November 2023 (Version 1.10) |
| References | Thomas Anderson and Michael Dahlin, Operating Systems: Principles and Practice, 2nd Edition, Recursive Books, August 2014. Andrew S. Tanenbaum and Herbert Bos, Modern Operating Systems, 5th Edition, Pearson, March 2022. |
| Prerequisites | M1522.000800 System Programming 4190.308 Computer Architecture |
| Grading | Exams: 75% (Midterm Projects: 25% * Grading policy is subject to change |
| Teaching Assistants | Heejae Kim, Sujin Park, and Minwook Kim (snucsl.ta AT gmail.com) |