Operating Systems (Fall 2025) | SNU Systems Software & Architecture Laboratory

News

   Please note the following information on the final exam:
   • Time: 12:30 - 13:45, December 11.
   • Location: #301-203
   • Scope: Textbook Chap. 26-28, 30-31, 36-37, 39-42, 44, xv6 book Chap. 7, 9-11 (+ scope of the midterm exam + materials covered by lecture slides and project assignments PA3-PA5)
   • Closed-book exam
   • Bring your student ID

(Posted Dec 2, 2025)

   The fourth project assignment has been posted here. The due date is 11:59 PM, November 30.

(Posted Nov 11, 2025)

   Please note the following information on the midterm exam:
   • Time: 12:30 - 13:45, October 21.
   • Location: #301-203
   • Scope: Textbook Chap. 2, 4-8, 13-16, 18-23, xv6 book Chap. 1-6 (+ materials covered by lecture slides and project assignments)
   • Closed-book exam
   • Bring your student ID

(Posted Oct 14, 2025)

Schedule

The following schedule is tentative and subject to change without notice.

Day Topic Reading
9/2 Course overview
9/4 Introduction to operating systems 2
9/9 Architectural support for OS 6
9/11
9/16 Processes 4, 5
9/18 CPU scheduling 7, 8
9/23
9/25 Virtual memory 13, 14, 15, 16
- Lab Session 1 @ 7:00pm (Online)
9/30 Paging 18
10/2 Page tables 20
10/7 National Holiday
TLB (Makeup Class, Available in eTL) 19
10/9 National Holiday
Memory Mapping (Makeup Class, Available in eTL)
10/14 Swapping 21, 22
10/16 Virtual Memory Implementations 23
10/21 Midterm Exam
10/22 Lab Session 2 @ 7:00pm (Online)
10/23 Threads 26, 27
10/28
10/30 Locks (Revised on 10/30) 28
11/4 Semaphores 31
11/6 Monitors
11/11
11/13 Condition variables 30
- I/O (Makeup Class, Available in eTL)
- Hard disk drives (HDDs) (Makeup Class, Available in eTL) 36, 37
- Lab Session 3 @ 7:00pm (Online)
11/18 Canceled
11/20 Canceled
11/25 File systems 39
11/27 File system implementation 40
12/2 Fast file system 41
12/4 File system consistency 42
12/5 Lab Session 4 @ 6:00pm (Online)
12/9 Solid state drives (SSDs) 44
12/11 Final Exam

Credit: Most of slides for this lecture are based on materials provided by the authors of the textbook and references.

Projects

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.

Project #5: xFFS: Faster File System for xv6

Inspired by the classic BSD Fast File System (FFS), xFFS extends the original xv6 file system with the concept of block groups (a.k.a. cylinder groups). This architectural change co-locates related data and metadata on the disk to reduce disk seek latency and boost file system throughput. The goal of this project is to implement block groups and a locality-aware allocation policy in xv6, while preserving the original on-disk layout as much as possible.

  • Project specification available here
  • Due date: 11:59PM, December 21 (Sunday).

Project #4: P3: Per-Process Paging

In this project, you will implement per-process paging in xv6, enforcing a per-process limit on physical memory usage; when a process exceeds its quota, excess pages must be evicted to the swap device and brought back on demand upon page faults. The choice of page replacement policy is crucial because it dictates which pages are evicted, directly affecting page-fault rates, I/O overhead, and overall performance. The goal of this project is to understand xv6’s virtual memory subsystem and explore the challenges and design trade-offs involved in supporting swapping.

  • Project specification available here
  • Due date: 11:59PM, November 30 (Sunday).

Project #3: The Road to Balance

Modern OS schedulers support CPU affinity—binding a process (or its threads) to a subset of CPU cores—to preserve cache locality and reduce interference from other processes, while also load balancing to maximize throughput by keeping all cores busy. In this project, you will extend xv6’s scheduler with CPU affinity and design your own multicore load balancing strategy that achieves measurable improvements in completion time under imbalanced workloads. The goal is to understand xv6’s scheduling subsystem and modernize it toward an affinity-aware, scalable multicore scheduler.

  • Project specification available here
  • Due date: 11:59PM, November 6 (Thursday).

Project #2: Ping, Pong

An Inter-Processor Interrupt (IPI) is a hardware-delivered signal from one CPU core to another, which is the kernel’s primary low-latency mechanism for coordinating work on multicore systems. In this project, you will implement a minimal IPI mechanism in xv6 that lets one RISC-V hart simply ring a “doorbell” on another. The goal is to deepen your understanding of xv6 system calls and interrupt handling on the RISC-V architecture.

  • Project specification available here
  • Due date: 11:59 PM, October 12 (Sunday).

Project #1: Hello world, xv6

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.

  • Project specification available here
  • Due date: 11:59 PM, September 21 (Sunday).

xv6 Resources

Course Information

When 12:30 - 13:45 (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: 60% (Midterm 25%, Final 35%)
Projects: 40%
* Grading policy is subject to change
Teaching Assistants Hyungjoon Kwon and Sejun Kwon (snucsl.ta AT gmail.com)