驱动
IO设备
操作系统内核不直接操作设备:
- 通过调用设备的驱动程序完成对设备的读写
- 驱动程序由硬件厂商实现
- 使用设备时,将驱动程序以内核模块方式加载进内核
- 操作系统声明统一的SPI(Service Program Interface),由硬件厂商实现
可编程IO/DMA
根据数据传输过程是否需要CPU参与,IO分为两类:
可编程IO
- 操作系统通过读写IO设备寄存器控制设备
- 分为两种类型:
- PMIO(Port-Mapped Input/Output):通过访问IO端口控制设备
- MMIO(Memory-Mapped Input/Output):设备寄存器和缓冲区映射到物理内存中
DMA(Direct Memory Access)
- 外设与内存之间交换数据的接口技术
- 数据传输过程无须CPU控制
- 数据拷贝和搬运由外设专用处理器完成
- 操作系统通过驱动程序提前告知外设数据拷贝位置
- 外设直接访问内存,将数据放到指定位置
- 完成后发起中断通知CPU