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

News

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

(Posted Dec 3, 2024)

   The final project assignment has been posted here. The due date is 11:59 PM, December 22.

(Posted Dec 3, 2024)

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

(Posted Nov 7, 2024)

Schedule

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

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

Full-path indexing is a file system technique where directories store the complete path and associated inode information for each file or subdirectory. The goal of this project is to explore the implementation of a full-path indexing mechanism in the xv6 file system, focusing on its impact on directory structure management and pathname resolution efficiency.

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

Project #4: Xswap: Compressed Swap for xv6

The xv6 kernel currently lacks support for swapping. This project introduces Xswap, a compressed memory cache for swap pages inspired by Linux’s Zswap feature. By storing swap pages in a compressed format within RAM, Xswap reduces disk I/O and improves overall performance under memory pressure. The goal of this project is to understand the virtual memory subsystem in xv6 and explore the challenges and design considerations involved in adding swapping functionality.

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

Project #3: SNULE: A Simplified Nerdy ULE Scheduler

Currently, the CPU scheduler of xv6 uses a simple round-robin policy. The goal of this project is to understand the scheduling subsystem of xv6 by implementing the simplified version of FreeBSD’s ULE scheduler.

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

Project #2: System calls

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.

  • Project specification available here
  • Due date: 11:59 PM, October 6 (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 19 (Thursday).

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 Injae Kang and Hyeongtak Ji (snucsl.ta AT gmail.com)