Now the OS can choose among the available processes, and restart
whichever one is of highest priority.
The key advantage of interrupt-driven I/O is that the CPU works on other processes while the controller
transfers the data to the device. This is a very substantial improvement in the efficient use of computing
resources, but it is still true that processing interrupts imposes overhead which can be substantial, especially
when interrupts are frequent.
Direct Memory Access
A further improvement in efficiency is possible when the I/O device is relatively fast, like a disk drive
or a tape drive. The computer design may include one or more direct memory access (DMA) controllers
(or channels). A DMA controller is a computer within the computer that specializes in I/O, and its purpose is
to drastically reduce the number of interrupts that the OS must service.
When DMA is used, the driver sets up the DMA transfer once, passing the address of the buffer to be
transferred to the DMA controller and telling the DMA controller which device to transfer to/from. The driver
then returns to the OS, and the OS begins executing another process. The DMA controller takes care of moving
the information directly from/to memory and to/from the device.
Pages:
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272