(Posted Dec 16, 2020)
(Posted Dec 13, 2020)
(Posted Dec 9, 2020)
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/ |
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 |
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) |
무명조 | 김정용, 신현일, 구교승 |
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.
wake_up_process()
in ./kernel/sched/core.c
.)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).
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.
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.
The following shows the reference platform used in this course.
(I1) ⭐️ Butler W. Lampson, “Hints for Computer System Design,” SOSP, 1983. (The SIGOPS Hall of Fame Award ‘05)
(I2) Roy Levin and David D. Redell, “An Evaluation of the Ninth SOSP Submissions or How (and How Not) to Write a Good Systems Paper,” ACM Operating Systems Review, 1983.
(I3) Aaron B. Brown, Anupam Chanda, Rik Farrow, Alexandra Fedorova, Petros Maniatis, and Michael L. Scott, “The Many Faces of Systems Research - And How to Evaluate Them,” HotOS, 2005.
(S1) ⭐️ Thomas E. Anderson, Brian N. Bershad, Edward D. Lazowska, and Henry M. Levy, “Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism,” TOCS, 1992.
(S2) ⭐️ Carl A. Waldspurger and William E. Weihl, “Lottery Scheduling: Flexible Proportional-Share Resource Management,” OSDI, 1994.
(S3) Carl A. Waldspurger and William E. Weihl, “Stride Scheduling: Deterministic Proportional-Share Resource Management,” Technical Memorandum MIT/LCS/TM-528, MIT Laboratory for Computer Science, 1995.
(S4) Jean-Pierre Lozi, Baptiste Lepers, Justin Funston, Fabien Gaud, Vivien Quema, and Alexandra Fedorova, “The Linux Scheduler: a Decade of Wasted Cores,” EuroSys, 2016.
(MM1) ⭐️ Nimrod Megiddo and Dharmendra S. Modha, “ARC: A Self-Tuning, Low Overhead Replacement Cache,” FAST, 2003. (USENIX Test of Time Award ‘14)
(MM2) ⭐️ Song Jiang, Feng Chen, and Xiaodong Zhang, “CLOCK-Pro: An Effective Improvement of the CLOCK Replacement,” USENIX ATC, 2005.
(MM3) ⭐️ Juan Navarro, Sitaram Iyer, Peter Druschel, and Alan Cox, “Practical, Transparent Operating System Support for Superpages,” OSDI, 2002.
(MM4) Youngjin Kwon, Hangchen Yu, Simon Peter, Christopher J. Rossbach, and Emmett Witchel, “Coordinated and Efficient Huge Page Management with Ingens,” OSDI, 2016.
(FS1) ⭐️ Marshall K. McKusick, William N. Joy, and Samuel J. Leffler, “A Fast File System for UNIX,” ACM TOCS, 1984. (The SIGOPS Hall of Fame Award ‘15)
(FS2) ⭐️ Mendel Rosenblum and John K. Ousterhout, “The Design and Implementation of a Log-Structured File System,” SOSP, 1991. (The SIGOPS Hall of Fame Award ‘12)
(FS3) ⭐️ Changman Lee, Dongho Sim, Joo-Young Hwang, and Sangyeun Cho, “F2FS: A New File System for Flash Storage,” FAST, 2015.
(SSD1) ⭐️ Jeong-Uk Kang, Jeeseok Hyun, Hyunjoo Maeng, and Sangyeun Cho, “The Multi-streamed Solid-State Drive,” HotStorage, 2014.
(SSD2) ⭐️ Boncheol Gu, Andre S. Yoon, Duck-Ho Bae, Insoon Jo, Jinyoung Lee, Jonghyun Yoon, Jeong-Uk Kang, Moonsang Kwon, Chanho Yoon, Sangyeun Cho, Jaeheon Jeong, and Duckhyun Chang, “Biscuit: A Framework for Near-Data Processing of Big Data Workloads,” ISCA, 2016.
(SSD3) Mei-Ling Chiang, Paul C. H. Lee, and Ruei-Chuan Chang, “Using Data Clustering to Improve Cleaning Performance for Flash Memory,” Software - Practice and Experience, 1999.
(SSD4) Aayush Gupta, Youngjae Kim, Bhuvan Urgaonkar, “DFTL: A Flash Translation Layer Employing Demand-based Selective Caching of Page-level Address Mappings,” ASPLOS, 2009.
(SSD5) Abhishek Rajimwale, Vijayan Prabhakaran, and John D. Davis, “Block Management in Solid-State Devices,” USENIX ATC, 2009.
(SSD6) Jun He, Sudarsun Kannan, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau, “The Unwritten Contract of Solid State Drives,” EuroSys, 2017.
⭐️ means required reading for this course.
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 |