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.
- 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 6 (except 6.9), 7
- Process Scheduling
Readings: OSC Chap 5, 21.5
- Address spaces, multiprogramming, and I/O
Readings: OSC Chap 2.3-2.4, 12, 21.3.2-21.3.4, 21.8, 23.3.3.4, 23.3.3.5
- Memory management, address translation, and virtual memory
Readings: OSC Chap 8, 9, 21.6
- File systems & Secondary Storage
Readings: OSC Chap 10,11,13, 21.3.1, 21.7
- Security and Cryptography
Readings: OSC Chap 19, 20
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.
- 3 classes: Introduction to foundations and architectures.
(Ch. 4,5, Paper by Bolosky et al.)
- 6 classes: Distributed Mutual Exclusion and Deadlock
Detection (Ch 6,7, including overview of Ch 2,3 as needed)
- 6 classes: Distributed File Systems (Ch 9, papers on
CODA, Sprite, DFS)
- 3 classes:Distributed Shared Memory (Ch 10)
- 4 classes:Distributed Scheduling (Ch 11)
- 4 classes:Security and Protection in Distributed
Systems (Ch 14,15)
- 3 classes:Queing Theory and Performance Modeling
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
-
Exams 40%
-
Paper Reports, Homeworks & Class Participation 20%
-
Projects 40%
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.