COMP 345: Operating Systems, Spring 2019

This syllabus is subject to change based on specific class needs, especially the schedule. Significant deviations will be discussed in class.

Logistics

Content

Introduces basic operating system concepts including virtualization, memory management, process and thread management, concurrency, file systems, and process scheduling. Students will also gain hands-on experience with the C programming language and Unix-based operating systems via programming projects.

Topics

Possible topics include:

Processes Concurrent Data Structures
CPU Scheduling Concurrency Bugs
Virtual Memory I/O Devices
Free Space Management Redundant Disk Arrays
Locks File Systems

Sources

The required course textbook is:

It is available online at http://pages.cs.wisc.edu/~remzi/OSTEP/.

Policies

Assessment

Assignments and Workload

The weekly workload for this course will vary by student and over the semester, but on average should be about 12 hours per week. The follow table provides a rough estimate of the distribution of this time over different course components for a 16 week semester.

Category Amount Final Grade Weight Total Time Time/Week (Hours)
Lectures 55 10% (Participation) - 3.5
Projects 3–5 45% 64 4.5
Exam Study - - 27 1.5
Exams 3 45% - -
Reading+Unstructured Study - -   2.5
        12

Grading

Your participation grade is based on a variety of activities. During class I will often make use of the Socrative (https://socrative.com) app, so you’ll need to install this on your phones. Participating in Socrative questions and with in-class group activities is required for a decent participation grade; an A includes asking questions either in class or in office hours.

Your final grade is based on a weighted average of particular assignment categories, with weights shown above. You can estimate your current grade based on your scores and these weights. You may always visit the instructor outside of class to discuss your current standing.

This courses uses a standard grading scale. Assignments and final grades will not be curved except in rare cases when its deemed necessary by the instructor. Percentage grades translate to letter grades as follows:

Score Grade
94–100 A
90–93 A-
88–89 B+
82–87 B
80–81 B-
78–79 C+
72–77 C
70–71 C-
68–69 D+
62–67 D
60–61 D-
0–59 F

You are always welcome to challenge a grade that you feel is unfair or calculated incorrectly. Mistakes made in your favor will never be corrected to lower your grade. Mistakes made not in your favor will be corrected. Basically, after the initial grading your score can only go up as the result of a challenge*.

You are always welcome to challenge a grade that you feel is unfair or calculated incorrectly. Mistakes made in your favor will never be corrected to lower your grade. Mistakes made not in your favor will be corrected. Basically, after the initial grading your score can only go up as the result of a challenge.

Schedule

The following tentative calendar should give you a feel for how work is distributed throughout the semester. Assignments and events are listed in the week they are due or when they occur. This calendar is subject to change based on the circumstances of the course.

Date Topic Assignment
Mon 01/14 Operating Systems Overview Read OSTEP 1,2
Tue 01/15 Intro to C Work through this tutorial
Wed 01/16 More C  
Fri 01/18 Exercise: Linked List Stack in C  
Mon 01/21 CPU Virtualization: Privilege Levels OSTEP 3-6, Project 1 out
Tue 01/22 Context Switching  
Wed 01/23 Project 1 Walkthrough  
Fri 01/25 CPU Scheduling OSTEP 7
Mon 01/28 MLFQ and Lottery Scheduling OSTEP 8-9
Tue 01/29 Memory Allocation Algorithms OSTEP 12,17
Wed 01/30 (Class Cancelled) Read OSTEP 13-14
Fri 02/01 Coalescing; Base and Bounds Read OSTEP OSTEP 15
Mon 02/04 Segmentation Project 1 due, Project 2 out, Read OSTEP 13-16
Tue 02/05 (Class Cancelled)  
Wed 02/06 Paging OSTEP 18
Fri 02/08 Review Project 1; Project 2A OSTEP 19
Mon 02/11 Project 2B  
Tue 02/12 TLBs OSTEP 19
Wed 02/13 Making Page Tables Smaller OSTEP 20
Fri 02/15 Swapping OSTEP 21-22
Mon 02/18 (Class Cancelled - Conference)  
Tue 02/19 (Class Cancelled - Conference)  
Wed 02/20 (Class Cancelled - Conference)  
Fri 02/22 Detailed Paging Example OSTEP 23-24
Mon 02/25 Exam Review Project 2 due
Tue 02/26 Exam Review - VAX/VMS  
Wed 02/27 Exam 1  
(Fri 03/01) (Half-semester course exams – no class)  
(03/04–03/08) (Spring break)  
Mon 03/11 Project 2 Review  
Tue 03/12 Project 2 Review  
Wed 03/13 Project 2 Review  
Fri 03/15 Project 2 Review, Thread API OSTEP 25, Exam 1 Redux Due
Mon 03/18 Race Conditions OSTEP 26-27, Project 3 out
Tue 03/19 Project 3 Overview  
Wed 03/20 Locks OSTEP 28
Fri 03/22 Concurrent Data Structures OSTEP 29
Mon 03/25 Evaluating Locks  
Tue 03/26 Futexes  
Wed 03/27 Condition Variables OSTEP 30
Fri 03/29 Producer/Consumer  
Mon 04/01 Producer/Consumer  
Tue 04/02 Producer/Consumer  
Wed 04/03 Project 3 Questions  
Fri 04/05 Semaphores OSTEP 31
Mon 04/08 Semaphores  
Tue 04/09    
Wed 04/10   Project 3 due
Fri 04/12 Concurrency Bugs OSTEP 32
Mon 04/15 Concurrency Bugs and Project 3 Review Exam 2 out
Tue 04/16 (Scholar’s Day)  
Wed 04/17 I/O Devices, Disks OSTEP 36
(Fri 04/19) (Easter Break)  
(Mon 04/22) (Easter Break)  
Tue 04/23 Disk Scheduling OSTEP 37
Wed 04/24 Disk Scheduling  
Fri 04/26 RAID OSTEP 38
Mon 04/29 Files and Directories OSTEP 39
Tue 04/30 File System Implementation OSTEP 40
Wed 05/01 Review  
Fri 05/03 3:00 PM Final Exam  

Monmouth College Services