Assignment 4: Programming, Hacking, Sockets and Threads
Assignment Day | September 15, 2009 |
Due Date | September 22, 2009 (Tuesday) |
Email (time stamp) and Typed Hardcopy before class is required. |
Question 1 : Hacking / Programming Expertice.
a) What is the difference between C++ structures and classes? Someone answered in the class already but I would like for you to think about this too.
b) What is the difference between C and C++ structures?
Question 2 : Little or Big Endianess.
a) Is odin, little endian or big endian? (you may use the code (and run it) listed from the example code from the schedule page to experimentally test your answer if you like, name of the program is enidan.c and it is in the echo sub folder) to test it.
Here is a more direct plink:
http://www.cs.uga.edu/~maria/classes/4730-Fall-2009/project3sockets/echo/
b) What type of endianess is your laptop / workstation (please also note what type of processors you have (e.g., x86).
c) What type of endianess (big/little) is atlas? (in your answer note the processor type too).
Question 3 : RPC : Remote Procedure Calls (10 pts)
Please read section 3.6.2 about Remote Procedure Calls in the textbook (it is in the last 2 or 3 editions of the book). Now answer:
a) Question 3.4: which is:
With respect to the RPC mechanism, consider the "exactly once" semantic. Does the algorithm for implementing this semantic execute correctly even it the ACK message back to the lcient is lost due ot a network problem? Describe the sequence of messages and discuss whther the "excactly once" is still preserved.
b) Question 3.5: which is:
Assume that a distributed system is susceptible to failure. What mechanism whould be required to guarantee the "exactly once" semantic for execution of RPCs?
Question 4 : Threads
What is the difference between kernel level therads and user level threads? Under what circumstances is one type better than the other? [text book 4.2]
Question 5 : Reading
a) Why are Optimistic Active Messages (OAM), "optimistic"?
b) Why are OAM - "active"?