Design of Operating Systems: G22.2250
Spring 1997 Semester
Table of contents
This course is about the design and implementation of operating systems.
An operating system is the software that enables users to access the hardware associated with a
computer in a convenient and efficient fashion.
Almost all interaction with a computer today is mediated by an operating system.
The primary goal of this course is to move beyond the role of users to
understand the principles that underly the design
of operating systems.
Topics that will be covered include:
The course will require knowledge of fundamental algorithms as imparted in G22.1170
or any equivalent course. Several programming exercises will be required.
- interrupt handling
- process management (synchronization, communication, scheduling),
- memory management
- file systems
Josyula R. Rao, firstname.lastname@example.org
Office: Warren Weaver Hall, Room 109,
Office hours: Wednesday, 7:00-8:00pm
Office-hour phone: (212) 998-3081
- Teaching Assistants: Owing to the large enrollment, there are two teaching
assistants for this course. They will be available to answer all questions regarding the
course at their offices at the timings given below:
Zhao Tao, email@example.com
Office: Warren Weaver Hall, Room 417,
Office hours: Monday, 4:10-6:10pm
Office-hour phone: (212) 998-3106
David Tanzer, firstname.lastname@example.org
Office: 715 Broadway, Room 1015
Office hours: Thursday, 5:00-7:00pm
Office-hour phone: (212) 998-3366
If you need help with the class material, you have four options:
Send me an email with your question
Send the TA an email with your question
Meet me during my office hour right after the class in my office
Send an email to the TA to set-up a meeting time.
The textbook for the course is:
A. Silberschatz and P.B. Galvin. Operating Systems
Concepts. Fourth Edition. Addison Wesley, Mass. 1995
Other textbooks that you will find useful for clarifications and
further explanations are:
Andrew S. Tannenbaum and Albert S. Woodhull. Operating Systems: Design and
Implementation . Second Edition. Prentice Hall, New Jersey 1995
Andrew S. Tannenbaum. Distributed Operating Systems..
Second Edition. Prentice Hall, New Jersey 1997
If you need a good reference for the C programming language, the
following is a classic:
B.W. Kernighan and D.M. Ritchie. The C Programming
Language. Second Edition. Prentice Hall, N.J. 1988.
A copy of the transparencies that will be used during the lectures can be
purchased from Unique Copy, 252, Greene Street, New York, NY 10003. The store is between
Waverly Place and 8th Street. Their phone number is (212) 420-9198.
Ask for the notes for the Design of Operating Systems course taught by Prof.
Rao. They should cost around $10.00.
I have been exploring ways to make the transparencies available on this Web page.
The transparencies are available in both Powerpoint and Postscript formats. Powerpoint
is part of the suite of tools packaged with Microsoft Office '95 and '97. To use
Powerpoint, you have two alternatives.
Once you have access to a Powerpoint viewer, you can do one of two things:
- You can either locate a machine that has Microsoft Office installed on it or you can buy
and install Microsoft Office '95 or '97 on your machine. This is a fairly expensive propostion.
- You can download the
Powerpoint viewer from Microsoft's web page. This is free.
Alternately, you can access the Postscript version of the transparencies. Most browsers on
UNIX systems have Postscript viewers that will enable you to view and print the slides.
You can now access the following transparencies:
- You can configure your Web browser to invoke the Powerpoint viewer whenever you click
on a hypertext link to a Powerpoint file.
- You can download the Powerpoint files by anonymous ftp from ftp://ftp.cs.nyu.edu/pub/courses/g22.2250.
- The UNIX operating system (Powerpoint, 76K) (Postscript, 320K) .
- Introduction to Operating Systems (Powerpoint, 80K) (Postscript, 272K) .
- Structure of Operating Systems (Powerpoint, 83K) (Postscript, 339K) .
- Processes (Powerpoint, 50K) (Postscript, 152K) .
- CPU Scheduling (Powerpoint, 62K) (Postscript, 233K) .
- Process Synchronization (Powerpoint, 123K) (Postscript, 584K) .
- Deadlocks (Powerpoint, 51K) (Postscript, 188K) .
- Memory Management (Powerpoint, 88K) (Postscript, 335K) .
- Virtual Memory (Powerpoint, 78K) (Postscript, 322K) .
- File System Interface (Powerpoint, 48K) (Postscript, 148K) .
- Files and Secondary Storage (Powerpoint, 66K) (Postscript, 293K) .
- Protection and Security (Powerpoint, 62K) (Postscript, 251K) .
Assessment of Student Performance
Your grade will be determined on the basis of your performance on your homeworks,
programming assignments and a final examination. There will be no midterm in this course.
The breakdown of the grade will be as follows:
Note that all homeworks regardless of their total points will carry EQUAL
weight in the final grade. A good on-time homework record can boost
your final grade, if you are on the fence.
- Homeworks (4): 30%.
- Programming assignments (2): 30%.
- Final examination (1): 40%.
Please check this section for important announcements.
- Jan 22, 1997: There will be no class on January 29, 1997.
- Feb 12, 1997: Lecture notes are now available in Postscript from this page. The first
homework assignment has been announced.
- Feb 13, 1997: A problem in the hyperlink to one of the postscript files and problems with
two postscript files were pointed out to me by Mohammed Rahman. I have fixed both of them. If
you encounter any problems, let me know.
- Feb 18, 1997: See instructions for subscribing to the Majordomo class list given below.
- Mar 5, 1997: David Tanzer's phone number has changed. Solution to homework 1 has been
put on the Web page. The programming assignment has not been put on the Web page owing to
network connectivity problems. I expect to put it out sometime today.
- Mar 31, 1997: I have added the remaining reading assignments, homework 3, programming
assignment 2 and homework 4 on the web page. Programming assignment 2 will be given out by
Apr 9, 1997.
- Apr 1, 1997: The final exam will be held from 5-7pm on May 14 in Room 901, Main Building,
100, Washington Square East. Please note that it will not be in the same room as the class.
- Apr 8, 1997: The second (and last!) programming assignment has been put on this web page.
- Apr 22, 1997: The solution to the second homework has been placed on the web page.
- May 9, 1997: The solutions to the third and fourth homeworks have been placed on the web page.
- Reading assignments:
- Jan 22, 1997: Chapter 1 of text.
- Feb 5, 1997: Chapter 2, 3.1-3.4, 19.1-19.4 of text.
- Feb 12, 1997: Chapter 3.4-3.9, 4.1-4.7 of text.
- Feb 19, 1997: Chapter 5 of text.
- Feb 27, 1997: Chapter 6 of text.
- Mar 5, 1997: Chapter 6 (continued) of text.
- Mar 12, 1997: Chapter 6
- Mar 26, 1997: Chapter 7
- Apr 2, 1997: Chapter 8
- Apr 9, 1997: Chapter 9
- Apr 16, 1997: Chapter 10, 11
- Apr 23, 1997: Chapter 12
- Apr 30, 1997: Chapter 13, 14
- May 7, 1997: Chapter 19
- Homework assignments:
- Feb 12, 1997: This assignment will be due on Feb 26, 1997 at the start
of class. Since this is still the beginning of the class, I am giving you some
problems from the text as a warm-up exercise. These problems are not particularly
deep but are meant to test your understanding of the various terms and concepts that
I have used in the lectures. Problems 1.3, 1.7, 2.1, 2.6, 2.9, 2.10, 3.1, 3.3, 3.5,
3.10, 4.2, 4.3, 4.6 and 4.8.
- Mar 5, 1997: Solution to homework 1 (Postscript, 61K)
- Mar 12, 1997: This assignment will be due on Apr 2, 1997 at the start of class.
Problems 5.2, 5.3, 5.4, 5.5, 5.8, 5.9, 6.1, 6.2, 6.6, 6.17 and 6.18.
- Apr 2, 1997 (announced Mar 31, 1997): This assignment will be due on Apr 23, 1997. Problems 7.4, 7.9, 7.11, 8.5, 8.11, 8.15, 8.16, 9.4, 9.6, 9.16 and 9.20
- Apr 23, 1997 (announced Mar 31, 1997): This assignment will be due on May 7, 1997. Problems 10.2, 10.11, 11.2, 11.6, 12.1, 12.2, 12.4, 12.8, 13.1, 13.3, 13.11, 14.2 and 14.3.
- Apr 22, 1997: Solution to homework 2 (Postscript, 65K)
- May 7, 1997: Solution to homework 3 (Postscript, 77K)
- May 9, 1997: Solution to homework 4 (Postscript, 62K)
- Programming assignments:
- Mar 6, 1997: Programming assignment 1 (Postscript, 67K) . For those of you who don't have access to Web you can access the file
by anonymous ftp from ftp://ftp.cs.nyu.edu/pub/courses/g22.2250/prog1.ps .
- Apr 9, 1997 (announced Mar 31, 1997): Programming assignment 2 (Postscript, 67K) . For those of you who don't have access to Web you can access the
file by anonymous ftp from ftp://ftp.cs.nyu.edu/pub/courses/g22.2250/prog2.ps .
Instructions for the Majordomo list
Major Domo is a popular "List Server", that is, software that
automatically manages mailing lists through the use of commands
You should send email to email@example.com
and enclose in the *body* (the subject header is ignored) of the message the following two lines:
Now you can send messages to to every student on the list by
sending a message to firstname.lastname@example.org. Note that you will
*not* receive a copy of the message unless you explicitly
subscribe to the list yourself before you send the message!
Majordomo understands several commands, and is not limited to a
single command per message (it will process commands until reaching
end-of-message or the command "end"). The command "help" will tell
you about all the other commands.
I expect you to be honest at all times. You are expected to do all the
assignments by yourself. Discussing assignments with classmates is OK
but you may not copy a classmate's solution. This also applies to
programming assignments. If in doubt, I expect you to exercise
common-sense and reasonable judgement. "I didn't know" is not a good
answer. All incidents of suspected dishonesty will be reported to the
office of student affairs.
About the Instructor
Josyula R. Rao is an Adjunct Assistant Professor at the
Department of Computer Science at New York University.
He is currently employed by IBM at IBM's
Thomas J. Watson Research Center
as a member of the Object and Distributed Systems group.
He received the Bachelor of Technology degree in Electrical Engineering from
of Technology, Kanpur, India, in 1984,
the Master of Science degree in Computer Science from the
State University of New York
at Stony Brook, in 1986, and a doctoral degree in Computer Science from the
University of Texas at Austin in 1992.
His research interests are in the theory and practice of all aspects of
This page was last updated on May 9, 1997.