CS 475: Operating Systems  (Spring 2020)

Instructor: David Chiu
Meeting Time: MWF 3:00-3:50 in Thompson Hall 409
Office: Thompson Hall 390 B
Office Hours: Open door, or by appointment
Canvas: canvas.pugetsound.edu


The course syllabus contains general information on course topics, grading procedures, and classroom policies.



Access to class note may require a username and password which are given in class.

Homework Assignments


Course Schedule (Tentative)

Week 1 (Chap 1 and Chap 2)

Mon 01/20Wed 01/22Fri 01/24 Resources

MLK Day (No classes)

Course Syllabus
What is an OS?

A brief history of computing

Week 2 (Chap 2)

Mon 01/27Wed 01/29Fri 01/31
Hwk 1 due

Job scheduling models

Brief intro to the cmd-line

Interrupts, system calls, and dual-mode operation

Review Guide 1: OS Basics (Sol)

Week 3 (Chap 3: Process Management)

Mon 02/03Wed 02/05Fri 02/07
Hwk 2 due

Process Management: address space

Process: PCB, state transitions

Process: fork(), wait(), exec(), zombies and orphans

Review Guide 2: Proc & Threads (Sol)
Code (Lec): zombify.c
Code (Lec): orphan.c
Code (Lec): exec.c

Week 4 (Chap 4: Threads)

Mon 02/10Wed 02/12Fri 02/14
Hwk 3 due

Thread Management: performance and data sharing

Threads: user vs. kernel; implementation; pthread

Threads: work sharing example

Code (Lec): threadFib.c
Code (Lec): rtclock.h
Code (Lec): rtclock.c
Code (Lec): threadSum.c
Code (RG): threadSort.c

Week 5 (Chap 6: CPU Scheduling)

Mon 02/17Wed 02/19Fri 02/21 Resources

CPU Scheduling goals; FCFS, RR

Sched: RR, SJF, SRTF

Talk about Hwk 4; Sched: Priority, Lottery

Week 6 (Chap 6: CPU Scheduling)

Mon 02/24Wed 02/26Fri 02/28
Project 1 due

Sched: Priority, MLFQ; OSX and Linux


Midterm Exam I

Review Guide 3: Scheduling (Sol)
Apollo 11 (Priority Scheduling)

Week 7 (Chap 5: Synchronization)

Mon 03/02Wed 03/04Fri 03/06
Hwk 4 due

Sched: hyperthreading, multicore considerations

Synchronization: Critical section, locks

Sync: Implementing locks; priority inversion problem

Review Guide 4: Synchronization (Sol)
Code (Lec): blockinglock.c
Code (Lec): spinlock.c

Week 8 (Finish Chap 5)

Mon 03/09Wed 03/11Fri 03/13 Resources

Sync: Spin locks, priority inversion

Sync: Blocking locks; Semaphores

Sync: Implementing semaphores; helpful professor problem

Reading: Pathfinder (Priority Inversion)
Reading: Therac-25
Reading: GE XA/21

Spring Break!

Mon 03/16Wed 03/18Fri 03/20 Resources

Week 9 (Chap 6: Synchronization)

Mon 03/23Wed 03/25Fri 03/27 Resources

Sync: semaphore review; bounded buffer problem

Sync: semaphores: bounded buffer, readers-writers

Code: Helpful Prof C
Code: BoundedBuffer C
Code: ReadersWriters C
Code: BoundedBuffer Java

Week 10 (Chap 7: Deadlocks)

Mon 03/30
Hwk 5 due
Wed 04/01Fri 04/03 Resources

Sync: monitors and Java

Deadlocks (DL): conditions and prevention

DL: Banker's algorithm

Review Guide 5: Deadlocks (Sol)

Week 11 (Chap 8: Memory Management)

Mon 04/06Wed 04/08Fri 04/10 Resources

DL: RAGs, detection and recovery


Midterm Exam II

Week 12 (Chap 8: Memory Management)

Mon 04/13
Project 3 due
Wed 04/15Fri 04/17 Resources

MM: Address binding, relocatability, process loading

MM: Fixed vs. Dynamic Partitioning

MM: Segmentation

Review Guide 6: Memory Mgmt (Sol)

Week 13 (Chap 9: Virtual Memory)

Mon 04/20Wed 04/22Fri 04/24
Hwk 6 due

MM: Paging, 2-level paging

MM: Translation Lookaside Buffer (TLB)

Virtual Memory (VM): demand paging and page fault handling

Week 14 (Chap 9)

Mon 04/27Wed 04/29Fri 05/01 Resources

VM: FIFO, MIN, LRU replacement policies

VM: Clock; Start memory allocation and working-set model

VM: memory allocation (cont.)

Week 15 (Chap 12: File Systems)

Mon 05/04Wed 05/06
Project 4 due
Fri 05/08 Resources

VM: malloc(), free(); Start file system


Reading Period (no class)

Review Guide 7: File Systems (Sol)

Finals Week

Mon 05/11Wed 05/13Fri 05/15 Resources

Final Exam 4-6p

   Department of Mathematics and Computer Science
University of Puget Sound
1500 N. Warner St
Tacoma, WA 98416