CS 451 Willamette University Spring, 2019
 
Topics in Computer Science:
Operating Systems and Concurrency
 

Tentative Class Schedule

For each day,  
Tuesday Thursday
January 22
Introduction

Read: Silberschatz, Sections 1.1-1.5

Preparing for Mac OS X
  • Workstation Setup
C Fundamentals
  • Editing, Compiling, Running
 
January 24
Overview

Read: Silberschatz, Sections 1.6-1.10

January 29
Operating-system Structures

Read: Silberschatz, Sections 2.1-2.5

Functions and Arrays: Overview

 

 

 

 

January 31
Operative-system Structures

Read: Silberschatz, Sections 2.6-2.10

Functions and Arrays

Basic input and output

 

Due: Song Program Project

February 5
Processes

Read: Silberschatz, Sections 3.1-3.3

Uninterpretable Dance Project (required)

 

 

 

February 7
Processes

Read: Silberschatz, Sections 3.4-3.6

February 12
Threads

Read: Silberschatz, Sections 4.1-4.3

February 14
Threads

Read: Silberschatz, Sections 4.4-4.7

February 19
Process Synchronization

Critical Sections

Initial approaches

Read: Silberschatz, Sections 5.1-5.4

February 21

Process Synchronization

Locks

Semaphores

Read: Silberschatz: Sections 5.5-5.6

Images

 

Due: Supplemental Problem 1 (done individually—no collaboration)

February 26
Process Synchronization

Classic Problems and Examples

Monitors

Read: Silberschatz, Sections 5.7-5.10

Dynamic Memory: Overview

 

February 28
Pause for Breath
  • Time to
  • Catch Up

Time for

Individuals and Pairs

to Work on /Catch up on

labs, such as the

Image Processing Project (required)

March 5
Process Synchronization

Deadlock

Detection and Prevention

Read: Silberschatz, Section 5.11

Processing at front of a linked list  

Due: Image Processing Project

March 7
CPU Scheduling

Scheduling Algorithms

Read: Silberschatz, Sections 6.1-6.3

General List Processing

 

 

 

March 12
CPU Scheduling

Threads

Processor Configurations

Read: Silberschatz, Sections 6.4-6.8

A List Application

 

 

March 14
Main Memory

Swapping

Contiguous Memory Allocation

Read: Silberschatz, Sections 7.1-7.3

Representation of Numbers: Overview

 

Due: Linked-lists in C

March 19
Segmentation

Algorithms

Read: Silberschatz, Sections 7.4

More Data Representation

Due: Supplemental Problem 2 (done individually—no collaboration)

March 21

 

In-class Test

 

Mid-semester Analysis
  • Course attributes
  • Feedback

 

March 26
Spring Break
March 28
Spring Break
April 2
Paging

Read: Silberschatz, Sections 7.5-7.6

Lab: Spawning Processes and Process Communication
  • fork and waitpid
  • pipe input and output

 

Due: Floating-point numbers

April 4
Virtual Memory

Read: Silberschatz, Sections 8.1-8.4

Lab: fork and popen with separate programs

  • exec
  • Interprocess communication
  • popen

 

April 9
Virtual Memory

Logistics

Read: Silberschatz, Sections 8.5-8.9

Lab: Readers/writers (required)
Due: Tuesday, April 16
  • Shared memory
  • Shared buffer with spinlocks
  • Shared buffer with semaphores
  • Pipelines
April 11
Pause for Breath
  • Time to
  • Catch Up

Time for

Individuals and Pairs

to Work on /Catch up on

labs, such as the

Readers/writers Lab (required)

 

April 16
Virtual Memory

Read: Silberschatz, Chapter 8

Lab: Classical Concurrency Problem: Crossing a one-lane bridge simulation (required)
Due: Tuesday, April 23

 

Due: Lab: Readers/writers

April 18
Mass-storage Structures

Read: Silberschatz, Sections 9.1-9.6

Lab: Classical Concurrency Problem: Crossing a narrow bridge simulation (required)
Due: Tuesday, April 23

 

Due: Supplemental Problem 3 (done individually—no collaboration)

April 23
RAID Structures

Read: Silberschatz, Section 9.7-9.8

An introduction to threads in C

Background

Lab: Getting Started with Threads

  • Basic structure
  • Beginning examples

 

 

April 25
Protection

Read: Silberschatz, Sections 13.1-13.6

Read: An Introduction to Concurrency in Unix-based [GNU] C Through Annotated Examples, Programs 7-10

 

Lab: Readers/Writers Problem with Threads
Extra credit, if submitted by Thursday, May 2

  • Translation of the classical readers/writers problem to threads
  • Comparing threads and processes

 

Due: Lab: Classical Concurrency Problem: Crossing a narrow bridge simulation

April 30
Security

Read: Silberschatz, Sections 14.1-14.5

Lab: Readers/Writers Problem with Threads, Continued
Extra credit, if submitted by Thursday, May 2

 

Due: Supplemental Problem 4 (done individually—no collaboration)

May 2
End-of-course Evaluations

Semester wrap-up