6.1 I/O系统的功能、模型和接口
- 输入输出系统包括
- 直接用于I/O和存储数据的设备
- 相应的设备控制器和高速总线
- I/O通道(I/O专用处理机)——大、中型计算机系统中
6.1.1 I/O系统的基本功能
方便用户
-
隐藏物理设备的细节
隐藏物理细节,使用抽象命令完成操作.I/O设备的类型非常多,且彼此间在多方面都有差异,诸如它们接收和产生数据的速度,传输方向、粒度、数据的表示形式及可靠性等方面。
-
与设备的无关性
使用抽象的逻辑设备名来使用设备。
提高效率
- 提高处理机和I/O设备的利用率
- 处理机能快速响应用户的I/O请求
尽量减少在每个I/O设备运行时处理机的干预时间
- 处理机能快速响应用户的I/O请求
- 对I/O设备进行控制(驱动程序的功能)
- 四种方式
- ①采用轮询的可编程I/O方式
- ②采用中断的可编程I/O方式
- ③ 直接存储器访问方式
- ④ I/O通道方式
具体采用方式与I/O设备传输速率、传输的数据单位等因素有关。
- 四种方式
发现和修正错误
- 确保对设备的正确共享
- 从设备的共享属性上可将系统中的设备分为两类
- 独占设备(打印机、磁带机)
系统在对独占设备进行分配时,还应考虑到分配的安全性。 - 共享设备(磁盘)
当有多个进程需对设备执行读、写操作时,可以交叉进行,不会影响到读、写的正确性。
- 独占设备(打印机、磁带机)
- 从设备的共享属性上可将系统中的设备分为两类
- 错误处理
- 从处理的角度可将错误分为两类
- 临时性错误——可通过重试操作来纠正
- 持久性错误——需要向上层报告
- 从处理的角度可将错误分为两类
6.1.2 I/O系统的层次结构和模型
一、层次结构
- 用户级I/O软件
- 实现与用户交互的接口,用户可以直接调用该层所提供的、与I/O有关的库函数进行操作。
- 设备独立性软件
- 实现用户程序与设备驱动器的统一接口、设备命名、设备的保护以及设备的分配与释放等
- 为设备管理和设备传送提供必要的存储空间
- 设备驱动程序
- 具体实现系统对设备发出的操作指令,驱动设备工作。
- 中断处理程序
- 中断是I/O控制中的核心功能
- 保护现场→转到中断处理程序进行处理→恢复现场→返回被中断进程
二、模型
- I/O系统的上、下接口
- 上层:I/O接口
向上层提供对设备进行操作的I/O抽象命令 - 下层:软件/硬件(RW/HW)接口
连接中断处理程序与设备控制器 - I/O系统的分层
- 与I/O软件组织的层次结构相对应,I/O系统本身也可分为三个层次
- ①中断处理程序。
- ②设备驱动程序。
- ③设备独立性软件。
- 与I/O软件组织的层次结构相对应,I/O系统本身也可分为三个层次
- 上层:I/O接口
6.1.3 I/O系统接口
典型接口有三类
- 块设备接口
- 块设备管理程序与高层之间的接口。
- 反映大部分磁盘存储器和光盘存储器的本质特征。
- 块设备→磁盘
- 隐藏了磁盘的二维结构
- 将抽象命令映射为低层操作
- 流设备接口(字符设备接口)
- 流设备管理程序与高层之间的接口。
- 反映了大部分字符设备的本质特征,用于控制字符设备的输入或输出。
- 字符设备→交互式终端(键盘、显示器)
- get和put操作
- in-control指令:每个参数表示一个与具体设备相关的特定功能
- 网络通信接口
- 把计算机连接到网络上。
- 使计算机能通过网络与网络上的其它计算机进行通信或上网浏览。
6.2 I/O设备和设备控制器
- I/O设备一般由两部分组成,通常将两部分分开以提供更加模块化和通用化的设计。
- 机械部分→I/O设备
- 电子部件→设备控制器或适配器(adapter)
- 在个人电脑中,它经常以印刷电路板的形式出现,可以插入计算机的扩展槽中。因而也常称为控制卡、接口卡或网卡,可将它插入计算机的扩展槽中。
- 在有的大、中型计算机系统中,还配置了I/O通道或I/O处理机。
6.2.1 I/O设备
- I/O设备的类型
- 按使用特性分类
- 存储设备
- I/O设备
- 按传输速率分类
- 低速设备→几~几百字节/秒。(键盘,鼠标等)
- 中速设备→几千~几万字节/秒。(打印机)
- 高速设备→数百千~数十兆字节/秒。(磁盘)
- 按使用特性分类
- 设备与控制器之间的接口
设备与设备控制器通信,在I/O设备中应含有与设备控制器间的接口,在该接口中有三种类型的信号,各对应一条信号线。
- 数据信号线
- 设备和控制器之间传送数据。
- 控制信号线
- 规定了设备要执行的操作。(读、写、磁头移动等操作)
- 状态信号线
- 指示设备当前的状态。(正在读(或写)、读(写)完成等)
- 数据信号线