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

News

   We will have the fnal exam as follows:
   • Time: 14:00 - 15:15, December 14th.
   • 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 7, 2023)

   The final project assignment has been announced here. The due date is 11:59PM, December 22 (Friday). In the final grade, the proportion of each project assignment from PA1 to PA5 is 1%, 2%, 7%, 15%, 15%, respectively.

(Posted Dec 5, 2023)

   The third project assignment has been announced here. The due date is 11:59PM, October 31 (Tuesday).

(Posted Oct 18, 2023)

Schedule

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

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

The current version of the xv6 kernel is designed to support old-fashioned processes only. This project involves extending the xv6 kernel to incorporate native thread support. The primary goal is to enable user processes to create and manage user-level threads. Our threading system adheres to the 1:1 threading model. This means that for each user-level thread created, a corresponding kernel thread should be created within the kernel. You must ensure the integration of this new feature does not disrupt the existing process management functionalities of the xv6 kernel.

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

Project #4: mmap() with Huge Pages

In this project, we implement a simplified version of the mmap() system call using 2MiB huge pages supported by the RISC-V architecture. The goal of this project is to understand the paging hardware of the RISC-V processor and how the operating system manages virtual-to-physical address mapping to improve memory efficiency.

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

Project #3: BTS (Brain Teased 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 scheduler named BTS (Brain Teased Scheduler).

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

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:59PM, October 8 (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, the version recently ported to a multi-core RISC-V machine. The goal of this project is to make your Linux or macOS development environment ready and get familiar with our project submission server.

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

xv6 Resources

Course Information

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 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%, 2%, 7%, 15%, 15% for PA1~PA5)
* Grading policy is subject to change
Teaching Assistants Injae Kang, Heejae Kim (snucsl.ta at gmail.com)