Starting from:
$28

$18.20

SOLVED CS550 Homework 2

1. (10 points) Consider a chain of processes P1,P2,...,Pn implementing a multitiered client-server architecture. Process Pi is client of process P(i+1), and Pi will return a replay to P(i-1) only after 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?

    1. (10 points) Describe precisely what is meant by a scalable system. Scalability can be achieved by applying different techniques. What are these techniques?
    1. (10 points) If a client and a server are placed far apart, we may see network latency dominating overall performance. How can we tackle this problem?
    1. (10 points) Imaging a Web server that maintains a table in which client IP addresses are mapped to the most recently accessed Web pages. When a client connects to the server, the server looks up the client in its table, and if found, returns the registered page. Is this server stateful or stateless?
    1. (10 points) 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?
    1. (10 points) In many layered protocols, each layer has its own header. Surely it would be more efficient to have a single header at the front of each message with all the control in it than all these separate headers. Why is this not done?
    1. (10 points) Consider a procedure incr with two integer parameters. The procedure adds one to each parameter. Now suppose that it is called with the same variable twice, for example, as incr(i, i). If i is initially 0, what value will it have afterward if call-by-reference is used? How about if copy/restore is used?
    1. (10 points) Describe how connectionless communication between a client and a server proceeds when using sockets.
    1. (10 points) Suppose that you could make use of only transient asynchronous communication primitives, including only an asynchronous receive primitive. How would you implement primitives for transient synchronous communications?
    1. (10 points) Assume a client calls an asynchronous RPC to a server, and subsequently waits until the server returns a result using another asynchronous RPC. Is this approach the same as letting the client execute a normal RPC? What if we replace the asynchronous RPCs with synchronous RPCs?

    Note: We encourage collaboration between you and your classmates. Discuss various approaches and techniques to better understand the questions. However, we do NOT allow copying solutions or code. This is considered as cheating and falls under IIT code of honor. Penalties will be enforced. Please make sure you write your own solutions.

    GOOD LUCK!