Advanced Operating Systems (Fall 2021) | SNU Systems Software & Architecture Laboratory

News

   Please upload your term paper and presentation video here by 11:55PM on December 20th. The term paper should be in ACM or IEEE conference format (two columns, max 6 pages, either in English or Korean) and the length of the presentation video should not exceed 10 minutes. Have a good vacation!

(Posted Dec 14, 2021)

   The final exam will be held in the lecture room #302-208 during 11:00 ~ 12:15, December 14th. The scope will be the following papers: MM1, MM2, and VM1.

(Posted Dec 7, 2021)

   Please upload your project progress report here by November 30th.

(Posted Nov 25, 2021)

Schedule

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

Day Topic Reading
9/2 Course Overview (Online)
9/7 Computer systems research (Online) I1
9/9
9/14 Introduction to operating systems (Online) H1
9/16 Storage (Online)
9/21 National Holiday
9/23
9/28 File systems (Online) FS1
9/30 LFS (Online) FS2
10/1 Flash memoryMakeup Class @ 7:00pm (Online)
10/5 Exam 1 (Offline)
10/7
10/12 F2FS (Online) FS3
10/14 Modern SSDs (Online) SSD1
10/19
10/21 Computational storage (Online) SSD2, SSD4
10/26 Invited Talk - ZNS SSDs: Features and Research Directions (Prof. Jongmoo Choi) SSD3
10/26 Project proposal due
10/28 Processes and threads (Online)
11/2 Scheduler activations (Online) S1
11/4 CPU scheduling (Online)
11/9 Lottery scheduling (Online) S2
11/11 Exam 2 (Offline)
11/16 Virtual memory (Online)
11/18
11/23
11/25 Superpage support (Online) MM1
11/30 ARC (Online) MM2
11/30 Project progress report due
12/2 Linux memory management (Online)
12/7 Virtual machines (Online) VM1
12/9 KVM (Online)
12/14 Final Exam (Offline)
12/20 Term paper due

Credit: Some of the slides are borrowed from the authors’ presentations.

Projects

Projects

No Title Team Name
1 Optimizing SSD Access via Graph Reorganization in Graph Learning ARC조 김동현,
김수성,
최현지
2 Lustre Adaptive Progressive File Layout 진리조 홍재기,
고병현,
신준식
3 Improving F2FS Hotness Classification Performance based on File Usage Pattern Analysis OS60조 박하연,
유서환
4 LC-CB: Low Computational Victim Selection Policy in Garbage Collection 자료구조 한종우,
전해주,
신동민
5 F2FS Performance Evaluation and Analysis 리쌍조 이준석,
이의동,
손태형
6 F2FS-Z: Metadata on ZNS by LSM-tree KV Store FAST가조 임민우,
서윤형,
한형석

Assignment #1: System Call

Add a new system call named readbytes() that returns the total number of bytes returned by the read() system call so far. Set the system call number of readbytes() to 500.

Due: 11:55PM, September 26.

Submission: Click here to upload your compressed patch file and design document (Note: The submission is closed on 11:55PM September 26). Note that you should also upload a 1-page design document file (in PDF format) that briefly describes your implementation.

How to setup your Linux kernel

  • Install VirtualBox 6.1.26 on your machine
  • Install Ubuntu 20.04.3 LTS in your VirtualBox
  • Download the reference Linux kernel 5.10.61
$ wget https://kernel.org/pub/linux/kernel/v5.x/linux-5.10.61.tar.xz
$ tar xvf linux-5.10.61.tar.xz
  • Install prerequisite packages
$ sudo apt install build-essential ncurses-dev libssl-dev flex bison libelf-dev
  • Compile the Linux kernel 5.10.61 (use x86_64_defconfig to configure your kernel)
$ cd linux-5.10.61
$ make x86_64_defconfig
$ make all
$ sudo make modules_install
$ sudo make install

How to prepare your compressed patch file

You can prepare a compressed patch file as follows. Assume that the vanilla 5.10.61 kernel is in the ./linux-5.10.61-vanilla directory, while your modified kernel is in the ./linux-5.10.61 directory.

$ (cd linux-5.10.61-vanilla; make distclean)
$ (cd linux-5.10.61; make distclean)
$ diff -uprN linux-5.10.61-vanilla linux-5.10.61 > studentID.patch
$ gzip studentID.patch

Please double-check your patch file whether it contains some unnecessary materials. Also, please make sure that you should build your kernel with the x86_64_defconfig configuration file.

For more details on generating a patch file, please refer to here.

Reference Platform

The following shows the reference platform used in this course.

Linux Kernel Resources

Reading List

Historical Perspective

Computer Systems Research

File Systems

SSDs

CPU Scheduling

Virtual Memory

Virtual Machines

OS Design

Distributed File Systems

Key-Value Stores

Course Information

When 11:00 - 12:15 (Tuesday / Thursday)
Where Lecture room #302-208 Online lectures using Zoom
Instructor Jin-Soo Kim
Professor, Dept. of Computer Science and Engineering, SNU
Language Korean
Course Description This course covers advanced operating system concepts as well as a broad spectrum of research topics in computer systems. Quality research papers from SOSP, OSDI, ASPLOS, USENIX ATC, FAST, NSDI, EuroSys, etc. will be used as class materials. Students must be actively involved in reading, presenting, and discussing selected papers to understand the recent trends in operating systems and computer systems research. In addition, students are required to write up a term paper by the end of the semester as a result of their own study on a particular research topic.
References • Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau, Operating Systems: Three Easy Pieces, Apraci-Dusseau Books, March 2015 (Version 1.00).
• 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, 4th Edition, Pearson Education, Inc., 2015.
Prerequisites • M1522.000800 Undergraduate Systems Programming or equivalent
• 4190.307 Undergraduate Operating Systems or equivalent
• 4190.308 Undergraduate Computer Architecture or equivalent
Grading Exams: 70%
Term project: 30%
* Grading policy is subject to change
Teaching Assistant Kyujin Cho (bori19960 AT snu)