CPSC 431: Operating Systems (Fall 2009)Lecture 1:55 - 2:50 (period 6) Mon/Wed/Fri, Room Lansing 301 (Class Schedule)Lab 11:55 - 1:20 Tue, Room Lansing 310 (Lab Schedule) Web: http://math.hws.edu/mcorliss/fall09/cs431/index.html |
|
Announcements
StaffInstructor: Marc Corliss (corliss at hws dot edu) Course SummaryAn operating system such as Windows, Linux, or Mac OS X is a fundamental part of any computing system. It is responsible for managing all the running processes as well as allowing the processes to safely share system resources such as the hard drive and network. This course is a general introduction to the design and implementation of modern operating systems. This course will look generally at operating system design, although it will focus on Unix/Linux operating systems. The subjects to be covered include input/output devices, file systems, process and thread management, synchronization, memory management, security, and multiple processor systems. In addition to studying the design of operating systems, students will build a working operating system for Larc, a simple architecture based on MIPS. This project is a substantial part of this course (both in terms of time and grade). It will give students practical experience in implementing an operating system and provide students with invaluable software engineering experience. The prerequisite for this course is CPSC 225 (intermediate programming). Students must have taken this course and received a grade of at least a C-. If that is not the case, the student should meet with the instructor before enrolling for the course. Textbook"Modern Operating Systems" (3rd Edition) by Andrew S. Tanenbaum (errata) ScheduleThe tentative class schedule and lab schedule are online. The class schedule shows the planned readings, homework, and exams. It is split into several topics that usually make up one chapter of the textbook. Note: the chapters will be read out of order as well as some sections within a particular chapter (and some sections will be skipped); so make sure you frequently refer to the schedule. The readings listed for each class day should be done prior to the start of that class. Homeworks should be handed in at or before the start of each class in which they are due (late homeworks are not accepted). Exams and vacation days are also indicated on the schedule. The lab schedule shows the planned labs. Lab assignments will be linked off of this page once they are assigned. They must be completed at or before the start of the lab period in which they are due. Note: occasionally a lab assignment may be due at the start of normal class period rather than a lab period. In addition, the midterm exams will be given during lab periods. In these weeks, the normal lab will held on the Wednesday class. Course WorkLabs. Lab assignments will be a heavy emphasis of this course. All the lab assignments will written in the C programming language (or C-- a variant of C with fewer features). See the Resources at the bottom of the page for documentation on C and C--. In the first few labs, students will become familiar with and implement a shell or command interpreter, an application which utilizes many of the features of the operating system. These first labs will help show students how operating systems work functionally. In the remaining labs, students will implement various components of a Larc operating system such as a trap handler, file system, process manager, and memory manager. The lab assignments will vary in difficulty and time to complete. Depending on the difficulty, lab assignments will be due in either one week, two weeks, or three weeks. Lab assignment grades will be weighted based on the number of weeks that are given to complete the assignment (not counting any late days). A 1-week lab assignment will have weight 1, a 2-week lab assignment will have weight 2, and so forth. The total lab grade will be computed by multiplying each lab assignment grade by its weight, summing them all up, and dividing by the total number of lab weeks. The lab assignments will require a significant amount of time, so students should start early on them. As mentioned above, some lab assignments will take several weeks to complete. In these cases, there will be checkpoints each week; students will be required to complete a certain portion of the assignment by the end of that week or they will be deducted some points off of their total grade for that particular assignment. In general each checkpoint is worth 5% of the total grade for that particular assignment. The code submitted for a checkpoint need not be perfect; during grading it will not be run but instead examined by eye. But all of the required code must be completed and there should be no glaring omissions or errors. Note: the checkpoints are not intended to penalize students, but rather to ensure that students are starting early on each lab assignment and working regularly on them. Late lab assignments will be accepted. Each student has three "grace" days to use to hand in late assignments with no additional loss in points. "Grace" days can not be used for checkpoints just for final lab assignment submissions. These "grace" days are per semester not per assignment, so if a student uses all three for one assignment, they will have no more "grace" days for any subsequent lab assignments. Weekends count as "grace days", so for example, if an assignment is due on Friday and is handed in on the following Monday, then all three "grace" days are used up. Once a student runs out of "grace" days, they will lose 10% off the total lab assignment grade per day late. If a student turns multiple lab assignments in late and runs out of "grace" days, then the "grace" days will be applied to the assignment (or assignments) with the highest weight. Although "grace" days can't be used for checkpoints, one checkpoint grade will be dropped during the course of the semester. The checkpoint in any particular lab assignment that results in the largest loss of points in terms of the student's cumulative grade will be dropped (i.e., the points lossed from the checkpoint will not be deducted from the particular lab assignment grade). Homeworks. In addition to the lab assignments there will be regular homeworks that will help make sure students keep up with the in-class material and textbook reading. These will be weighted overall much lower than the lab assignments (each will be worth roughly 1% of a student's total grade). Late homeworks are not accepted, however, the lowest homework will be dropped. Exams. There will be two midterm exams and a final exam. Each midterm exam will be in-class, written (no programming on the computer), and closed book/notes. The midterm exams will be held in the lab periods (on Tuesday, room TBD) rather than in the lecture period so that students will have more time to complete the exam. The following lecture period (on Wednesday) will be used for that week's lab (i.e., it will be held in Lansing 310). The first exam is tentatively scheduled for Tuesday, October 6th. The second exam is tentatively scheduled for Tuesday, November 10th. The final exam will be cumulative, but will emphasize aspects of the material covered in the last third of the course. The final exam will be held on Tuesday, December 15th from 8:30AM to 11:30AM in Lansing 301. Making up exams will only be allowed for *compelling* circumstances, i.e., with documentation from an appropriate person (doctor, dean). Arrangements must be made in advance for non-emergencies. Attendance/Participation. To get full credit for participation, students should attend all lectures (MWF, 1:55-2:50, Lansing 301) and labs (Tu, 11:55-1:20, Lansing 310). Students can miss at most three combined lectures and labs (for any reason). If a student misses more than three classes (combined lectures and labs), they will lose 10% of their attendance/participation grade per day missed. Grading
Lab assignments: 50% (see text above for weight of individual assignments) Academic IntegrityThe Principle of Academic Integrity (see the HWS Catalogue, Community Standards Section) governs the work completed in this course. The following outlines specifically how this principle applies. Exams. All exams are to be completed solely by the student whose name is on the paper. Unless otherwise specified, these are closed book/notes, which includes any materials not provided as part of the exam. Homework. Homework assignments are to be completed solely by the student whose name is on the paper. Lab assignments. The lab assignments are also to be completed solely by the student submitting the assignment for credit. Students may not work with other students, including discussing ideas, offering debugging help, or looking at their programs. Students may consult the book, their notes, any course materials provided in class or on the course website, and reference books found in the lab. Use of other materials (including websites) is not allowed. It is never acceptable to be in possession of another student's program, either hardcopy or electronic. Each program submitted for credit will be checked by a plaigarism detector called MOSS (http://theory.stanford.edu/~aiken/moss/) to determine if it was copied. MOSS is highly accurate at detecting plagiarized software (changing a few variable names, comments, etc., will not help). In addition, any student that submits a suspicious lab assignment will have to explain their code to the instructor. If they are unable to effectively explain the code, then they will not receive credit for the assignment (and the case may be taken to the committee on standards). Summary. The moral of the story is students should not cheat in this course. For each case of cheating, the student will receive a 0 on the assignment, and the case will be pursued with the HWS committee on standards. It is better to submit an incomplete solution rather than submit a plagiarized solution. Center for Teaching and LearningHobart and William Smith Colleges encourages students to seek the academic collaboration and resources that will enable them to do their best work. Students who would like to enhance their study skills, writing skills, or other academic skills may visit the CTL web site at http://www.hws.edu/academics/ctl/index.aspx or contact the CTL at x3351. If you are a student with a disability for which you may need accommodations, you should self-identify and register for services with the Coordinator of Disability Services at the Center for Teaching and Learning (CTL), and provide documentation of your disability. Disability related accommodations and services generally will not be provided until the registration and documentation process is complete. The guidelines for documenting disabilities can be found at the following website: http://www.hws.edu/disabilities. Please direct questions about this process or Disability Services at HWS to David Silver, Coordinator of Disability Services, at silver@hws.edu or x3351. Resources
|