September
2004, Issue 170
Test Your EQ
Each
month, Test Your EQ presents some basic engineering
problems for you to test your Engineering Quotient.
What's your EQ?
|
Problem
1—One
way to measure distance is to measure the time-of-flight
of an electromagnetic signal, such as a modulated laser
beam. The time delay between the transmitted signal and
the received signal represents the distance traveled by
the signal. What kind of time resolution is needed to
measure distances with a resolution of 1 cm?
Answer
Problem
2One way to measure small time delays is to
do it in terms of the phase shift of a sine wave signal.
For example, if you modulate the beam with an 83-MHz sine
wave, which has a wavelength of approximately 3.6 m, one
degree of phase shift represents about 1 cm of distance.
However,
measuring phase shifts accurately at high frequencies
has its own set of problems. How can this be mitigated?
Answer
Problem 3How does this relate to measuring position
using GPS signals?
Answer
Problem
4It is well known that LEDs are much more efficient
panel indicators than the incandescent bulbs that they
replaced, by one or two orders of magnitude. How do LEDs
compare to incandescent bulbs in terms of efficiency for
general lighting?
Answer
Problem
5In computer systems, there are many situations
in which data must be shared among multiple asynchronous
activities, including multiple threads within a process,
between processes on a single CPU, or even among multiple
CPUs accessing a shared memory. What is the one key concept
that is required to share data successfully in such circumstances?
Answer
Problem
6Consider the case of one process feeding data
to a second process via a shared queue or FIFO buffer.
The queue consists of an array of data objects, a “head”
index value (a single machine word) that gives the location
of the next item to be added to the queue, and a “tail”
index that gives the location of the oldest item in the
queue. The source process writes a new data item using
the head index and then increments it, wrapping as necessary.
Similarly, the receiving process reads a data item using
the tail index and then increments it. What additional
protections are required for this queue to ensure that
access errors never occur?
Answer
Problem
7In many cases, an operation such as test-and-set
of a bit or incrementing an index is a read-modify-write
operation on memory that is not inherently atomic. Under
what circumstances must this operation be protected by
an access control?