Semester Exam

 

  1. In chapter 2, several programming language constructs were discussed which permit parallel program executions. Discuss the practicality of using these languages for truly distributed systems (i.e. where different processors are separated by significant distances and communicate through a wide area net). Your discussion should include what are the significant issues and problems to be solved. You do not need to propose a solution. For example, could programs like that given in figures 2.3, 2.5, 2.6, 2.9, 2.10, 2.13 be run over the internet? (10 points)
  2. Do exercise the following exercises in the book (10 points each)

    1. 3.2

      1. P1 is blocked, but either P2 or P3 could proceed

      2. If P2 proceeds and is allocated two units of R3, it can finish and return all its resources

      3. Now P1 is unblocked as well as P3

      4. Assume P3 goes next, then P1

      5. Graph is completely reducible

    2. Either 5.5 or 5.7

      • 5.5
        Yes: for Birman, it is already broadcasted

        Schiper: NO - would have to insert "n-1" pairs into V_Pi to record broadcast state

      • 5.7
        Save every minute or other agreed upon time.
        OR one process broadcast when to do the next global state. works if delay is bounded

    3. 6.1

      Assume we did not need L1, then basically you are saying that you can enter a CS without consulting any other process. As soon as you want to enter the critical section and if there are no other requests in the queue, you can enter the CS. If two processes want to enter the critical sections approximately simultaneously (i.e. before the request message is received), they can do so violating mutual exclusion
      (saying because of communications failure only -2)

      Is it possible to have L1 true but not L2 since other processes will reply even if they have a request that has a lower timestamp

    4. 11.7

      Definition 1: Unstable if input load is greater than processor capacity to serve
      Definition 2: If it is possible to perform fruitless actions indefinitely
      NOTE: does not matter that the amount of work looking for a receiver is greater than the work done!

      (non-probabilistic argument - exactly equal loads) Assume that all processors are equally loaded and that all try to find a receiver machine and cannot.
      Also assume that each machine is probed equally often
      Therefore each job will take 1 + 5*(.003 + .003) = 1.03 seconds.
      Thus any load offered at rate greater than 1.03 second per processor will be unstable.

      (probabistic argument). assume P is the probability of being overloaded.
      Then with probability P will request a receiver who with probability P will refuse.
      Thus each new task will acquire the following extra load.
      P(1-P)*.006 +  P*P(1-P)*.012+P*P*P*(1-P)*.018+P*P*P*P*(1-P)*.024+P*P*P*P*P*.030
      (NOTE the first case is a special case where P = 1).
      Add 1 to this expression to get the actual processing rate. Any offered load at rate greater than this will cause instability.

       

    5. 12.5 and 12.6

      12.5:

      See slides (HTML)

      ROUND 1) Z goes to Ez0, sends ROLLBACK(Z,0) to X and ROLLBACK(Z,1) to Y
      Y sends ROLLBACK(Y,1) to Z and ROLLBACK(Y,0) to Z
      X sends ROLLBACK(X,0) to Y and ROLLBACK(X,0) to Z
      Round 2) Y rollsback to ey0 (as per rollback from Z)
      Now Y sends ROLLBACK(Y,0) to X, all else the same
      Round 3) X rollsback to ex0 (and if further processes would tell sent 0 to them, possibly causing more rollbacks (extend current idea)     

      12.6: move checkpoint y1 after sending ey3
      Now Rollback(Y,3) sent to X. Rollback(Y,2) sent to Z - other rollbacks are the same
      Since checkpoint information shows that there are no orphans messages, we are done.

       

    6. 13.4

       

  3. One of the problems in private key encryption is how to send a user's private key to the Authentication Server. Describe how you could use a public key encryption algorithm to solve this problem. (10 points)

    1) User sends message encoded with AS public key the following message (A,Ia,KA). TO authenticate that this is A, AS sends to A encrypted with A's public key (Ia,Ib). A sends back Ib encrypted with public key of AS

    2) user A sends to AS (A,Eprivatekey of A(A,KA,I) AS decrypts

     

  4. In class, we had said that in encryption we sometimes pass back information which the receiver already knows and it therefore had 0 information content (for example, in message 15.20, page 424, the field containing "A" is already known to the receiver which is "A").  That is not true. There is at least one bit of information contained in that presumably unnecessary piece of information. What is it? What would be the consequence of not including this piece of information. (10 points)

    The "one" bit of information is that this