Operating Systems
Student Originated Software
Fall,Winter Quarters, 2009-2010
Tue, Thu 10:00 am-12:00 pm, ACC
Web site: Academic Program Page
 
 
Professor: Neal Nelson
Office: Lab 1 2010
Phone: 867-6738
Email: nealn@evergreen.edu
Office Hours: By arrangement
 
Kernel Programming Consultant:                  
Sherri Shulman: sherri@evergreen.edu; 
 
Textbooks:
Operating Systems by William Stallings
 Kernel Projects for Linux, by Gary Nutt

Course Description
This component of the program covers operating system principles and concepts along with hands-on laboratory projects working with the Linux kernel.

By the end of this class you should understand fundamental operating system structures and algorithms and be able to investigate, read, and modify a code in a large body of code such as the Linux kernel.

References and Handouts  

Course Requirements
 
 
Course Calendar and Readings
 
 
Date
Topics Covered
Reading & Review Questions Due for Tue
Assignment due the following Tue
Week 1
Computer Architecture Review
Stallings Chapter 1
plus Appendix 1B
Problem set 1
Week 2
Operating System Overview
Stallings Chapter 2
Intro to C for Java Programmers
Lab Handin Guide
Problem set 2
Lab 1 - C programming
Week 3
Process Management Stallings Chapter 3
Nutt pp 1-29, 67-82
Problem set 3
Lab 2 - shell
Week 4
Threads, SMP, Microkernels
Stallings Chapter 4 Problem set 4
Week 5
Concurrency: Mutual Exclusion and Synchronization
Stallings Chapter 5
Nutt pp 29-65
Problem set 5
Lab 3 - Proc Filesystem
Week 6
Concurrency: Deadlock and Starvation
Stallings Chapter 6
Problem set 5 (cont)
Week 7
Concurrency: Deadlock and Starvation
Stallings Chapter 6
Nutt pp 83-96
Problem set 6
Lab 4 - Kernel Timers
Week 8
Memory Management
Stallings Chapter 7
Exam 1 in class Ch 1-6
Thursday
Week 9
Virtual Memory
Stallings Chapter 8
Nutt pp 97-106
Problem set 7
Lab 5 - Kernel Modules
Week 10
Completion of lab work

Problem set 8
Completion of lab work
Week 1 Winter
Completion of labs 1-5

Lab 6 - System Calls
Completion of lab work
Week 2 Winter
Lab work catch-up

Completion of lab work
Week 3 Winter
Uniprocessor Scheduling
Stallings Chapter 9
Problem set 9
Lab 7 - Event Queues
Week 4
Labs 6-8
 
Problem set 9
Lab 7 & 8 - Event Queues
Week 5
Multiprocessor & Real Time Scheduling
Stallings Chapter 10
Problem set 10
Lab 7 & 8 - Event Queues
Week 6
Exam Chapters 1-10, Labs 1-6
Thursday at 10:00am

Week 7
File Systems
Stallings chapter 12
Lab 9 - Device Drivers
Week 8
Input/Output
Stallings Chapter 11

Week 9
Distributed Computing
Stallings Chapter 13

Week 10
Essay Exam covering Labs 1-9
Take Home on Monday
Due Wednesday