Problem Set #4
Fall, 2009
Assigned: Tuesday, September 15
Due: Tuesday (noon), September 22
Total Points: 20

Please submit your answers in PDF format via email. 



1. (5 points) Page 11 in the paper on "Modern Concurrency Abstractions for C#"  presents a fairness policy for the readers-writers problem. This solution is defined in the class ReaderWriterFair. Explain in some reasonable detail how this solution achieves the desired fairness

2. (5 points) Each chord may have only one non-async method. Explain the rationale for this restriction by clearly explaining what fundamental difficulty would arise if a chord had two or more non-async methods.

3. (6 points) Shown below is the simple client-server system. Develop a variation of the original server so that the client is allowed to close the session after the client has sent a request but before the client has received the corresponding reply. This models a server that allows the client to cancel a pending request.

    Client(open, close, request, reply) =
               open.request.reply.request.reply.close.Client(open, close, request, reply)

    IdleServer(open, request, reply, close) =
               open.BusyServer(open, request, reply, close)

    BusyServer(open, request, reply, close) =
                request.reply.BusyServer(open, request, reply, close)
              + close.IdleServer(open, request, reply, close)

4. (4 points) State four  insightful questions for discussion in class about the Pi-calculus or transactional memory based on your reading of the papers available on our web site.