Course Description:

This course covers fundamental concepts in operating systems for computers, including multiprogramming,
interrupt, processes, kernel, parallelism, critical sections, deadlocks, communication, multiprocessing,
multilevel memory management, binding, name management, file systems, protection, resource allocation,
scheduling. Experience with concurrent programming, synchronization mechanisms, interprocess
communication.


Textbook:

A. Silberschatz, P. Galvin, and G. Gangne, Operating System Concepts, 9th Edition (International Student
Version), John Wiley & Sons, Inc.


Reference:

The Nachos website, https://homes.cs.washington.edu/~tom/nachos/


Teaching Method:

Three hours of lectures per week, four team-programming assignments


Syllabus

Chap0: History of OS
Chap1: Introduction
Chap2: System Structures
Chap3: Process Concept
Chap4: Multithreaded Programming
Chap5: Process Scheduling
Chap6: Synchronization
Chap7: Deadlocks
Chap8: Memory Management Strategies
Chap9: Virtual Memory Management
Chap10:File System
Chap11: Implementing File Systems
Chap12: Mass Storage Structure
Chap13: I/O Systems


Evaluation:

Midterm 20%
Final 30%
Homework 45%
Participation 5%

Course Website:

http://lms.nthu.edu.tw/course/30639