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
- What is the role of middleware in a distributed system?
- Explain what is meant by (distribution) transparency, and give examples of different types of transparency.
- Why is it sometimes so hard to hide the occurrence and recovery from failures in a distrbuted system?
- 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 ?
- 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?
- 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?
- 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?
- 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.
- Statically associating only a single thread with a lightwight process is not such a good idea. Why not?
- Having only a single lightweight process per process is also not such a good idea. Why not?
- Constructing a concurrent server by spawning a process has some advantages and disadvangtages compared to multithreaded servers. Mention a few.