输入输出系统|操作系统


输入输出系统|操作系统
输入输出系统|操作系统
输入输出系统|操作系统
输入输出系统|操作系统

二、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)直接存储器存储
改进:

  1. 数据传送单位变成“块”
  2. 数据流向是内存->设备,设备->内存;不再经过CPU
  3. 仅在传送一个或多个数据块的开始和结束时才需要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.缓冲池

输入输出系统|操作系统