设备管理
# 设备控制器
# 概念
能屏蔽设备之间的差异,CPU通过设备控制器来访问设备,控制器能独立处理一些操作
设备控制器有三类寄存器:
- 数据寄存器:CPU向I/O设备写入需要传输的数据
- 命令寄存器:CPU发送给IO设备的命令
- 状态寄存器:目的是告诉CPU工作的完成状态,当在工作状态,不接收CPU的指令
输入输出设备分为两大类:
- 块设备:每个块有自己的地址,例如硬盘、USB,将数据存在固定大小的块中
- 字符类设备:以字符为单位发送或接收,不可寻址,例如鼠标
对于块设备,因器传输的数据量大,设置了可读写的数据缓冲区
数据到数据缓冲区,囤够了一部分才发给设备或内存,从而减少对设备的频繁操作
CPU与设备的控制寄存器和数据缓冲区的通信:
- 端口I/O:每个控制寄存器分配一个I/O端口,通过特殊的汇编指令操作
- 内存映射I/O:将所有控制寄存器映射到内存空间,像读写内存一样访问
# I/O控制方式
设备控制器完成操作需要通知CPU,这种通知机制包括
轮询等待
中断
需要有中断控制器硬件,完成任务后,产生中断。
对于频繁读写数据的磁盘,会造成较多的打断CPU的执行,占用时间
- DMA方式
需要有DMA控制器,
CPU对DMA控制器发指令,安排任务和数据,DMA向磁盘请求完成数据传输后发中断通知CPU完成
CPU只在开始和结束时干预
- 发
# 设备驱动程序
对不同设备的访问是不同的,设备驱动程序屏蔽了具体设备的差异。
设备有设备控制器,不同设备通过封装设备控制器为设备驱动程序提供统一的接口给操作系统
……
上次更新: 2025/02/21, 14:57:10