(Latest Revision: Thu Jun 6, 2019)
[2019/06/06: first full version for 10th edition]
Chapter Twelve -- I/O Systems -- Lecture Notes
Intro
I/O is one of the main jobs of a computer. This chapter
furnishes insights regarding the capabilities and limitations of I/O hardware.
It also discusses I/O services, the relationship between the I/O hardware
and the application interface, UNIX System V STREAMS, and I/O performance.
12.0 Objectives
12.1 Overview
12.2 I/O Hardware
12.2.1 Memory-Mapped I/O
12.2.2 Polling
12.2.3 Interrupts
12.2.4 Direct Memory Access
12.2.5 I/O Hardware Summary
12.3 Application I/O Interface
12.3.1 Block and Character Devices
12.3.2 Network Devices
12.3.3 Clocks and Timers
12.3.4 Nonblocking and Asynchronous I/O
12.3.5 Vectored I/O
12.4 Kernel I/O Subsystem
12.4.1 I/O Scheduling
12.4.2 Buffering
12.4.3 Caching
12.4.4 Spooling and Device Reservation
12.4.5 Error Handling
12.4.6 I/O Protection
12.4.7 Kernel Data Structures
12.4.8 Power Management
12.4.9 Kernel I/O Subsystem Summary
12.5 Transforming I/O Requests to Hardware Operations