Homework 12

22C:116, Spring 1999

Due Monday May 3, 1999, in class

Douglas W. Jones
  1. Problem, Part A: Servers in the Amoeba system offer a fairly long list of standard operations. Among these, create and restrict were mentioned in class, but there are others. What are the others? (Tannenbaum mentions all of them, and most are sufficiently well defined that their function can be clearly identified).

    Problem, Part B: Amoeba servers support two categories of operations -- those that operate on a class (create, for instance), and those that operate on instances of that class. For each of the operations identified in part A, clearly indicate which category it falls into.

  2. Background: Amoeba uses a combination of local caches, name-service and broadcast protocols to translate between abstract server names and the physical address of the process offering that service. Amoeba interprocess communication is based on RPC protocols, and an RPC involves, at the very minimum, two messages, one representing the call, and the other representing the return. Usually there are even more messages in an RPC, for example, small messages to acknowledge receipt of a call and to acknowledge receipt of results.

    Problem: Explain why each Amoeba RPC requires only one translation step to convert a service name to the physical address of a process. Where do the addresses on all the other messages in an RPC come from? Why is it that additional name-to-address translation is not needed for these other addresses?

  3. A Question: Suppose you wanted to use mark-sweep garbage collection for all resources in some class in amoeba. What cooperation would all users have to offer in order for the server to implement this? (Note that Amoeba contains provisions that almost support such a scheme!)

  4. A Question: Explain how a Mach exception handler could be used to implement delivery of UNIX-style signals to the process that raised the exception.