文章目录
二、I/O控制器
1.I/O控制器功能
2.I/O控制器组成
一个I/O控制器控制多个设备
I/O控制器组成 | 作用 |
---|---|
CPU和控制器的接口 | 实现CPU和控制器之间的通信 |
I/O逻辑 | 接收和识别CPU各种命令,负责对设备发出命令 |
控制器和设备之间的接口 | 实现设备和控制器之间的通信 |
3.I/O控制器中的地址
三、I/O控制方式
1.程序直接控制方式
key word:轮询
性能指标 | 程序直接控制方式 |
---|---|
数据传送单位 | 字 |
数据流向 | 写:内存->CPU->设备 读:设备->CPU->内存 |
CPU干预频率 | 很频繁,I/O操作完成之前和完成之后都需要CPU介入,而且I/O设备执行的时候,CPU一直轮询检查 |
并行性 | I/O设备和CPU串行 |
缺点 | CPU和I/O设备只能串行工作,CPU需要一直轮询,处于“忙等”状态 |
2.中断驱动方式
性能指标 | 中断驱动方式 |
---|---|
数据传送单位 | 字 |
数据流向 | 写:内存->CPU->设备 读:设备->CPU->内存 |
CPU干预频率 | I/O操作完成之前和完成之后都需要CPU介入,而且I/O设备执行的时候,CPU切换到别的进程执行 |
并行性 | I/O设备和CPU并行 |
缺点 | 频繁的中断处理会消耗大量时间 |
优点 | I/O设备和CPU并行 |
3.DMA控制器
DMA(Direct Memory Access)直接存储器存储
改进:
- 数据传送单位变成“块”
- 数据流向是内存->设备,设备->内存;不再经过CPU
- 仅在传送一个或多个数据块的开始和结束时才需要CPU干预
性能指标 | DMA控制器 |
---|---|
数据传送单位 | 块 |
数据流向 | 写:内存–>设备 读:设备–>内存 |
CPU干预频率 | 仅仅在传送一个或多个数据块的开始和结束时才需要CPU介入 |
并行性 | I/O设备和CPU并行 |
缺点 | 只能读一个或者多个连续的数据块,如果要操作离散的数据块时,需要CPU发出多条指令 |
优点 | 数据传送单位:块 |
缩写英文 | 含义 |
---|---|
DR(Data Register) | 暂存从内存到设备,或者是从设备到内存的数据 |
MAR(Memory Address Register) | 数据在内存中的什么位置 |
DC(Data Counter) | 剩余要读/写的字节数 |
CR(Command Register) | 命令/状态寄存器,存放CPU发来的I/O指令或者设备的状态信息 |
4.通道控制方式
相当于是一个小型CPU,可以识别并执行一系列通道指令
性能指标 | 通道控制方式 |
---|---|
数据传送单位 | 块 |
数据流向 | 写:内存->设备 读:设备->内存 |
CPU干预频率 | 通道会根据CPU的指示执行相应的通道程序,只有完成了一组数据块的读/写后才需要中断信号,请求CPU干预 |
并行性 | I/O设备和CPU并行 |
优点 | CPU、I/O设备、通道可以并行工作 |
缺点 | 实现复杂,需要专门的通道硬件 |
四、I/O软件层次
封装思想:每一层会利用下层提供的服务,实现某些功能
层次 | 作用 |
---|---|
用户层软件 | 实现了与用户交互的接口,用户可以直接使用该层提供的与I/O操作相关的库函数;用户层软件将用户请求翻译成格式化的I/O请求,并通过”系统调用“请求操作系统内核的服务 |
设备独立性软件 | 1.向上层提供统一的调用接口 2.设备的保护 3.差错处理 4.设备的回收和分配 5.数据缓冲区的管理 6.建立逻辑设备名到物理设备名的映射关系,根据设备类型选择相应的驱动程序 |
1.用户层软件
向用户:提供与I/O操作相关的库函数
向下:将用户请求翻译成格式化的I/O请求,并通过”系统调用“请求操作系统内核的服务
2.设备无关性软件
功能 | |
---|---|
向上层提供统一的调用接口 | 如read/write系统调用 |
设备的保护 | 根据访问权限 |
差错处理 | 对设备的错误进行处理 |
设备的回收和分配 | 回收和分配 |
数据缓冲区管理 | 通过缓冲技术屏蔽设备之间数据交换单位大小和传输速度的差异 |
建立逻辑设备名到物理设备名的映射关系 | 逻辑设备表(LUT) |
逻辑设备表LUT
逻辑设备表(LUT)
数据结构 |
---|
逻辑设备名 |
物理设备名 |
驱动程序的入口地址 |
3.设备驱动程序
不同型号的内部硬件特性不同,这些特性只有厂家知道,厂家提供与设备相对应的驱动程序,CPU执行驱动程序的指令序列,来完成设置设备寄存器,检查设备状态等工作
主要负责对硬件设备的具体控制,将上层发出的一系列命令(read/write…)转换成为特定设备能听得懂的一系列操作;包括设置设备的寄存器,检查设备的状态
注意:驱动程序一般会以一个独立的进程方式存在
4.中断处理程序
总结
五、假脱机技术(SPOOLing)
1.输入井和输出井
2.共享打印机的原理
六、设备的分配与回收
设备控制表
控制器控制表
通道控制表
七、缓冲区管理
1.单缓冲
2.双缓冲
3.循环缓冲区
4.缓冲池
来源:CSDN
作者:学妹资资
链接:https://blog.csdn.net/weixin_43118073/article/details/103570383