Basic Information

This course serves as the introduction to operating systems concepts, such as process management, synchronization, system calls, memory management, file systems, kernels, and drivers.

This website is subject to change as more content is added. Check it often!

zyBook Readings - ZyBook "participation" activities and readings are due one week after they are assigned. There are roughly 20 subsections of readings to complete. If you don’t finish by the time they are due, I will give you half credit for late completed sections before the final. End of section exercises are not required.

Topics/Notes - Any class notes will be linked here. If you miss a class, screencasts are provided through eLearning. (Note - screencasts are only meant as note suppliments. You may miss things written on the board or in-class activities/bonus points.)

Suggested Exercises - Homework over lecture materials will consist of short-answer questions, essays, or problems. The purpose of these exercises is to prepare you for exams. They will not be graded, but you can and should treat them as part of your study guide for the exams. You are strongly encouraged to write out answers to the homework after the corresponding lecture, and we will review the answers to the questions before each exam.

Date zyBook Readings Session Links and Announcements Exercises and Projects
Section 1.1
(due in one week)
Get textbook (instructions)
Session One - Introduction and History Watch short video 1, video 2, video 3 before next time. (Video ppt notes)
1/15 Lab 0 Work Day Lab 0 (do this first) -- due in class on 1/22, can be done in partners

Project 0 (do this second) -- due on 1/23 at 11:59pm on eLearning, must be done individually - Solution walkthrough
1/17   Lab 0 Work Day Extra Credit - Want more of a challenge?
1/20 No Class No Class  
1/22 Section 2.1
(due in one week)
Session Two - Boot Process Suggested Exercise #1
[Sessions 1-2]
(Be sure you can do these for the exam!)
1/24 Section 3.1
(due in one week)
Session Three - Basics of Processes and Threads
1/27 Session Four [programming] - Shell Parsing and Exec

example shell - copy this executable to the Linux server and run it to see how the shell should work
(Note: issue the command 'chmod a+x shell' on the file before trying to run it.)
Project 1 Specification
Project 1 Partners must be picked by next class period - send me an email with both your names (or just your name if you intend to work alone)
1/29 Work Day: Bring questions about Project 1 Suggested Exercise #2
[Sessions 3-5]
(Be sure you can do these for the exam!)
1/31 Sections 4.1-4.2
(due in one week)
Session Five - CPU Scheduling
2/3 Section 5.1
(due in one week)
Session Six - Cooperating Threads and Synchronization
Too Much Milk presentation
2/5 Session Seven [programming] - cd command and shell variables Project 1 First Half Due (submit on eLearning by 11:59:59pm)
2/7 Session Eight - Implementing Mutual Exclusion Suggested Exercise #3
[Session 6-10]
2/10 Sections 5.2-5.3
(due in one week)
Session Nine - Semaphores and Bounded Buffer  
2/12 Session Ten - More on Semaphores
Work Day and Answer Project Questions
2/14 Suggested Exercise Review #1
Suggested Exercise Review #2
Project 1 due at 11:59:59pm
2/17   Suggested Exercise Review #3
2/19   Exam 1 Exam 1
2/21 Section 5.4
(due in one week)
Session Ten - Monitors, Condition Variables, Readers-Writers Suggested Exercise #4
[Session 10-11]
2/24 Session Eleven - Deadlocks
2/26   Session Twelve [configuration] - Virtual machine setup and Intro to Linux Kernels
2/28   Continue Session 12 (VM Setup and Linux Kernels) Project 2 Specification (due 3/6 at 11:59pm on eLearning)
3/2 Project 2 Workday
Get help using the virtual machine and configuring your kernel
3/4 Session Fourteen [programming] - Intro to Kernel Modules and /proc
3/6 No class
3/9 Session Fifteen [programming] - Project 3 Project 3 Specification (due 3/27 at 11:59pm on eLearning)
3/11 No class meeting today Watch this video and get started on Project 3
Send me questions
3/13 Project 3 Work Day  
3/23 Common Questions about Project 3 and new online format Tune into the Panopto Screencast as I anticipate common problems you may have with the project and give you hints to move forward.
Watch Video Here
3/25 Sections 8.1-8.2
(due in one week)
Session Twenty Three - File Systems
Watch Video Part 1 Here
Watch Video Part 2 Here
3/27 Work Day
3/30 Session Twenty Four - Naming and Directories
Watch video here
Suggested Exercise #5
[Kernel Programming and Sessions 23-24]
4/1   Suggested Exercise #4 - Slides
Watch video here
4/3   Suggested Exercise #5 - Slides
Watch video here
4/6   Interactive Zoom session to answer questions 2pm-2:30pm (will be recorded) Note: check elearning for Zoom password
Watch video summary here
Exam 2 is available for until Friday (4/10) at 11:59pm on elearning
4/8   Project 4 lecture
Session Twenty Five - Getting Started
Watch video here
Can take P4 Quiz 1 unlimited times before 4/15 at midnight for 30 project4 pts.
4/10 Project 4 lecture
Session Twenty Six - More about Project 4
Watch video here
Can take P4 Quiz 2a and/or 2b once each before 4/17 at 11:59pm on elearning. Will use highest of scores for 30 project4 pts.
4/13 Session Twenty Nine - Transactions and Reliability
Watch class video here
Supplimental - Parity XOR demo video
Suggested Exercise #6
[Session 29-30]
4/15   Work day for Project 4
Email me for questions. If I get enough good questions, I may post a summary video.
Don't forget about my Zoom office hours today from noon-2pm.
4/17 Sections 10.1-10.2
(due in one week)
Session Thirty - Protection and Security
Watch video here

Note: Dr. Fienup will be taking over the class until the end of the semester. (Dr. Diesburg will be going on medical leave.) Please watch your email and eLearning for announcements from Dr. Fienup concerning the rest of the class and the class final. Please continue doing the readings and watching the class videos below.

Date zyBook Readings Session Links and Announcements Exercises and Projects
4/20 Section 7.1
(due in one week)
Session Seventeen - Memory Protection
Watch video here
Suggested Exercise #7
[Sessions 17,19,21,22]
4/22 Sections 7.2-7.3
(due in one week)
Session Nineteen - Caching and TLBs
Watch video here
4/24 Sections 7.4-7.5
(due in one week)
Session Twenty One - Virtual Memory
Watch video here
4/27 Sections 9.1-9.2
(due in one week)
Session Twenty Two - Device Management and Disk Management
Watch Part 1 video here
Watch Part 2 video here
4/29   Video answers - Suggested Exercises #6
Video answers - Suggested Exercises #7 Problem 2
Video answers - Suggested Exercises #7 Problems 3-5 Final Review - Slides
Final Exam