Problem Sets
Problem sets are due every two weeks. Full credit is given to solutions that present all the important logical steps and ideas in concise manner.
If you want your solution to be used as an example for the class, we encourage you to use the LaTeX solution template: (TEX) (PDF)
For some problems, you will be required to submit syntaxchecked Tempo code for your distributed algorithms. Information about Tempo can be found in the Tools section.
ASSN #  ASSIGNMENTS  NOTES 

1 
Part A (PDF) Part B (PDF) 

2 
Part A (PDF) Part B (PDF) 

3 
Part A (PDF) Part B (PDF) 
Part B, Problem 4: The question asks for a description of the best algorithm you can devise that solves the kpseudosession problem and its worst case time complexity. The time complexity is measured according to T(A) as defined on p. 557 of the textbook. 
4 
Part A (PDF) Part B (PDF) 

5 
Part A (PDF) Part B (PDF) 

6 
Part A (PDF) Part B (PDF) 
Part A: In an invisible read, the transaction does not write any control information into the shared memory to inform the other transactions on possible read/write conflicts. Hence note that in the context of obstructionfree STM (software transactional memory), invisible reads require a read validation step. 
7  (PDF) 
Open Questions
Is it possible to implement a waitfree 3process FIFO (firstin firstout) queue atomic object using only 2process consensus objects and anynumberofprocess read/write registers?
Problem Set Grading
For each problem set, a group of 34 students will be responsible for working with the course staff to grade the solutions. If possible, we would like the grading to be completed by the Monday afternoon after the homework assignments are handed in, so that we can record the grades and hand them back on Tuesday. The number of times you have to grade over the course of the semester will depend on the size of the class. Part of your grade will depend on the quality and promptness of your work on problem set grading.