I/O devices --- Chapter 12 in the book. ------------------------------------------------------------------------------ Device drivers: . the lowest layer in a kernel, provided by device manufactures; . present a uniform interface about the device to the upper layers of the kernel, and hide idiosyncronys about the device hardware implementation; . For example, the file system code in the kernel talks to the disk's device driver to read and write disk blocks; ----------------------------------------------------------------------------- Hardware associated with I/O devices: . port; . bus; . controller; . I/O registers: memory-mapped access to I/O registers; ----------------------------------------------------------------------------- Polling versus Interrupts (section 12.2.1 and section 12.2.2); ------------------------------------------------------------------------------- DMA (Direct Memory Access); section 12.2.3; ----------------------------------------------------------------------------- Application I/O interface: . device types; --------------------------------------------------------------------------- What a Kernel I/O subsystem must do: . I/O scheduling; . buffering: for speed-matching purposes, for caching purposes, for spooling purposes; . caching;