|Class Room||1227 EB2|
|Class Hours||Tu/Th 4:30–5:45 pm|
|Office Hours||Tu/Th 3:30–4:30 pm (3254 EB2 or Zoom)|
|Teaching Assistant||Shudi Shao|
|Online Tools||Moodle, GitHub|
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 have the opportunity to learn modern techniques on containerization and observability.
CSC 246 (Concepts and Facilities of Operating Systems for Computer Scientists), CSC 314 (Data Structures), and programming competence in C (not C++) and Unix.
Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau, Operating Systems: Three Easy Pieces
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.
Douglas Comer, Operating System Design: The Xinu Approach, 2/e, Chapman and Hall/CRC (2015).
Thomas Anderson and Michael Dahlin, Operating Systems: Principles and Practice, 2/3, Recursive Books (2014). 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).
Course Structure and Grading Policy
The table below shows the percentage-based breakdown of how each requirement will factor into the overall grade.
|Programming Assignments (4 x 15%)||60%|
|Exam (1 x 30%)||30%|
|Paper Presentation (1 x 10%)||10%|
See here for attendance and late assignment policies.