CMSC 621
Advanced Operating Systems
Description
This 3 credit course will cover advanced topics in Operating
Systems.
Course Organization
Instructor: Anupam Joshi
Office: ITE328 Office Phone: 455-2590
E-Mail Address: joshi@cs.umbc.edu
Office Hours: Walk in, or by appointment |
TA: Anubhav Kale Office: ITE349 Office Phone:455-8933 E-Mail
Address:akale1@umbc.edu
CHANGED Office Hours: Fri 10 a.m - 12 a.m. |
Required Text:
Distributed Systems: Principles and Paradigms, by Andrew S. Tanenbaum and
Maarten van Steen, ISBN: 0-13-088893-1, Prentice Hall, 2002
Reference Text:
Advanced Concepts in Operating Systems by M.Singhal and N. Shivratri, McGraw
Hill Publishers
Prerequisites:
CSEE graduate student with UG level background
in Operating 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 referred to are from the Silberschatz & Galvin text.
- Introduction and historical perspective
Readings: OSC Chap 1, 2.1,2.2, 2.5, 2.6
- Process Management, IPC & Threads
Readings: OSC Chap 3, 4
- Synchronization: semaphores and monitors, deadlocks
Readings: OSC Chap 7
- Process Scheduling
Readings: OSC Chap 5 - Address spaces, multiprogramming, and I/O
Readings: OSC Chap 2.3-2.5, 13 - Memory management, address translation, and virtual memory
Readings: OSC Chap 8, 9
- File systems & Secondary Storage
Readings: OSC Chap 10, 11, 12
- Protection and Security
Readings: OSC Chap 14, 15
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. Pop Quizzes may be given if needed to ``encourage'' students to read the assigned material. Such quizzes will happen randomly, and cannot be made up if missed. 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 no
more than two students. I will strongly discourage groups with less
than two members. If you cannot find a partner despite good faith efforts,
please contact me. 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 and blackboard 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/fall2006/. Blackboard
can be found at http://blackboard.umbc.edu/ . Blackboard
will be used to 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, at least
several times a day. A discussion forum will be created in
blackboard. The purpose of this forum is to allow you to discuss
ideas, especially as related to the project. The forum 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 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.
- 1 week: Introduction (Ch. 1)
- 1 week: Communication
Mechanisms: RPC, Remote Object Invocation, etc. (Ch 2, Self-reading
2.1,2.5)
- 3 weeks: Synchronization (Ch 5)
- 1 week: Code Migration and agents (Ch 3.4, 3.5)
- 2 weeks: Distributed File Systems (Ch 10)
- 1.5 weeks: Consistency and Replication (Ch 6)
- 1 week: Distributed Object based Systems (Ch 9)
- 1.5 weeks: Distributed Coordination-based Systems (Ch 12)
- 2 Weeks: Security in Distributed Systems (Ch 8)
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 summaries, quizzes, and exams, as well as of your participation
in class. If you miss any lectures, it
is your responsibility to find out what went on during the lecture and to
collect any material that were handed out. The grades will be based on a curve. A tentative breakdown of
grades, likely to change as we go along is
-
Exams 45%
-
Paper Reports, Homeworks & Class Participation 15%
-
Projects 40%
Academic Dishonesty
Academic Integrity is a key element of education, and the provost has
a web site dedicated to this topic at http://www.umbc.edu/integrity/. It
includes the academic conduct policy. 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 instructional staff. Please make us aware of them at your
earliest so that UMBC can make suitable arrangements.