CS 414: Systems Programming and Operating Systems
255 Olin Hall; TR 10:10-11:25


CS415: Operating Systems Practicum (2 credits)
219 Phillips Hall;  Monday 3:35-4:25

  

Fall 2005

Announcements:

 

 

Important Dates:

1st prelim:  10/4, in class

2nd prelim:  11/10, in class

Final:  12/14, 9:00 AM - 11:30 AM, Upson B17

 

 

All assignments and grades will use CMS: http://cms2.csuglab.cornell.edu/

 

Discussion Mailing list:  francis-class-l at cs.cornell.edu    

The purpose of this mailing list is primarily for students to discuss issues with each other.  It can be used by both 414 and 415 students.  The staff will try to read and respond to these lists, but for the most part you should send email directly to the staff email addresses if want a quick response.  Note that important announcements will be posted on this website as well as via CMS email.  They will not be sent over the francis-class-l mailing list.

 

Textbook:

Operating System Concepts (7th Edition)
Silberschatz, Galvin and Gagne
ISBN: 0-471-69466-5

 

Staff Information: 

Instructor Paul Francis francis@cs.cornell.edu 5-9223, 4108 Upson Wed 1-2PM, Fri 1-2PM
414 TA Joy Zhang jzhang@cs.cornell.edu 5-7987,  338 Upson Mon 1-2, Thur 1-2
414 TA Ari Rabkin asr32@cornell.edu CSUG Lab Tue 8PM - 10PM
NOTE:  Saikat is 415 Only:      
415 TA Saikat Guha saikat@cs.cornell.edu 5-1008, 331 Upson Mon 4:30 - 5:30
         

 

Grading: 

Grades will be based on 2 prelims and a final exam, a small number (3-4) of mini-implementations, and 3-4 pop quizzes.  There will also be regular reading assignments.  The purpose of the mini-implementations is to give you a sense of how making bad programming decisions about OS usage (threads, memory, files) can seriously hurt your performance.  The mini-implementations are intended to be easy, and can be in a language of your choosing.  The pop quizzes are in lieu of grading homework.  The idea here is that we will assign you frequent homework (each week you will have either homework or a mini-implementation).  Rather than grade the homework, we will give a pop-quiz that is very similar to the homework.  If you understood the homework, then you will have no problem with the pop-quiz.  We will post answers to homework after their due dates.

 

Academic Integrity: 

We encourage interaction among students.  You may discuss the homework with each other, but we recommend that you try doing the homework on your own before seeking help from your peers.  After you have completed the homework, we recommend that you compare your answers with your fellow students, and discuss any differences you may have.  We also encourage discussion of implementation projects.  However, all software must be written entirely by yourself.

 

Homework Assignments:

"First possible pop quiz" and "last possible pop quiz" are the first and last dates, inclusive, on which you may get a pop quiz related to the homework assignment.  Note:  homework will only be distributed via this web page, NOT via CMS.

Homework Date assigned First possible pop quiz Last possible pop quiz
HW1 (solutions) 8/31/05 9/6/05 9/15/05
HW2 (solutions) 9/6/05 9/13/05 9/27/05
HW3 (solutions, fixed solutions) 9/15/2005 9/22/05 9/29/05
HW4 (solutions, fixed solutions) 9/20/05 9/27/05 9/29/05
HW5 10/21/05 10/26/05 11/8/05
HW6 10/29/05 11/3/05 11/8/05
HW7 (solutions) 11/1/05 11/8/05 11/8/05
HW8 (solutions) 11/2/05 11/8/05 11/8/05
HW9 (solutions)      
       

   

Class lecture notes and reading assignments: 

Note:  Lectures will be posted as we go.  But we will closely follow the syllabus from spring 2005 CS414.

 

Thur 8/25

Introduction:  Introduces the course and its contents.  Discusses the history of OSs.

No reading

Tues 8/30

Basic OS Structure:  Architectural support for OS's (interrupts, traps).  I/O and device drivers.  Protection from applications.  OS Structure.

Chaps 1 and 2.  (Extra reading: Chap 13)

Thur 9/1

Processes:  What is a process, and why do we have them?  How are they created and destroyed?

Chap 3

Tues 9/6

Threads:  How do they different from processes?  What are the main issues in using them?

Chap 4

Thurs 9/8

CPU Scheduling:  How does the OS decide which user processes/threads to schedule? 

Chap 5

Tues 9/13 - Tues 9/20

Synchronization:  How do threads share the same memory without stepping on each others toes?  How do threads coordinate their execution?  Locks, spinlocks, semaphores, monitors, and conditional variables.

Chap 6

 Tues 9/22 - Thurs 9/24

Deadlocks:  How to prevent synchronized threads from mutually blocking each other and halting

Chap 7

Tues 9/29 - Tues 10/18

IPC and NetworkingHere are the written notes I produced during lecture.  Here are the slides showing the networking material you need to know for the prelim (which also reflects, topically, what I covered in class).  Finally, here are the slides on RPC (Remote Procedure Calls).  I only covered a few of these in class.  You may bring all of these materials (the three 'here's in this paragraph) into the prelim and final exam with you (in addition to the text).  You may not bring in any other materials, however (including your notes).

IPC part of chap 3

Thurs 10/20

Memory Management and Virtual Memory

Chaps 8 and 9

Tues 10/25

Memory Management Thrashing

Thurs 10/27 Disks and Raid Chap 12

Tues 11/1, Thurs 11/3

File Systems:  Introduction and Implementation

Chaps 10 and 11

Tues 11/8 File Systems:  Examples (NFS, FFS, WAFL, LFS)
Tues 11/15, Thurs 11/17 Security Chap 15
Tues 11/22 Authentication and Kerberos
Tues 11/29 Protection:  Access Matrixes and other forms of OS protection Chap 14

Thurs 12/01

Course review, Windows XP:  We review the main concepts of the course by covering the operation of Windows XP.

Chap 22