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: 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 exam 15%
Final exam 25%
Assignments 35% (weekly, word problem + python programming for OS algorithms)
Project 20% (mix of C and assembly programming, five checkpoints, in-person demo and report)
Participation 5% (discretionary, including attendance, quiz, participation in class and note board)

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