circuitcellar.com
Magazine Support   Digital Library   Products & Services   Suppliers Directory 
 
 





EQ Archive

 

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 2—One 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 3—
How does this relate to measuring position using GPS signals?

Answer

Problem 4—It 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 5—In 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 6—Consider 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 7—In 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?

Answer

Problem 8—In the case of multiple threads or processes running on a single CPU, what is one simple way to make sure sequences of operations are performed atomically?

Answer

Previous Month

   

E-mail eq@circuitcellar.com with questions or comments.