23. Input/output architecture and DMA
Move data between processors and devices through buses, memory-mapped registers, direct memory access, and interrupt controllers. Follow a device request from software through the operating system, controller, and hardware completion path.