第七章:I/O设备管理

7.1 设备与设备分类

  • 输入/输出设备(I/O设备)也称为外部设备,有时简称设备或外设
  • 包括计算机系统中除CPU和内存储器意外的所有的设备和装置,还包括所有外部存储设备
  • 广义的I/O设备即上述定义
  • 狭义的I/O设备不包括外存设备
  • 主要功能方便用户管理设备

7.1.1 设备管理的重要性

  • 操作系统复杂和庞大的主要原因是它所管理的资源的庞杂和并发技术的采用
  • 而I/O设备的庞杂正是操作系统所管理的资源庞杂的主要原因
  • I/O设备的速度远低于处理器的速度正式导致并发技术的直接原因

7.1.2 设备管理的任务

设备管理的主要任务有:缓冲区管理、设备分配、设备处理、虚拟设备以及实现设备独立性。
设备管理的主要任务❄❄❄❄❄

  • 通过缓冲技术匹配高、低速设备(缓冲管理功能)
  • 通过虚拟技术提高设备并发度(虚拟设备)
  • 通过协调技术避免设备冲突(设备分配)
  • 通过接口技术为用户提供一致的系统调用(设备分配)

一.I/O设备的性能经常成为系统性能的瓶颈 ❄❄❄❄❄

  • CPU性能越高,I/O设备性能同CPU性能不匹配的反差也越大。
  • 缓冲技术、中断技术、和虚拟技术

二.操作系统需要在设备管理和系统的其他部分之间提供简单而易于使用的接口❄❄❄❄❄

  • 这个接口对于所有设备都应该是相同的,这就是所谓的设备独立性

三.用户对I/O设备的使用必须是安全的。 ❄❄❄❄❄

  • 对于设备的使用者而言,由设备传送或管理的数据应该是安全和保密的,不能破坏或泄露
  • 对于设备的拥有者而言,多用户多任务环境中的设备使用应该通过协调避免冲突,设备不能被破坏。

7.1.3 设备的分类

一.按设备的使用特性分类

  • I/O设备
    • I/O设备是计算机与外部世界交换信息的设备
      • 输入设备是计算机用来接受指令和数据等信息的设备,键盘、鼠标等是常见的输入设备
      • 输出设备是计算机用来传送处理结构的设备,常用的输出设备由显示器、打印机等
      • 在计算机数据采集和过程控制等应用中,各种传感器、传动器、模拟/数字转换器、数字/模拟转换器等也属于I/O设备
      • 调制解调器、网络适配器(网络接口卡)等数据通信设备也属于I/O设备
  • 存储设备
    • 存储设备是计算机用来存放信息的设备
    • 例如磁带、磁盘、光盘、U盘等各种外存设备。
    • 其中,可移动的磁带或磁盘在用于不同机器间传送数据时也可看做是I/O设备

按设备的信息组织方式来划分(按数据传输方式、按交换信息的单位)

  • 块设备
    • 磁盘、磁带等以数据块为单位组织和处理信息的设备
    • 块设备的基本特性是能够随时读写其中的任何一块而与所有别的块无关
    • 外存设备通常是块设备,因其记录长度通常为一个数据块,例如磁盘的扇区或者由若干扇区组成的簇
  • 字符设备
    • 键盘、终端、打印机等以字符为单位组织和处理信息的设备
    • 字符设备通常以字符为单位发送或者接收字符流,而不存在任何块结构
    • 字符设备不可寻址,所以没有任何寻址操作。
    • 除磁盘以外的大多数设备,例如网络接口卡、打印机、鼠标等可看作字符设备
  • 时钟既不可以按块方式访问,也不产生或接收字符串,它所做的只是按规定好的时间间隔引起中断

按设备的共享属性分类

  • 共享设备
    • 共享设备是指在一段时间内允许多个进程使用的设备
    • 磁盘是典型的共享设备
  • 独占设备
    • 也称为独享设备
    • 是指在一段时间内只允许一个进程使用的设备
    • 打印机是典型的独占设备(❄❄ 扫描仪、时钟发生器)
  • 虚拟设备
    • 虚拟设备是利用虚拟技术把独占设备改造成由多个进程共享的设备。
    • SPOOLing系统是一种非常重要的虚拟设备技术

7.2 I/O硬件组成

7.2.1 计算机I/O系统的结构

  • 每一种外围设备在它自己的设备控制器下工作,而设备控制器则通过适配器和主机连接
  • 每个设备控制器都有若干个寄存器用来与CPU进行通信,包括控制寄存器、状态寄存器和数据寄存器
  • 为了使CPU能够访问设备控制器中的寄存器,必须为每个寄存器分配唯一的地址,该地址称为I/O端口地址或I/O端口号
    • 内存映射编址
    • I/O独立编址
  • ❄❄ 计算机I/O系统的硬件结构
    • 适配器和接口部件
    • 设备控制器
    • 设备硬件

7.2.2 I/O设备数据传送控制方式 ❄❄❄❄❄

❄❄ 在程序控制I/O方式中,若输出设备向处理机返回“准备就绪”信号,表示输出缓冲区已空,可以向输出缓冲区写数据

一.程序直接控制方式

  • 也称为PIO方式,是指由用户进程直接控制内存或CPU和外围设备之间进行信息传送的方式,也称为“忙-等”方式、轮询方式或循环测试方式
  • 这种方式的控制者是用户进程
  • 优点
    • CPU和外设的操作能通过状态信息得到同步,而且硬件结构比较简单
  • 缺点
    • CPU效率较低,传输完全在CPU控制下完成,对外部出现的异常事件无实时响应能力。
  • 程序直接控制方式只适用于那些CPU执行速度较慢,而且外围设备较少的系统,如单片机系统
  • 用户进程在等待键盘输入命令时,不断检测状态寄存器的完成位是否为1,该I/O设备控制方式成为程序直接控制方式
  • 用户进程在等待鼠标点击输入时,不断检测对应接口寄存器的完成位是否为1,该I/O设备控制方式成为程序直接控制方式
  • ❄❄❄❄❄ 需要的软硬件部件:设备状态寄存器、地址总线和数据总线、设备控制寄存器、设备缓冲区、地址译码器

二.中断控制方式

  • CPU与外设在大部分事件内并行工作,有效地提高了计算机的效率
  • 具有实时响应能力,可使用于实时控制场合
  • 及时处理异常情况,提高计算机的可靠性
  • 键盘的读写是以字符为单位的,通常键盘的I/O控制主要采用中断方式
  • 利用中断技术进行设备管理的主要目的是提高设备效率
  • CPU与外设在大部分时间内并行工作。当CPU启动外设后,不需要去查询其工作状态,可以继续执行主程序,该I/O设备控制方式成为中断控制方式
  • CPU先配置I/O设备,然后继续执行主程序,不查询状态直到该I/O设备准备好,并向CPU发出请求服务的信号。该I/O设备控制方式成为中断控制方式
  • ❄❄❄❄❄ 需要的软硬件部件:中断控制器、地址总线和数据总线、设备控制器

三.DMA方式

  • 直接内存方式,是一种完全由硬件执行I/O数据交换的工作方式
  • 三个阶段:传送前预处理、数据传送、传送后处理
  • 磁盘读写是以块为单位的,通常磁盘的I/O控制主要采用DMA方式
  • ❄❄ 控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在内存和I/O设备之间进行,这种I/O设备控制方式成为DMA方式
  • ❄❄❄❄❄ 需要的软硬件部件:DMA控制器、地址总线和数据总线

四.通道控制方式

  • 与DMA方式相比
    • 通道方式增加了CPU与通道操作的并行能力
    • 增加了通道之间以及统一通道内各设备之间的并行操作能力
    • 为用户提供了灵活增加外设的可能性
  • ❄❄❄ 三种类型:选择通道、数组多路通道、字节多路通道
  • ❄❄❄❄❄ 需要的软硬件部件:通道控制器、地址总线和数据总线、设备控制器、通道程序代码
  • ❄❄ 系统引入一个不同于CPU的特殊功能处理单元,它有自己的指令和程序,可以实现对外围设备的统一管理和外围设备与内存之间的数据传送,该I/O设备控制方式为通道控制方式
  • ❄❄❄ 通道的功能
    • 接受CPU的指令,按指令要求与指定的外部设备进行通信
    • 从内存读取该通道指令并执行,向设备发送各种命令
    • 组织外部设备和内存之间进行数据传送
    • 从外部设备得到设备的状态信息,供CPU使用
    • 将外部设备的中断请求和通道本身的中断请求,按序及时报告CPU

7.3 I/O软件的特点及结构

  • 设计I/O软件的一个最关键的目标是设备独立性,也就是说,除了直接与设备打交道的底层软件之外,其他部分的软件并不依赖于硬件。
  • I/O软件结构 ❄❄
    • 中断处理程序
    • 设备驱动程序
    • 与设备无关的操作系统软件
    • 用户级软件(指用户空间的I/O软件)
  • I/O管理分层 ❄❄❄
    • 硬件抽象层
    • 设备驱动层
    • 设备独立层 :用于实现用户程序与设备驱动器的统一接口、设备命令、设备保护、以及设备分配与释放等,同时为设备管理和数据传送提供必要的存储空间( 屏蔽I/O设备驱动的多样性,便于用户使用)
    • 用户应用层

7.3.1 设备驱动程序

  • 设备驱动程序是直接同硬件打交道的软件模块,设备驱动程序中包括了所有与设备相关的代码
  • 一般而言,设备驱动程序的功能是从与设备无关的软件中接收抽象的请求,并进行与设备相关的处理

一.设备驱动程序的特点

  • 设备驱动程序最突出的特点是它与I/O设备的硬件结构密切联系。
  • 设备驱动程序是操作系统底层唯一知道各种输入/输出设备的控制器细节以及其用途的部分

二.设备驱动程序的结构

  • 不同的操作系统对设备驱动程序的结构的要求是不同的
  • 设备驱动程序的结构同I/O设备的硬件特性有关
  • 对于某一类设备而言,是采用通用的设备驱动程序,还是采用专门的设备驱动程序,取决于用户在这台I/O设备上最求的目标。

三.设备驱动程序的工作过程

  • 当用户使用外部设备时,其控制设备的命令传递途径依次为:用户应用层、设备独立层、设备驱动层、设备硬件

7.3.2 与设备无关的系统软件

  • 与设备无关的系统软件主要功能是
    • 统一命名
    • 设备保护
    • 提供与设备无关的逻辑块
    • 缓冲
    • 存储设备的块分配
    • 独占设备的分配和释放
    • 出错处理
  • ❄❄❄ 其中在软件层实现的功能有设备保护、提供与设备无关的逻辑块、独占设备的分配和释放。物理层实现的主要功能有统一命名、缓冲、存储设备的块分配、出错处理。
  • ❄❄❄ 在I/O软件的层次中,设备无关软件层实现的主要功能是:向用户报告出错处理情况
  • ❄❄❄ 在I/O软件的层次中,设备无关软件层实现的主要功能是:对设备统一进行命名
  • ❄❄❄ 在I/O软件的层次中,设备无关软件层实现的主要功能是:对不同速度的设备使用缓冲区来匹配

7.3.3 用户控件的I/O软件

7.4 典型的I/O技术 ❄❄

  • 缓冲技术
  • 设备分配技术
  • SPOOLing技术
  • DMA和通道技术

7.4.1 缓冲技术

一.缓冲技术的引入

  • 利用缓冲技术进行设备管理的主要目的是:匹配高速和低速设备
  • 在操作系统的I/O管理中,缓冲池管理中着重考虑的是实现进程访问缓冲区的同步

二.缓冲区的设置与管理

  • 单缓冲区
  • 双缓冲区
  • 缓冲池

7.4.2 设备分配技术

一.设备分配算法的数据结构

  • 设备管理中,为了管理和分配设备建立了一个数据结构,通常称为设备表,它的作用是建立逻辑设备与物理设备之间的对应关系
  • ❄❄❄ 在I/O设备管理中,设备分配的主要数据结构及分配顺序是:系统设备表、设备控制表、控制器控制表、通道控制表

二.设备分配的原则

  • 考虑设备的特性和安全性
  • 设备分配策略(❄❄❄❄ 先来先服务、高优先级优先)
  • ❄❄ 在进行设备分配时应该考虑下列哪些因素
    • 设备固有属性
    • 设备分配算法
    • 设备分配的安全性
    • 设备的独立性

三.独占设备的分配

四.共享设备的分配

五.虚拟设备

  • 主要目的:提高设备并发度
  • SPOOLing系统的主要组成部分是
    • 输入井和输出井
    • 输入缓冲区和输出缓冲区
    • 输入进程和输出进程

你可能感兴趣的:(操作系统原理)