o Polling - periodically check the device status, however, requires CPU to stop what it's doing, hence, wastes time.
o Interrupts - device sends a signal to the CPU when its ready, this invokes an interrupt handler within the OS, then the interrupt is then received/redirected and decides when the CPU will handle it.