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?