Chapter 13 I/O Systems
Control of devices
Connections by port, by bus
Port mapped I/O -- registers for data (in, out), control signals, status
Memory mapped I/O
Polling & busy waiting -- loop, inefficient
Interrupts
Handler -- defer handling,
dispatch to correct handler,
multi-level
Maskable vs. non-maskable
Address, interrupt vector, interrupt request line
Interrupt priority levels
Exception & traps
DMA -- bus-mastering
Steps (p504, fig 13.5)
I/O Interface -- hides difference, I/O structure (p506, fig13.6)
Character-stream (e.g. keyboard) vs. block (e.g. disk)
Sequential vs. random-access
Synchronous vs. asynchronous
Shareable vs. dedicated
Speed of Operation
Read-write, read-only, write-only
Blocking and non-blocking
ioctl()
Network devices -- sockets
Programmable interval timer
Kernel I/O Subsystem
I/O Scheduling
Buffering
vs. caching
Spooling
Error handling
I/O protection
State information
Transforming I/O Request to Hardware Operations
Streams (Unix System V) -- modular approach
Performance -- I/O major factor in performance
Demands on CPU & demands on bus
Reduce context switches, data copying, frequency of interrupts
Increase concurrency
Move processing to hardware
Balance systems