CMSC 421: Operating Systems

Fall 2003

Class Web page: http://www.csee.umbc.edu/courses/undergraduate/421/fall03/


Section 0101 Section 0201 Section 0301
Time: Tue. & Thu. 1:00 - 2:15 PM Mon. 4:30 - 7:00 PM Tue. & Thu. 5:30 - 6:45 PM
Location: ITE 227 PHYS 201 ITE 227
Instructor: Krishna Sivalingam (krishna@csee.umbc.edu) Samir Chettri (chettri@csee.umbc.edu) Gary Burt (burt@csee.umbc.edu)
Office: ITE 331 (x3961) Code 935 NASA GSFC (301-286-4301) ITE 225
Office hours: Tu Th 2:30p - 3.30p; Email, for Appt. at other times. After class. 
 
TAs: 1. Thomas Armstrong (arm1@csee.umbc.edu)
2. Pavan Reddivari (pavan2@csee.umbc.edu)
3. Fei Xu (xufei1@csee.umbc.edu)

NOTE: The TA Office Hours will be in Laboratory located in ITE 240.

TA Hours
Mon 11-12 am, 4-5pm , 7-8pm
Tue. 10-11a, 11:45a-12:45p
Wed. 10a-12n
Thu. 10-11a, 11:45a-12:45p
Staff Mailing List: cmsc421@cs.umbc.edu    Send messages with a subject line containing 'CMSC421'
 
Final Exam Date/Location (Common Final for All Sections - COMPREHENSIVE FINAL): Friday, Dec 12th, 6pm - 8pm, LH 1
 
Prerequisites: CMSC 341 AND ((CMSC 211 and 311) OR CMSC 313 OR (CMPE 310 and 312))
Required Text: Operating Systems Concepts (6th Edition), Silberschatz, Galvin & Gagne, John Wiley, 2001, ISBN 0-471-25060-0 
Advanced Programming in the UNIX Environment , Stevens, Addison-Wesley, 1992, ISBN 0-201-56317-7
Recommended Texts: Modern Operating Systems (2nd Edition), Tannenbaum, Prentice Hall, 2001
Linux Kernel Programming (3rd Edition), Beck et al., Addison Wesley, 2002, ISBN 0-201-71975-4

Course Information

This class covers the basics of modern computer operating systems, including processes and synchronization, memory management, I/O, file systems, and security / protection. Students taking this class should have completed CMSC 341 (Data Structures) and some combination of hardware courses depending on whether they are CMSC or CMPE majors. The precise combinations are specified above. Note that the prerequisites as specified in the catalog miss a bracket and as such are inaccurate. If you do not meet the prerequisities, you will be asked to drop the course. In addition, students must be familiar with C / C++ because the projects will require a significant amount of programming effort and constitute a significant portion of the grade.

Students not comfortable with their programming skills under Unix would benefit from the Stevens text. The projects will involve modifying the Linux kernel. Copious documentation on the Linux kernel is available on the Internet, and we shall provide you with links to several appropriate sites. If you prefer to have that in a book form however, we recommend the Beck text. Tanenbaum's text is an interesting alternative to our main textbook, and does a better job of presenting some of the material. Note however that the recommended texts are just that -- recommended. You are not required to buy any of them.

Students in the class are expected to check the class Web page (http://www.csee.umbc.edu/courses/undergraduate/421/fall03/) on a regular basis for announcements and to check on changes in class schedule and assignments. A news and notes page there will have important announcements. Failure to do so isn't an excuse for missing an assignment.

Students are welcome to post questions and answers to the newsgroup umbc.course.cs421; however, the rules about academic honesty apply to the newsgroup as well (i.e., you may not post answers to homeworks...).

The course outline is available online. It will change as the semester goes on to reflect minor changes in scheduling.

It is advisable to have your own computer with the ability/space to install and modify Redhat Linux OS.

Grading

The final grades for this class will be based on a midterm (15%), final exam (30%), class projects (15% for P1 and 30% for P2), and homeworks (up to 3 total), class participation and pop quizzes (10%).

Students must take both exams and hand in a reasonable attempt at all of the projects to pass the class. Please bring an identification card, when you are going to take an exam.

The final grades will be assigned based on a curve, that will be uniform (to the extent feasible) across all sections.

It is possible for everyone to get an A in the class (if everyone learns the material sufficiently well). However, it's also possible for nobody to get an A if nobody masters the material. Incompletes will only be given in extraordinary circumstances.

Homeworks and Projects

Homework and project due dates will be indicated on the assignment pages. Because the class has three sections, assignments will be due at a time chosen independently of either sections. Of course, assignments may be handed in during class, but they will not actually be due until the date on the assignment. Late homework and projects will not be accepted. We strongly recommend that you keep up with the work and not leave it till the end because it's difficult to catch up. The project really does demand the amount of time we assign for it.

The course has a separate laboratory located in ITE 240 that contains around 20 Personal Computers running Linux and Windows. You will be provided access, using your ID card swipe, by Sep. 10th. The course TAs will be holding their office hours in the lab.

All homeworks and projects must be submitted electronically. Because all submissions may be done online, there's no need to show up on campus just to drop off an assignment. Written information associated with an assignment (homework solutions, project descriptions, etc.) may be submitted in the following forms (in order of preference):

No other format is acceptable. The professors and TAs use a variety of machines, and so only accept submissions in a format that can be read on all machines. Please make sure you send your assignment encoded using MIME so that they show up as attachments, and do not send in formats that are platform specific as Word.

Tentative Due Dates

The above dates are tentative and are subject to change.

Academic Honesty

By enrolling in this course, each student assumes the responsibilities of an active participant in UMBC's scholarly community in which everyone's academic work and behavior are held to the highest standards of integrity. Cheating, fabrication, plagiarism and helping others to commit these acts are all forms of academic dishonesty. Academic dishonesty could result in disciplinary action that may include, but is not limited to, suspension or dismissal. To read the full Student Academic Conduct Policy, consult the UMBC Student Handbook, the Faculty Handbook, or the UMBC Policies section of the UMBC Directory.

For this course, the penalty for the first academic dishonesty offense is zero credit for all students involved, for the relevant component, IN ADDITION to a lower grade in the course (e.g. if you are in the B range at the end of the semester, you will receive a C). Repeat offenders will be assigned an F grade for the course. This is in top of any other disciplinary action as listed above.

You should be aware that we may use a cheat-checker program to run over randomly selected assignments and look for unusual similarities. This program isn't perfect, but it does a great job of identifying the few pairs of handins that should be hand-checked for cheating. In previous classes, this program has done very well at finding cheaters, so please don't force us to demonstrate how well it works this semester. In fact, we are now mandated to report even minor infractions that in the past we would have dealt with within the course by dropping a letter grade on the assignment etc. Please cooperate by doing your own work and not seeking inappropriate help from your classmates. You may, of course, discuss homeworks and assignments amongst yourselves, as long as that discussion does not lead to a exchange of solutions.

ADA Compliance

We recognize that some of you may have disabilities that require special attention from the instruction staff. Please make us aware of them at your earliest so that UMBC can make suitable arrangements.