(Posted Apr 14, 2024)
(Posted Apr 11, 2024)
(Posted Mar 21, 2024)
The following schedule is tentative and subject to change without notice.
Day | Topic | Reading |
---|---|---|
3/5 | Course overview | |
3/7 | Introduction to operating systems | 2 |
3/12 | Architectural support for OS (Update on March 14) | 6 |
3/14 | ||
3/19 | Processes | 4, 5 |
3/21 | CPU scheduling | 7, 8 |
3/25 | Lab session 1 @ 7:00pm (Online) | |
3/26 | Virtual memory | 13, 14, 15, 16 |
3/28 | ||
4/2 | Paging | 18 |
4/4 | Page tables | 20 |
4/9 | TLB | 19 |
4/11 | Memory mapping | |
4/15 | Lab session 2 @ 7:00pm (Online) | |
4/16 | Swapping | 21, 22 |
4/18 | Virtual Memory Implementations | 23 |
4/23 | Cancelled | |
4/25 | Midterm Exam | |
4/30 | Threads | 26, 27 |
5/2 | Locks | 28 |
5/7 | Semaphores | 31 |
5/9 | Monitors | |
5/14 | Condition variables | 30 |
5/16 | Hard disk drives (HDDs) | 36, 37 |
5/21 | File systems | 39 |
5/23 | File system implementation | 40 |
5/28 | ||
5/30 | Fast file system | 41 |
6/4 | Solid state drives (SSDs) | 44 |
6/6 | National Holiday | |
6/11 | File system consistency | 42 |
6/13 | Final Exam |
Credit: Most of slides for this lecture are based on materials provided by the authors of the textbook and references.
For project submission and automatic grading, we are running a dedicated server at https://sys.snu.ac.kr. If you want to access the sys server outside of the SNU campus, please send a request via a Google Form whose URL is posted in the eTL.
Currently, the CPU scheduler of xv6 uses a simple round-robin policy. The goal of this project is to understand the scheduling subsystem of
xv6` by implementing the EDF (Earliest Deadline First) scheduler used in real-time systems.
System calls are the interfaces that allow user applications to request various services from the operating system kernel. This project aims to understand how those system calls are implemented in xv6
.
xv6
is an instructional operating system developed by MIT based on Ken Thompson and Dennis Ritchie’s Unix version 6 (v6). In this course, we will use xv6-riscv
, a version recently ported to a multi-core RISC-V machine. The goal of this project is to set up your development environment on Linux or macOS and familiarize yourself with our project submission server.
When | 12:30 - 13:45 (Tuesday / Thursday) |
Where | Lecture room #301-203, Engineering Building I |
Instructor | Jin-Soo Kim Professor, Dept. of Computer Science and Engineering, SNU |
Language | Korean |
Course Description | This course covers topics on general operating system concepts such as process management, memory management, I/O systems, and file systems, with the in-depth study on the latest Linux operating system. In addition, students are required to perform several hands-on projects with the xv6 instructional OS. |
Textbook | Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau, Operating Systems: Three Easy Pieces, Arpaci-Dusseau Books, August 2018 (Version 1.00) |
Reference | 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, 5th Edition, Pearson, March 2022. |
Prerequisites | M1522.000800 System Programming 4190.308 Computer Architecture |
Grading | Exams: 60% (Midterm 25%, Final 35%) Projects: 40% * Grading policy is subject to change |
Teaching Assistants | Hyungjoon Kwon, Seungtaek Oh (snucsl.ta AT gmail.com) |