Skip to main content.

Schedule

Lecture slides will be posted after class.

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

WEEK DAY Lectures & Examples Topic & Reading Assignments
1

Sep 07

  Introduction to Course, Operating Systems

Chapter 1, Dinosaur book

Sep 09

 

Sep 11

First day of class

Slides

2

Sep 14

Slides

Jeff Chase's Computer Architecture Overview

Systems Programming: Bash, C

Helpful Shell-scripting Resources: shellcheck.net
Advanced Bash-Scripting Guide

A Brief History of Computer Operating Systems, 1950s-2000
A web page from CS332 at Gordon College showing the main types of systems that we have discussed in class.
In the Beginning was the Command Line
An article by Neal Stephenson discussing the history of operating systems. Very entertaining.
Unix History
A treasure trove of information about the history of various versions of the Unix operating system.
Review Unix commands

Sep 16

Drop/Add ends

Slides
Examples

Assignment 0a

Sep 18

Slides
Examples

Review C
3

Sep 21

Slides
Examples

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

Make

Operating Systems: Kernel/User Mode, System Calls

Dinosaur Book, Chapter 1, 2

Sep 23

Slides
Examples

Assignment 0b

Sep 25

Slides

4

Sep 28

Slides

Kernel, Booting

Processes, Process Management, Processes in Unix

Process Scheduling

Dinosaur book, Chapter 2-3

Sep 30

Slides

Project 1: Introduction and Booting

Oct 02

Slides

5

Oct 05

Slides

Process Scheduling

Process Management

Interprocess Communication

Dinosaur Book, Chapters 3, 6

Midterm Prep

Oct 07

Slides
Examples

Oct 09

Slides
Examples

Project 2: System Calls
6

Oct 12

Slides
Examples

Interprocess Communication: Tradeoffs

Threads intro

Java Concurrency Programming

Chapter 4, Dinosaur book

Oct 14

Exam

Oct 16

Reading Days

7

Oct 19

Slides
Examples

Thread pools, implementations

Concurrency Problems

Concurrency in Swing

Chapters 4-5, Dinosaur book

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

Oct 21

Slides

Oct 23

Slides

Project 3: Loading and Executing Programs + Shell
8

Oct 26

Slides

Synchronization

Condition Variables

Producer-Consumer Problems (e.g., Bounded Buffer)

Dining Philosophers

Dinosaur book, Chapter 5

Oct 28

Slides

Oct 30

Slides

9

Nov 02

Slides

More Synchronization!

Dining Philosophers

Semaphores - The Little Book of Semaphores

Monitors

Dinosaur book, Chapter 5

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

Nov 04

Slides

Nov 06

Slides
Examples

Synchronization Assignment
10

Nov 09

Slides
Examples

Synchronization Wrap-up

File Systems Intro, Disk Scheduling

Dinosaur Book, Chapter 9

Nov 11

Slides

Nov 13

Project 4 work period

Project 4: Writing Files + Improved Shell
11

Nov 16

Slides

Disk Management, Storage

RAID

Tunable Availability and Consistency Tradeoffs (TACT)

Dinosaur Book, Chapter 9

File Systems

Dinosaur Book, Chapter 10

Nov 18

Slides

Nov 20

Slides

 

Nov 23

Thanksgiving Break

Nov 25

Nov 27

12

Nov 30

Slides

Memory Management

Main Memory

Dinosaur Book, Chapter 7

Project 5: Processes and Multiprogramming

Dec 02

Slides

Dec 04

Project Work Period

13

Dec 07

Slides

Virtual Memory

Dinosaur Book, Chapter 8

Wrap up, Future of Operating Systems

Final Prep

Dec 09

Slides

Dec 11

Slides

 

Dec 14

Final Exam

Dec 16

Dec 18