DP

L26_Ch11a

Chapter 11: I/O Management and Disk Scheduling

General Information

  • Ninth Edition, Global Edition by William Stallings

  • Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.

11.1 I/O Design

I/O Device Categories

  • Human-readable devices: Communication with computer users.

    • Examples: Printers, terminals, video displays, keyboards, mice.

  • Machine-readable devices: Communication with electronic equipment.

    • Examples: Disk drives, USB keys, sensors, controllers.

  • Communication devices: Interaction with remote devices.

    • Examples: Modems, digital line drivers.

11.2 Device Characteristics

  • Data Rate: Differences in data transfer rates among devices.

  • Application: Influence of device use on software and processes.

  • Complexity of Control: Impact on operating system management based on I/O module complexity.

  • Unit of Transfer: Bytes, characters, or larger blocks can be transferred.

  • Data Representation: Various encoding schemes may be utilized.

  • Error Conditions: Devices have different error reporting and response mechanisms.

11.3 I/O Techniques

Techniques for Performing I/O

  1. Programmed I/O: Processor waits for I/O operation completion after issuing a command.

  2. Interrupt-driven I/O:

    • Non-blocking mode: Processor continues with other tasks after issuing I/O command.

    • Blocking mode: Processor halts current task, puts it in a blocked state until the I/O complete.

  3. Direct Memory Access (DMA): DMA module manages data exchanges between main memory and I/O modules.

Alternative DMA Configurations

  • Various configurations for integrating DMA to enhance data transfer efficiency.

Efficiency and Generality in I/O Design

  • Efficiency: Critical since I/O operations can bottleneck performance; slow compared to CPU and memory speeds.

  • Generality: Need for uniform handling of diverse devices; hierarchical and modular design approaches are encouraged.

Design Objectives

  • Separation of operating system functions based on complexity and abstraction levels leads to layered OS design.

11.3 I/O Buffering

Buffering Techniques

  1. Single Buffering: A single buffer in memory to process I/O; can result in speedup but complicates logic.

  2. Double Buffering: Two buffers allow for overlapping operations: one buffer is processed while the other is filled.

  3. Circular Buffering: Multiple buffers utilized in a circular configuration, solving issues where I/O must match processing pace.

Summary of Buffering Methods

  • Single Buffer: Basic buffering.

  • Double Buffer: Increased efficiency through simultaneous operations.

  • Circular Buffer: Keeps process continuous without interruption, adjusting for I/O peaks.

Conclusion

  • Understanding I/O management and disk scheduling is essential for optimizing computer system performance, addressing factors like buffering, I/O techniques, and device characteristics to improve overall system efficiency.