G52CON Exam Feedback 2007-2008

General Comments

The exam was attempted by 107 candidates. Many candidates did well, with about 30% of students obtaining a mark in the 2:1 or first class range. However a disappointing number of students did poorly. The average for the exam was 48 (excluding zeros), and the highest mark was 89.

Question 1

This was a compulsory multiple choice question and was attempted by all 107 candidates.

Most candidates seemed to have fewest problems with parts (c), (d) and (f) and most problems with part (a). Otherwise, errors were more or less uniformly distributed across the other question parts.

Minimum mark: 0 Maximum mark: 25 Average mark: 12.6

Question 2

This question was on mutual exclusion protocols, and was attempted by 102 candidates.

In part (a) most students were able to provide a reasonable definition of interference and critical sections, and the role of mutual exclusion protocols in avoiding interference. In part (b), many candidates could correctly say whether the properties held for the algorithm given, though the quality of the explanations was more variable. As ever, some candidates misremembered (or misunderstood) what some of the properties mean. A relatively small number of candidates could say how many classes of critical sections there were in part (c).

Minimum mark: 0 Maximum mark: 25 Average mark: 15.1

Question 3

This question was on semaphores and barrier synchronisation and was attempted by 80 candidates.

In part (a), nearly everyone was able to give a reasonable definition of a semaphore. The most common mistake here was failing to mention that the P and V operations must be implemented as atomic actions. Part (b) was less well answered. Some candidates appeared to misread the question, and gave a cyclic buffer using semaphores from the lectures. Others gave solutions using general semaphores which did not cause processes reaching the barrier to wait, or binary semaphore solutions which caused all processes (rather than just the first n-1 processes) reaching the barrier to wait. In part (c), most candidates correctly stated that failure of a process could result in deadlock, though fewer were able to use the nProc variable to avoid this.

Minimum mark: 1 Maximum mark: 24 Average mark: 9.6

Question 4

This question was on monitors and producer consumer problems and was attempted by 75 candidates.

Most candidates were able to provide a reasonable definition of a monitor in part (a). Many candidates were also able to implement the ArrayBlockingQueue in part (b). Common mistakes included providing a "pure" monitor solution which relied on condition variables (which are available in Java, but only as utility classes in java.util.concurrent, and can only be used while holding the associated lock), failing to correctly update the indices of the next full and empty slot and failing to provide an explanation of the the solution. However only a small number of candidates could correctly answer part (c). Most solutions either didn't wait at all, waited indefinitely or busy waited, continually checking the number of items in the queue. (The simplest solution used a timed wait().)

Minimum mark: 0 Maximum mark: 24 Average mark: 10

Question 5

This question was on Java and readers/writers problems and was attempted by 37 candidates.

Most candidates were able to give a reasonable definition of the readers and writers problem and many could also explain that giving preference to either reader or writer process could result in starvation. The most common mistake was in not explaining what differentiates reader and writer processes. In part (b), many candidates were able to reproduce the dictionary example using read write locks from the lectures (or solved the question from scratch). The most common errors were failing to use try/finally and/or acquiring a read or write lock within the try block. However a significant number of candidates gave solutions which used an arbitration monitor, which either weren't Java, or which deadlocked or had other problems. In part (c), some candidates could sketch how to allow remote access to the Catalogue class using RMI, though none of the answers given were complete.

Minimum mark: 1 Maximum mark: 20 Average mark: 10

Question 6

This question was on correctness and CTL and was attempted by 21 candidates.

It was well answered by about half the candidates who attempted it. Nearly all were able to give a reasonable explanation of why proving properties of concurrent programs is important. In part (b), most candidates got the second property (that a process completes its critical section in finite time) correct and could explain why the property holds in the model; however there were more problems with expressing absence of deadlock in CTL.

Minimum mark: 2 Maximum mark 25: Average mark: 16


This file is maintained by Brian Logan

Last modified: 15:19, 17-Jun-2008