CSCI 341: Operating Systems

Semester: Fall 2012
Room: Science Center A154
Class Time: Mon/Wed/Fri 1:30pm-2:30pm
Office Hours: Tuesday, 11:00am-12:00pm
Wednesday, 2:30-3:30pm
or by appointment
Professor: Cynthia Taylor
email: ctaylor AT oberlin edu
Please include "cs341" in the subject.
Office: King 229
Phone: x58424



(Subject to change)
1 Sep 03 Labor Day [No Class]
Sep 05   Course Overview Lab 1
Sep 07 The Kernel (Read Sections 2.1, 2.7, 2.11)
2 Sep 10   Processes (Read Sections 3.0-3.1,3.2.3)
Sep 12 System Calls and Interrupts (Read Sections 1.5, 2.3, 2.4.0-2.4.1)
Sep 14 Fork, Wait, Exit and Exec System Calls (Read Section 3.3, man pages for getpid, fork, execv, waitpid, _exit)
3 Sep 17   Scheduling (Read Sections 3.2-3.2.2, 5.0-5.2, 5.3.1-5.3.2, 5.3.4) Lab 2
Sep 19 More Scheduling (Read Sections 5.3.3, 5.3.5 - 5.3.6)
Sep 21 Threads (Read Sections 4.0-4.2, 4.4.4)
4 Sep 24   Synchronization Intro (Read Sections 6.0-6.2)
Sep 26 Yom Kippur [No Class]
Sep 28   Semaphores (Read Sections 6.3-6.5.2)
5 Oct 01   Classic Synchronization Problems (Read Section 6.6) Lab 3
Oct 03 Monitors and Condition Variables (Read Section 6.7)
Oct 05 Interprocess Communication (Read Section 3.4, 15.9.2)
6 Oct 08   Pipes/Deadlock Intro (Man pages for pipe, read, write, select, mkfifo, 7th/8th Edition: 7.0 - 7.4)
Oct 10 Deadlock Solutions (7th/8th Edition: 7.5 - 7.7)
Oct 12 On the Duality of Operating System Structures Lauer & Needham paper
7 Oct 15   Intro to Assigment 3
Oct 17 Midterm Review
Oct 19 Midterm Exam
  Oct 22 October Break (Oct 20-28)
Oct 24
Oct 26
8 Oct 29   Midterm Overview
Oct 31 Memory Management Paperback: sections 7.1-7.3, 8.8.1
Hardcover: sections 8.1-8.3, 9.8.1
Nov 02 Segments Paperback: section 7.6
Hardcover: section 8.6
9 Nov 05   Pages Paperback: sections 7.4-7.5
Hardcover: section 8.4-8.5
Lab 4 A
Nov 07 Virtual Memory Paperback: sections 8.0-8.2, 8.4.0-8.4.4
Hardcover: sections 9.0-9.2, 9.4.0-9.4.4
Nov 09 Resident Set Paperback: section 8.4.5, 8.6
Hardcover: section 9.4.5, 9.6
10 Nov 12   Intro to Assigment 4 Assignment Description and code
man pages for setjmp & longjmp
Lab 4 B
Nov 14 File System Design (Paperback): 9.0-9.1, 9.3.2, 9.3.5
(Hardcover): 10.0-10.1, 10.3.2, 10.3.5
Nov 16 File System Implementation (Paperback): 8.7.0-8.7.1, 10.0-10.2.1, 10.4
(Hardcover): 9.7.0-9.7.1, 11.0-11.2.1, 11.4
11 Nov 19   File System Wrapup (Paperback): 10.6
(Hardcover): 11.6
Wikipedia on Cache
Lab 4 C
Nov 21 Paper: The Multics Virtual Memory: Concepts and Design
Nov 23 Thanksgiving Break (Nov 22-25)
12 Nov 26   Input/Output Devices (Paperback): 12.0-12.1, 12.2.1-12.2.4, 12.3.1, 12.4.2-12.4.3
(Hardcover): 13.0-13.1, 13.2.1-13.2.4, 13.3.1, 13.4.2-13.4.3
Nov 28 Protection: ACL vs Capabilities (Paperback): 13.0-13.7 (skip 13.3.2-13.3.3, 13.6)
(Hardcover): 14.0-14.7 (skip 14.3.2-14.3.3, 14.6)
Nov 30 Protection: SetUID & Multics (Paperback): 13.3.2-13.3.2
(Hardcover): 14.3.2-14.3.3
13 Dec 03   Networks Network Topology
Communications Protocol ("Introduction" through "Basic requirements of protocols" only.)
OSI Model ("History" through "Description of OSI Layers" only.)
Lab 4
Dec 05 Distributed Systems Distributed Computing (Skip "Theoretical Foundations" section)
Dec 07 Security (Paperback): 14.1, 14.2.2-14.2.4
(Hardcover): 15.1, 15.2.2 - 15.2.4
14 Dec 10   Paper: 17 Mistakes Microsoft Made in the Xbox Security System  
Dec 12 Class Wrap-up & Final Review  
Dec 14 Final Review  
  Dec 20 Final Exam

Course Description

Goals and course objectives

My goals and objectives for students taking this course are as follows:

  1. Understand the fundamentals of how a modern operating system works.
  2. Understand how different forms of synchronization work, and be able to use them to create multi-threaded programs which avoid race conditions.
  3. Be able to describe the trade offs for different operating system policies, and choose the appropriate policy for a given situation


The text for the course is Operating System Concepts Essentials by Silberschatz, Galvin and Gagne. You may also use Operating Systems Concepts 8th Edition. It is absolutely required that you have one of these books, as there will be daily quizzes based on the required readings.

OS Concepts Essentials

Operating Systems Concepts Essentials by Silberschatz, Galvin and Gagne


Course grades will be calculated based on the following distribution:

Course Policy

Peer Instruction

We will be using Peer Instruction, a teaching model which places stronger emphasis on classroom discussion and student interaction. As part of this, you will be assigned an iClicker, which you will need to register. You will be expected to attend all lectures, having completed the assigned reading and ready to discuss with your classmates.


I allow for three missed classes by dropping the three lowest quiz scores. If you attend all the classes, you will be rewarded by having your low grades dropped!


There are four labs for the class, each worth succesively more points. They are worth 3%, 6%, 9%, and 12% of your grade, respectively. You are expected to complete these labs on your own. However, you are free to discuss them with your fellow students, and encouraged to post questions about them on Blackboard. A good rule of thumb is discuss with your classmates away from your computer, and to wait fifteen or twenty minutes between the discussion and when you make changes to your code. Labs will be due on Sunday at 8 pm.

All lab work will be done on a Solaris server, located at You can access this machine from within the cse subnet. On campus, this means you can access it from the CS labs. Off campus/outside the labs, you can ssh to occs and then ssh to the server. If you use linux or a mac, ssh will already be installed - just type "ssh" in the terminal. SSH will give you terminal/command line access. I recommend using either emacs or vim in the terminal.

According to college policy, every assignment must include the following signed statement:

"I have adhered to the Honor Code in this assignment."

Please include this statement in your lab headers, along with your name.

No late work will be accepted.


There is a forum for this class on Blackboard. You are encouraged to use this forum as a vehicle to ask questions about the class and the labs, and to answer each other's questions. If you have a question that is at all general, please ask it on Blackboard rather than via email, as this will allow your fellow students to also benefit from the answer.

Accommodations for students with disabilities

If you have a disability that might impact your performance in this course, or requires special accommodation, please contact me as soon as possible so that appropriate arrangements can be made. Support is available through Student Academic Services, specifically Jane Boomer. You will need to contact them to get your disability documented before accommodations can be made.

Last Modified: August 9, 2012 - Cynthia Taylor