T25 Dec 18, 2025 2 min read

I/O

Input/output: moving data between a program and the outside world (disk, network, devices), often slower than CPU work and a common source of waiting.

Definition

I/O (input/output) is moving data between a program and the outside world: disks and filesystems, networks, terminals, devices, and sometimes other processes.

Why I/O changes how programs behave

Compared to CPU execution, I/O is often slower and has more variability. That means many “performance problems” are actually “waiting problems”.

When a program is waiting on I/O, it may look like it’s “hung” even though it’s just blocked until:

  • the disk returns data
  • the network delivers a response (or times out)
  • a pipe or network socket becomes readable or writable

How the OS is involved

I/O is typically initiated in user space, but carried out by the kernel via system calls (directly or through libraries). That’s why permissions, resource limits, and kernel behavior can change I/O outcomes between environments.