(Posted Dec 7, 2023)
(Posted Dec 5, 2023)
(Posted Oct 18, 2023)
The following schedule is tentative and subject to change without notice.
Day | Topic | Reading |
---|---|---|
9/5 | Course overview | |
9/7 | Introduction to operating systems | 2 |
9/12 | Architectural support for OS | 6 |
9/12 | Makeup class @ 7:00pm (Online) | |
9/14 | Processes | 4, 5 |
9/19 | CPU scheduling | 7, 8 |
9/19 | Makeup class @ 7:00pm (Online) | |
9/21 | Virtual memory | 13, 14, 15, 16 |
9/26 | Paging | 18 |
9/26 | Lab session @ 7:00pm (Online) | |
9/28 | National Holiday | |
Page tables (Online) | 20 | |
10/3 | National Holiday | |
TLB (Online) | 19 | |
10/5 | Memory mapping | |
10/10 | No class | |
10/12 | No class | |
10/17 | Swapping | 21, 22 |
10/19 | Virtual Memory Implementations | 23 |
10/19 | Lab session @ 7:00pm (Online) | |
10/24 | Midterm Exam | |
10/26 | Threads | 26, 27 |
10/31 | ||
10/31 | Makeup class @ 7:00pm (Online) | |
Locks | 28 | |
11/2 | Semaphores | 31 |
Monitors | ||
11/7 | Condition variables | 30 |
11/7 | Makeup class @ 7:00pm (Online) | |
Hard disk drives (HDDs) | 36, 37 | |
11/9 | ||
11/9 | Lab session @ 7:00pm (Online) | |
11/14 | No class | |
11/16 | No class | |
11/21 | File systems | 39 |
11/23 | File system implementation | 40 |
11/28 | ||
11/30 | Fast file system | 41 |
12/5 | Solid state drives (SSDs) | 44 |
12/5 | Lab session @ 7:00pm (Online) | |
12/7 | ||
12/12 | File system consistency | 42 |
12/14 | 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.
The current version of the xv6
kernel is designed to support old-fashioned processes only. This project involves extending the xv6
kernel to incorporate native thread support. The primary goal is to enable user processes to create and manage user-level threads. Our threading system adheres to the 1:1 threading model. This means that for each user-level thread created, a corresponding kernel thread should be created within the kernel. You must ensure the integration of this new feature does not disrupt the existing process management functionalities of the xv6
kernel.
mmap()
with Huge PagesIn this project, we implement a simplified version of the mmap()
system call using 2MiB huge pages supported by the RISC-V architecture. The goal of this project is to understand the paging hardware of the RISC-V processor and how the operating system manages virtual-to-physical address mapping to improve memory efficiency.
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 scheduler named BTS (Brain Teased Scheduler).
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
, the version recently ported to a multi-core RISC-V machine. The goal of this project is to make your Linux or macOS development environment ready and get familiar with our project submission server.
When | 14:00 - 15:15 (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% (1%, 2%, 7%, 15%, 15% for PA1~PA5) * Grading policy is subject to change |
Teaching Assistants | Injae Kang, Heejae Kim (snucsl.ta at gmail.com) |