At this time of year one often finds high stress levels among
graduate students here at Madison, since we're enjoying the
screening exams process. Students who want to pursue doctoral
degrees must pass a set of difficult exams in computer science
within a certain time period. We must pass one depth (four
hour) exam, and two breadth (two hour) exams in different
subject areas.
One of my friends came up with a great way to apply his
nervous energy (and cynical wit), which was to write this
wonderful parody of an Operating Systems screening exam.
Some of the humor is particularly poignant to people familiar
with the particular exam, since the questions are recognizable
twists on topics that seem to always come up. For example,
Question 1 is about the paper "On the Duality of Operating
System Structures" by Lauer and Needham, [Proc. 2nd Int'l
Symposium on Operating Systems, IRIA, October 1978]. And
Question 8 is clearly about the controversy over whether
network file servers should be stateless or maintain state.
Even without this "inside" knowledge, this exam is very funny.
My friend is shy about posting this himself, but I think it
deserves a wide audience, so I twisted his arm until he agreed
to let me submit it.
Computational Pedantry
Instructions:
For the BREATH exam: Answer any 4 of questions 1-6.
For the DEATH exam: Answer any 6 of questions 1-6, and any 5 of
questions 7-10. You are expected to spend about two hours on each
fifth of the exam. You are allowed to spend about two hours on
each half of the exam.
BREATH QUESTIONS
Breath 1. Duolity:
In principle, Batman/Robin and Electrawoman/Dynagirl superheros
should have similar power and performance. In practice, most
Batman/Robin TV programs have achieved better popularity than
Electrawoman/Dynagirl programs.
(2a) Describe two opportunities for tasteful dress or believable
plot offered by a typical Batman/Robin program that are not
offered by a typical Electrawoman/Dynagirl program. Explain
why these optimizations occur more often in the Batman/Robin
programs.
(2b) Describe how advertising buffers between episodes may be
implemented in a Batman/Robin program with strictly premium
channels.
Breath 3. Resource Management:
Every resource management system needs protection against overuse
or abuse of the resource. Three general strategies are preven-
tion, avoidance, and detection & recovery.
(3a) Describe these strategies, carefully distinguishing between
them, and give an example of each.
(3b) Give specific arguments for and against applying the detec-
tion & recovery strategy mentioned in N. Wirth's paper "Pro-
gram Development Through Stepwise Refinement."
Breath 5. Encryption:
Pbafvqre n flfgrz jurer vagrecebprff pbzzhavpngvba vf ivn
zrffntrf. Nyy zrffntr pbzzhavpngvba orgjrra znpuvarf vf
rapelcgrq. Gur rapelcgvba shapgvba pna or cynprq ng nal bs
frireny yriryf va gur flfgrz. Qrfpevor gur nqinagntrf naq qvfnqi-
nagntrf bs rnpu bs gurfr nygreangvirf.
(5a) Rnpu xreary vf erfcbafvoyr sbe rfgnoyvfuvat n frpher punaary
gb rnpu bgure xreary gb juvpu vg gnyxf.
(5b) Rnpu cebprff vf erfcbafvoyr sbe rfgnoyvfuvat n frpher punaary
gb rnpu bgure cebprff gb juvpu vg gnyxf.
(5c) Gur argjbex freivpr cebivqref (tngrjnlf, ebhgref, rgp.) ner
erfcbafvoyr sbe rfgnoyvfuvat frpher punaaryf.
DEATH QUESTIONS
Death 8. Tasteless/Tasteful Hosts:
A so-called tasteless host is one that does not maintain any
information about guests between parties. For this question,
assume parties are not replicated (no party is held in more than
one veranda).
(8a) How would you accomplish catering with a tasteless server?
(8b) How does recovery from guests trashing the lawn at a taste-
less host party differ from recovery at a party that main-
tains open invitations?
(8c) Consider a tasteless server where you have multiple guests
wanting to speak simultaneously to a given host. How can you
enforce consistency of access such that all eats and bytes
from the server appear to obey some serialization? What are
the performance ramifications of providing such consistency?
Death 9. Synchronization:
(9a) Briefly describe the principal differences between "doing
lunch" and "you MUST call me" primitives.
(9b) Describe problems which arise when distance vector routing
algorithms are used and how these may or may not be corrected
by "doing lunch."
(9c) How have the presence of hall monitors affected development
of these primitives?
Death 10. Distributed Shared Memory:
A single virtual address space can be supported simultaneously
across the (homogeneous) processors of a collection of worksta-
tions distributed across a local area network.
(10a)
Implement such a scheme.
(10b)
Integrate your scheme into the following three kernels, and
give performance estimates on the modified systems:
(1) UNIX
(2) OS/360
(3) THE
(From the "Rest" of RHF)