$30
CS550 Written Assignment 1 (WA#1)
• This is an individual assignment.
• Please upload your assignment on the Blackboard with the following name: Section_
LastName_FirstName_WA1.
• Please do NOT email your assignment to the instructor and TA!
Chapter 1
1. Q: Sketch a design for a home system consisting of a separate media server that will allow for the
attachment of a wireless client. The latter is connected to (analog) audio/video equipment and transforms
the digital media streams to analog output. The server runs on a separate machine, possibly connected to
the Internet, but has no keyboard and/or monitor connected.
2. Q: Describe precisely what is meant by a scalable system.
3. Q: What is the difference between a multiprocessor and a multicomputer?
Chapter 2
4. Q: If a client and a server are placed far apart, we may see network latency dominating overall
performance. How can we tackle this problem?
5. Q: 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?
6. Q: 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?
Chapter 4
7. Q: 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?
8. Q: 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?
9. Q: One way to handle parameter conversion in RPC systems is to have each machine send parameters
in its native representation, with the other one doing the translation, if need be. The native system could be
indicated by a code in the first byte. However, since locating the first byte in the first word is precisely the
problem, can this actually work?
10. Q: What trade-off should be made when we decide between a shared memory model and a message
passing model? Why does this make shared memory a bad match for a system distributed across the
Internet?