CSE 221: Homework 1   (Winter 2016)

Hardcopy due Tuesday, February 2, 2015 at the start of class

Answer the following questions. For questions asking for short answers, there may not necessarily be a "right" answer, although some answers may be more compelling and/or much easier to justify. But I am interested in your explanation as much as the answer itself. Also, do not use shorthand: write your answers using complete sentences.

When grading homeworks, we will grade one question in detail and assign full credit for answers to the others.

  1. 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 domain 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.

    • Hydra
    • Multics
    • Pilot

    Support your answers with a bit of explanation, such as a concise summary explanation in your own words (a quote of a phrase or sentence from the papers is fine as well). 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).

    In other words, we're looking for more than just "local name space" — but at the same time your answers don't have to be lengthy discussions. The balance in the example above is fine.

  2. The design of an operating system determines the properties of its behavior. Consider the designs of Multics, Unix, Pilot, and Plan 9. For each of the following properties, argue which of these four operating systems you think (a) best achieves that property and (b) least achieves that property, and why.

    1. Performance
    2. Reliability
    3. Security

    Given that the operating systems we use today on our desktops, laptops, servers, and handheld devices are all essentially forms of Unix, what do your rankings above say about the properties we have optimized for in the operatings systems we use?

  3. Some of the systems we have read about and discussed use specialized hardware to facilitate their implementation. Choose one such instance, describe the hardware that was used, and what advantage it gave the system implementors and designers. What is one drawback of relying upon specialized hardware? Do we still use hardware of this form today?

voelker@cs.ucsd.edu, snoeren@cs.ucsd.edu