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 TBA at 11:59pm on eLearning)