Polling for an I/O completion can waste a large number of CPU cycles if the proc
ID: 3541294 • Letter: P
Question
Polling for an I/O completion can waste a large number of CPU cycles if the processor
iterates a busy-waiting loop many times before the I/O completes. But if the I/O device
is ready for service, polling can be much more efficient than is catching and dispatching
an interrupt. Describe a hybrid strategy that combines polling, sleeping, and interrupts
for I/O device service. For each of these three strategies (pure polling, pure interrupts,
hybrid), describe a computing environment in which that strategy is more efficient than
is either of the others.
Explanation / Answer
A hybrid approach could switch between polling and interrupts depending
on the length of the I/O operation wait. For example, we could poll and loop N
times, and if the device is still busy at N+1, we could set an interrupt and sleep.
This approach would avoid long busy-waiting cycles. This method would be best
for very long or very short busy times. It would be inefficient it the I/O completes
at N+T (Where T is a small number of cycles) due to the overhead of polling plus
setting up and catching interrupts. Pure polling is best with very short wait times.
Interrupts are best with known long wait times