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: Manoj Sivakumar Office: 353 Office Phone: E-Mail
Address:manoj1@cs.umbc.edu
Office Hours: Mon and Thu 4.45 p.m - 6.00 p.m |
Texts: Advanced
Concepts in Operating Systems
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 (except 7.9)
- Process Scheduling
Readings: OSC Chap 6
- Address spaces, multiprogramming, and I/O
Readings: OSC Chap 2.3-2.5, 13, material from Appendix A - Memory management, address translation, and virtual memory
Readings: OSC Chap 9, 10
- File systems & Secondary Storage
Readings: OSC Chap 11, 12, 14,
- Security and Cryptography
Readings: OSC Chap 18, 19
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 three students. I will strongly discourage groups with less
than two members. Students registered for section 0201 will be the
exception. 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/spring2005/. 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.
- 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)
- 2 classes:Queuing 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 summaries, 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 45%
-
Paper Reports, Homeworks & Class Participation 15%
-
Projects 40%
Special note for students in Section 0201
In order to help part time students complete coursework in time,
the UMBC CSEE department will provide a hybrid offering of CMSC621
in Spring 2005. It will include section 0101, which will meet
at regularly scheduled hours, and section 0201 which will
meet "virtually". This section is meant only for part
time students who cannot attend Section 0101. The lectures given in
section 0101 will be taped, and made available via streaming video
within 24 hours. Both sections of the class will use the course
management features of the
blackboard system such
as online discussion groups and online assignment submission. Students
in this section will be expected to take the midterm and final
exams with Section 0101. The midterm will be in class, and the final
will be at the regular time determined by the registrar for section
0101. The students will also need to meet with the instructor to
demostrate the final project at some mutually agreed time. Other than
that no further presence on campus is required of students in this
section. Please note that students in full time status are NOT
eligible to sign up for this section.
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.