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

News

   Please note the following information on the final exam:
   • Time: 12:30 - 13:45, June 13.
   • 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 Jun 3, 2024)

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

(Posted May 30, 2024)

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

(Posted May 7, 2024)

Schedule

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

Day Topic Reading
3/5 Course overview
3/7 Introduction to operating systems 2
3/12 Architectural support for OS (Update on March 14) 6
3/14
3/19 Processes 4, 5
3/21 CPU scheduling 7, 8
3/25 Lab session 1 @ 7:00pm (Online)
3/26 Virtual memory 13, 14, 15, 16
3/28
4/2 Paging 18
4/4 Page tables 20
4/9 TLB 19
4/11 Memory mapping
4/15 Lab session 2 @ 7:00pm (Online)
4/16 Swapping 21, 22
4/18 Virtual Memory Implementations 23
4/23 Cancelled
4/25 Midterm Exam
4/30 Threads 26, 27
5/2 Locks (Updated on May 7) 28
5/7 Semaphores 31
5/9
5/10 Lab session 3 @ 7:00pm (Online)
5/14 Monitors
Condition variables 30
- Makeup Class: I/O (VOD @ eTL)
- Makeup Class: Hard disk drives (HDDs) (VOD @ eTL) 36, 37
5/16 File systems 39
5/21
5/23 File system implementation (Updated on May 30) 40
5/28 Invited Talk: A Story of RTst, an OS Development Startup
5/30 Fast file system 41
6/4 Solid state drives (SSDs) 44
6/4 Lab session 4 @ 7:00pm (Online)
6/6 National Holiday
6/11 File system consistency 42
6/13 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: FATty File System

Microsoft’s early FAT file system has a unique file index structure based on the File Allocation Table (FAT). The goal of this project is to implement the “FATty” file system, which modifies the file index structure of the existing xv6 file system to resemble that of the FAT file system.

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

Project #4: KSM (Kernel Samepage Merging)

KSM (Kernel Samepage Merging) is a memory de-duplication feature that enables the kernel to consolidate identical memory pages into a single shared page across multiple processes, thereby saving memory. The objective of this project is to explore the virtual memory subsystem of xv6 by implementing the KSM feature.

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

Project #3: The EDF (Earliest Deadline First) 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 EDF (Earliest Deadline First) scheduler used in real-time systems.

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

Project #2: System calls

System calls are the interfaces that allow user applications to request various services from the operating system kernel. This project aims to understand how those system calls are implemented in xv6.

  • Project specification available here
  • Due date: 11:59 PM, April 7 (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, March 18 (Monday).

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 topics on general operating system concepts such as process management, memory management, I/O systems, and file systems, with the in-depth study on the latest Linux operating system. In addition, students are required to perform several hands-on projects with the xv6 instructional OS.
Textbook Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau, Operating Systems: Three Easy Pieces, Arpaci-Dusseau Books, August 2018 (Version 1.00)
Reference 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% (1%, 5%, 9%, 10%, 15%)
* Grading policy is subject to change
Teaching Assistants Hyungjoon Kwon, Seungtaek Oh, Kyujin Cho (snucsl.ta AT gmail.com)