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, 10th Edition (International Student
Version), John Wiley & Sons, Inc.


Reference:

EdSim51, https://edsim51.com/
Small Device C Compiler, http://sdcc.sourceforge.net/

Teaching Method:

Three hours of lectures per week, weekly written and programming assignments, one final project with five
checkpoints


Language of Instruction:

English


Syllabus

Chap0: History of OS
Chap1: Introduction
Chap2: System Structures
Chap3: Process Concept
Chap4: Threads
Chap5: Scheduling
Chap6: Synchronization, Chap7: Synchronization Examples
Chap8: Deadlocks
Chap9: Main Memory
Chap10: Virtual Memory
Chap11: Mass Storage
Chap12: I/O
Chap13, Chap14: File System


Evaluation:

Midterm exam 30%
Final exam 40%
Assignments and Projects 30% (weekly, word problem + python programming for OS algorithms)

Course Website:
http://lms.nthu.edu.tw/