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.
- The task T2 has woken up. (Begin your analysis from
wake_up_process()in./kernel/sched/core.c.) - 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.