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:
1st prelim: 10/4, in class
2nd prelim: 11/10, in class
Final: 12/14, 9:00 AM - 11:30 AM, Upson B17
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) |
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 Networking: Here 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 |
Chaps 8 and 9 |
|
Tues 10/25 | ||
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 |