CSE 221: Homework 1

Winter 2010

Due: Tuesday, February 2, 2010 at the start of class (9:30am)



Answer the following questions. For questions asking for short answers, there may not necessarily be a "right" answer, although some answers may be easier to justify. Finally, write your answers using complete sentences and paragraphs — don't be sloppy in expressing your answers.

    1. The concept of a process is fundamental, but the exact details of what constitutes a process differs widely across operating systems. Take three of the operating systems we have discussed so far and compare and contrast the different models each gives to a process. Explain, to the best of your ability, why each system adopted the model that they did.

    2. A fundamental aspect of protection in operating systems is rights amplification. Rights amplification enables a more privileged protection domain to perform an operation on behalf of a less privileged protection domain in a controlled fashion without violating protection in the system. For each of the following operating systems, state (a) the protection domains that they support, (b) the mechanism for crossing protection domains, (c) how rights are represented, (d) how rights are amplified crossing domains, and (e) how the OS determines whether to allow the domain crossing.

      Support your answers with material from the papers (e.g., a quote of a phrase or sentence), or with your own critical arguments, as appropriate (the Lampson protection paper is fair game). I am interested in your justifications as much as the answer itself — and the more often you can quote from a paper, the less you have to justify. For instance, two possible answers to part (a) for Hydra are:

      A protection domain in Hydra is the "local name space" (LNS). An LNS represents the current set of objects and rights to which a process has access, and those objects and rights change when a process moves from one LNS to another.

      A protection domain in Hydra is the "local name space" (LNS): "At any instant, the execution environment (domain) of a program is defined by an LNS object associated with it...the rights lists in each capability define the permissible access rights of this program at this instant." (Hydra p. 341).

      • Hydra
      • Multics
      • Unix
      • Pilot

    3. Pilot made a strong and persuasive argument for tailoring the design and implementation of operating systems to personal computers. We have also seen commercial operating systems like MSDOS, Windows before NT, and "classic" MacOS tailored towards personal computers as well. Why do you think we still run multi-user timesharing systems like Unix on our PCs? (Consider, for example, the requirements we have of the systems that we use today.)
    
    

    marzullo@cs.ucsd.edu