Home

IO

IO, short for input/output, is a general term for the communication between a computer system and its environment. This encompasses the transfer of data to and from internal components, peripherals, storage devices, networks, and other systems. In computing, I/O performance is a key factor in overall system responsiveness and throughput.

IO devices are categorized as input devices (for example keyboards, mice, scanners, microphones) and output devices

IO pathways are implemented through hardware buses and controllers, plus software support in the operating system.

Performance is influenced by latency, bandwidth, and contention. Techniques such as buffering, caching, and pipelining help

In software, I/O is commonly expressed as streams and file operations, with APIs offering read, write, and

(monitors,
printers,
speakers).
Some
devices
are
bidirectional,
such
as
network
interfaces
and
most
storage
drives,
handling
both
input
and
output
operations.
I/O
requests
are
issued
by
applications
and
device
drivers
and
are
scheduled
by
the
OS.
Data
transfer
techniques
include
programmed
I/O,
interrupt-driven
I/O,
and
direct
memory
access
(DMA).
Blocking
and
non-blocking
operations,
synchronous
and
asynchronous
models
describe
how
the
caller
waits
for
completion.
smooth
data
flow.
The
OS
often
maintains
a
separate
I/O
subsystem
and
device
drivers;
IO
virtualization
and
emulation
can
provide
virtualized
I/O
resources
in
environments
such
as
hypervisors.
seek
operations.
Common
concepts
include
file
descriptors,
handles,
pipes,
and
network
sockets.
The
term
I/O
is
also
used
in
broader
contexts,
such
as
database
input/output
and
inter-process
communication.