CMPSCI 677 (Spring 2007): Homework 2

Due: In-Class, Tuesday, Feb 20 2007
Off-campus students: one week from when you view Lecture 5
Web posted: Tuesday, Feb 13 2007

  1. What is the role of middleware in a distributed system?

  2. Explain what is meant by (distribution) transparency, and give examples of different types of transparency.

  3. Why is it sometimes so hard to hide the occurrence and recovery from failures in a distrbuted system?

  4. Consider a chain of processes P1 , P2 , ... , Pn , implementing a multitiered client-server architecture. Process Pi is client of process Pi+1 , and Pi will return a reply to Pi-1 only afer receiving a reply from Pi+1. What are the main problems with this organization when taking a look at the request-reply performance at process P1 ?

  5. Consider an unstructured overlay network in which each node randomly chooses c neighbors. If P and Q are both neighbors of R, what is the probability that they are also neighbors of each other?

  6. Consider a BitTorrent system in which each node has an outgoing link with a bandwidth capacity Bout and an incoming link with bandwidth capacity Bin . Some of these nodes (called seeds) voluntarily offer files to be downloaded by others. What is the maximum download capacity of a BitTorrent client if we assume that it can contact at most one seed at a time?

  7. In this problem you are to compare reading a file using a single-threaded file server and a multithreaded server. It takes 15 msec to get a request for work, dispatch it, and do the rest of the necessary processing, assuming that the data needed are in a chache in main memory. If a disk operation is needed, as is the case one-third of the time, an additional 75 msec is required, during which time the thread sleeps. How many requests/sec can the server handle if it is single threaded? if it is multithreaded?

  8. In the text, we descried a multithreaded file server, showing why it is better than a single-threaded server and a finite-state machine server. Are there any circumstances in which a single-threaded server might be better? Give an example.

  9. Statically associating only a single thread with a lightwight process is not such a good idea. Why not?

  10. Having only a single lightweight process per process is also not such a good idea. Why not?

  11. Constructing a concurrent server by spawning a process has some advantages and disadvangtages compared to multithreaded servers. Mention a few.