Quiz 1
This quiz covers the Chapter 1 of Tanenbaum. Please allow yourself
up to 1 hour to take the quiz, and return it to me by 10:00 AM, Tuesday,
September 9, if you would like for me to mark it. I will post my answers
via the course homepage later that day.
Solutions available online.
- For both a Von Neumann architecture machine and a bus architecture
machine, explain the steps required to read 100 bytes of data from an input
device and then write the same 100 bytes of data on an output device.
Assume that you have at least 100 bytes of working memory available,
and that all input must be read before any output is written.
- When the vacuum-operated Ray-O-Vac computer came out in 1968,
it had only instructions to load or add a value into the accumulator,
load or add the contents of an address into the accumulator, save the value
in the accumulator to an address, and do some simple branching.
Yet it's creator wrote a program that could add two arrays to
produce a third array. Explain how the program might have worked.
- Charlie and Ray work for the Simple Database Company and have
together developed a high level language which they call SDL.
Charlie feels that SDL would best be implemented by translating
the SDL into Level 3 code (operating system machine level),
while Ray advocates translation of SDL into a platform independent
code which would then be interpreted by a platform-specific
Level 4 virtual machine. Discuss and compare the two approaches.
Be sure to consider speed, flexibility, cost, complexity, and
other approriate issues.
Note: The persons named in this problem are fictitious. Any
resemblance to real persons is purely coincidental.
- The Really Useful Computer Company has produced a prototype machine
in which the Level 0 interpreter (hardware interpreting the microcode)
requires about 25 nanoseconds (25 x 10**-9 seconds) per microinstruction,
and the Level 1
interpreter (microcode interpreting the conventional machine language)
requires an average of 12 microinstructions per conventional machine
language instruction. The test program, which places a typical practical load
on the machine, takes 30 seconds to run.
The hardware team believes that given an additional 30 days, it can
shave 5 nanoseconds per microinstruction off the execution time,
with little or no change to the microcode.
The microcode team believes that it can reduce the average number
of microinstructions per conventional machine instruction to 10
within the same period.
- How long will the test program take if only the hardware team succeeds?
- How long will the test program take if only the microcode team succeeds?
- How long will the test program take if both teams succeed?
- The management team feels that only a potential improvement of 33% or more
(as measured by the time required by the test program) would warrant
delaying the machine by a full month. Should they give the teams the
go-ahead?
Copyright © 1997,
Ray Ontko
(rayo@ontko.com).
If you're curious about why I copyright, see
Peter Suber's
Why
Copyright Web Documents?.