Professor: Tia Newhall
Office: Science Center 249
Phone: (610) 690-5637
Office hours: Wednesdays 2-4 and by appointment
Class: 10:30 MWF, Sci Cntr 183
Lab A Time: 1:15-2:45 M, Sci Cntr 240
Lab B Time: 3:00-4:30 M, Sci Cntr 240
Required Text:
Operating Systems Concepts, 9th Edition
by Abraham Silberschatz, Peter Baer Galvin, Greg Gagne
ISBN: 978-1-118-06333-0
The text is also available as an ebook rental ($59.50) from
CourseSmart,
or from
Wiley Custom Select (this one may be downladable).
A copy of the textbook is also on reserve at Cornell Library.
Link to class Piazza page
WEEK | DAY | ANNOUNCEMENTS | TOPIC & READING | ASSIGNMENTS |
1 | Jan 20 | Introduction and Processes
|
Mon lab lab 1 |
|
2 | Jan 27 | Add/Drop Ends (Jan 31) | Processes, Threads, Scheduling
|
Mon lab |
3 | Feb 03 | Scheduling and Threads
|
Mon lab lab 2 homework 1 |
|
4 | Feb 10 | Scheduling, Synchronization
|
Mon lab homework 2 |
|
5 | Feb 17 | Synchronization cont.
|
Mon lab lab 3 |
|
6 | Feb 24 | Synchronization, Memory Management
|
Mon lab inclass |
|
7 | Mar 03 | No class Friday (Mar 07) | Memory Management, Virtual Memory
|
Mon lab homework 3 |
Mar 10 |
Spring Break |
|||
8 | Mar 17 | Virtual Memory
|
Midterm Information | |
Mar 20 |
Midterm Exam (7-9pm) room 199 Sci Ctr |
|||
9 | Mar 24 | Last Day CR/NC/W (Mar 28) | Virtual Memory
|
Mon Lab lab 4 |
10 | Mar 31 | No class Friday (Apr 04) | Storage, I/O Subsystem
|
Mon lab |
11 | Apr 07 | File Systems
|
Mon Lab lab 5 homework 4 |
|
12 | Apr 14 | File Systems, Protection
|
. | |
13 | Apr 21 | Security
|
Mon Lab | |
14 | Apr 28 | Distributed Systems
|
homework 5 |
|
May 16 |
Final Exam (9am-noon) room 183 Sci Ctr |
25% Midterm Exam (Thurs March 20, 7-9pm) |
30% Final Exam |
40% Labs and Written Homework |
05% Class Participation |
Accessing the CS labs after hours: Use your ID to gain access to the computer labs at nights and on the weekends. Just wave your ID over the microprox reader next to the lab doors. It should display a green light and beep when unlocked, just push on the door handle to get in (the door knob will not turn). If the green light doesn't go on, then we need to enter your id number into the system. email local-staff@cs.swarthmore.edu if you have problems with this. If the building is locked, you can use your ID to enter the door between Martin and Cornell library.
Because we do not do backups of the /local file system, for Linux kernel labs, you should periodically copy the kernel source code files you modify (just the ones you modify) in /local to your private git repository in /home. You can use scp to copy files between your Linux VM to your project directory.
Lab assignments will be submitted on-line using cs45handin (note: this has a very different interface from the handin scripts used in 21, 31, and 35). You can submit the same assignment multiple times up to the due date using cs45handin. Once you have submitted your solution to an assignment, make sure to keep a copy of it that you will not modify after you submit it (this way if something goes wrong with cs45handin I can use the dates of your solution files to determine when you submitted it). Most assignments will require an additional project demo. You will sign up for a demo slot during which you and your partner will run your solution for me with tests that demonstrate your solution is correct and robust.
You are allowed to use up to 3 late days this semester for turning in lab assignments. However, at most 2 late days can be used on an individual assignment. One day late means up to 24 hours past the original due date of the assignment; 24 hours and 1 minute counts as two late days. If you switch lab partners, your late days stick with you (i.e. you do not get to start over, nor do you get to count late days using a new partner's count that is different from your own.)
Use late days wisely; once you have used up your late days, I reserve the right to not accept any further late assignments from you, and if I do accept further late assignments from you, you will receive a significant late penalty on them.
Discussing ideas and approaches to problems with others on a general level is fine (in fact, we encourage you to discuss general strategies with each other), but you should never read anyone else's code or let anyone else read your code. All code you submit must be your own with the following permissible exceptions: code distributed in class, code found in the course text book, and code worked on with an assigned partner. In these cases, you should always include detailed comments that indicates on which parts of the assignment you received help, and what your sources were.
Failure to abide by these rules constitutes academic dishonesty and will lead to a hearing of the College Judiciary Committee. According to the Faculty Handbook: "Because plagiarism is considered to be so serious a transgression, it is the opinion of the faculty that for the first offense, failure in the course and, as appropriate, suspension for a semester or deprivation of the degree in that year is suitable; for a second offense, the penalty should normally be expulsion."
For this course, it is fine to help each other with using VirtualBox, with building and booting a Linux kernel, with using Unix and C utilities and tools, with reading and understanding Linux kernel code, and with reading and understanding the assignments. However, you should avoid discussing the details of your solution with anyone other than your project partner, and you should never look at anyone else's code for a solution to a project (or to a similar project). In addition, there are many useful on-line Linux resources of which you should take advantage. However, make sure that you do not use these resources in such a way that it violates the spirit of our Academic Integrity statement. For example, you should not search the web for source code solutions to similar lab problems (I don't know if any exist, but it is possible), nor should you post questions to news groups or mailing lists seeking a solution to the specific problem you are asked to solve. Basically, the solution and code that you submit as your own should be your own. If you are unclear about what type of collaboration is okay and what type is not, ask me about your situation before proceeding. If you think you may have violated this policy, come talk to me right away about your situation.
Below are some resources and links that may be helpful to you (I will add more over the course of the semester).