CMSC 621

Advanced Operating Systems

Description

This 3 credit course will cover advanced topics in Operating Systems.

Course Organization

 
Instructor: Anupam Joshi
Office: ECS 225 E
Office Phone: 455-2590
E-Mail Address: joshi@cs.umbc.edu
Office Hours: By appointment 
TA: Yibin Zhang
Office: 334
Office Phone: N/A
E-Mail Address:yibzhang@cs.umbc.edu
Office Hours: M 4p-5:20p, F 10a-11:30a

Texts: Advanced Concepts in Operating Systems
M.Singhal and N. Shivratri
McGraw Hill Publishers

References: You may want to get a good book on Java 1.2, for example the Core Java text by Horstmann & Cornell (Prentice Hall). This will come in handy for your project. In addition, you will also be assigned several papers to read.

Prerequisites:

CSEE graduate student with UG level background in Opearting Systems (CMSC 421 or equivalent). Talk to the instructor if you would like to take the course, but are not sure of your background.
A course outline of CMSC421, which outlines the material we expect you to (substantially) know, is provided here. The chapters refered to are from the Silberschatz & Galvin text.

Course Information (or Stuff you should know up front ...)

A few noteworthy points. First, this is a 600 level course meant for CSEE graduate students. This course will assume that you are largely familiar with the OS basics (process management, memory management, disk management, filesystems, protection) typically taught in undergrad OS courses (such as CMSC421) as outlined earlier. In addition, we assume that you are proficient in programming (i.e., have written more complex programs than typically assigned in CS1/CS2 courses). In case your background is deficient, it is your responsibility to catch up. In class, I will assume that all students have the requisite background. Second, this is a course in the "systems" area. That means that hands on work is almost as important as theoretical knowledge, and projects will account for almost 40% of your grade. Expect to be putting in significant effort! I will expect you to follow good programming practices (commenting, headers, version control, makefiles, etc. etc.) that you have learnt in previous classes. Quizzes may be given if needed to ``encourage'' students to read the assigned material. A midterm and final exams are planned.

As we go through the course material, several "reference" papers will be provided to you. For each of these papers, you will be expected to produce a brief (one page) summary and submit it in class on the day the paper is discussed. In other words, you would have read the paper before we discuss it in class. A few homeworks will also be given. The project will be done in groups. Please form groups of upto four students. I will strongly discourage groups with less than three members. You may wish to start the process of group formation soon, we expect to hand out the project about 3 weeks into the semester.

We will use the World Wide Web as a convenient tool for distributing course material and presenting other information. The URL for the class web page is http://www.cs.umbc.edu/courses/graduate/CMSC621/fall99/. A "news and notes" link from the class page will provide important announcements and news about the class, and provide links to homeworks and projects as they are released. It is your responsibility to check it often. A class newsgroup has been created. The purpose of this newsgroup is to allow you to discuss ideas, especially as related to the project. The newsgroup will not be monitored by the instructor or the TA, except passively. If you need to communicate with the TA or the instructor, please send an email to cmsc621@cs.umbc.edu, with CMSC621 as the first element of your subject line. Given the very large enrollment in this class, we will use the following division of labor. Any questions that relate to conceptual difficulties with the material presented in the class should come to the instructor directly. All other questions should be first directed to the TA, who may then pass some of them on to the instructor.

Tentative Course Outline

This is a rough outline of the course, and subject to change as we progress through the semester. Its online counterpart will likely reflect the changes as we go along. It is your responsibility to read the material to be covered in the class ahead of time. Chapter numbers from the text, as well as references to papers are provided for your convenience.

The Important Stuff (i.e. grades)

Given the format of this course, attendance and class discussion are essential for the learning process. While I cannot require attendance, your regular attendance will be needed in order to participate in class and in order to take the (unannounced) quizzes. I will not give any makeups for these quizzes. Course grades will be a function of your performance in the projects, paper presentations, quizzes, and exams, as well as of your participation in class. The grades will be based on a curve. A tentative breakdown of grades, likely to change as we go along is

Academic Dishonesty

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. 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.