Advanced Operating Systems (Fall 2020) | 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. Thanks and have a good vacation!

(Posted Dec 16, 2020)

   Due to rapid increase in COVID-19 confirmed cases, we are switching to the non-face-to-face final exam. The link for the final exam questions will be posted in eTL at 3:30pm on December 14th. You are required to upload your answer sheets by 4:40pm. Only the hand-written answers are accepted.

(Posted Dec 13, 2020)

   We plan to have the final exam from 3:30pm to 4:45pm on December 14th (Monday) at lecture rooms #301-101 (52 seats, max 17 students) and #301-203 (80 seats, amx 27 students). The scope is the materials covered in leture slides and papers marked with a star (⭐️) in the reading list. You can bring the copy of papers (not lecture slides, though) if needed.

(Posted Dec 9, 2020)

Schedule

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

Day Topic Reading
9/2 Course overview H1 (Due: 9/9)
9/7 Computer systems research I1
9/9 Introduction to operating systems S1 (Due: 9/16)
9/14 Processes and threads
9/16 Scheduler activations S2 (Due: 9/23 28)
9/21 CPU scheduling
9/23 Lottery scheduling
9/28
9/30 National Holiday
10/5 Virtual memory MM1 (Due: 10/12)
10/7 MM2 (Due 10/14)
10/12 ARC
10/14
10/16 Project proposal due
10/19 Clock-Pro MM3 (Due 10/26)
10/21
10/26 Superpage support
10/28 Linux memory management FS2 (Due 11/4)
11/2
11/4 File systems
11/9
11/11
11/16 Log-structured file system
11/18
11/23 Flash memory
11/25 Invited Talk I: Asynchronous I/O Stack (Prof. Jinkyu Jeong @ SKKU)
11/27 Project progress report due
11/30 FS3 (Due 12/9)
12/2 SSDs
12/3 Invited talk II: Tizen Open Source Project & Samsung TizenTV @ 4:00pm (Dr. Hyogun Lee, a former VP of Samsung Electronics Co.)
12/7
12/9 Flash-friendly file system (F2FS)
12/14 Final exam (Online)
12/20 Term paper due

Projects

Projects

No Title Team Name
1 Fine-grained kernel data-flow integrity using Intel MPK
(https://github.com/chae1/2020-fall-advanced-os-project)
HK조 이유찬,
김주희,
김채원
2 Page policy simulation with memtrace
(https://github.com/WyldeCat/paging-policy-simulator)
오예스조 이지수,
한민희,
강수연
3 Analysis of packet reception performance for network packet scheduling policy
(https://github.com/Merryapplications/AdvancedOS_team_A)
A조 송웅섭,
김동관,
김택민
4 OS kernel-level performance characteristics analysis and optimization of deep learning application workloads
(https://github.com/yuyupopo/MPGA)
박사되는상상조 김태범,
신안재,
이경근
5 Improving scalability of dmdedup module
(https://github.com/ckh7367/Advanced_OS)
젠장믿고있었조 최강현,
장하민,
김동주
6 Development of kworker thread monitoring tool
(https://github.com/BoKyoungHan/bsbs)
헛둘셋넷조 심준석,
한보경
7 Fast file read using zram caching
(https://github.com/sylee0124/OS2020)
조이름정하는조 황순용,
손샘,
이승렬
8 ARM simple OS
(https://github.com/snu-quiqcl/qos)
qos조 유승우,
전형준,
정다운
9 Efficient and scalable sanitization with shadow page merging
(https://github.com/project-dedup-asan/linux)
전우조 명철우,
박성현,
부경욱
10 Semi-global scheduling on multiprocessors
(https://github.com/JinChoi96/AdvOS2020)
고오급os조 황선준,
최진,
박병규
11 Prefetching with Leap on a single machine
(https://github.com/abcinje/wswd)
어떡하조 손익준,
정성엽,
강인재
12 Reanalyze FUSE performance with faster NVMe SSD
(https://github.com/81887821/AdvancedOperatingSystems)
뻐스손잡이꽉조 정연규,
정선민,
조규진
13 Page-level memory tracing
(https://github.com/chainpeace/AOS_2020_2)
기썬을제압조 이정은,
황인휘,
최윤서
14 Linux kernel module development using Rust
(https://github.com/rustcares/os2020)
상구는못말려조 이재용,
이상구
15 An extended analysis of performance evolution of Linux’s core operations
(https://github.com/cslNoname/linux-kernel)
무명조 김정용,
신현일,
구교승

Assignment #2: CFS

Consider the situation in the page 51 of the CFS lecture slide. Assume that after T3 runs for 1.0ms, the following events have occurred.

  1. The task T2 has woken up. (Begin your analysis from wake_up_process() in ./kernel/sched/core.c.)
  2. The task T3 performs the fork() system call. (Begin your analysis from _do_fork() in ./kernel/fork.c.)

Submit your report on what happens in each case by analyzing the CFS source code under the default configuration options (x86_64_defconfig). Your report should include all the details that led you to your conclusion.

Due: 11:55PM, October 11.

Submission: Click here to upload your report in PDF format (Note: The submission is closed on 11:55PM October 11).

Assignment #1: System Call

Add a new system call named nsyscall() that returns the total number of system calls made so far. Set the system call number of nsyscall() to 436.

Bonus: You will receive bonus if you implement nsyscall() using vDSO.

Due: 11:55PM, September 22.

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

How to prepare your compressed patch file

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

$ cd linux-5.4.59-vanilla
$ make distclean
$ cd ../linux-5.4.59
$ make distclean
$ diff -uprN linux-5.4.59-vanilla linux-5.4.59 > 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 (Use make x86_64_defconfig in the kernel directory.)

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

CPU Scheduling

Virtual Memory

File Systems

SSDs

⭐️ means required reading for this course.

Course Information

When 15:30 - 16:45 (Monday / Wednesday)
Where Online lecture 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 Assignments and Quizzes: 40%
Final exam: 30%
Term project: 30%
* Grading policy is subject to change
Teaching Assistant TBD