第4章设备管理 本章讲述内容: 4.1设备管理概述; 4.2输入/输出的处理步骤; 4.3设备的分配与调度算法; 4.4数据的传输方式: 4.5设备管理中的若干技术
第4章 设备管理 4.1 4.2 4.3 本章讲述内容: 4.4 设备管理概述 ; 输入/输出的处理步骤; 设备的分配与调度算法; 数据的传输方式; 4.5 设备管理中的若干技术
4.1设备管理概述 。4.1.1I/O系统的组织结构 ·整个IO结构可以划分 成三个层次:底层是具体的设 进程A进程B进程C 进程N 用户 备和硬件接口,中间是系统软 用户程序十 空间 件(与设备相关软件、与设备 与设备 无关软件),最上面是用户程 无关软件 I/O接口程序 序。 内核 空间 与设备 打印机 摄像机 磁盘 --- 1.控制器 相关软件 驱动程序 驱动程序 驱动程序 ·I/O设备一般都由机械和 电子两个部分组成。为了使设 硬件接口- 打印机控制器 摄像机控制器 磁盘控制器 计更加模块化、更具通用性, 也为了降低设计制作的成本, 设备-+ 如今常把它们分开来处理:电 打印机 摄像机 子部分称作是“设备控制器” 或“适配器”;机械部分仍被 称作是“设备
4.1 设备管理概述 • 4.1.1 I/O系统的组织结构 整个I/O结构可以划分 成三个层次:底层是具体的设 备和硬件接口,中间是系统软 件(与设备相关软件、与设备 无关软件),最上面是用户程 序。 . 打印机 摄像机 硬盘 设备 打印机控制器 摄像机控制器 磁盘控制器 打印机 驱动程序 摄像机 驱动程序 磁盘 驱动程序 I/O接口程序 硬件接口 与设备 相关软件 与设备 无关软件 用户程序 进程A 进程B 进程C 进程N 用户 空间 内核 空间 1. 控制器 I/O设备一般都由机械和 电子两个部分组成。为了使设 计更加模块化、更具通用性, 也为了降低设计制作的成本, 如今常把它们分开来处理:电 子部分称作是“设备控制器” 或“适配器”;机械部分仍被 称作是“设备”。
。控制器的一端与 CPU与设备控制器接口, 设备控制器与/O设备接口 计算机连接,另一端与 设备连接。控制器上有 数据线 设备控制器 数据 数据寄存器 与I/O设备 连接器,设备上引出的 状态 的接☐1 控制 电缆可插到连接器中, 控制状态 设备控制器 数据 完成与控制器的连接。 寄存器 I/O 与1/O设备 状态 很多控制器可同时连接 CPU 地址线 逻辑 的接口2 部件 控制 2个、4个甚至8个相同 设备,它们将共享控制 设备控制器 数据 控制线 器里的/O逻辑部件。 与1/0设备 状态 的接▣i 控制 。控制器除将设备与计算机 连接外,更重要的是随时监视设备的状态,实现对 设备的控制与操作。每个控制器有若干个寄存器, 内存 1/0端▣ 用来与CPU通信。通过往寄存器里“写”,操作系 统可命令设备开启或关闭,可让设备发送数据、接 收数据,或者让设备执行其他操作。通过对寄存器 内存 的“读”,操作系统可得知设备的状态,断定它是 否可以接收新的命令等。 I/O端▣ ■ 为使CPU与控制器的各个寄存器进行通信,常 采用“单独的/O空间”和“内存映射I/O两种方法。 (a)单独的/O和内存空间 (b)内存映射1/O
. 控制器的一端与 计算机连接,另一端与 设备连接。控制器上有 连接器,设备上引出的 电缆可插到连接器中, 完成与控制器的连接。 很多控制器可同时连接 2个、4个甚至8个相同 设备,它们将共享控制 器里的I/O逻辑部件。 数据寄存器 控制/状态 寄存器 I/O 逻辑 部件 设备控制器 与I/O设备 的接口i 设备控制器 与I/O设备 的接口1 设备控制器 与I/O设备 的接口2 数据线 地址线 控制线 数据 状态 控制 数据 状态 控制 数据 状态 控制 CPU与设备控制器接口 设备控制器与I/O设备接口 CPU . 控制器除将设备与计算机 连接外,更重要的是随时监视设备的状态,实现对 设备的控制与操作。每个控制器有若干个寄存器, 用来与CPU通信。通过往寄存器里“写”,操作系 统可命令设备开启或关闭,可让设备发送数据、接 收数据,或者让设备执行其他操作。通过对寄存器 的“读”,操作系统可得知设备的状态,断定它是 否可以接收新的命令等。 . 内存 I/O端口 (a) 单独的I/O和内存空间 (b) 内存映射I/O 内存 I/O端口 为使CPU与控制器的各个寄存器进行通信,常 采用“单独的I/O空间”和“内存映射I/O”两种方法
2.设备驱动程序 。涉及设备管理的软件分为与设备相关和与设备无关的两部分。与设备相关部分就是 设备驱动程序,用于实现对具体设备的管理和操作:与设备无关部分是一些系统调用, 用来把用户的/O请求导向到具体的设备驱动程序。 要让设备工作,必须访问设备控制器中的各种寄存器,这是通过编写特定的程序代 码来实现的,这样的代码程序就称为“设备驱动程序” 设备驱动程序应设计成是可重入的,其代码在执行中不允许被修改。通常,一类设 备有一个设备驱动程序,任务是把用户提交的操作命令转化为物理操作的启动和实施。 3./O接口程序 。/O接口程序就是与设备无关部分软件,它从接收用户对设备提出的1/O请求,然后 把I/O请求转变成所需的/O命令,调用具体的设备驱动程序去执行,完成这个I/O请求。 。O接口程序为用户提供统一的设备命名方式,用主设备号指定设备类型,次设备 号作为参数传递给设备驱动程序,以便确定真正完成读写操作的设备。这样在编程时, 不必指定具体的物理设备,有利于/O设备的故障处理,为设备分配增添了灵活性。称这 种方法是设备管理中的“I/O设备无关性”或“T/O设备独立性”。 。I/O接口程序需要考虑与设备驱动程序的接口。如果各类设备的驱动程序都有自己 不同的接口,那么要往系统里添加一种新的设备类型就会很困难,应该提供驱动程序的 标准接口,这样添加一个新的驱动程序就很容易,开发设备驱动程序的人员也就知道应 该如何着手去编写驱动程序
2. 设备驱动程序 3. I/O接口程序 涉及设备管理的软件分为与设备相关和与设备无关的两部分。与设备相关部分就是 设备驱动程序,用于实现对具体设备的管理和操作;与设备无关部分是一些系统调用, 用来把用户的I/O请求导向到具体的设备驱动程序。 . . 要让设备工作,必须访问设备控制器中的各种寄存器,这是通过编写特定的程序代 码来实现的,这样的代码程序就称为“设备驱动程序”。 . 设备驱动程序应设计成是可重入的,其代码在执行中不允许被修改。通常,一类设 备有一个设备驱动程序,任务是把用户提交的操作命令转化为物理操作的启动和实施。 . I/O接口程序就是与设备无关部分软件,它从接收用户对设备提出的I/O请求,然后 把I/O请求转变成所需的I/O命令,调用具体的设备驱动程序去执行,完成这个I/O请求。 . I/O接口程序为用户提供统一的设备命名方式,用主设备号指定设备类型,次设备 号作为参数传递给设备驱动程序,以便确定真正完成读写操作的设备。这样在编程时, 不必指定具体的物理设备,有利于I/O设备的故障处理,为设备分配增添了灵活性。称这 种方法是设备管理中的“I/O设备无关性”或“I/O设备独立性”。 I/O接口程序需要考虑与设备驱动程序的接口。如果各类设备的驱动程序都有自己 不同的接口,那么要往系统里添加一种新的设备类型就会很困难,应该提供驱动程序的 标准接口,这样添加一个新的驱动程序就很容易,开发设备驱动程序的人员也就知道应 该如何着手去编写驱动程序。
。4.1.2计算机设备的分类 1.基于设备的从属关系分类 。系统设备:操作系统生成时就纳入系统管理范围的设备,也称为“标准设备”。 。用户设备:在完成任务过程中,用户特殊需要的设备。这些是操作系统生成时未 经登记的非标准设备,因此,需要向系统提供使用该设备的设备驱动程序。 2.基于设备的分配特性分类 独享设备:分配给用户进程使用,就必须等它使用完,才能重新分配给另一个用 户进程使用。即独享设备的使用具有排它性。 ·共享设备:可由几个用户进程交替地对它进行信息读或写操作。从宏观上看,它 们在同时使用,因此这种设备的利用率较高。 .虚拟设备:通过辅存的支持,利用SPOOLing技术,把独享设备“改造”成可以共 享的设备,但实际上这种共享设备并不存在。 3.基于设备的工作特性分类 输入输出设备:输入设备是计算机“感知”或“接触”外部世界的设备,用户通 过它把信息送到计算机系统内部:输出设备是计算机“通知”或“控制”外部世界的设 备·,存储设备:计算机用来长期保存各种信息、又可以随时访问这些信息的设备
虚拟设备:通过辅存的支持,利用SPOOLing技术,把独享设备“改造”成可以共 享的设备,但实际上这种共享设备并不存在。 独享设备:分配给用户进程使用,就必须等它使用完,才能重新分配给另一个用 户进程使用。即独享设备的使用具有排它性。 用户设备:在完成任务过程中,用户特殊需要的设备。这些是操作系统生成时未 经登记的非标准设备,因此,需要向系统提供使用该设备的设备驱动程序。 . 输入/输出设备:输入设备是计算机“感知”或“接触”外部世界的设备,用户通 过它把信息送到计算机系统内部;输出设备是计算机“通知”或“控制” 外部世界的设 备 。 • 4.1.2 计算机设备的分类 . 1. 基于设备的从属关系分类 系统设备:操作系统生成时就纳入系统管理范围的设备,也称为“标准设备”。 2. 基于设备的分配特性分类 . . . 共享设备:可由几个用户进程交替地对它进行信息读或写操作。从宏观上看,它 们在同时使用,因此这种设备的利用率较高。 . 3. 基于设备的工作特性分类 . 存储设备:计算机用来长期保存各种信息、又可以随时访问这些信息的设备