版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 1 第六章 输入输出系统 第六章第六章 输入输出系统输入输出系统 6.1 I/O系统的功能、模型和接口 6.2 I/O设备和设备控制器 6.3 中断机构和中断处理程序 6.4 设备驱动程序 6.5 与设备无关的I/O软件 6.6 用户层的I/O软件 6.7 缓冲区管理 6.8 磁盘存储器的性能和调度 2 2 第六章 输入输出系统 6.1 I/O系统的功能、模型和接口 I/O系统管理的主要对象是I/O设备和相应的设备控制器。 其最主要的任务是,完成用户提出的I/O请求,提高I/O速率, 以及提高设备的利用率,并能为更高层的进程方便地使用这 些设备提供手段。 3 3 第六章 输入输出系统 6.
2、1.1 I/O系统的基本功能 1. 隐藏物理设备的细节 2. 与设备的无关性 3. 提高处理机和I/O设备的利用率 4. 对I/O设备进行控制 5. 能确保对设备的正确共享 6. 错误处理 4 4 第六章 输入输出系统 1. 隐藏物理设备的细节 I/O设备的类型非常多,且彼此间在多方面都有差异, 诸如它们接收和产生数据的速度,传输方向、粒度、数据的 表示形式及可靠性等方面。 不同的设备需要有不同的命令和参数,如果要求程序员不同的设备需要有不同的命令和参数,如果要求程序员 或用户编写直接面向这些设备的程序是极其困难的或用户编写直接面向这些设备的程序是极其困难的。因此, I/O系统必须通过对设备加
3、以适当的抽象,以隐藏掉物理设 备的实现细节,仅向上层进程提供少量的、抽象的读写命令。 5 5 第六章 输入输出系统 2. 与设备的无关性 隐藏物理设备的细节,在早期的OS中就已实现,它可方 便用户对设备的使用。与设备的无关性是在较晚时才实现的, 这是在隐藏物理设备细节的基础上实现的。 一方面,用户不仅可以使用抽象的I/O命令,还可使用 抽象的逻辑设备名来使用设备;另一方面,可以有效提高OS 的可移植性和易适应性。 6 6 第六章 输入输出系统 3. 提高处理机和I/O设备的利用率 在一般的系统中,许多I/O设备间是相互独立的,能够 并行操作,在处理机与设备之间也能并行操作。因此,I/O 系统的
4、第三个功能是要尽可能地让处理机和I/O设备并行操 作,以提高它们的利用率。为此,一方面要求处理机能快速 响应用户的I/O请求,使I/O设备尽快地运行起来;另一方面 也应尽量减少在每个I/O设备运行时处理机的干预时间。 7 7 第六章 输入输出系统 4. 对I/O设备进行控制 对I/O设备进行控制是驱动程序的功能。目前对I/O设备 有四种控制方式: 采用轮询的可编程采用轮询的可编程I/O方式方式; 采用中采用中 断的可编程断的可编程I/O方式方式; 直接存储器访问方式直接存储器访问方式; I/O通道通道 方式方式。 8 8 第六章 输入输出系统 5. 确保对设备的正确共享 从设备的共享属性上,可
5、将系统中的设备分为如下两类: (1) 独占设备独占设备,进程应互斥地访问这类设备,即系统一 旦把这类设备分配给了某进程后,便由该进程独占,直至用 完释放。典型的独占设备有打印机、磁带机等。系统在对独 占设备进行分配时,还应考虑到分配的安全性。 (2) 共享设备共享设备,是指在一段时间内允许多个进程同时访 问的设备。典型的共享设备是磁盘,当有多个进程需对磁盘 执行读、写操作时,可以交叉进行,不会影响到读、写的正 确性。 9 9 第六章 输入输出系统 6. 错误处理 大多数的设备都包括了较多的机械和电气部分,运行时 容易出现错误和故障。从处理的角度,可将错误分为临时性临时性 错误错误和持久性错误持
6、久性错误。对于临时性错误,可通过重试操作来纠 正,只有在发生了持久性错误时,才需要向上层报告。 10 10 第六章 输入输出系统 6.1.2 I/O系统的层次结构和模型 1. I/O软件的层次结构 通常把I/O 软件组织成四个层次,如图6-1所示。 图6-1 I/O系统的层次结构 11 11 第六章 输入输出系统 2. I/O系统中各种模块之间的层次视图 为了能更清晰地描述I/O系统中主要模块之间的关系, 我们进一步介绍I/O系统中各种I/O模块之间的层次视图。见 图6-2所示。 1) I/O系统的上、下接口 (1) I/O系统接口。 (2) 软件/硬件(RW/HW)接口。 12 12 第六章
7、 输入输出系统 图6-2 I/O系统中各种模块之间的层次视图 13 13 第六章 输入输出系统 2) I/O系统的分层 与前面所述的I/O软件组织的层次结构相对应,I/O系统 本身也可分为如下三个层次: (1) 中断处理程序。 (2) 设备驱动程序。 (3) 设备独立性软件。 14 14 第六章 输入输出系统 6.1.3 I/O系统接口 在I/O系统与高层之间的接口中,根据设备类型的不同, 又进一步分为若干个接口。在图6-2中示出了块设备接口块设备接口、 流设备接口流设备接口和网络接口网络接口。 1. 块设备接口 (1) 块设备。数据的存取和传输都是以数据块为单位。 (2) 隐藏了磁盘的二维结
8、构。 (3) 将抽象命令映射为低层操作。 15 15 第六章 输入输出系统 2. 流设备接口 流设备接口是流设备管理程序与高层之间的接口。该接 口又称为字符设备接口字符设备接口,它反映了大部分字符设备的本质特 征,用于控制字符设备的输入或输出控制字符设备的输入或输出。 (1) 字符设备。 (2) get和put操作。 (3) in-control指令。 16 16 第六章 输入输出系统 3. 网络通信接口 在现代OS中,都提供了面向网络的功能。但首先还需要 通过某种方式把计算机连接到网络上。同时操作系统也必须 提供相应的网络软件和网络通信接口,使计算机能通过网络 与网络上的其它计算机进行通信或
9、上网浏览。 17 17 第六章 输入输出系统 6.2 I/O设备和设备控制器 I/O设备一般是由执行I/O操作的机械部分机械部分和执行控制I/O 的电子部件电子部件组成。通常将这两部分分开,执行I/O操作的机 械部分就是一般的I/O设备,而执行控制I/O的电子部件则称 为设备控制器设备控制器或适配器适配器(adapter)。在微型机和小型机中的控 制器常做成印刷电路卡形式,因而也常称为控制卡、接口卡 或网卡,可将它插入计算机的扩展槽中。在有的大、中型计 算机系统中,还配置了I/O通道或I/O处理机。 18 18 第六章 输入输出系统 6.2.1 I/O设备 1. I/O设备的类型 1) 按使用
10、特性分类 (1) 存储设备。也称外存、辅存,是存储信息的主要 设备。 (2) I/O设备。又可分为输入设备,输出设备和交互式 设备。 2) 按传输速率分类 可分为低速(1102字节)、 中速(103105)、高 速(105109)三类。 19 19 第六章 输入输出系统 2. 设备与控制器之间的接口 通常,设备并不是直接与CPU进行通信,而是与设备控 制器通信,因此,在I/O设备中应含有与设备控制器间的接 口,在该接口中有三种类型的信号,各对应一条信号线。 (1) 数据信号线数据信号线。传送数据信号,对输入而言,是由设 备发送给设备控制器的;对输出而言,是由设备控制器所接 收的比特流。 (2)
11、 控制信号线控制信号线。作为设备控制器向I/O设备发送控制信 号的通路。由设备控制器发送给设备,用于规定设备操作的 信号。 (3) 状态信号线状态信号线。用于传送指示设备的当前状态的信号。 2020 第六章 输入输出系统 图6-3设备与控制器间的接口 21 21 第六章 输入输出系统 6.2.2 设备控制器 1. 设备控制器的基本功能 (1) 接收和识别命令。 (2) 数据交换。 (3) 标识和报告设备的状态。 (4) 地址识别。 (5) 数据缓冲区。 (6) 差错控制。 2222 第六章 输入输出系统 2. 设备控制器的组成 由于设备控制器位于CPU与设备之间,它既要与CPU通 信,又要与设
12、备通信,还应具有按照CPU所发来的命令去控 制设备工作的功能,因此,现有的大多数控制器都是由以下 三部分组成: (1) 设备控制器与处理机的接口。 (2) 设备控制器与设备的接口。 (3) I/O逻辑。 2323 第六章 输入输出系统 设备控制器的组成图示 I/O 逻辑 控制器 与设备 接口 1 控制器 与设备 接口 i 数据寄存器 控制/状态 寄存器 CPU与控制器接口控制器与设备接口 数据线 地址线 控制线 数据 状态 控制 数据 状态 控制 用于实现对设备的控制。主要任务是: 对处理机发送给控制器的I/O命令进行译码;对 发送给控制器的地址进行译码,根据所译出的 命令对所选设备进行控制。
13、 2424 第六章 输入输出系统 6.2.3 内存映像I/O 驱动程序将抽象命令转换出一系列具体命令、参数 等数据,装入设备控制器的相应寄存器,由控制器来执 行这些命令,具体实施对I/O设备的控制,这一工作可用 两种方法来完成。 1. 利用特定的利用特定的I/O指令指令:访问内存和访问设备需要两 种不同的指令。 2. 内存映像内存映像I/O:该方式统一了对内存和对控制器的 访问的方法,简化了I/O编程。基本做法是,在编址上不 再区分内存单元地址和设备控制器地址,都采用k。当 0kn-1时,认为是内存地址,当kn时,认为是某个控 制器的寄存器地址。 2525 第六章 输入输出系统 图6-5 设备
14、寻址形式 2626 第六章 输入输出系统 6.2.4I/O通道 1. I/O通道设备的引入 虽然在CPU与I/O设备之间增加了设备控制器后,已能大 大减少CPU对I/O的干预,但当主机所配置的外设很多时, CPU的负担仍然很重。为此,在CPU和设备控制器之间又增 设了I/O通道(I/O Channel)。 一些原来由CPU处理的I/O任务转由通道承担,把CPU从 繁杂的I/O任务中解脱出来。实际上,通道是一种特殊的处 理机,通过执行通道程序来控制I/O操作。但是:它指令类 型简单,主要局限于与I/O操作有关的指令;通道没有内存。 2727 第六章 输入输出系统 2. 通道类型 1) 字节多路通
15、道(Byte Multiplexor Channel) 这是一种按字节交叉字节交叉方式工作的通道。它通常都含有许 多非分配型子通道,其数量可从几十到数百个,每一个子通 道连接一台I/O设备,并控制该设备的I/O操作。这些子通道这些子通道 按时间片轮转方式共享主通道按时间片轮转方式共享主通道。 2828 第六章 输入输出系统 图6-6 字节多路通道的工作原理 2929 第六章 输入输出系统 2) 数组选择通道(Block Selector Channel) 字节多路通道不适于连接高速设备,这推动了按数组方 式进行数据传送的数组选择通道的形成。 但该通道只含有一 个分配型子通道,在一段时间内只能执
16、行一道通道程序,控 制一台设备进行数据传送。 3030 第六章 输入输出系统 3) 数组多路通道(Block Multiplexor Channel) 数组选择通道虽有很高的传输速率,但它却每次只允许 一个设备传输数据。数组多路通道是将数组选择通道传输速 率高和字节多路通道能使各子通道(设备)分时并行操作的优 点相结合而形成的一种新通道。 含有多个非分配型子通道, 具有很高的传速率,还能获得令人满意的通道利用率。 31 31 第六章 输入输出系统 3. “瓶颈”问题 由于通道价格昂贵,致使机器中所设置的通道数量势必 较少,这往往又使它成了I/O的瓶颈,进而造成整个系统吞 吐量的下降。 图6-7
17、单通路I/O系统 3232 第六章 输入输出系统 一种解决方法:一种解决方法:一个设备连接到多个控制器上,一个控制器 又连接到多个通道上,多通路多通路方式。 图6-8多通路I/O系统 3333 第六章 输入输出系统 6.3中断机构和中断处理程序 对于操作系统中的I/O系统,本章采取从低层向高层的 介绍方法,从本节开始首先介绍中断处理程序。中断在操作 系统中有着特殊重要的地位,它是多道程序得以实现的基础, 没有中断,就不可能实现多道程序,因为进程之间的切换是进程之间的切换是 通过中断来完成通过中断来完成的。另一方面,中断也是设备管理的基础中断也是设备管理的基础, 为了提高处理机的利用率和实现CP
18、U与I/O设备并行执行,也 必需有中断的支持。中断处理程序是中断处理程序是I/O系统中最低的一层,系统中最低的一层, 它是整个它是整个I/O系统的基础系统的基础。 3434 第六章 输入输出系统 6.3.1 中断简介 1. 中断和陷入 1) 中断:是指CPU对I/O设备发来的中断信号的一种响 应,外中断。 2) 陷入:由CPU内部事件所引起的中断,内中断。 3535 第六章 输入输出系统 2. 中断向量表和中断优先级 1) 中断向量表:通常,每种设备都配置了中断处理程序, 并把该程序的入口地址存放在一个叫做中断向量表的表项中, 且为每个设备的中断请求规定一个中断号,直接对应于中断 向量表中的一
19、个表项中。 中断请求中断号中断处理程序的入口地址 转入中断 2) 中断优先级:存在多个中断信号源,需设置不同的优 先级。 3636 第六章 输入输出系统 3. 对多中断源的处理方式 当处理器正在处理一个中断时,又来了一个新的中断请 求,如何处理? 1) 屏蔽(禁止)中断:此时屏蔽所有其它中断,暂时不予 理睬,让其等待。该方法中,所有中断按顺利依次处理。 2) 嵌套中断:a) 多个中断请求时,CPU优先响应最高优 先级的中断;b) 高优先级中断请求可以抢占正在运行的低优 先级中断的处理机。 3737 第六章 输入输出系统 图6-9 对多中断的处理方式 3838 第六章 输入输出系统 6.3.2
20、中断处理程序 当一个进程请求I/O 操作时,该进程将被挂起,直到I/O 设备完成I/O操作后,设备控制器便向CPU发送一个中断请求, CPU响应后便转向中断处理程序,中断处理程序执行相应的 处理,处理完后解除相应进程的阻塞状态。中断处理程序的 处理过程包括如下步骤: (1) 测定是否有未响应的中断信号;(2) 保护被中断进程 的CPU现场;(3) 转入相应的设备处理程序;(4) 中断处理; (5) 恢复CPU现场并退出中断。 3939 第六章 输入输出系统 39 中断处理流程 唤醒被阻塞的唤醒被阻塞的 驱动程序进程驱动程序进程 中断请 求信号 保护被中断进保护被中断进 程的程的CPU环境环境
21、分析中断原因分析中断原因,转入转入 相应的中断处理程序相应的中断处理程序 终端中断终端中断 处理程序处理程序 打印机中断打印机中断 处理程序处理程序 恢复被中断进程的恢复被中断进程的CPU现场现场 返回被中断的进程返回被中断的进程,继续执行继续执行 4040 第六章 输入输出系统 6.4 设备驱动程序 设备处理程序设备处理程序通常又称为设备驱动程序设备驱动程序,它是I/O系统 的高层与设备控制器之间的通信程序,其主要任务是接收上 层软件发来的抽象I/O要求,如read或write命令,再把它转换 为具体要求后,发送给设备控制器,启动设备去执行;反之, 它也将由设备控制器发来的信号传送给上层软件
22、。由于驱动由于驱动 程序与硬件密切相关,故通常应为每一类设备配置一种驱动程序与硬件密切相关,故通常应为每一类设备配置一种驱动 程序程序。例如,打印机和显示器需要不同的驱动程序。 41 41 第六章 输入输出系统 6.4.1 设备驱动程序概述 1. 设备驱动程序的功能 (1) 接收由与设备无关的软件发来的命令和参数,并将命将命 令中的抽象要求转换为与设备相关的低层操作序列令中的抽象要求转换为与设备相关的低层操作序列。 (2) 检查用户检查用户I/O请求的合法性请求的合法性,了解I/O设备的工作状态, 传递与I/O设备操作有关的参数,设置设备的工作方式设置设备的工作方式。 (3) 发出发出I/O命
23、令命令,如果设备空闲,便立即启动I/O设备, 完成指定的I/O操作;如果设备忙碌,则将请求者的请求块挂 在设备队列上等待。 (4) 及时响应由设备控制器发来的中断请求及时响应由设备控制器发来的中断请求,并根据其中 断类型,调用相应的中断处理程序进行处理。 4242 第六章 输入输出系统 2. 设备驱动程序的特点 设备驱动程序属于低级的系统例程,它与一般的应用程 序及系统程序之间有下述明显差异: (1) 驱动程序是实现在与设备无关的软件和设备控制器 之间通信和转换的程序。 (2) 驱动程序与设备控制器和I/O设备的硬件特性紧密相 关。对于不同类型的设备,应配置不同的驱动程序。 (3) 驱动程序与
24、I/O设备所采用的I/O控制方式紧密相关。 (4) 驱动程序中的一部分程序必须用汇编语言书写,目 前有很多驱动程序,其基本部分已固化在ROM。 (5) 驱动程序应允许可重入。 4343 第六章 输入输出系统 3. 设备处理方式 根据在设备处理时是否设置进程及设置什么样的进程, 其方式可分为三类: (1) 为每一类设备设置一个进程,该进程专门执行这类 设备的I/O操作。 (2) 在整个系统中设置一个I/O进程,专门负责对系统中 所有各类设备的I/O操作。也可以设置一个输入进程和一个 输出进程。 (3) 不设置专门的设备处理进程,而是为各类设备设置 相应的设备处理程序,供用户进程或系统进程调用。
25、4444 第六章 输入输出系统 6.4.2 设备驱动程序的处理过程 设备驱动程序的主要任务是启动指定设备。但在启动之 前还必须完成必要的准备工作,在完成所有的准备工作后, 才向设备控制器发送一条启动命令。其处理过程是: (1) 将抽象要求转换为具体要求; (2) 对服务请求进行校验; (3) 检查设备的状态; (4) 传送必要的参数; (5) 启动I/O设备。 驱动程序发出I/O命令后,基本的I/O是在设备控制器的 控制下进行的。通常,I/O操作所要完成的工作较多,需要 一定的时间,此时驱动程序进程把自己阻塞起来,直至中断 到来时才将它唤醒。 4545 第六章 输入输出系统 6.4.3 对I/
26、O设备的控制方式 在I/O控制的整个发展过程中,都始终贯穿着的宗旨是: 尽量减少主机对尽量减少主机对I/O控制的干预,把主机从繁杂的控制的干预,把主机从繁杂的I/O控制事控制事 务中解脱出来,以便主机更多地去完成数据处理任务务中解脱出来,以便主机更多地去完成数据处理任务。I/O 控制的发展经历了使用轮询的可编程I/O方式、使用中断的 可编程I/O方式、DMA控制方式和通道控制方式。 4646 第六章 输入输出系统 1. 使用轮询的可编程使用轮询的可编程I/O方式方式 向向I/O控制器控制器 发读命令发读命令 读读I/O控制器控制器 的状态的状态 未就绪 就绪 CPUI/O I/OCPU 向存储
27、器向存储器 中写字中写字 从从I/O控制器控制器 中读入字中读入字 检查状态?检查状态? 传送完成?传送完成? I/OCPU CPU内存内存 出错出错 N Y 下条指令下条指令 4747 第六章 输入输出系统 2. 使用中断的可编程I/O方式 当前,对I/O设备的控制,广泛采用中断的可编程I/O方 式,即当某进程要启动某个I/O设备工作时,便由CPU向相应 的设备控制器发出一条I/O命令,然后立即返回继续执行原 来的任务。设备控制器于是按照该命令的要求去控制指定 I/O设备。此时,CPU与I/O设备并行操作。 4848 第六章 输入输出系统 2. 使用中断的可编程使用中断的可编程I/O控制方式
28、控制方式 向向I/O控制器控制器 发读命令发读命令 读读I/O控制器控制器 的状态的状态 就绪 CPUI/O I/OCPU 向内存向内存 中写字中写字 从从I/O控制器控制器 中读字中读字 检查状态?检查状态? 传送完成?传送完成? I/OCPU CPU内存内存 出错出错 N Y 下条指令下条指令 CPU做其他事做其他事 中断中断 4949 第六章 输入输出系统 3. 直接存储器访问方式 1) 接存储器访问方式的引入:前述的两种I/O方式是以 字(节)为单位进行I/O的,每完成一个字的I/O,控制器便要 向CPU请求一次中断。这种方式用于块设备的I/O,其效率是 极低的。为进一步减少CPU对I
29、/O的干预,而引入DMA方式 ,其特点有: (1) 数据传送的基本单位是数据块; (2) 所传送的数据是从设备直接送入内存,或相反; (3) 仅在传送一个或多个数据块的开始和结束时,才需 CPU干预,整块数据的传送是在控制器的控制下完成的。 5050 第六章 输入输出系统 2) DMA控制器的组成 DMA控制器由三部分组成: (1) 主机与DMA控制器的接口; (2) DMA控制器与块设备的接口; (3) I/O控制逻辑。 51 51 第六章 输入输出系统 直接存储器访问DMA控制方式 DMA控制器的组成控制器的组成 I/O 控 制 逻 辑 DR MAR DC CR CPU count DMA
30、控制器 内存 系统总线 命令命令 DMA控制器的三 个组成部分: (1)主机与DMA控 制器的接口。 (2)DMA控制器与 块设备的接口。 (3)I/O控制逻辑。 命令/状态寄存器: 用于接受从CPU 发来的I/O命令或 有关控制信息, 或设备的状态。 主机控 制器接口 控制器与 块设备接口 数据寄存器: 暂存从设备 到内存或从 内存到设备 的数据。 数据计数器: 用于存放本 次CPU要读 或写的字 (节)数。 内存地址寄存器: 用于存放数据从 设备传送到内存 的目标地址,或 由内存到设备的 内存源地址。 5252 第六章 输入输出系统 直接存储器访问DMA控制方式 设置设置MAR和和DC初值
31、初值 启动启动DMA传送命令传送命令 挪用存储器周期挪用存储器周期 传送数据字传送数据字 存储器地址增存储器地址增1 字计数寄存器减字计数寄存器减1 DC=0? 请求中断请求中断 在继续执行用在继续执行用 户程序的同时,户程序的同时, 准备又一次传送准备又一次传送 Y N 工作过程:工作过程: 5353 第六章 输入输出系统 4. I/O通道控制方式 1) I/O通道控制方式的引入 虽然DMA方式比起中断方式来已经显著地减少了CPU的 干预,但CPU每发出一条I/O指令,也只能去读(或写)一个连 续的数据块。而当我们需要一次去读多个数据块且将它们分 别传送到不同的内存区域,或者相反时,则须由C
32、PU分别发 出多条I/O指令及进行多次中断处理才能完成。 I/O通道控制方式的引入,把DMA对一个数据块的读写 为单位的干预减少为对一组数据块的读写及有关控制和管理 为单位的干预。 5454 第六章 输入输出系统 实现了CPU、通道和I/O设备三者间的并行操作。进行读 写操作及有关控制时,CPU只需向I/O通道发送一条I/O指令, 给出要执行通道程序的首地址和需要访问的I/O设备,通道 接到指定后,执行通道程序便可完成该工作。 2) 通道程序 通道是通过执行通道程序并与设备控制器共同实现对 I/O设备的控制的。通道程序是由一系列通道指令(或称为通 道命令)所构成的。 5555 第六章 输入输出
33、系统 6.5 与设备无关的I/O软件 设备独立性也称设备无关性。其基本含义是:应用程序 独立于具体使用的物理设备,使用逻辑设备名来请求某类设 备,系统在执行时,则使用该类设备的物理设备名。 驱动程序是一个与硬件(或设备)紧密相关的软件,为 实现设备独立性,必须再在驱动程序之上设置一层设备独立 性软件。 5656 第六章 输入输出系统 6.5.1 与设备无关(Device Independence)软件的基本概念 1. 以物理设备名使用设备。在早期OS中,应用程序在 使用I/O设备时,都使用设备的物理名称,这使应用程序与 系统中的物理设备直接相关。 2. 引入了逻辑设备名。为了实现与设备的无关性
34、而引 入了逻辑设备和物理设备两个概念。逻辑设备是抽象的设备 名。 3. 逻辑设备名称到物理设备名称的转换。在应用程序 中,用逻辑设备名称使用设备虽然方便了用户,但系统却只 识别物理设备名称,因此在实际执行时,还必须使用物理名 称。为此,在系统中,必须具有将逻辑设备名称转换为某物 理设备名称的功能。 5757 第六章 输入输出系统 6.5.2 与设备无关的软件 实现与设备无关性的软件是I/O系统高层软件,其下是 设备驱动程序。在与设备无关的软件中,包括了执行所有设 备公有操作的软件: 1. 设备驱动程序的统一接口,将逻辑设备名映射为物理 设备名,进一步可找到相应物理设备的驱动程序,对设备进 行保
35、护,禁止用户直接访问设备; 2. 缓冲管理; 3. 差错控制; 4. 独占设备的分配与回收; 5. 提供独立于设备的逻辑数据块。 5858 第六章 输入输出系统 6.5.3 设备分配 在多道程序环境下,系统中的设备不允许用户自行使用,系统中的设备不允许用户自行使用, 而必须由系统分配而必须由系统分配。系统为实现对独占设备的分配,必须在 系统中配置相应的数据结构。 1. 设备分配中的数据结构 进行设备分配时,通常借助于一些表格表格的帮助。表格中 记录了相应设备或控制器的状态相应设备或控制器的状态以及对设备或控制器进行控对设备或控制器进行控 制所需的信息制所需的信息。在进行设备分配时需要如下的数据
36、结构。 1) 设备控制表DCT 系统为每一个设备都配置了一张设备控制表,用于记录 设备的情况,如图6-17所示。 5959 第六章 输入输出系统 1) 设备控制表DCT:系统为每一个设备都设置一张设备 控制表,用于记录本设备的情况。 设 备 控 制 表 集 合 DCT1 DCT2 DCTn 设备类型type 设备标识符deviceID 设备状态: 等待/不等待,忙/闲 指向控制器表的指针 重复执行次数或时间 设备队列的队首指针 因请求本设备而未得 到满足的进程,其PCB 按照一定的策略排成 一队列,该队列简称设 备队列。其队首指针 指向队首PCB。 当设备本身正处于 使用状态时,应将 设备的忙
37、标志置1。 若与该设备相连接 的控制器或通道正 忙,不能启动该设 备,此时将设备的 等待标志置1 指向该设备所连接 的控制器的控制表。 在具有多条通路的 情况下,一个设备 将与多个控制器连 接。此时在DCT中 还应设置多个控制 器表指针。 若发生传送错误,并不立即认为传送失败,而是重新 传送,并由系统规定设备在工作中发生错误时,应重 复执行的次数。重复执行时,若能恢复正常,则仍认 为传送成功。当屡次失败而使重复执行次数达到规定 值其传送还不成功时,才认为传送失败。 6060 第六章 输入输出系统 2) 控制器控制表、通道控制表和系统设备表 (1) 控制器控制表(COCT)。系统为每一个控制器都
38、设置 了用于记录控制器情况的控制器控制表,如图6-18(a)所示。 (2) 通道控制表(CHCT)。每个通道都有一张通道控制表, 如图6-18(b)所示。 (3) 系统设备表(SDT)。这是系统范围的数据结构,记录 了系统中全部设备的情况,每个设备占一个表目,其中包括 有设备类型、设备标识符、设备控制表及设备驱动程序的入 口等项,如图6-18(c)所示。 61 61 第六章 输入输出系统 图6-18 COCT、CHCT和SDT表 6262 第六章 输入输出系统 2. 设备分配时应考虑的因素 系统在分配设备时,应考虑如下几个因素: 1) 设备的固有属性 设备的固有属性可分成三种,对它们应采取不同
39、的分配 策略: (1) 独占设备的分配策略。这类设备在一段时间内,只 允许一个进程独占。对其采用的分配策略是独享分配。 (2) 共享设备的分配策略。对这类设备可同时分配给多 个进程使用。 (3) 虚拟设备的分配策略,虚拟设备属于可共享的设备, 可以将它同时分配给多个进程使用。 6363 第六章 输入输出系统 2) 设备分配算法 设备分配的算法:先来先服务和优先级高者优先。 3) 设备分配中的安全性 (1) 安全分配方式。每当进程发出每当进程发出I/O请求后,便进入阻请求后,便进入阻 塞状态,直到其塞状态,直到其I/O操作完成时才被唤醒操作完成时才被唤醒。这种方式已摒弃摒弃 了造成死锁的四个必要
40、条件之一的了造成死锁的四个必要条件之一的“请求和保持请求和保持”条件条件,因 而是安全的。其缺点是进程进展缓慢,即CPU与I/O设备是串 行工作的。 (2) 不安全分配方式。进程发出进程发出I/O请求后仍继续运行请求后仍继续运行, 需要时又可发出第二、第三个I/O请求。仅当进程所需要的 设备已被另一进程占用时,该进程才进入阻塞状态。这种方 式可能造成死锁,应进行是否会发生死锁的安全性计算。 6464 第六章 输入输出系统 3. 独占设备的分配程序 1) 基本的设备分配程序 对于具有I/O通道的系统,在进程提出I/O请求后,系统 的设备分配程序可按下述步骤进行设备分配: (1) 分配设备。 (2
41、) 分配控制器。 (3) 分配通道。 6565 第六章 输入输出系统 2) 设备分配程序的改进 上述程序中进程是以物理设备名来提出I/O请求的,另 外采用的是单通路的I/O系统结构,易产生“瓶颈”现象。 为此需加以改进,可从两方面入手: 1、增加设备的独立性; 2、考虑多通路情况。 6666 第六章 输入输出系统 6.5.4 逻辑设备名到物理设备名映射的实现 为了实现设备的无关性,应用程序请求使用I/O设备时, 采用的是逻辑设备名,但是,系统只能识别物理设备名。因 此,需要配置一张逻辑设备表,用于将逻辑设备名映射为物 理设备名。 6767 第六章 输入输出系统 1、逻辑设备表LUT:其格式是
42、2、LUT的设置问题:可采取两种方式,一种是整个系统 设置一张LUT,一种是为每个用户设置一张LUT。 逻辑设备名逻辑设备名物理设备名物理设备名驱动程序入口地驱动程序入口地 址址 /dev/tty 3 1024 /dev/print 5 2046 整个系统设置一张LUT,可采用这种格式。由于 系统中所有进程的设备分配情况都记录在同一张 LUT中,因此不允许表中有相同的逻辑设备名, 即要求所有用户不使用相同的逻辑设备名。在多 用户环境下难以做到,主要用于单用户系统。 逻辑设备名 系统设备表指针 /dev/tty 3 /dev/print 5 为每个用户设置一张LUT,可采用这种格式。当 用户登录
43、时,便为用户建立一个进程,同时为之 建立一张LUT,并将其放入进程PCB中。由于在 多用户系统中都配置了系统设备表,故LUT可采 用以上格式。 6868 第六章 输入输出系统 6.6 用户层的I/O软件 6.6.1 系统调用与库函数 1. 系统调用 应用程序通过系统调用, 间接调用OS中的I/O过程,对 I/O设备进行操作。 2. 库函数 用户程序通过调用对应的 库函数来使用系统调用,这些 库函数与系统调用连接在一 起,被嵌入在运行时装入内存 的二进制程序中。 系统调用执行过程 系统系统 调用调用 命令命令 用户态系统态 系统调用 调用调用 返回返回 6969 第六章 输入输出系统 6.6.2
44、 假脱机(Spooling)系统 1. 假脱机技术 在多道程序系统中,利用一道程序来模拟脱机输入时的一道程序来模拟脱机输入时的 外围控制机的功能外围控制机的功能,把低速I/O设备上的数据传送到高速磁盘 上;再利用另一道程序模拟脱机输出时外围控制机的功能另一道程序模拟脱机输出时外围控制机的功能, 把数据从磁盘传送到低速输出设备上。这样,在主机的直接 控制下,实现脱机输入输出功能。此时的外围操作与CPU对 数据的处理同时进行,把这种在联机情况下实现的同时外围 操作称为SPOOLing,或称为假脱机操作。 7070 第六章 输入输出系统 2. SPOOLing的组成 SPOOLing系统主要由以下四
45、部分构成: (1) 输入井和输出井。输入井用于收容I/O设备输入的数 据。输出井用于收容用户程序的输出数据。 (2) 输入缓冲区和输出缓冲区。输入缓冲区用于暂存由 输入设备送来的数据,以后再传送到输入井。输出缓冲区用 于暂存从输出井送来的数据,以后再传送给输出设备。 (3) 输入进程和输出进程。分别用于模拟脱机输入和脱 机输出时的外围控制机。 (4) 井管理程序。用于控制作业与磁盘井之间信息的交 换。 71 71 第六章 输入输出系统 3. SPOOLing系统的特点 (1) 提高了I/O的速度。 (2) 将独占设备改造为共享设备。 (3) 实现了虚拟设备功能。 7272 第六章 输入输出系统
46、 6.7 缓冲区管理 在现代操作系统中,几乎所有的I/O设备在与处理机交 换数据时都用了缓冲区。缓冲区是一个存储区域,它可以由 专门的硬件寄存器组成,但由于硬件的成本较高,容量也较 小,一般仅用在对速度要求非常高的场合,如存储器管理中 所用的联想存储器;设备控制器中用的数据缓冲区等。 7373 第六章 输入输出系统 6.7.1 缓冲的引入 引入缓冲区的原因有很多,可归结为以下几点: (1) 缓和CPU与I/O设备间速度不匹配的矛盾。 (2) 减少对CPU的中断频率,放宽对CPU中断响应时间的 限制。 (3) 解决数据粒度不匹配的问题。 (4) 提高CPU和I/O设备之间的并行性。 7474 第
47、六章 输入输出系统 6.7.2 单缓冲区和双缓冲区 1. 单缓冲区(Single Buffer) 在单缓冲情况下,每当用户进程发出一I/O请求时,操 作系统便在主存中为之分配一缓冲区,如图6-23所示。 图6-23 单缓冲工作示意图 7575 第六章 输入输出系统 2. 双缓冲区(Double Buffer) 由于缓冲区是共享资源,生产者与消费者在使用缓冲区 时必须互斥。如果消费者尚未取走缓冲区中的数据,即使生如果消费者尚未取走缓冲区中的数据,即使生 产者又生产出新的数据,也无法将它送入缓冲区,生产者等产者又生产出新的数据,也无法将它送入缓冲区,生产者等 待待。如果为生产者与消费者设置了两个缓
48、冲区,便能解决这 一问题。 双缓冲区又称为缓冲对换。输入时先往第一缓冲区中输 入数据,满后再往第二缓冲区中输入数据,此时,OS可以从 第一缓冲区中取走数据。 7676 第六章 输入输出系统 图6-24 双缓冲工作示意图 7777 第六章 输入输出系统 如果在实现两台机器之间的通信时仅为它们配置了单缓 冲,那么,它们之间在任一时刻都只能实现单方向的数据传 输。例如,只允许把数据从A传送到B,或者从B传送到A, 而绝不允许双方同时向对方发送数据。为了实现双向数据传 输,必须在两台机器中都设置两个缓冲区,一个用作发送缓 冲区,另一个用作接收缓冲区。 7878 第六章 输入输出系统 6.7.3 环形缓
49、冲区 1. 环形缓冲区的组成 (1) 多个缓冲区多个缓冲区:在循环缓冲中含有多个缓冲区,每个缓冲 区的大小相同。缓冲区可分成三种类型: a) 空缓冲区R。用于存放输入数据。 b) 已满缓冲区G。其中的数据提供给计算进程使用。 c) 现行工作缓冲区C。计算进程正在使用的缓冲区。 (2) 多个指针多个指针:对用于输入的多缓冲,设置三个指针: a)Nextg。指示计算进程下一个可用的缓冲区G; b)Nexti。指示输入进程下次可用的空缓冲区R; c)Current。指示计算进程正在使用的缓冲区单元。 7979 第六章 输入输出系统 多个缓冲区示意图 G G C R G R 1 6 5 4 2 3 G
50、 Nextg C Nextg Current Nexti Nexti 返回80 G 8080 第六章 输入输出系统 G G C R G R 1 6 5 4 2 3 多个指针示意图 Current Nexti Nextg 81 81 第六章 输入输出系统 2. 环形缓冲区的使用 计算进程和输入进程可利用下述两个过程来使用环形缓 冲区。 (1) Getbuf过程。每当计算进程要使用缓冲区的数据时, 可调用该过程。类似地,每当输入进程要使用空缓冲来装入 数据时,也可调用该过程。 (2) Releasebuf过程。当计算进程把G缓冲区中的数据提 完时,便可调用该过程将缓冲区释放。此时把缓冲区由C改 为
51、R。类似地,当输入进程将缓冲区装满时,也调用该过程, 将该缓冲区释放,并改为G缓冲区。 如图 8282 第六章 输入输出系统 3. 进程之间的同步问题 使用输入循环缓冲,可使输入进程和计算进程并行执行。 相应地,指针Nexti和指针Nextg将不断地沿着顺时针方向移 动,这样就可能出现下述两种情况: (1) Nexti指针追赶上Nextg指针。这意味着全部缓冲区已 满,此时输入进程应被阻塞,直至计算进程把某个缓冲区中 数据全部提完,使之成为空缓冲R,并调用Releasebuf过程将 其释放,才将输入进程唤醒。这种情况称为系统受计算限制系统受计算限制。 (2) Nextg指针追赶上Nexti指针
52、。意味着全部缓冲区已空。 此时计算进程只能阻塞,直至输入进程又装满某缓冲区,并 调用Releasebuf过程将它释放,才去唤醒计算进程。这种情 况称为系统受系统受I/O限制限制。 8383 第六章 输入输出系统 6.8 磁盘存储器的性能和调度 6.8.1 磁盘性能简述 1. 数据的组织和格式 磁盘设备可包括一个或多个物理盘片,每个磁盘片分一 个或两个存储面(Surface)(见图6-28(a),每个盘面上有若干 个磁道(Track),磁道之间留有必要的间隙(Gap)。为使处理 简单起见,在每条磁道上可存储相同数目的二进制位。 8484 第六章 输入输出系统 图6-28 磁盘的结构和布局 858
53、5 第六章 输入输出系统 2. 磁盘的类型 对于磁盘,可以从不同的角度进行分类。最常见的有: 将磁盘分成硬盘和软盘、单片盘和多片盘、固定头磁盘和活 动头(移动头)磁盘等。 (1) 固定头磁盘。 (2) 移动头磁盘。 8686 第六章 输入输出系统 3. 磁盘访问时间(对移动磁头讨论) (1) 寻道时间Ts:把磁头从当前位置移动到指定磁道上 所经历的时间:Ts=mn+s( Ts与n有关),其中s为磁盘启动 时间,m是一个常数,n为磁头移动的磁道条数。 (2) 旋转延迟时间 :是指定扇区移动到磁头下面所经 历的时间。 (3) 传输时间Tt:指把数据从磁盘读出,或向磁盘写入数 据所经历的时间。其大小
54、与每次所读/写的字节数b及旋转速 度有关:Tt=b/(rN) 式中,r为磁盘以秒计的旋转速度,N为 一条磁道上的字节数。 T 8787 第六章 输入输出系统 6.8.2 早期的磁盘调度算法 1. 先来先服务(FCFS) 这是最简单的磁盘调度算法。它根据进程请求访问磁盘进程请求访问磁盘 的先后次序进行调度的先后次序进行调度。 在该算法中,每个进程的请求都能依次地得到处理,不 会出现某一进程请求长期得不到满足的情况。此外,因该算 法未对寻道进行优化,所以导致平均寻道时间可能较长。 FCFS算法平均寻道时间较大,适用于请求磁盘I/O的进 程数目较少的场合。 8888 第六章 输入输出系统 2. 最短寻道时间优先
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年计算机网络信息安全模拟题库附答案详解【研优卷】
- 2026年国开电大会计案例分析形考练习题库【黄金题型】附答案详解
- 2026山东东营市疾病预防控制中心东营开发区分中心人才引进6人考试参考试题及答案解析
- 2026年国开法学能力提升题库带答案详解(培优A卷)
- 2025年注册岩土工程师之《岩土基础知识》试题一及答案详解【各地真题】
- 2026年环境影响评价工程师之环评法律法规通关试卷及完整答案详解【夺冠系列】
- 佳木斯2025年佳木斯同江市“智汇边城”急需紧缺人才引进笔试历年参考题库附带答案详解(5卷)
- 2026年【数据结构(校内)】智慧树网课章节试卷(名校卷)附答案详解
- 上海上海市环境监测中心公开招聘5人笔试历年参考题库附带答案详解(5卷)
- 2026青海省公路桥梁工程集团有限公司校园引才总笔试历年参考题库附带答案详解
- 不良事件管理办法香港
- 乡村振兴背景下农村教育发展路径研究
- 2025年福建省初中学业水平考试中考(会考)生物试卷(真题+答案)
- 国家能源集团陆上风电项目通 用造价指标(2025年)
- 小学英语三年级家长会课件
- 广西幼师学前专业儿童文学课件第8章 儿童诗
- 国家能源集团陆上风电项目通 用造价指标(2024年)
- 项目工程检测培训
- 儿童哲学论-高振宇著
- TOPCon 电池无银化进展-蒋秀林
- 十岁生日模板
评论
0/150
提交评论