13.
1 Overview
Input/Output (I/O) systems are essential components of an operating system,
managing communication between the computer and peripheral devices such as
keyboards, mice, printers, disks, and network interfaces. The I/O system provides
an abstraction layer that simplifies hardware interaction for users and applications.
Key Components of an I/O System
I/O Devices – Physical hardware like disks, keyboards, monitors, and
network adapters.
Device Controllers – Hardware components that manage I/O devices and
interact with the CPU via buses.
Device Drivers – Software that provides a standardized interface between
the OS and device controllers.
Functions of the I/O System
Device Independence – Applications interact with devices through high-
level APIs without needing to manage hardware specifics.
Error Handling – Detects and reports hardware failures or I/O errors.
Buffering and Caching – Improves performance by temporarily storing data
before transferring it to/from hardware.
Scheduling and Queuing – Manages multiple I/O requests efficiently.
Protection and Security – Prevents unauthorized access to devices and data.
I/O systems are critical for performance optimization since they often involve slow,
resource-intensive operations. Modern OSs implement various techniques like
asynchronous I/O and direct memory access (DMA) to improve efficiency
13.2 I/O Hardware
I/O hardware consists of multiple components that facilitate data exchange
between a computer and peripheral devices.
Categories of I/O Devices
Storage Devices – Hard drives (HDDs), Solid-State Drives (SSDs), USB
flash drives.
Input Devices – Keyboards, mice, scanners, touchscreens.
Output Devices – Monitors, printers, speakers.
Network Devices – Ethernet cards, Wi-Fi adapters.
Communication Between the CPU and I/O Devices
The CPU interacts with I/O devices through buses and controllers. Communication
occurs in the following ways:
Polling – The CPU repeatedly checks device status (inefficient due to busy-
waiting).
Interrupt-Driven I/O – Devices send signals to the CPU when they need
attention, reducing CPU workload.
Direct Memory Access (DMA) – A dedicated controller transfers data
between memory and I/O devices without CPU intervention, significantly
improving performance.
Bus Structures
System Bus – Connects the CPU, memory, and I/O devices.
Peripheral Buses – Include PCIe, USB, SATA, and Thunderbolt, enabling
high-speed data transfer.
Efficient I/O hardware management is crucial for system performance, particularly
in multitasking and real-time systems, where latency and throughput are critical
concerns.