Home CS439

CS439: Principles of Computer Systems

Homework 10, Part 1

Due: 9:45a Thursday, November 20, 2014

Part 1 of the homeworks must be submitted electronically. Please refer to the homework turnin instructions.

  1. Which is the best (fastest) network on which to implement a remote-memory read that sends a 100 byte packet from machine A to machine B and then sends a 8000 byte packet from machine B to machine A?
    1. A network with 200 microsecond processing overhead, 10 Mbyte/s bandwidth, 20 microsecond latency
    2. A network with 20 microsecond processing overhead, 10 Mbyte/s bandwidth, 200 microsecond latency
    3. A network with 20 microsecond processing overhead, 1 Mbyte/s bandwidth, 2 microsecond latency
    4. A network with 2 microsecond processing overhead, 1 Mbyte/s bandwidth, 20 microsecond latency
  2. In class, we covered the idea of remote procedure calls. We discussed difficulties encountered when one attempts to implement a remote procedure call. Name the four of the difficulties. There are additional complications when the procedure executes a system call. What are the complications and how might you fix them?
  3. Describe the steps necessary to prepare a server to accept connections. How does it accept a connection?
  4. In class, we have discussed many methods to get reliability from unreliable parts. Name and describe 2.
  5. In two-phase commit, suppose the master fails after writing ``GLOBAL_COMMIT'' to disk and sending ``GLOBAL_COMMIT'' to all participating nodes but before any of the nodes receive this message. Suppose that the ``GLOBAL_COMMIT'' message reaches i of the n participants and that the participants implement a protocol in which they communicate with one another when they suspect the primary has died. What is the minimum number of participants that must receive the ``GLOBAL_COMMIT'' message to allow the participants to complete the transaction without waiting for the master to recover?