CMSC 421

Operating Systems

Fall 2004

 

Section 0101

Section 0201

Section 0301

 

Time:

TuTh 2:30pm - 3:45pm

MW 5:30pm - 6:45pm

TuTh 5:30pm - 6:45pm

 

Location:

ITE 229

ITE 227

ITE 227

 

Instructor:

Anupam Joshi ( )

Samir Chettri ( )

Yelena Yesha ()

 

Office:

ITE 328 (x2590)

Code 935 NASA GSFC (301-286-4301)

ITE 335 (x3542)

 

Office hours:

TBA

TBA

TBA

 

 

 

 

 

 

 

Lab:

Time

Mon 2:00 - 3:15
Tues 10:00 - 11:15

Location

ITE 240

Instructor

( )

Office

ITE 225 (x3928)

Office hours

TBA

 

 

 

TAs:

Joel Land

Vasundhara Puttagunta

James McClain

 

 

()

()

()

 

TA office:

ITE 240

 

 

 

TA Hours

M

3:15-5:15pm - James

Tu

1:30-3:30pm - James
4:00-6:00pm - Joel

W

7:00-9:00pm - Joel

Th

10:00-12:00pm 6:00-8:00pm - Vasundhara

F

None

 

 

 

Staff Mailing List:

cmsc421@cs.umbc.edu Send messages with a subject line containing 'CMSC421'

 

 

 

 

 

 

 

Mid Term:

LH 7 on Wednesday 10/27 7-9pm

 

 

Final Exam:

Dec 16

 

 

 

 

 

 

 

Prerequisites:

CMSC 341 AND ((CMSC 211 and 311) OR CMSC 313 OR (CMPE 310 and 312))

 

 

 

Required texts:

Operating Systems Concepts - Windows XP update (6th Edition), Silberschatz, Galvin & Gagne, John Wiley, 2001, ISBN 0-471-25060-0

Recommended texts that some students might require:

Modern Operating Systems (2nd Edition), Tannenbaum, Prentice Hall, 2001 ISBN 0-13-031358-0
Advanced Programming in the UNIX Environment , Stevens, Addison-Wesley, 1992, ISBN 0-201-56317-7
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. You MUST have completed ALL the prerequisites before you take 421. In addition, students must be familiar with C / C++ because the projects will require a significant amount of programming effort and constitute a significant chunk 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 suggest the Beck text. Tannenbaum'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.

The lab for this course is not required, but strongly encouraged. This is a new addition to CMSC421 this year, and is designed for discussing the implementation issues of OSs in general, and the the projects in particular, that are typically not discussed at length during regular class time. While we cannot mandate your attendance at this lab, we think that it will be of immense help with projects. In particular, the TAs will expect that you are familiar with the material discussed in the lab when they help you with project related questions. The lab has been scheduled at a time when we expect you will not have much conflicts. If there are, please let us know.

Homework, which will be graded, will be assigned infrequently, and will be due a week later. There will be one midterm and one final; the midterm will cover the first half of the class and the final will cover material from the entire class. The mid term and final will be common across the three sections. Pop Quizzes may be given at the discretion of the instructor, and are cannot be made up.

Students in the class are expected to check the class Web page (http://www.csee.umbc.edu/courses/undergraduate/421/Fall04/) 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 to blackboard email list; however, the rules about academic honesty apply to this forum as well (i.e., you may not post answers to homework assignments...).

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

For the projects you will need to have root access on a Linux machine. This will require you to have access to a computer and the ability/space to install and modify Redhat Linux. You have three options

  1. You can work on your personal machine. If you do not already have linux installed, you can partition your hard drive (or attach an external drive, see 3 below) and create a dual boot system with linux and your native OS.
  2. You can use VMware (http://www.vmware.com/) for your projects. It creares an emulated machine on your regular OS, and allows you to install Linux as a "guest" operating systems. It lists for about $189, but academic discounts are available. They also provide a trial version for free for a limited time. However, be warned that the TAs will provide little support, if any, for priblems with this approach.
  3. Another option is for you buy a USB 2.0 External Hard Drive with at least a 10GB capacity (typically around $100) that can be used on the machines in the lab (Rm 240). These machines are set up so that you can install linux on your external drive, and become root. Remember that being root on a machine gives you significant privileges. Please DO NOT use them for any hacking type activity. OIT monitors these machines, and will prosecute anyone violating UMBC AUP or federal rules.

Grading

The final grades for this class will be based on a midterm (20%), final exam (25%), homework (5%), class projects (45%), and class participation / pop quizzes (5%). Homework assignments will be weighted equally. Students must take both exams and hand in a reasonable attempt at all of the projects to pass the class. While meeting all of these requirements doesn't guarantee a passing grade, failing to meet them will result in an F.

Homework and project due dates will be indicated on the assignment pages. Because the class has three sections, assignments will be due at a common time chosen independently of either section's meeting time. Of course, assignments may be handed in during class, but they will not actually be due until the date on the assignment. Late homework will not be accepted. Late projects may be handed in up to 5 days late with a 10% penalty per day late (including weekends and holidays). Parts of the project will have long deadlines (some will be a couple of months). 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.

All homework assignments 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. Please bring an identification card, when you are going to take an exam

The final grades will be given based on curve that will be common 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.

Academic Honesty

UMBC's academic honesty policy can be found at http://www.umbc.edu/provost/integrity/. As you have probably been told umpteen times by now, violating this policy is a strict no-no! If we catch anyone cheating, we will take the maximum action possible against them, including reporting the matter to the appropriate university authorities. 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 homework and other assignments amongst yourselves, as long as that discussion does not lead to a exchange of solutions.

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.

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.