Homework 8

22C:116, Fall 1999

Due Friday Oct 29, 1999, in class

Douglas W. Jones

  1. Background Consider a DEMOS like operating system, where messages are sent over links to boxes of processes, where each link is the capability to send a message to some box of some process, and where each message may contain exactly one link and one data buffer. Each process has an array of links it may use for sending messages, indexed by link number, and each process has an array of boxes from which it may receive messages, indexed by box number.

    No further details are needed to answer this question! Assume that the names of the primitives are the nouns and verbs used above.

    Part A: Suppose an abstract operation requires the passing of several links as parameters to the operation, and suppose the operation returns several links. Furthermore, suppose this operation is performed by a server in response to requests from clients.

    At a level above the pseudocode level, describe a protocol for client-server communication needed to perform this operation.

    Part B: Consider the case where your server is a nameserver, with abstract operations save(l,n) and lookup(n). The save operation saves link number l with textual name n, and the lookup operation returns the link associated with name n. Names are textual. List all messages that must be exchanged between the client and server for a save operation and for a lookup operation; for each, indicate the interpretation of the different buffer fields and the purposes of the different links exchanged. Your will need to use ideas you developed in your answer to part A to do this!

    Part C: In the ISO OSI model protocol hierarchy, what level is represented by the basic interprocess communication primitives of our DEMOS like example.

    Part D: In the ISO OSI model protocol hierarchy, what level is represented by the client-server protocol you described in your answer to part A.

  2. Background: The DEMOS-like system outlined above only included a single primitive for receipt of a message -- wait for a message in a particular box.

    A Question: Explain why many server architectures require some kind of multi-wait primitive that will continue when a message is sent to any of a number of incoming boxes.

  3. A Question If your system does not have group communication primitives, but only has, for example, process to process message passing primitives such as the DEMOS-like primitives outlined above, what do you sacrifice? Is there a loss of functionality, a loss of performance or both?