Computer Science 330
Operating Systems

Spring 2012, Siena College

Course Schedule

"SG&G" indicates readings from Operating Systems Concepts Essentials, by Silberschatz, Galvin, and Gagne. Additional readings will be given occasionally. Links will be added here to an outline for each lecture, the full text of each lab assignment, PDFs of my notes for each topic, and to copies of additional readings when available electronically. Note: all assignment and exam dates are subject to change, and are provided only as a general guideline until the actual lab assignment or exam is handed out in class.


Topic and/or Event Readings
January 17 Lecture 1: Introduction and Overview SG&G 1, SG&G 2; Topic Notes: Introduction and Overview
January 19 Lecture 2: Historical Development; Processes SG&G 3; Topic Notes: Processes and Threads
January 20 Lab 1: C and Unix Refresher
January 24 Lecture 3: Processes and Interprocess Communication
January 26 Lecture 4: Threads SG&G 4
January 27 Lab 2: Programming Unix Processes and Threads in C [HTML] [PDF]; Programming Project 1: Processes and Threads [HTML] [PDF]
January 31 Lecture 5: CPU Scheduling SG&G 5; Topic Notes: CPU Scheduling
February 2 Lecture 6: CPU Scheduling for Multiprocessors; CPU Scheduling Implementations; Cooperating Processes Introduction Topic Notes: Process Synchronization
February 3 Lab 3: "Object Oriented" C Programming [HTML] [PDF]; Programming Project 2: CPU Scheduling Simulator [HTML] [PDF]
February 7 Lecture 7: FreeBSD and Linux Scheduling; Cooperating Processes and Critical Sections SG&G 6.1-6.4
February 9 Lecture 8: Critical Sections
February 10 No Lab: Siena President's Holiday
February 14 Lecture 9: Semaphores; Mutexes SG&G 6.5
February 16 No Class: SIAM PP12 Conference
February 17 Lab 4: Concurrency [HTML] [PDF]
February 21 Lecture 10: Synchronization Problems SG&G 6.6
February 23 Lecture 11: Semaphore Implementations; Monitors SG&G 6.7
February 24 Lab 5: Unix Systems Programming [HTML] [PDF]; Programming Project 3: rbsh: The RB Shell [HTML] [PDF]
February 28 Lecture 12: Review; Shell Project Discussion
March 1 No Class: SIGCSE 2012 Conference
March 2 No New Lab: SIGCSE 2012 Conference
March 6 Lecture 13: Review; Midterm Exam Out
March 8 Lecture 14: Deadlock Wrapup; Memory Management Introduction; Midterm Exam Due SG&G 6.9; Topic Notes: Deadlock; SG&G 7.1-7.5; Topic Notes: Memory
March 9 Lab Meeting: Shell Project Discussion; Library Session; Term Project Out: [HTML] [PDF]
March 12-16 Spring Break
March 20 Lecture 15: Paging SG&G 7.6-7.8
March 22 Lecture 16: Demand Paging; Virtual Memory SG&G 8.1-8.4
March 23 Lab 6: Working Set Simulation [HTML] [PDF]
March 27 Lecture 17: Segmentation; Intel Pentium Memory Management
March 29 Lecture 18: Persistent Storage; File Systems Topic Notes: File Systems; SG&G 9, SG&G 10
March 30 Lab 7: Sockets [HTML] [PDF]
April 3 Lecture 19: File Systems
April 5 No Class: Easter Break
April 6 No Lab: Easter Break
April 10 Lecture 20: File System Implementations; Disk Scheduling; Disk Cache SG&G 11, SG&G 12
April 12 Lecture 21: More Filesystems and I/O
April 13 Lab 8: File Systems [HTML] [PDF]
April 17 Lecture 22: I/O; Protection and Security SG&G 13, SG&G 14; Topic Notes: Input/Output; Topic Notes: Protection and Security
April 19 Lecture 23: Security; Encryption
April 20 Lab 9: Security [HTML] [PDF]
April 24 Lecture 24: Encryption Wrapup; Distributed Systems Topic Notes: Distributed Systems
April 26 Lecture 25: Wrapup; Review
April 27 No Lab: CCSCNE 2012 Conference
April 30 Final Project Presentations, 7 PM, RB 302
May 1-7 Final Exam (Take-home)

Acknowledgements: Lecture notes include material from