Polling is the active querying of the hardware status by the client process, this is typically a low-level interaction with simple hardware

Check device status flag; process continually fetches this status data in a busy/wait loop This makes it very simple, but also very inefficient

Ex:

while (num_bytes) {
	while (device_not_ready()) {
		busy_wait();
	}
	if (device_ready()) {
		transfer_byte_of_data();
		num_bytes--:
	}
}