Skip to main content.

Schedule

Slides will be posted after class.

Most dates are tentative. The schedule will be updated as the semester progresses.

WEEK DAY Slides & Examples Topic & Reading Assignments

Week 1

Sep 03

  Introduction to Course, Operating Systems
A Brief History of Computer Operating Systems, 1950s-2000
A web page from CS332 at Gordon College describing the main types of systems
In the Beginning was the Command Line
An article by Neal Stephenson discussing the history of operating systems.

Chapter 1, Dinosaur book

Log into your Linux account

Review Unix commands

Sep 05

 

Sep 07

First day of class

Slides

Week 2

Sep 10

Slides
Examples

Jeff Chase's Computer Architecture Overview

Systems Programming: Bash, C

Helpful Shell-scripting Resources:

Unix History
A treasure trove of information about the history of various versions of the Unix operating system.

C -- Arrays, Pointers, Structs, Streams, Files

Make

Assignment 1: Bash Scripting

Sep 12

Drop/Add ends

Slides
Examples

Sep 14

Slides
Examples

Assignment 2

Week 3

Sep 17

Slides

Operating Systems: Kernel/User Mode, Booting, System Calls

Tanenbaum-Torvalds Debate

Git Review: Workflow, Git Handbook

Using VMs

Dinosaur Book, Chapter 1, 2

Sep 19

Slides

Sep 21

Slides

Project 1: Introduction and Booting - Due Tuesday, October 2 at 11:59:59

Week 4

Sep 24

Slides

Dual Mode

Syscalls, Exceptions, Interrupts

Interrupt Handling

Processes, Process Management, Processes in Unix

Dinosaur book, Chapter 2-3

Sep 26

Slides

Sep 28

Slides
Examples

Week 5

Oct 01

Slides

Process Scheduling

Interprocess Communication

Dinosaur Book, Chapters 3, 5

OSTEP: CPU Scheduling and The Multi-Level Feedback Queue

Oct 03

Slides

Project 2: System Calls - Due Monday, October 15 at 11:59:50

Oct 05

Slides
Examples

Week 6

Oct 08

Slides

Interprocess Communication: Tradeoffs

Threads

Chapter 4, Dinosaur book

Oct 10

Slides

Oct 12

Reading Days

Week 7

Oct 15

Slides
Examples

Implementing Threads

Concurrency Problems, Synchronization

An introduction to programming with threads, Birrell

Java Concurrency Programming
Concurrency in Swing

Midterm Prep

Chapters 4-5, Dinosaur book

SEDA: An Architecture for Well-Conditioned, Scalable Internet Services, A Retrospective on SEDA

Oct 17

Slides
Examples

Project 3: Loading and Executing Programs + Shell - Due November 2

Oct 19

Exam

Week 8

Oct 22

Slides
Examples for C Organization

Synchronization: Race Conditions, Critical Sections, Safety, Liveness, Mutual Exclusion

Synchronization Mechanism: Locks

Dinosaur book, Chapter 6

Oct 24

Slides

Oct 26

Slides

Week 9

Oct 29

Slides

Implementing Locks

Synchronization Mechanisms: Condition Variables, Monitors, and Semaphores

Synchronization Problems: Taking Turns, Producer-Consumer Problems (e.g., Bounded Buffer)

Semaphores - The Little Book of Semaphores

Dinosaur book, Chapters 6--7

Position: Why Threads are a Bad Idea (for most purposes) - compares threads and events

Oct 31

Slides

Nov 02

Slides
Examples

Week 10

Nov 05

Slides
Examples

Synchronization Problems: Producer-Consumer, Dining Philosophers, Deadlock

Synchronization Wrap-up

Dinosaur Book, Chapters 6-7

File Systems Intro

Dinosaur Book, Chapter 9

Synchronization Assignment - Due Monday, November 12

Nov 07

Slides

Nov 09

Slides

Week 11

Nov 12

Slides

File Systems: abstractions, metadata, inodes, directories

File System Performance

Dinosaur Book, Chapters 13--15

Nov 14

Slides

Project 4: Writing Files + Improved Shell

Nov 16

Slides

Week  

Nov 19

Thanksgiving Break

Nov 21

Nov 23

Week 12

Nov 26

Slides

Storage: RAID, Dinosaur Book, Chapter 11

Memory Management

Virtual Memory - Requirements

Segmentation vs Paging, External and Internal Fragmentation

Dinosaur Book, Chapter 9-10

Nov 28

Slides

Project 5: Processes and Multiprogramming

Nov 30

Slides

Week 13

Dec 03

Slides

Virtual Memory - Mechanisms and Policies (Memory Allocation, Page Replacement)

Hardware Support: MMU, TLB

Dinosaur Book, Chapter 10

Wrap up, Future of Operating Systems

Final Prep

Final Reflections

Dec 05

Slides

Dec 07

Slides

Week  

Dec 10

Final Exam

Dec 12

Dec 14