CIS332-004, CIS 332-104 (Spring 1996)
PRINCIPLES OF OPERATING SYSTEMS
Professor: Franz J. Kurfess
Home page:http://www.cis.njit.edu/franz E-mail:franz@cis.njit.edu
Project CIS 332
One of your assignments for the course is a project,
contributing 30% to your overall grade. For your project,
you can choose between three options:
- a research paper
- an implementation in Ada
- construction of a World Wide Web page
These three options are described in more detail below.
There is actually a forth option, community service.
Those of you interested in that option should already have
contacted the Office of Community and Public Service;
please follow the deadlines and format for the research paper.
You have to submit the project in two stages:
first a short outline in which you describe the structure
of your paper / program / Web page(s), and then the final
version, which is the full paper, complete program, or
complete set of Web pages.
The deadlines are
- Thursday, March 21, 1996 for the outline
- Thursday, April 18, 1996 for the final version
Research Paper:
For this research paper, you have to
demonstrate the ability to read an article from a professional research
journal (like IEEE Computer or Communications of the ACM),
describe its main ideas in your own words, and use the knowledge
you acquired in class. The task is to read the paper
"An Investigation of the Therac-25 Accidents"
by Nancy G. Leveson and Clark S. Turner,
IEEE Computer July 1993, pages 18-41,
and write a research paper on the issues
relevant to the topics discussed in class.
A copy of the article can be found in the library
(CIS 332 / Kurfess).
Your paper should be 7-10 pages long; however, it is not the number
of pages that makes a good paper but the contents.
My evaluation will be based on the following criteria:
- coverage of relevant topics
- presentation and readability
- originality
- bibliography
Some hints:
- Try to describe things in your own words. Parts of your paper which
are practically identical to your source will not count, and you
risk a bad grade for extensive copying.
- Have discussions with your fellow students about the paper. You will
have to write your own paper, however.
- Use a spellchecker or ask somebody to go over your paper to
eliminate the worst mistakes. Whereas grammar and spelling are not
taken into account for your grade, it might leave a bad impression or
make your paper difficult to understand if there are many mistakes.
- Try to find additional sources of information, e.g the textbook or
other journal articles. Don't forget to list them in the bibliography
section!
Here is an example for the structure of such a paper:
Title Page
(Author, Title, Affiliation)
Introduction
(background, history, problem description, overview of the systems)
Main Part
relevant issues for operating systems
relation operating systems - medical device (Therac-25)
Conclusion
(advantages, problems, future developments)
Bibliography
(cite all articles and books you have used, including the textbook)
Possible questions for students:
- Which software engineering and safety principles were violated?
- Try to find other instances where computer systems were involved in accidents.
- Why is it frequently difficult to analyse such incidents?
- How can such accidents be prevented?
- What type of operating system was used?
- How is the scheduling between different tasks done?
- How was synchronization between tasks achieved?
- What are "race conditions"?
- Why are diagnoses like "human error", "computer error" not very meaningful?
- Why are independent safety features necessary for such devices?
- What are important sources of potential problems?
Ada Implementation
Your task here is to implement the Dining Philosophers problem in Ada,
based on the pseudocode given in the textbook on page 194.
You should use the Ada task constructs and the Ada rendezvous
between tasks for the required synchronization between
the philosophers.
Most of this implementation is fairly straightforward, you simply
have to convert the code into the corresponding Ada constructs.
Note, however, that there are a few cases where this conversion
is not immediately obvious; you might have to define some data structures
and functions of your own.
World Wide Web Page
In this case, you have to put together material about one particular
operating system of your choice (e.g. Unix, VMS, DOS, Windows, MacOS)
and arrange it into a collection of WWW pages, reflecting the topics
discussed in class, and how "your" operating system tackles these
issues. This option can also be solved as a team effort; if you
want to work as a group on it, please talk to me first and get
my approval.
World Wide Web Hints
Where to find
further information, e.g. how to install your own
home page on the hertz system.
CIS 332 Principles of Operating Systems Spring 1996; Franz Kurfess.