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