CS 300 : Operating Systems


Flipped Classroom Model

Tentative Lecture Schedule

Week Slides Videos (entire playlist)
Week 1 (video playlist)
Introduction
OS Overview.
Why study it ?
Chapters 1.1-1.7
History of OSs
Chapter 10.1, 11.1
Week 1 slides (pdf)
1. Introduction

2. What is an OS?

3. User mode / kernel mode / hardware hierarchy: from machine language to applications

4. OS in action and Interrupts

5. Interrupts (continued)

6. Exceptions and system calls; Operating system today

Problem Set 1 and Project 1 released
Due date Jan 19th and 28th 11:59pm.

Week 2 (video playlist)
Processes
Processes/Threads
Chapters 2.1-2.3
Scheduling Algorithms
Chapters 10.3 11.4
Week 2 slides (pdf)
7. Processes & Threads in Operating Systems

8. Process in memory; Processes VS threads; Multithreading

9. UNIX processes - state machine, scheduling, creation, collaboration, IPC

10. All about processes: creation via fork/exec, termination via exit(), and wait()

11. From Single-threaded programs to Multithreaded applications

12. Scheduling

13. First-Come, First-Served (FCFS) scheduling

14. Round Robin (RR) scheduling

15. First-Come, First-Served (FCFS) VS Round Robin (RR) scheduling comparison

16. Shortest-Job First (SJF) scheduling

17. Other scheduling policies (priority-based, multilevel queue, lottery); Summary

Week 3 (video playlist)
Synchronization
Atomics. Bounded Buffer
Chapters 2.3-2.5
Conditional Synchronization
Chapters 2.6, 2.7
Week 3 slides (pdf) + Bonus: Parallel Linked List (pdf) 18. Introduction to concurrency and synchronization

19. Multithreaded programs and atomic operations

20. "Too much milk!" example

21. Correctness conditions; Synchronization summary

22. How to implement locks?

23. Implementation of the locks

24. Locks: basic spin-lock, Test-and-Set lock, Test-and-Test-and-Set lock

Week 4
More Synchronization
Monitors/Semaphores
Chapters 2.1-2.3
Dining Philosophers Week 4 slides (pdf)
25.

26.

27.

28.

29.

30.

31.

32.

33.

Problem Set 2 and Project 2 released
Due date Feb 18th and 25th 11:59pm.

Week 5
Deadlocks
What are they?
Chapters 6.1-6.3
Bankers Algorithm
Chapters 6.4-6.7
Week 5 slides (pdf)
34.

35.

36.

Week 6
Virtual Memory
Virtual Memory
Chapters 4.1-4.3
TLBs and PageTables
Chapters 4.7-4.8
Week 6 slides (pdf)
37.

38.

39.

40.

41.

42.

43.

44.

45.

46.

47.

48.

49.

Problem Set 3 and Project 3 released
Due date March 18th 11:59pm.

Week 7
Page Replacement
Page replacement algorithms
Chapters 4.4-4.5
Implementation issues
Chapters 4.7
Week 7 slides (pdf)
50. SFU CMPT 300: Week 7 Part 1

51. SFU CMPT 300: Week 7 Part 2

52. SFU CMPT 300: Week 7 Part 3

Week 8
I/O
I/O Devices
Chapters 5
Memory Mapped I/O and Software
Chapters 5.3
Week 8 slides (pdf)
53. SFU CMPT 300: Week 8 Part 1

54. SFU CMPT 300: Week 8 Part 2

55. SFU CMPT 300: Week 8 Part 3

Week 9
Filesystems
Filesystems
Chapters 6
Filesystem consistency
Chapter 6
Week 9 slides (pdf)
56. SFU CMPT 300: Week 9 Part 1

Week 10
Security
Protection
Chapters 9.6
Cryptography
Chapters 9.2
Week 10 slides (pdf)
 

Problem Set 4 and Project 4 released
Due date April 13th 11:59pm.