I/O Systems

References:

  1. Abraham Silberschatz, Greg Gagne, and Peter Baer Galvin, "Operating System Concepts, Eighth Edition ", Chapter 13

13.1 Overview

13.2 I/O Hardware


Figure 13.1 - A typical PC bus structure.


Figure 13.2 - Device I/O port locations on PCs ( partial ).

13.2.1 Polling

13.2.2 Interrupts


Figure 13.3 - Interrupt-driven I/O cycle.


Figure 13.4 - Intel Pentium processor event-vector table.

13.2.3 Direct Memory Access


Figure 13.5 - Steps in a DMA transfer.

13.2.4 I/O Hardware Summary

13.3 Application I/O Interface


Figure 13.6 - A kernel I/O structure.


Figure 13.7 - Characteristics of I/O devices.

13.3.1 Block and Character Devices

13.3.2 Network Devices

13.3.3 Clocks and Timers

13.3.4 Blocking and Non-blocking I/O


Figure 13.8 - Two I/O methods: (a) synchronous and (b) asynchronous.

13.3.5 Vectored I/O ( NEW )

13.4 Kernel I/O Subsystem

13.4.1 I/O Scheduling


Figure 13.9 - Device-status table.

13.4.2 Buffering


Figure 13.10 - Sun Enterprise 6000 device-transfer rates ( logarithmic ).

13.4.3 Caching

13.4.4 Spooling and Device Reservation

13.4.5 Error Handling

13.4.6 I/O Protection


Figure 13.11 - Use of a system call to perform I/O.

13.4.7 Kernel Data Structures


Figure 13.12 - UNIX I/O kernel structure.

13.4.6 Kernel I/O Subsystem Summary

13.5 Transforming I/O Requests to Hardware Operations


Figure 13.13 - The life cycle of an I/O request.

13.6 STREAMS ( Optional )


Figure 13.14 - The SREAMS structure.

13.7 Performance ( Optional )


Figure 13.15 - Intercomputer communications.


Figure 13.16 - Device functionality progression.

13.8 Summary