Section 8: Input Output Management - bmitch26/Operating-Systems GitHub Wiki
The subsystem of an operating system responsible for managing all input and output (I/O) operations between the computer and its peripheral devices (e.g., keyboards, monitors, printers, and storage devices). It ensures smooth and efficient data transfer, resource allocation, and communication between hardware and software.
"I/O Scheduling in Operating Systems." GeeksforGeeks, n.d., https://www.geeksforgeeks.org/i-o-scheduling-in-operating-systems/. Accessed 22 Nov. 2024.
Device Drivers
Software programs that act as a bridge between the operating system and hardware devices. They translate OS-level commands into device-specific instructions and enable communication between the system and the hardware.
"Device Driver and Its Purpose." GeeksforGeeks, n.d., https://www.geeksforgeeks.org/device-driver-and-its-purpose/. Accessed 22 Nov. 2024.
Device Controllers
Hardware components that manage and control the operation of a specific device. They interpret commands from the CPU and convert them into signals for the device. Examples include disk controllers, network controllers, and display controllers.
"Device Controllers in Operating System." GeeksforGeeks, n.d., https://www.geeksforgeeks.org/device-controllers-in-operating-system/. Accessed 22 Nov. 2024.
Interrupts
Signals sent by hardware or software to the CPU to indicate an event requiring immediate attention. Interrupts temporarily halt the current execution flow to execute a specific piece of code (interrupt handler or service routine) and resume the previous operation afterward. Types include: • Hardware Interrupts: Triggered by devices (e.g., keyboard input, timer events). • Software Interrupts: Triggered by running programs (e.g., system calls).
"Interrupts." GeeksforGeeks, n.d., https://www.geeksforgeeks.org/interrupts/. Accessed 22 Nov. 2024.
"Difference Between Hardware Interrupt and Software Interrupt." GeeksforGeeks, n.d., https://www.geeksforgeeks.org/difference-between-hardware-interrupt-and-software-interrupt/. Accessed 22 Nov. 2024.
DMA (Direct Memory Access)
A mechanism that allows hardware devices to directly transfer data to or from memory without involving the CPU for every byte. DMA improves performance by offloading data transfer tasks from the CPU.
"Direct Memory Access." GeeksforGeeks, n.d., https://www.geeksforgeeks.org/direct-memory-access/. Accessed 22 Nov. 2024.
Polling
A process where the CPU continuously checks (or "polls") a device's status to see if it is ready for I/O operations. While simple, polling is inefficient as it keeps the CPU busy waiting for a device to become available.
"Difference Between Interrupt and Polling." GeeksforGeeks, n.d., https://www.geeksforgeeks.org /difference-between-interrupt-and-polling/. Accessed 22 Nov. 2024.
Spooling
Simultaneous Peripheral Operations On-Line (SPOOLING) is a method of managing I/O devices by temporarily storing data in a buffer (e.g., a disk or memory) until the device is ready to process it. Commonly used in printing, where multiple print jobs are queued for sequential processing.
"Spooling in Operating System." Javatpoint, n.d., https://www.javatpoint.com/spooling-in-operating-system. Accessed 22 Nov. 2024.
Disk Structure
The physical and logical organization of data on a storage disk: • Physical Structure: Cylinders, platters, tracks, and sectors.
"Spooling and Buffering." Johns Hopkins University, n.d., https://www.cs.jhu.edu/~yairamir/cs418/os8/sld019.htm. Accessed 25 Nov. 2024.
• Logical Structure: The abstraction that the operating system uses to organize data into files and directories.
Disk Scheduling Algorithms
Disk scheduling algorithms are strategies to decide the order in which disk I/O requests are serviced. These algorithms aim to minimize seek time, latency, and throughput issues. These include: • First-Come, First-Served (FCFS): Processes requests in the order they arrive. • Shortest Seek Time First (SSTF): Processes the request nearest to the current head position. • SCAN/Elevator: Moves the disk head in one direction, servicing requests, then reverses direction. • Circular SCAN (C-SCAN): Services requests in one direction and jumps back to the start. • LOOK and C-LOOK: Variants of SCAN and C-SCAN, stopping at the last request in the queue instead of traversing to the end of the disk. (See more about disk scheduling algorithms in ‘File Systems’ section).