CMSC 714 Midterm (Fall 2003)

 

(1)  This exam is closed book, closed notes, and closed neighbor.

 

(2)     You have 70 minutes to complete this exam.  If you finish early, you may turn in your exam at the front of the room and leave.  However if you finish during the last ten minutes of the exam please remain seated until the end of the exam so you don't disturb others.

 

(3)     Write all answers in the supplied exam booklet. Start each new problem (but not sub-problem) on a new page.

 

(4)     Partial credit will be given for most questions assuming I can figure out what you were doing.

 

(5)     Please write neatly. Print your answers if your handwriting is hard to read. If you write something, and wish to cross it out, simply put an X through it.

 

1. (20 points) Define and explain the following terms:

A. Vector Processor

B. Causal Ordering

C. Gang Scheduling

D. Space Sharing

2. (25 points) Several of the parallel computers we looked at this semester provided globally shared memory but lacked cache coherence. 

A. What were two of these systems?

B. What are the implications of having such an architecture on the programmer and programming model (for example which of the models we looked at would be well suited for this type of machine)?

3. (20 points) The EEL and Dyninst systems each are designed to modify compiled programs.  Compare and contrast how the tools work and their various features.

4.(20 points) Some proponents of shared memory programming models claim the major advantage of shared memory over message passing is that you don’t have to worry about where your data is located since all memory is shared. Explain why this assumption is naïve if performance matters.

5.(15points) The Eraser system uses the lockset algorithm to find synchronization problems.

A. Will the system find all races in a program (explain your answer)?

B. Explain how and why a finite state machine is maintained per variable?