George Mason University

CS571 Operating Systems Fall 2001

Assignment A1 (10 points)

Due 1/29/02

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.)