CMPU-334: Operating Systems

Description

This course examines the theory and implementation of modern operating systems. Topics covered are processes and threads, context switching, synchronization, scheduling, deadlock, dynamic memory allocation, virtual memory, storage devices, and file system implementation. The course is based on Prof. Jason Waterman's Fall '19 offering.

Instructor

Dan Williams danielwilliams@vassar.edu
Office Hours by appointment in SP 104.1 on Zoom (4971586002)

Coach

Colby Morrison cmorrison@vassar.edu
Office Hours in Asprey lab (307) on Zoom (357477949)
Mon 3-5 PM
Tue 2-4:30 PM
Wed 3-5 PM
Fri 2-4 PM

Meeting Times

WF 9-10:15 AM (EDT) in SP 201 on Zoom (676436755)

Slack Channel

We have a Slack channel for synchronous/asynchronous messaging!

Textbook (Required)

Operating Systems: Three Easy Pieces by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau

Spring 2020 Schedule (Subject to Change)

Date Topic Reading Notes
Wed 1/22 Introduction Preface
1 Introduction Dialogue
2 Introduction
Fri 1/24 Processes 3 Virtualization Dialogue
4 Processes
5 Process API
6 Direct Execution
Utility Lab Assigned
OSTEP Lab Tutorial
Git reference book
Wed 1/29 Scheduling: Introduction 7 CPU Scheduling
8 Multi-level Feedback
Fri 1/31 Scheduling: Proportional Share 9 Lottery Scheduling
11 CPU Virtualization Summary
Wed 2/05 Address Translation 12 Memory Virtualization Dialogue
13 Address Spaces
14 Memory API
15 Address Translation
16 Segmentation
Utility Lab Due at 11:59 PM
Fri 2/07 Paging: Introduction 17 Free Space Management
18 Introduction to Paging
xv6 Kernel Hacking Lab Assigned
Wed 2/12 Advanced Page Tables 19 Translation Lookaside Buffers
20 Advanced Page Tables
Fri 2/14 Swapping: Mechanisms and Policy 21 Swapping: Mechanisms
22 Swapping: Policies
Wed 2/19 Complete VM Systems 23 Complete VM Systems
24 Memory Virtualization Summary
Fri 2/21 Review for Midterm xv6 Kernel Hacking Lab Due at 11:59 PM
Wed 2/26 VMMs and Cloud A VMM dialog
B VMM Intro
Fri 2/28 Midterm Exam (Virtualization) Study Guide
Solutions
Wed 3/4 Threads 25 Concurrency Dialogue
26 Concurrency and Threads
27 Thread API
Fri 3/6 Locks 28 Locks
29 Locked Data Structures
Threading Lab Assigned
Wed 3/11 No Class: Spring Break
Fri 3/13 No Class: Spring Break
Wed 3/18 No Class: Spring Break
Fri 3/20 No Class: Spring Break
Wed 3/25 Condition Variables 30 Condition Variables main.c
main-final.c
whiteboards
Lecture Recording (skip to about 13:00)
Fri 3/27 Producer/Consumer (Bounded buffer) pc.c
pc-final.c
mythreads.h
whiteboards
Lecture Recording (skip to about 10:00)
Wed 4/1 Semaphores 31 Semaphores sem-lock.c
sem-join.c
sem-pc.c
zemaphore.h
sem-lock-works.c
sem-join-works.c
sem-pc-works.c
zemaphore-works.h
whiteboards
Lecture Recording (skip to about 7:00)
Fri 4/3 Concurrency Bugs 32 Concurrency Bugs
34 Concurrency Summary
vector.c
vector-avoid-hold-and-wait.c
vector-global-order.c
vector-try-wait.c
Lecture Recording (skip to about 8:00)
Threading Lab Due at 11:59 PM
Wed 4/8 Review for midterm (timed take home)
READ THIS FIRST!
Concurrency exam (do not click until ready to take it)
Previous year's exams
whiteboards
Lecture Recording (skip to about 6:00)
Threading Lab Due at 11:59 PM
Fri 4/10 I/O and Disks 35 Persistence Dialogue
36 I/O Devices
37 Hard Disk Drives
whiteboards
Lecture Recording (skip to about 5:00)
Wed 4/15 Files and Directories 39 Files and Directories Midterm due (timed take home)
whiteboards
creat.c
dup.c
fork.c
grow.c
read.c
readdir.c
trunc.c
Lecture Recording (skip to about 4:30)
Fri 4/17 File System Implementation 40 File System Implementation Lecture Recording (skip to about 3:00)
whiteboards
FSCK lab
Due Fri May 1st 11:59 PM
Wed 4/22 Fast File System 41 Fast File System (FFS) Lecture Recording (skip to about 3:00)
whiteboards
Fri 4/24 Journaling 42 FSCK and Journaling
45 Data Integrity and Protection
Lecture Recording (skip to about 3:30)
whiteboards
Wed 4/29 Flash and LFS 43 Log-structured File System (LFS)
44 Flash-based SSDs
46 Persistence Summary
Lecture Recording (skip to about 1:30)
whiteboards
Fri 5/01 Final Review/wrapup Lecture Recording (skip to about 4:00)
whiteboards
Study Guide
FSCK Lab Due at 11:59 PM
Wed 5/6 Study Period
Fri 5/8 Study Period
Wed 5/13 Final Period READ THIS FIRST!
Final Exam (do not click until ready to take it)
Fri 5/15 Final Exam due

Grading

Grades will be weighted as follows:
Midterms: 35%
Assignments: 30%
Final: 35%

There are two midterms. The midterm that you do better on will count for 25% of your overall grade. The other midterm will be weighted less and count for 10% of your overall grade. The final is a regularly scheduled final held during finals period.

Attendance

I would really love to see you in each and every class. We’ll work on problems together during class and labs, and I will always leave time for questions. Our classes here at Vassar are small and coming to class is one of the best ways for you to learn the material.

I take attendance in class. When calculating your final grade in the course, if you are on the bubble between two grades, I use your attendance to decide weather to round your grade up or down.

If you know you ahead of time you will not be attending class, please let me know as soon as possible.

Electronic Devices in Class

Please turn off or put your phone on “airplane” or “do not disturb” mode. Many studies have found a mobile phone to be an impediment to learning in class. Phone use is a distraction to all members of the class — especially yourself. In addition, cognitive and behavioral scientists have found that electronic devices can erode ability to concentrate. Consider this class to be an oasis from your device. If you would like to use your laptop for taking notes in class you are welcome to do so, but please come and talk to me. The use of electronic devices for non-class related purposes is prohibited.

Slip Days

All assignments are due by the deadline stated on the assignment handout. You will receive a budget of five (5) slip days for the course. These slip days are provided to allow you to cope with most emergencies that prevent completing a lab on time, including computer problems, a cold, getting stuck at the airport, etc. Here is how slip days work:

Slip days are a tool to allow you to manage your time in the face of personal issues and to help smooth out burstiness in assignment due dates across classes. They are for when you are sick, when a short term emergency situation arises, when you have too many deadlines all at once, etc. Except for serious persistent personal issues (see below), you should not anticipate additional deadline leniency. We strongly recommend that you conserve your slip days, saving them for the more difficult assignments at the end of the term.

Dealing with Serious Persistent Personal Issues

I hope that everyone in this class will remain happy and healthy. But, if you have a serious persistent personal issue, such as being hospitalized for an extended period or needing to leave the country for a family matter, please talk to your class advisor in the dean of studies office as soon as possible. Such issues consistently affect one’s ability to succeed in all classes, rather than just CMPU 334, and the class advisors are equipped to coordinate plans for dealing with them. I will cooperate with such plans, but I cannot construct them independently of the class advisors.

Academic Integrity

Quizzes, exams and assignments must be the sole work of the student turning it in. Assignments will be closely monitored by automatic plagiarism detectors, including comparing turned-in code to the work of students from the same and previous semesters, and students may be asked to explain any suspicious similarities.

These plagiarism checkers are very effective, and they are not fooled by attempts to mask copying of code. Please don’t try your luck. Vassar policy dictates I must report all suspected incidents of cheating to the Dean of Studies and the minimum penalty for cheating is to be removed from the course with a failing grade.

No collaboration on exams is allowed in any form. The following are guidelines on what non-exam collaboration is authorized and what is not:

What is Cheating?

What is not Cheating?

Academic accommodations

Academic accommodations are available for students registered with the Office for Accessibility and Educational Opportunity (AEO). Students in need of disability (ADA/504) accommodations should schedule an appointment with me early in the semester to discuss any accommodations for this course that have been approved by the Office for Accessibility and Educational Opportunity, as indicated in your AEO accommodation letter.

Learning Environment

Vassar College is committed to providing a safe learning environment for all students that is free of all forms of discrimination and sexual harassment, including sexual assault, relationship abuse, and stalking. If you (or someone you know) has experienced or experiences any of these incidents, know that you are not alone. Vassar College has staff members trained to support you in navigating campus life, accessing health and counseling services, providing academic and housing accommodations, helping with legal protective orders, and more.

If you wish to speak to someone privately, you can contact any of the following on-campus resources:

The SAVP website and the Title IX section of the EOAA website have more information, as well as links to both on- and off-campus resources.