CMSC 412 - Operating Systems
Fall 2001
Sections 0101 and 0102
General Course Information
| Instructor: |
Bobby Bhattacharjee |
|
bobby@cs.umd.edu |
|
4147 A.
V. Williams Building |
|
|
| Office Hours: |
Wednesday, 10:00 a.m. -- 12:00 p.m. |
|
E-mail is the easiest and fastest way to contact me. |
|
Please put the string "CMSC 412: " somewhere in the subject line of
your message |
|
|
| Room and Time: |
0102 Classroom
Building |
|
Tuesdays and Thursdays, 12:30p.m. -- 1.45 p.m. |
|
|
| Teaching Assistants: |
Vijay Gopalakrishnan (gvijay@cs.umd.edu) |
| Roger Lee (rogerlee@cs.umd.edu) |
Course Description
We will cover the basic principles of Operating Systems with a focus
on trying to understand how these concepts are applied in modern
systems. We will learn about process, I/O, and scheduling in
classical and modern Operating Systems. Specifically, we will cover
different process management schemes, inter-process communication
models, scheduling policies, synchronization primitives, and storage
structures. If possible, we'll try to cover the implementation of the
networking subsystem implementation inside different OSs. We will
selectively implement a number of different parts of an OS, both using
user-level thread libraries, and on low-level hardware and hardware
emulators. As such, this course will have a significant programming
component.
Prerequisites
CMSC 311 (or ENEE 350) and CMSC 330.
Experience with some flavor of Unix and programming in C or C++.
Reading
The textbook for the course is:
Operating System Concepts, Fifth Edition
by Abraham Silberschatz and Peter Baer Galvin,
John Wiley & Sons. The Wiley corporate link is
here .
The sixth
edition of the book is now available; but it came out too late for
us to use it this semester.
Here is a list of other books you may find useful:
You do not have to buy any of the books in this list, but you may want
to look for them in the library. Also, it should be clear that this
course is going to be somewhat biased towards Unix and Unix-like
systems such as Linux.
Grading
| Project |
30% |
| Final Exam |
25% |
| Midterm |
15% |
| Programming Assignments and Homeworks |
25% |
| Class Participation |
5% |
The grading criteria is subject to change during the semester.
Handouts and Assignments
Syllabus
Assignment
0 [Goodie
pack]
Assignment
0'
Assignment
1 [Goodie
pack]
Homework
0
Assignment
1'
Assignment
2 [Goodie
pack]
Newsgroup
Please keep up with and participate in the class
newsgroup. I will use the newsgroup for broadcast
announcements and to answer questions that may be interesting to more
than one of you. Further, the newsgroup is the best medium for
asking questions about homeworks, for debugging your programming
environment, and for posting the latest OS rumor. Thus, unless
it is private, post to the newsgroup before writing e-mail.
Attendance, Group Interactions, and Class Participation
This is a
senior-level course; I will not mandate you to come to class (you are
still responsible for all the material covered in class). The
class project is a major part of this course, and please be aware that
you will be working in groups of four. Lastly, note that 5% of your
grade is based upon class participation. This is to
encourage you to voice your ideas in class and to post them to the
newsgroup. Minimally, I must know your name by the end of the
term in order for you to get any points for class participation.