A processor sends I/O request to I/O controller, which sends the request to the disk. The processor continues executing instructions.
The disk sends data to I/O controller; data is placed at memory address specified by DMA command.
The disk sends an interrupt to the processor to indicate that I/O is done.