Course Information
Instructor | Man-Ki Yoon |
Class Room | 2207 EB3 |
Class Hours | M/W 3:00–4:15 pm |
Office Hours | M/W 4:15–5:15 pm (3254 EB2 or Zoom) |
Teaching Assistant | Andrew Robie |
Online Tools | Moodle, Ed Discussion, Gradescope, GitHub |
Course Description
The goal of this course is for students to understand advanced topics in operating systems: scheduling, virtual memory, synchronization, file systems, and distributed systems. The material will be covered in terms of operating systems internals rather than the operating systems interface. Students will also read, present, and discuss representative research papers (from classical articles to recent publications in top systems conferences) on various topics related to operating systems.
Prerequisites
CSC 246 (Concepts and Facilities of Operating Systems for Computer Scientists), CSC 316 (Data Structures), and programming competence in C (not C++) and Unix.
Course Materials
Required Textbook
Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau, Operating Systems: Three Easy Pieces
Lecture Notes
Lecture notes will be uploaded on Moodle.
Acknowledgement: This course includes materials provided by Dr. Remzi H. Arpaci-Dusseau, Dr. Vincent Freeh, Dr. Xiaohui Gu, Dr. Xuxian Jiang, Dr. Xiaosong Ma, Dr. Frank Meuller, Dr. Xipeng Shen, and Dr. Guoliang Jin.
Optional Textbooks
Thomas Anderson and Michael Dahlin, Operating Systems: Principles and Practice, 2/3, Recursive Books (2014).
Douglas Comer, Operating System Design: The Xinu Approach, 2/e, Chapman and Hall/CRC (2015).
William Stalling, Operating Systems: Internals and Design Principles, 7/e, Prentice Hall (2011).
Andrew S. Tanenbaum and Hebert Bos, Modern Operating Systems, 4/e, Prentice Hall (2014).
Abraham Silberschatz, Peter B Galvin, Greg Gagne, Operating System Concepts, 10/e, John Wiley & Sons, Inc. (2018).