Before doing these problems, read Part One of Operating System Concepts (OSC Preface and Chs 1-3). (Alternatively, you can read Preface and Ch 1 of Tannenbaum, Modern Operating Systems, 2nd edition; or Part One of Applied Operating Systems Concepts.) Also read the introduction part of the CS encyclopedia article and skim the remainder. Discuss all parts of this problem with your study partners. Write your own individual report. Acknowledge all sources.
NOTE: Prepare your report with a word processor using a 2" wide right margin to allow for grading.
ALSO NOTE: Explain or justify your answers. A simple "yes" or "no" does not reveal whether you understand or whether you merely guessed right.
Lengthy answers count less than short, precise, and concise answers. Students often use lengthy answers to overcome their uncertainty. It is better to say you're uncertain and to say what you know or think than it is to ramble on in the hope that you will somehow include the answer.
(1) Operating systems manage hardware and software resources. Write a short overview of resources. Cover such issues as resource types and units, resource requests and releases, whether or not one may have to wait after making a request, exclusive use of a resource after it is allocated, whether the resource is consumed or is available for reuse. Who requests resources? Why is contention an issue?
(2) Operating systems are supposed to
isolate individual jobs executing together on the same machine.
Why? What is the role of memory partitioning in
accomplishing this? Is anything else needed to assure isolation?
(3) What are sensitive instructions? Give
at least three examples and explain why they are sensitive.
(4) What is the main strategy used in
CPU's to implement sensitive instructions? What is the relation
to the supervisor/user states of the CPU?
(5) Outline a method of safely entering and
exiting the supervisor state of a CPU.
(6) Look up a definition of "thread" and
write it down. Also look up a definition of "process" as it is
used in Unix and write it down. How would you characterize the
differences?
(7) Our OS levels-structure map has threads
at a lower level than processes. Why aren't these the same level? (8) What is a distributed computation?
(9) Shared memory and messages are two
ways for processes to exchange data. Describe the two methods.
What are advantages of each? (10) Using the example of a calendar
file in a company office, demonstrate how a race condition might
arise and what damage it can do to the schedules of individual
office workers. (Limit 1/2 page.)