Interrupts require hardware support and can be complex to handle. For simple systems or when a quick response is needed, there must be a simpler way for the CPU to check if a device is ready.
A technique where the CPU repeatedly checks (polls) a device’s status register in a loop until the device is ready or operation completes, instead of using interrupts.
- CPU writes command to device controller registers
- CPU enters a loop: read status register repeatedly
- If status indicates “busy” or “not ready”, keep looping
- When status changes to “ready” or “complete”, proceed
- Read/write data as needed
- Simple to implement, no interrupt hardware needed
- CPU is fully occupied during polling (can’t do other work)
- Gives predictable timing for real-time systems
- Wasteful for slow devices (CPU spins doing nothing)
- Built from: O System, Device Controller
- Builds into: Interrupt Handler (alternative to polling)
- Related: DMA, O Request to Hardware Operation
- Contrasts with: Interrupt Handler (event-driven vs poll-driven)
- Can waste enormous CPU cycles for slow devices
- May miss events if polling interval is too long
- Useful for small embedded systems without interrupt controllers
- High throughput for bulk transfers (once polled, transfer quickly)