Question 1, Bakery Algorithm. As I suspected, this was the most difficult question, with very few 20/20 scores. I'm only slightly surprised by the poor showing here, because the questions I asked required a very detailed understanding of the nuances of how it works, but we did go over it in class about three times I think. On part (d), too many people were concerned about fairness and starvation, when in fact the algorithm just will not work at all with the modification proposed. It simply does not insure mutual exclusion.
Question 2, Bankers Algorithm. Most people did fairly well on this one. Only a few could not work out the safe sequence of process completions. Several claimed that it is a scheduling algorithm used to schedule the proper execution order for the processes to prevent deadlock. This is not the case at all. It simply says that there exists a scheduling order which would allow a deadlock free execution of the processes, but in no way tries to schedule the processes in that order.
Question 3, Virtual Memory. I was really shocked at the amount of difficulty people had with this one, it's really quite simple. A large number of people did not multiply the frame index (found in the page table) by the frame size (same as page size), but instead just added the offset to the frame index (b127 + 6d in the first part for example). See figure 8.12 on page 258 of the text, or slide 8.17 in the lecture notes for a perfectly clear picture of how this works. Thinking back on this, I realized we only went over this once in class, so perhaps you thought it was not important. I only did it once since I thought it too simple for repeated discussion.
Question 4, Page Replacement Algorithm. Most people did well on this one, although several just gave fluff for part (d) with things like "it is easier to implement". Why is it easier to implement? See the answer key for details.
Question 5, Context switching. Again most people did reasonably well, although only a few gave what I consider to be three good reasons that context switches are expensive. If you gave 1 good reason, you got 5 points; 2 fair reasons - 5 points; 2 good reasons - 8 points; 3 good reasons - 10 points.
Question 6, Mutual Exclusion. Almost everyone knew that Algorithm 3 met all three requirements for a good algorithm, although several confused the purpose of the flag[i] versus the turn variables.
Question 7, File System Implementation. Almost everyone did extremely well on this one. Perhaps the amount of emphasis I gave this in class had something to do with that. However, a large number wanted to use the mutex to protect concurrent writes or read while writing, which is not really the case. Unix, for example, does nothing to prevent concurrent writes (try it!). I took off 2 points if you chose this approach, since there are numerous other good choices (see the answer key).
Question 8, Monoposoft. Again, just about everybody understood the advantages and disadvantages of the large cluster size, and just about everyone got full credit. Perhaps the most important thing to say is the effect of internal fragmentation, and I took off a couple of points if you did not say that.
| Student ID (anonymous) | Q1 | Q2 | Q3 | Q4 | Q5 | Q6 | Q7 | Q8 | Total |
| 19 | 20 | 10 | 8 | 15 | 13 | 10 | 15 | 10 | 101 |
| 38 | 20 | 10 | 10 | 14 | 13 | 7 | 15 | 10 | 99 |
| 14 | 15 | 10 | 14 | 13 | 13 | 8 | 15 | 10 | 98 |
| 22 | 20 | 7 | 6 | 15 | 15 | 10 | 15 | 10 | 98 |
| 01 | 18 | 10 | 10 | 15 | 10 | 8 | 13 | 10 | 94 |
| 16 | 18 | 10 | 4 | 13 | 15 | 10 | 13 | 10 | 93 |
| 42 | 17 | 10 | 8 | 15 | 8 | 10 | 15 | 10 | 93 |
| 02 | 15 | 9 | 10 | 15 | 9 | 10 | 15 | 10 | 93 |
| 13 | 18 | 10 | 6 | 14 | 11 | 8 | 15 | 10 | 92 |
| 29 | 16 | 10 | 6 | 15 | 13 | 7 | 13 | 10 | 90 |
| 15 | 17 | 10 | 10 | 14 | 10 | 9 | 10 | 10 | 90 |
| 04 | 15 | 8 | 10 | 14 | 12 | 10 | 10 | 10 | 89 |
| 49 | 20 | 10 | 5 | 11 | 10 | 9 | 15 | 8 | 88 |
| 17 | 16 | 10 | 5 | 14 | 10 | 9 | 13 | 10 | 87 |
| 09 | 15 | 10 | 6 | 14 | 11 | 9 | 12 | 10 | 87 |
| 30 | 18 | 10 | 6 | 11 | 15 | 7 | 10 | 9 | 86 |
| 43 | 15 | 10 | 8 | 11 | 8 | 9 | 15 | 10 | 86 |
| 50 | 16 | 9 | 6 | 14 | 8 | 9 | 13 | 10 | 85 |
| 27 | 18 | 10 | 6 | 14 | 11 | 5 | 12 | 8 | 84 |
| 37 | 8 | 10 | 10 | 12 | 11 | 8 | 15 | 10 | 84 |
| 18 | 18 | 9 | 2 | 14 | 9 | 8 | 13 | 10 | 83 |
| 33 | 11 | 9 | 2 | 12 | 15 | 9 | 13 | 10 | 81 |
| 45 | 16 | 9 | 5 | 13 | 5 | 10 | 13 | 10 | 81 |
| 06 | 16 | 9 | 8 | 12 | 10 | 9 | 7 | 10 | 81 |
| 07 | 14 | 10 | 8 | 14 | 5 | 10 | 9 | 10 | 80 |
| 39 | 13 | 7 | 2 | 13 | 15 | 5 | 15 | 10 | 80 |
| 11 | 17 | 7 | 6 | 11 | 8 | 10 | 12 | 8 | 79 |
| 32 | 15 | 5 | 2 | 14 | 10 | 7 | 15 | 10 | 78 |
| 48 | 15 | 6 | 5 | 13 | 11 | 6 | 12 | 10 | 78 |
| 47 | 14 | 10 | 2 | 13 | 5 | 8 | 15 | 10 | 77 |
| 53 | 17 | 7 | 4 | 14 | 13 | 5 | 7 | 10 | 77 |
| 41 | 17 | 9 | 4 | 14 | 8 | 7 | 13 | 5 | 77 |
| 26 | 15 | 9 | 6 | 15 | 8 | 6 | 12 | 6 | 77 |
| 36 | 16 | 9 | 4 | 12 | 8 | 9 | 9 | 9 | 76 |
| 28 | 10 | 9 | 6 | 11 | 5 | 7 | 15 | 10 | 73 |
| 20 | 13 | 10 | 2 | 15 | 6 | 8 | 9 | 7 | 70 |
| 44 | 14 | 9 | 5 | 11 | 4 | 6 | 9 | 8 | 66 |
| 21 | 10 | 9 | 4 | 14 | 9 | 6 | 8 | 6 | 66 |
| 51 | 10 | 6 | 5 | 14 | 8 | 6 | 8 | 6 | 63 |
| 03 | 9 | 9 | 2 | 12 | 5 | 3 | 15 | 8 | 63 |
| 31 | 14 | 5 | 5 | 13 | 5 | 6 | 9 | 5 | 62 |
| 46 | 12 | 10 | 5 | 10 | 2 | 3 | 8 | 10 | 60 |
| 52 | 6 | 5 | 4 | 15 | 2 | 7 | 11 | 10 | 60 |
| 40 | 4 | 9 | 2 | 10 | 2 | 4 | 12 | 10 | 53 |
| 23 | 4 | 6 | 2 | 14 | 8 | 5 | 5 | 6 | 50 |
| 10 | 8 | 4 | 0 | 2 | 2 | 10 | 11 | 10 | 47 |
| 05 | 5 | 6 | 2 | 10 | 2 | 5 | 6 | 3 | 39 |
| 24 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 34 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 35 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 25 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 08 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 12 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |