计算机操作系统chap5设备管理课件

上传人:新** 文档编号:588683200 上传时间:2024-09-08 格式:PPT 页数:154 大小:1.48MB
返回 下载 相关 举报
计算机操作系统chap5设备管理课件_第1页
第1页 / 共154页
计算机操作系统chap5设备管理课件_第2页
第2页 / 共154页
计算机操作系统chap5设备管理课件_第3页
第3页 / 共154页
计算机操作系统chap5设备管理课件_第4页
第4页 / 共154页
计算机操作系统chap5设备管理课件_第5页
第5页 / 共154页
点击查看更多>>
资源描述

《计算机操作系统chap5设备管理课件》由会员分享,可在线阅读,更多相关《计算机操作系统chap5设备管理课件(154页珍藏版)》请在金锄头文库上搜索。

1、1 第第5 5章章 设备管理设备管理 设备管理是操作系统中最繁杂且与硬件关系最密切的部分。通过本章学习,读者应该掌握以下内容:v数据传输方式v中断技术v缓冲技术v设备分配技术v设备独立性v设备驱动9/8/202425.1. I/O系统 5.2. I/O控制方式 5.3. 缓冲管理 5.4. I/O软件 5.5. 设备分配 5.6. 磁盘存储器的管理9/8/20243设备管理的目标设备管理的目标n 根据设备请求的情况,按照一定的算法,选择和根据设备请求的情况,按照一定的算法,选择和分配输入输出设备以便进行数据传输操作;分配输入输出设备以便进行数据传输操作;n 控制输入输入设备和控制输入输入设备和

2、CPU或内存之间交换数据,或内存之间交换数据,同时提高设备和设备之间、同时提高设备和设备之间、CPU和设备之间,以及和设备之间,以及进程和进程之间的并行操作度,以使操作系统获得进程和进程之间的并行操作度,以使操作系统获得最佳效率;最佳效率;n 为用户提供一个友好的透明接口,把用户和设备为用户提供一个友好的透明接口,把用户和设备硬件特性分开,使得用户在编制应用程序时不必涉硬件特性分开,使得用户在编制应用程序时不必涉及具体设备,系统按用户要求控制设备工作。及具体设备,系统按用户要求控制设备工作。9/8/20244设备管理功能设备管理功能设备分配与回收设备分配与回收缓冲管理缓冲管理设备处理设备处理虚

3、拟设备虚拟设备9/8/20245511 I/O设备设备 计算机系统的外围设备包括:显示器、键盘、纸带阅读器、纸带穿孔机、打印机、磁带、磁盘、光盘、激光打印机、绘图仪、图形数字化仪、鼠标器、声音输入、声音输出设备以及办公自动化设备等等,种类相当繁多,可从不同的角度对它们进行分类。 5.1 I/O系统系统9/8/20246n系系统统设设备备:在操作系统生成时已配置好的的标准设备。 如:键盘、显示器、打印机、磁盘等。n 用户设备:用户设备:指系统设备之外的非标准设备,一般由用户提供设备及其处理程序,并通过适当的手段把它们纳入系统中,由系统实施管理。 如:网卡、调制解调器、绘图仪等。 1设备的从属关系

4、分类设备的从属关系分类9/8/20247n块块设设备备:指以数据块为单位存储和传输数据的设备 如磁盘、磁带等。n字字符符设设备备:指以单个字符为单位来传送信息的设备。 如键盘、显示器、打印机等。2设备中的信息交换单位方式分类设备中的信息交换单位方式分类9/8/20248n存储设备:存储设备:它是计算机用来存储永久性信息的设备 如,磁带、磁盘(软盘、硬盘)、光盘等。n输入设备:输入设备:将外部信息送给计算机的设备。 如,键盘、鼠标、扫描仪、手写笔、数码相机、麦克风、游戏手柄等n输输出出设设备备:将计算机加工后的信息传送给外界的设备。 如,显示器、打印机、投影仪等。3按设备的使用特性分类按设备的使

5、用特性分类9/8/20249n独独占占设设备备:这类设备在用户作业的整个运行期间必须为此用户所占有,即多个作业对某一外设的访问应该是互斥的,一旦系统将这类设备分配给某个作业,便由该设备独占,直至释放该资源。 大多数低速I/O设备,如用户终端、打印机等n共共享享设设备备:指在同一时间段内可以同时让几个作业使用的设备,当然,在某一时刻,该设备只能为一个作业服务。 适应于高速设备,如磁盘n虚虚拟拟设设备备: :根据设备的使用性质来决定一台设备可以分给几个进程以提高该设备的使用率。 如虚拟打印机4按资源分配的角度分类按资源分配的角度分类9/8/202410n 1、按(、按( )分类可将设备分为块设备和

6、字符设备。)分类可将设备分为块设备和字符设备。 A.从属关系从属关系 B.操作特性操作特性 C.共享属性共享属性 D.信息交换单位信息交换单位 2、大多数低速设备都属于(、大多数低速设备都属于( ) 设备。设备。 A独占独占 B共享共享 C虚拟虚拟 DSpoolingn3、从资源分配的角度看,可以把设备分为独占设备、从资源分配的角度看,可以把设备分为独占设备、共享设备和共享设备和 虚拟设备虚拟设备 ,打印机属于,打印机属于_ 设备设备,而磁盘属于而磁盘属于_设备。设备。9/8/202411 5.1.2 设备控制器设备控制器1.设备控制器的概念设备控制器的概念 设备控制器是CPU与外围设备之间的

7、接口,是一个可编址设备,每一个地址对应一个设备。 它接收从CPU发来的命令,并去控制输入输出设备的工作,使CPU从繁杂的设备控制事务中解脱出来,提高CPU的使用效率。9/8/2024122.作用:作用:接收从CPU发来的命令,控制I/O设备工作3.功能:功能:n接收和识别命令接收和识别命令n数据交换数据交换n地址识别地址识别n标识和报告设备的状态标识和报告设备的状态n差错控制差错控制9/8/2024134.设备控制器的组成设备控制器的组成n(1).设备控制器与处理机的接口n(2).设备控制器与设备的接口n(3).I/O逻辑9/8/202414I/O系统的结构CPU磁盘控制器磁盘控制器存储器存储

8、器打印机打印机控制器控制器其他控制器其他控制器一、微型机I/O系统:总线结构磁盘驱动器磁盘驱动器打印机打印机9/8/202415二、主机系统输入输出结构当主机所配置的输入输出设备较多时,特别是配当主机所配置的输入输出设备较多时,特别是配有较多的高速外设时,采用总线型输入输出系统结构有较多的高速外设时,采用总线型输入输出系统结构会加重会加重CPUCPU与总线的负担。与总线的负担。 因此,在这样的输入输出系统中不宜采用单总线因此,在这样的输入输出系统中不宜采用单总线结构,而是增加一级输入输出通道,用来代替结构,而是增加一级输入输出通道,用来代替CPUCPU与各与各设备控制器进行通信,实现对控制器的

9、控制。设备控制器进行通信,实现对控制器的控制。9/8/202416 9/8/2024175.1.3 I/O通道通道1、通道的引入、通道的引入 为了提高计算机系统的运行效率,就要使为了提高计算机系统的运行效率,就要使CPU摆脱繁忙的摆脱繁忙的I/O事务,而配置专门处理事务,而配置专门处理I/O事务的机构事务的机构通道。通道。 通道的引入是为了建立独立的通道的引入是为了建立独立的I/O操作。它不仅要求数据操作。它不仅要求数据传送独立于传送独立于CPU,而且要求,而且要求I/O操作的组织、管理、结束等操作的组织、管理、结束等也尽量独立,以保证也尽量独立,以保证CPU有更多的时间从事计算。这样就可有更

10、多的时间从事计算。这样就可以实现以实现CPU计算和计算和I/O操作的并行工作。操作的并行工作。9/8/202418思考题一思考题一n n 什么是通道?什么是通道? 通道有哪些类型?通道有哪些类型?9/8/2024192、I/O通道概念通道概念 通道是一种硬件机构,又称通道是一种硬件机构,又称I/OI/O处理机。输入输处理机。输入输出通道是指专门负责输入输出工作的处理器。出通道是指专门负责输入输出工作的处理器。 它有自己的指令系统(包含数据传送指令和设它有自己的指令系统(包含数据传送指令和设备控制指令),独立执行自己的通道程序来实现内备控制指令),独立执行自己的通道程序来实现内存与外设之间的数据

11、传输,从而使系统获得存与外设之间的数据传输,从而使系统获得CPUCPU与外与外设并行处理的能力。设并行处理的能力。9/8/202420n3、通道的类型、通道的类型 根据信息交换方式的不同,可把通道分成字节多路通道、数组多路通道和选择通道三种。(1)字节多路通道)字节多路通道 通常都含有许多非分配型子通道,其数量可以从几十通常都含有许多非分配型子通道,其数量可以从几十到数百个,每一个子通道连接一台输入输出设备,这些到数百个,每一个子通道连接一台输入输出设备,这些子通道按时间片轮转方式共享主通道。子通道按时间片轮转方式共享主通道。 字节多路通道字节多路通道连接低速或中速连接低速或中速设备时,不会丢

12、设备时,不会丢失信息。失信息。9/8/202421n 选择通道的数据传送是按成批的方式进行的,故传送速率很高。(2)数据选择通道)数据选择通道选择通道选择通道n 它它适适用用于于连连接接高高速速I/O设设备备,如如磁磁带带、磁磁盘盘等等。选选择择通通道道只只有有一一个个分分配配型型子子通通道道,即即这这个个子子通通道道可可以以连连接接多多台台设设备备,但但每每次次只只能能把把子子通通道道分分配配给给一一台台设设备备使使用用。一一旦旦分分配配给给某某台台设设备备,子子通通道道就就被被它它独独占占,即即使使暂暂时时出出现现空空闲闲,也也不不允允许许其其他他设设备备利利用用该该子子通通道道。直直到到

13、它它被被释释放放,再再选选择择另另一一台台设备为其服务。因此选择通道的利用率是很低的。设备为其服务。因此选择通道的利用率是很低的。9/8/202422n 这种通道综合了字节多路通道分时并行工作和选择通这种通道综合了字节多路通道分时并行工作和选择通道传输速率高的特点。道传输速率高的特点。n 它具有多个非分配型子通道,每个子通道连接一台中、它具有多个非分配型子通道,每个子通道连接一台中、高速高速I/O设备,如:磁带、磁鼓、磁盘等,因而通道所连设备,如:磁带、磁鼓、磁盘等,因而通道所连接的几个设备可以并行工作。接的几个设备可以并行工作。 n 数组多路通道技术相当于通道程序的多道程序设计技数组多路通道

14、技术相当于通道程序的多道程序设计技术。术。(3)数组多路通道)数组多路通道9/8/202423 CPU CPU字节多路通道字节多路通道 打印机打印机1 1 打印机打印机2 2 I/O I/O控制器控制器 I/OI/O控制器控制器 内存内存 选择通道选择通道 成组多路通道成组多路通道 磁盘磁盘 I/OI/O控制控制器器 磁盘磁盘 I/OI/O控制控制器器 I/O控控 制器制器 I/O I/O 控制器控制器 磁带磁带 磁带磁带 存在这三种通道的计算机系统的各硬件的连接关系如图所示:9/8/202424思考题二思考题二 设备管理中,什么是设备管理中,什么是“瓶颈瓶颈”现象?现象? 如何解决?如何解决

15、?9/8/202425n 通道命令和通道程序通道命令和通道程序 通道有自己的指令系统,为了与通道有自己的指令系统,为了与CPU的指令的指令相区别,通道的指令被称为相区别,通道的指令被称为“通道命令字通道命令字”。通道。通道命令字条数不多,主要涉及控制、转移、读、写命令字条数不多,主要涉及控制、转移、读、写及查询等功能。及查询等功能。0 7 8 31 32 47 48 63 每条通道命令由四个字段组成:每条通道命令由四个字段组成: (1) 操作码操作码(07): 表示通道要执行的命令;表示通道要执行的命令; (2) 数据主存始址:数据主存始址: 表示本命令要访问的主存数据区的起表示本命令要访问的

16、主存数据区的起始地址;始地址; (3) 特征位特征位(3247, 只使用了只使用了 3236 位,位, 其余未用其余未用): 3739 位必须置位必须置 0,否则认为通道命令错。,否则认为通道命令错。 9/8/202426n 通通道道程程序序存存放放在在内内存存中中,由由I/O指指令令启启动动执执行行。用用户户请请求求I/O时时,CPU对对通通道道的的通通信信是是向向通通道道发发出出查查询询、启启动动和和停停止止通通道道程程序序工工作作,而而通通道道向向CPU的的通信则采用中断方式。其执行过程如图所示。通信则采用中断方式。其执行过程如图所示。9/8/202427用户用户I/OI/O请求请求 查

17、询设备忙查询设备忙闲?闲? 调用通道程序调用通道程序 执行通道程序执行通道程序 I/OI/O操作完成,操作完成,发中断请求发中断请求 CPUCPU响应中断,进行结束响应中断,进行结束处理处理 以以I/OI/O指令启动通道指令启动通道 结束通道工作结束通道工作 进入设备请求队进入设备请求队列,等待列,等待 忙忙 不忙不忙 通道程序的执行过程通道程序的执行过程 9/8/202428n5、通道工作过程、通道工作过程 (1) 当进程有当进程有I/O请求时,系统首先查询设备状请求时,系统首先查询设备状态。若忙,进程进入设备请求队列等待;若闲,态。若忙,进程进入设备请求队列等待;若闲,CPU发指令指明发指

18、令指明I/O操作、设备号和对应通道。操作、设备号和对应通道。 (2) 对应通道收到对应通道收到CPU发来的启动指令后,读发来的启动指令后,读出内存中的通道指令程序、设置对应设备的控制状出内存中的通道指令程序、设置对应设备的控制状态寄存器的初值。态寄存器的初值。 (3) 设备按通道指令的求,把数据送往内存指设备按通道指令的求,把数据送往内存指定区域。定区域。 (4) 若传送结束,若传送结束,I/O控制器通过中断请求线发控制器通过中断请求线发中断信号请求中断信号请求CPU做中断处理。做中断处理。 (5) 中断处理结束后,中断处理结束后,CPU返回到被中断进程返回到被中断进程处继续执行。处继续执行。

19、 (6) 当进程调度程序选中这个已得到数据的进当进程调度程序选中这个已得到数据的进程后,才能进行加工处理。程后,才能进行加工处理。9/8/202429思考题三思考题三 n通道的作用是什么?通道的作用是什么? 通道是一个独立于通道是一个独立于CPU的专管输入的专管输入/输出控制的处理输出控制的处理器,它控制内存与外部设备直接进行数据交换。器,它控制内存与外部设备直接进行数据交换。 它有自己的通道指令,这些通道指令受它有自己的通道指令,这些通道指令受CPU启动,启动,并在操作结束时向并在操作结束时向 CPU发中断信号。发中断信号。 通道方式进一步减轻了通道方式进一步减轻了CPU的工作负担,增加了计

20、算的工作负担,增加了计算机系统的并行工作程度。机系统的并行工作程度。 9/8/2024305.1.4 总线系统总线系统n1、总线基本概念、总线基本概念 在计算机系统内各种子系统,如在计算机系统内各种子系统,如CPU、内存、内存、I/O设备等之间,构建公用的信号或数据传输通道设备等之间,构建公用的信号或数据传输通道 这种可共享的传输通道称为总线。这种可共享的传输通道称为总线。9/8/202431n2、总线的分类、总线的分类9/8/202432n 当当用用户户进进程程通通过过系系统统调调用用提提出出I/O请请求求时时,从从系系统统响响应应此此请请求求开开始始,至至系系统统完完成成用用户户要要求求的

21、的I/O操操作作,并并唤唤醒醒相相应应的的等等待待I/O完完成成的的进进程程为为止止,这整个过程称为这整个过程称为I/O控制过程。控制过程。52 I/O控制方式控制方式9/8/202433nI/O控制过程包括以下步骤:控制过程包括以下步骤:n (1)响应)响应I/O请求,为在具体物理设备上进行请求,为在具体物理设备上进行I/O操操作做准备。包括将逻辑设备名转换为物理设备名(设作做准备。包括将逻辑设备名转换为物理设备名(设备分配)、备分配)、I/O请求的合法性等。请求的合法性等。n (2)设备驱动,控制设备完成)设备驱动,控制设备完成I/O操作,对每类设操作,对每类设备分别设置不同的设备驱动程序

22、。备分别设置不同的设备驱动程序。n (3)中断处理,)中断处理,I/O操作完成之后,设备控制器向操作完成之后,设备控制器向CPU发送中断信号,发送中断信号,CPU响应后转向相应的中断处理响应后转向相应的中断处理程序进行善后处理。程序进行善后处理。9/8/202434nI/O操作的控制方式一般有四种:操作的控制方式一般有四种:u查询方式查询方式u中断方式中断方式u直接内存存取方式直接内存存取方式u通道方式通道方式 它它们们的的主主要要差差别别在在于于处处理理器器和和外外设并行工作的方式和程度的不同。设并行工作的方式和程度的不同。9/8/202435n查询方式是最简单的查询方式是最简单的I/O控制

23、方式。控制方式。n在设备控制器中有两个寄存器,一个是在设备控制器中有两个寄存器,一个是状态寄存器状态寄存器,由其中的一个状态位的值反映设备的忙或闲;另一由其中的一个状态位的值反映设备的忙或闲;另一个是个是数据缓冲寄存器数据缓冲寄存器。n当设备启动时,状态寄存器的启动位为当设备启动时,状态寄存器的启动位为1,此时外,此时外设把数据送往数据缓冲寄存器,并将状态寄存器的设把数据送往数据缓冲寄存器,并将状态寄存器的状态位置状态位置1。nCPU执行完一条指令后就测试状态位,如果为执行完一条指令后就测试状态位,如果为1,就把数据寄存器中的数据取到内存;若状态位为就把数据寄存器中的数据取到内存;若状态位为0

24、,则再测试,直到状态寄存器的状态位为,则再测试,直到状态寄存器的状态位为1,然后,然后再读取数据。所以此种方式也再读取数据。所以此种方式也称称循环测试循环测试I/O方式方式521 查询方式查询方式9/8/202436就绪向设备控制器发读命令读设备控制器的状态检查状态从设备控制器中读入字向存储器中写字传送完成CPU-I/OCPU-内存I/O-CPU出错I/O-CPU完成下条指令未完成未就绪9/8/202437n步骤:步骤:n (1) 当用户需要输入数据时,由处理器向设备当用户需要输入数据时,由处理器向设备控制器发出一条输入输出指令,启动设备进行输入控制器发出一条输入输出指令,启动设备进行输入n

25、(2) 当用户进程需要向设备输出数据时,也必须当用户进程需要向设备输出数据时,也必须同样发出启动命令启动设备输出,并等待输出操作同样发出启动命令启动设备输出,并等待输出操作完成。完成。n特点:特点: 工作过程简单,工作过程简单,CPU的利用率低。在要求不的利用率低。在要求不高的场合下常被采用,而且不能支持多道程序。程高的场合下常被采用,而且不能支持多道程序。程序直接控制方式适用于早期的无中断的计算机系统。序直接控制方式适用于早期的无中断的计算机系统。9/8/202438n 查询方式是主机向外设询问,而引入中断后,查询方式是主机向外设询问,而引入中断后,每当设备完成每当设备完成I/O操作,它便以

26、中断请求方式主动操作,它便以中断请求方式主动向向CPU汇报。汇报。n 因此,因此,CPU一旦启动一旦启动I/O设备后便可转去处理设备后便可转去处理其他程序,仅在接到其他程序,仅在接到I/O中断信息请求时才花费极中断信息请求时才花费极少时间去处理。少时间去处理。 522 中断方式中断方式9/8/202439n1、中断概念、中断概念 所谓中断,是指处理机在执行进程的过程中所谓中断,是指处理机在执行进程的过程中, 由由于某些事件的出现于某些事件的出现, 中止当前进程的运行中止当前进程的运行, 转而去处转而去处理出现的事件理出现的事件, 待处理完毕后返回原来被中断处继续待处理完毕后返回原来被中断处继续

27、执行或调度其他进程执行。执行或调度其他进程执行。2、中断源、中断源 引起中断的事件称为中断源。引起中断的事件称为中断源。 (1)强迫性中断源)强迫性中断源 硬件故障、程序性错误、外部事件、硬件故障、程序性错误、外部事件、I/O中断事件中断事件(2)自愿性中断源)自愿性中断源9/8/202440n3、步骤、步骤 (1)进程需要数据时,将允许启动和允许中断的)进程需要数据时,将允许启动和允许中断的控制字写入设备控制状态寄存器中,启动该设备进控制字写入设备控制状态寄存器中,启动该设备进行输入操作。行输入操作。 (2)该进程放弃处理机,等待输入的完成。操作)该进程放弃处理机,等待输入的完成。操作系统进

28、程调度程序调度其他就绪进程占用处理机。系统进程调度程序调度其他就绪进程占用处理机。 (3)当输入完成时,输入设备通过中断请求线向)当输入完成时,输入设备通过中断请求线向CPU发出中断请求信号。发出中断请求信号。CPU在接收到中断信号之在接收到中断信号之后,转向中断处理程序。后,转向中断处理程序。 (4)中断处理程序首先保护现场,然后把输入缓)中断处理程序首先保护现场,然后把输入缓冲寄存器中的数据传送到某一特定单元中去,同时冲寄存器中的数据传送到某一特定单元中去,同时将等待输入完成的那个进程唤醒,进入就绪状态,将等待输入完成的那个进程唤醒,进入就绪状态,最后恢复现场,并返回到被中断的进程继续执行

29、。最后恢复现场,并返回到被中断的进程继续执行。 (5)在以后的某一时刻,操作系统进程调度程序)在以后的某一时刻,操作系统进程调度程序选中提出的请求并得到获取数据的进程,该进程从选中提出的请求并得到获取数据的进程,该进程从约定的内存特定单元中取出数据继续工作约定的内存特定单元中取出数据继续工作9/8/202441向设备控制器发读命令读设备控制器的状态检查状态从设备控制器中读入字向存储器中写字传送完成完成下条指令CPU-I/OCPU-内存I/O-CPU出错I/O-CPU未完成CPU做其他中断9/8/202442n例例如如,打打印印机机每每打打一一行行需需要要60ms,在在查查询询方方式式中中,大大

30、约约有有59.99ms,CPU都都处处于于循循环环等等待待中中,而而以以中中断断方方式式处处理理的的话话,CPU仅仅花花费费0.1ms时时间间来来处处理理I/O设设备备发发来来的的中中断断,其其余余的的59.99ms都都可可以以用用来来做做别别的的事事情情。所所以以中中断断方方式式比比查查询询方方式式节节省省CPU的时间。的时间。9/8/202443n 中中断断方方式式的的方方法法是是当当设设备备完完成成I/O操操作作后后,主主动动向向CPU报报告告,CPU只只用用少少量量时时间间处处理理I/O中中断断,并并将数据取回。将数据取回。n 在在多多道道程程序序中中的的环环境境下下,一一个个程程序序

31、或或进进程程启启动动I/O设设备备并并允允许许中中断断后后,不不是是自自己己主主动动去去执执行行别别的的程程序序或或继继续续执执行行主主流流程程,而而是是应应当当把把自自己己挂挂起起,控控制制权权交交还还给给进进程程调调度度程程序序。在在中中断断处处理理程程序序中中,完完成成指指定定的的I/O操操作作之之后后应应把把等等待待此此结结果果的的进进程程唤唤醒醒,而而后后由由进进程程调调度度程程序序在在适适当当时时机机把把此此进进程程投投入入运行。运行。9/8/202444l 某进程某进程 其他进程其他进程输入中断处理输入中断处理 中断中断 调度调度 调度调度唤醒唤醒l启动启动I/OI/O并允许并允

32、许中断中断 阻塞等待阻塞等待 处理输入的数据处理输入的数据 保护现场保护现场 输入处理输入处理 唤醒等待进程唤醒等待进程 恢复现场恢复现场 多道多道程序程序下的下的中断中断处理处理方式方式9/8/202445n4、特点、特点 中断控制方式比程序直接控制方式提高了中断控制方式比程序直接控制方式提高了CPU的的利用率。每输入输出一个数据都会发生中断,传输利用率。每输入输出一个数据都会发生中断,传输一组数据需要多次中断,浪费了一组数据需要多次中断,浪费了CPU的处理时间。的处理时间。中断控制方式应用于现代计算机系统中。中断控制方式应用于现代计算机系统中。9/8/202446n1、DMA控制方式的引入

33、控制方式的引入 引引入入的的原原因因:中中断断处处理理方方式式提提高高了了主主机机的的利利用用率率,但但是是每每次次中中断断都都要要保保存存现现场场信信息息,恢恢复复现现场场等等,仍仍占占用用CPU时时间间。在在传传送送数数据据量量大大、速速度度高的情况下,中断方式就不适应了。高的情况下,中断方式就不适应了。 为为了了进进一一步步减减少少CPU对对外外设设操操作作干干预预而而引引入入直接存储器访问方式。直接存储器访问方式。 523 直接内存存取方式直接内存存取方式9/8/2024472、DMA控制方式控制方式n 是是指指对对I/O设设备备的的控控制制由由DMA控控制制器器完完成成,在在DMA控

34、控制制器器的的作作用用下下,设设备备和和主主存存之之间间可可以以成成批批地进行数据交换,而不用地进行数据交换,而不用CPU的干涉。的干涉。 523 直接内存存取方式直接内存存取方式9/8/2024483 3、DMADMA控制器的组成控制器的组成: : DMA控制器的组成控制器的组成命令命令控制器与设备接口控制器与设备接口主机主机控制器接口控制器接口内存内存CPU系统总线系统总线I/O控制控制逻辑逻辑CRMARDCDR count9/8/202449n4、DMA工作步骤工作步骤:u 当当进进程程要要求求设设备备输输入入一一批批数数据据时时,CPU将将设设备备存存放放输输入入数数据据的的内内存存始

35、始址址以以及及要要传传送送的的字字节节数数分分别别送送入入DMA控控制制器器中中的的地地址址寄寄存存器器和和传传送送字字节节计计数数器器;另另外外,还还要要将将中中断断位位和和启启动动位位置置为为1,以以启启动动设设备备开开始始进进行行数数据输入并允许中断。据输入并允许中断。u 发发出出数数据据要要求求的的进进程程进进入入等等待待状状态态,进进程程调调度度程程序调度其他进程占据序调度其他进程占据CPU。u 输输入入设设备备不不断断地地挪挪用用CPU工工作作周周期期,将将数数据据寄寄存存器器中中的的数数据据源源源源不不断断地地写写入入内内存存,直直到到所所要要求求的的字字节节全全部传送完毕。部传

36、送完毕。u DMA控控制制器器在在传传送送字字节节数数完完成成时时,通通过过中中断断请请求求线线发发出出中中断断信信号号,CPU收收到到中中断断信信号号后后转转中中断断处处理理程程序序,唤醒等待输入完成的进程,并返回被中断的程序。唤醒等待输入完成的进程,并返回被中断的程序。u 在以后的某个时刻,进程调度程序选中提出请求在以后的某个时刻,进程调度程序选中提出请求输入的进程,该进程从指定的内存始址取出数据做进一输入的进程,该进程从指定的内存始址取出数据做进一步处理。步处理。9/8/202450CPU向控制器发出启动向控制器发出启动DMA通知和有关参数通知和有关参数控制器向内存发出询问请求控制器向内

37、存发出询问请求访问内存(读、写)访问内存(读、写)计数器减计数器减1结束否结束否发中断发中断NYDMA的实现流程的实现流程9/8/202451n5、DMA方式方式特点特点: (1) 数据传送的基本单位是数据块;数据传送的基本单位是数据块; (2) 所所传传送送的的数数据据是是从从设设备备直直接接送送入入内内存存,或者相反;或者相反; (3) 仅仅在在传传送送一一个个或或多多个个数数据据块块的的开开始始和和结结束束时时,才才需需中中断断CPU,请请求求干干预预,整整块块数数据据的的传传送是在送是在DMA控制器控制下完成的。控制器控制下完成的。n 缺点缺点: DMA方方式式只只能能完完成成简简单单

38、的的数数据据传传送送、计计数数、内内存存地地址址加加1或或减减1等等操操作作,不不能能满满足足复复杂杂的的I/O操操作要求。作要求。 9/8/2024526、DMA方式与中断的主要区别方式与中断的主要区别n (1) 中断方式是在数据缓冲寄存区满后,发中中断方式是在数据缓冲寄存区满后,发中断请求,断请求,CPU进行中断处理;进行中断处理; DMA方式则是在所要求传送的数据块全部传方式则是在所要求传送的数据块全部传送结束时要求送结束时要求CPU进行中断处理,大大减少了进行中断处理,大大减少了CPU进行中断处理的次数。进行中断处理的次数。n (2) 中断方式的数据传送是由中断方式的数据传送是由CPU

39、控制完成控制完成的;的; DMA方式则是在方式则是在DMA控制器的控制下不经过控制器的控制下不经过CPU控制完成的。控制完成的。9/8/2024535.2.4 I/O通道控制方式通道控制方式n1、概念、概念 通道控制方式是一种以主存为中心,是设备与通道控制方式是一种以主存为中心,是设备与主存直接交换数据的控制方式。主存直接交换数据的控制方式。 CPU只需要发出启动指令,指出通道相应的操只需要发出启动指令,指出通道相应的操作和输入输出设备,该指令就可以启动通道并使该作和输入输出设备,该指令就可以启动通道并使该通道从主存中调出相应的通道指令执行,完成一组通道从主存中调出相应的通道指令执行,完成一组

40、数据块的输入数据块的输入/输出。输出。 9/8/202454n2、通道控制方式步骤、通道控制方式步骤 (1)当进程要求设备输入时,)当进程要求设备输入时,CPU发指令指明发指令指明I/O操作、设备号和对应通道。操作、设备号和对应通道。 (2)对应通道收到)对应通道收到CPU发来的启动指令后,读出发来的启动指令后,读出内存中的通道指令程序、设置对应设备的控制状态内存中的通道指令程序、设置对应设备的控制状态寄存器的初值。寄存器的初值。 (3)设备按通道指令的要求,把数据送往内存指)设备按通道指令的要求,把数据送往内存指定区域。定区域。 (4)若传送结束,)若传送结束,I/O控制器通过中断请求线发中

41、控制器通过中断请求线发中断信号请求断信号请求CPU做中断处理。做中断处理。 (5)中断处理结束后,)中断处理结束后,CPU返回到被中断进程返回到被中断进程处继续执行。处继续执行。 (6)当进程调度程序选中这个已得到数据的进程)当进程调度程序选中这个已得到数据的进程后,才能进行加工处理。后,才能进行加工处理。9/8/202455n3、特点、特点 通道所需要的通道所需要的CPU干预更少,并可以实现干预更少,并可以实现CPU、通道和输入输出设备三者之间的并行操作,从而更通道和输入输出设备三者之间的并行操作,从而更有效地提高整个系统资源的利用率。有效地提高整个系统资源的利用率。 通道控制方式适用于现代

42、计算机系统中的大量数通道控制方式适用于现代计算机系统中的大量数据交换。据交换。9/8/202456通道和通道和DMA控制器的区别控制器的区别 (1)一个)一个DMA控制器只能连接同类外设,且如果是多台控制器只能连接同类外设,且如果是多台同类外设,则它们只能是以串行方式工作。同类外设,则它们只能是以串行方式工作。 一个通道可以连接多个不同类型的设备控制器,而一个一个通道可以连接多个不同类型的设备控制器,而一个设备控制器又可以管理一台或多台外围设备,这就构成了典设备控制器又可以管理一台或多台外围设备,这就构成了典型的多级层次结构,众多外设均可在通道控制下同时工作;型的多级层次结构,众多外设均可在通

43、道控制下同时工作; (2)DMA控制是借助硬件完成数据交换的,而通道是执控制是借助硬件完成数据交换的,而通道是执行通道程序完成数据的;行通道程序完成数据的; (3)DMA控制器需要控制器需要CPU对多个外设进行初始化。对多个外设进行初始化。CPU只需发一个只需发一个I/O指令启动通道,由通道自己完成外设的初始化。指令启动通道,由通道自己完成外设的初始化。9/8/202457n 综上所述,在前三种综上所述,在前三种I/O控制方式中,控制方式中,CPU直直接对设备控制器和接对设备控制器和I/O接口编程,可以简化接口的接口编程,可以简化接口的设计。设计。n 对于非对于非DMA传送,需要传送,需要CP

44、U实际去完成数据实际去完成数据传送。对于高速数据传送可以使用传送。对于高速数据传送可以使用DMA,但还是,但还是需要需要CPU设置设备控制器,初始化设置设备控制器,初始化DMA操作和操作和操作完毕去检查端口传送状态。操作完毕去检查端口传送状态。n 而通道不同于而通道不同于DMA控制器,它能够去取和执控制器,它能够去取和执行它自己的指令;行它自己的指令; 而且这些指令的功能已不仅仅而且这些指令的功能已不仅仅是数据传送,还包括检索、分支转移,甚至一些是数据传送,还包括检索、分支转移,甚至一些简单的算术、逻辑运算。简单的算术、逻辑运算。9/8/202458n 大、中型计算机系统普遍用通道方式去控制大

45、、中型计算机系统普遍用通道方式去控制设备完成设备完成I/O操作,以提高操作,以提高CPU与外设,外设与与外设,外设与外设并行的程度。一些小型机和绝大多数微型机外设并行的程度。一些小型机和绝大多数微型机都是以都是以CPU直接控制设备接口和设备控制器以查直接控制设备接口和设备控制器以查询、中断或询、中断或DMA方式完成方式完成I/O操作,以降低系统操作,以降低系统造价。造价。9/8/202459思考题四思考题四n n 综上所述的综上所述的4种种I/O控制方式,分别适合用控制方式,分别适合用于何种场合?于何种场合?9/8/202460课堂练习题课堂练习题n1、从下面关于设备属性的论述中,选择一条正确

46、的描述。(从下面关于设备属性的论述中,选择一条正确的描述。( )nA字符设备的一个基本特征是可寻址的,即能指定输入时的字符设备的一个基本特征是可寻址的,即能指定输入时的源地址和输出时的目标地址源地址和输出时的目标地址nB共享设备必须是可寻址的和随机访问的设备共享设备必须是可寻址的和随机访问的设备nC共享设备是指在同一时刻,允许多个进程同时访问的设备共享设备是指在同一时刻,允许多个进程同时访问的设备nD在分配共享设备和独占设备时,都可能引起进程死锁在分配共享设备和独占设备时,都可能引起进程死锁n2、(、( )在一般大型计算机系统中,主机对外围设备的控制可通)在一般大型计算机系统中,主机对外围设备

47、的控制可通过通道、控制器和设备三个层次来实现。从下述叙述中选出一条过通道、控制器和设备三个层次来实现。从下述叙述中选出一条正确的叙述。正确的叙述。nA 控制器可控制通道,设备在通道控制下工作控制器可控制通道,设备在通道控制下工作nB 通道控制控制器,设备在控制器控制下工作通道控制控制器,设备在控制器控制下工作nC 通道和控制器分别控制设备通道和控制器分别控制设备nD 控制器控制通道和设备的工作控制器控制通道和设备的工作9/8/202461n1、通过硬件和软件的扩充通过硬件和软件的扩充,把原来独立的设备改造成能为若把原来独立的设备改造成能为若干用户共享的设备干用户共享的设备,这种设备称为这种设备

48、称为 ? 。n 2、引起中断发生的事件称为、引起中断发生的事件称为 ? 。n 3、如果、如果I/O设备与存储设备进行数据交换不经过设备与存储设备进行数据交换不经过CPU来完成,来完成,这种数据交换方式是这种数据交换方式是 ? 。n4、常用的、常用的I/O控制方式有程序控制方式有程序I/O方式、方式、 ? 、?、? 、?.n5、DMA是指允许是指允许 ? 和和 ? 之间直接交换数据的设之间直接交换数据的设备。在备。在DMA中必须设置地址寄存器,用于存放中必须设置地址寄存器,用于存放 ? ,还,还必须设置必须设置 ? 寄存器,用来暂存交换的数据。寄存器,用来暂存交换的数据。 n6、设备控制器是、设

49、备控制器是 ? 和和 ? 之间的接口,它接受来自之间的接口,它接受来自 ? 的的I/O命令,并用于控制命令,并用于控制 ? 的工作。的工作。n 7、按从属关系对、按从属关系对I/O设备分类,可分为系统设备和设备分类,可分为系统设备和 ? 两两类。类。9/8/2024625.3 缓冲管理缓冲管理n5.3.1 缓冲的引入缓冲的引入 1、引入的原因、引入的原因 (1)缓和)缓和CPU与输入输出设备间速度不匹配的与输入输出设备间速度不匹配的矛盾矛盾 (2)减少对)减少对CPU的中断频率,放宽对中断响应的中断频率,放宽对中断响应时间的限制。时间的限制。 (3)提高)提高CPU与输入输出设备间的并行性。与

50、输入输出设备间的并行性。9/8/202463n2、缓冲技术的实现思想、缓冲技术的实现思想 建立一个缓冲区,当进程要执行读写操作时,建立一个缓冲区,当进程要执行读写操作时,首先向申请一块内存区域作为缓冲区,然后,将要首先向申请一块内存区域作为缓冲区,然后,将要传送的数据高速送到缓冲区。传送的数据高速送到缓冲区。 如果是读操作,则根据进程要求,把当前需要如果是读操作,则根据进程要求,把当前需要的逻辑记录从缓冲区中选出并传送给进程。若为写的逻辑记录从缓冲区中选出并传送给进程。若为写操作,则不断把数据填到缓冲区,直到它被填满为操作,则不断把数据填到缓冲区,直到它被填满为止。止。9/8/202464n3

51、、实现缓冲的方法、实现缓冲的方法 (1) 硬件缓冲。硬件缓冲采用专用硬件缓冲器,硬件缓冲。硬件缓冲采用专用硬件缓冲器,一般由外设自带的专用寄存器构成。一般由外设自带的专用寄存器构成。 (2)软件缓冲。在内存中专门开辟若干单元作为)软件缓冲。在内存中专门开辟若干单元作为缓冲区为各种设备服务。缓冲区为各种设备服务。9/8/2024655.3.2 单缓冲和双缓冲单缓冲和双缓冲一、单缓冲一、单缓冲 单缓冲即是在发送者和接收者之间只有一个缓冲区单缓冲即是在发送者和接收者之间只有一个缓冲区 过程:过程:当一个用户进程要求输入数据时,操作当一个用户进程要求输入数据时,操作系统控制输入设备将数据送往缓冲区存放

52、,再送往系统控制输入设备将数据送往缓冲区存放,再送往用户进程的数据存储区。用户进程的数据存储区。9/8/202466n特点特点 在主存中只有一个缓冲区。对于块设备,该缓冲在主存中只有一个缓冲区。对于块设备,该缓冲区可以存放一块数据,对于字符设备,该缓冲区可区可以存放一块数据,对于字符设备,该缓冲区可以存放一行数据。设备和处理器对缓冲区的操作是以存放一行数据。设备和处理器对缓冲区的操作是串行的,传输速度慢。在任一时刻,只能进行单向串行的,传输速度慢。在任一时刻,只能进行单向的数据传输,并且传输数据量较少。的数据传输,并且传输数据量较少。 优点是设计简单,容易实现优点是设计简单,容易实现 缺点是发

53、送者和接收者不能并行工作缺点是发送者和接收者不能并行工作9/8/202467n二、双缓冲二、双缓冲 双缓冲可在发送者与接收者之间设两个缓冲区缓双缓冲可在发送者与接收者之间设两个缓冲区缓冲区冲区1和缓冲区和缓冲区2。 过程:过程:发送者将数据送满缓冲区发送者将数据送满缓冲区1,接收者从缓,接收者从缓冲区冲区1取数据时,发送者则可将数据送入缓冲区取数据时,发送者则可将数据送入缓冲区2,当接收者将缓冲区当接收者将缓冲区1取空后,又可到缓冲区取空后,又可到缓冲区2中取数中取数据,这时发送者再将数据送入缓冲区据,这时发送者再将数据送入缓冲区1。 于是,发送者和接收者交替使用两个缓冲区,达于是,发送者和接

54、收者交替使用两个缓冲区,达到了并行工作的目的。到了并行工作的目的。9/8/202468n特点特点 在主存中设置两个缓冲区,完成数据的传输。两在主存中设置两个缓冲区,完成数据的传输。两个缓冲区可以交替使用,提高了处理器和输入设备个缓冲区可以交替使用,提高了处理器和输入设备的并行操作能力。的并行操作能力。 在任一时刻,可以进行双向的数据传输。一个缓在任一时刻,可以进行双向的数据传输。一个缓冲区用于输入,另一个用于输出。冲区用于输入,另一个用于输出。 适用于输入适用于输入/输出、生产者输出、生产者/消费者速度基本相匹消费者速度基本相匹配的情况。配的情况。 当传输数据量较大,或者两者的速度相差较远时,

55、当传输数据量较大,或者两者的速度相差较远时,双缓冲区效率较低,还是不能解决两者并行工作问双缓冲区效率较低,还是不能解决两者并行工作问题。题。9/8/202469n三、循环缓冲三、循环缓冲 由于双缓冲并不能真正解决实际系统中的并行操作,为了由于双缓冲并不能真正解决实际系统中的并行操作,为了能够进一步提高系统操作的并行程度,可以通过增加缓冲区能够进一步提高系统操作的并行程度,可以通过增加缓冲区的个数,即实现多缓冲区方式。为了更好地控制和使用这些的个数,即实现多缓冲区方式。为了更好地控制和使用这些缓冲区,将多个缓冲区组成环形,称为循环缓冲技术。缓冲区,将多个缓冲区组成环形,称为循环缓冲技术。 循环缓

56、冲技术是在内存中分配大小相等的存储区作循环缓冲技术是在内存中分配大小相等的存储区作为缓冲区,并将这些缓冲区连接起来,每个缓冲区中有为缓冲区,并将这些缓冲区连接起来,每个缓冲区中有一个指向下一个缓冲区的指针,最后一个缓冲区的指针一个指向下一个缓冲区的指针,最后一个缓冲区的指针指向第一个缓冲区指向第一个缓冲区9/8/202470 为了充分利用这些缓冲资源,使进程的处理和为了充分利用这些缓冲资源,使进程的处理和I/O设备的设备的工作具有较好的连续性,提高设备的利用率,将缓冲区分为工作具有较好的连续性,提高设备的利用率,将缓冲区分为以下两种类型:以下两种类型: (1) 空缓冲区。准备接收输入的数据。空

57、缓冲区。准备接收输入的数据。 (2) 满缓冲区。用于存放可供使用的数据。满缓冲区。用于存放可供使用的数据。过程:过程: 当循环缓冲接收数据时,将待传送的数据送入当循环缓冲接收数据时,将待传送的数据送入EMPTY指向指向的空缓冲区,填满后,让的空缓冲区,填满后,让EMPTY指向下一个空缓冲区。每次申指向下一个空缓冲区。每次申请一个空缓冲区时,需要判断请一个空缓冲区时,需要判断EMPTY是否与是否与FULL相等。若相相等。若相等,表示系统中已没有空缓冲区,输入进程需要等待;否则,等,表示系统中已没有空缓冲区,输入进程需要等待;否则,可以继续输入。可以继续输入。 若要从缓冲区取数据时,直接到若要从缓

58、冲区取数据时,直接到FULL所指向的缓冲区中取,所指向的缓冲区中取,然后让然后让FULL指向下一个满缓冲区。同样,每次指向下一个满缓冲区。同样,每次FULL指针移动指针移动时,需要判断时,需要判断FULL是否与是否与EMPTY相等。若相等,表示缓冲区相等。若相等,表示缓冲区已无数据可取,等待缓冲区满后继续操作。已无数据可取,等待缓冲区满后继续操作。9/8/202471特点特点: 在主存中设置多个缓冲区。读和写可以并行处理,适用于在主存中设置多个缓冲区。读和写可以并行处理,适用于某种特定的输入输出进程和计算进程,如输入某种特定的输入输出进程和计算进程,如输入/输出、生产者输出、生产者/消费者速度

59、不相匹配的情况。消费者速度不相匹配的情况。 循环缓冲区属于专用缓冲区。当系统较大时,使用多循环缓冲区属于专用缓冲区。当系统较大时,使用多个这样的缓冲区要消耗大量的主存空间,降低缓冲区的使用个这样的缓冲区要消耗大量的主存空间,降低缓冲区的使用效率。效率。 两个缺点:两个缺点: (1)当系统的资源较多时,就要占用大量的缓冲区,增加)当系统的资源较多时,就要占用大量的缓冲区,增加内存开销。内存开销。 (2)可能会出现某个设备的缓冲不够用,而其他设备有多)可能会出现某个设备的缓冲不够用,而其他设备有多个空闲缓冲区的情况,导致循环缓冲的利用率不高。个空闲缓冲区的情况,导致循环缓冲的利用率不高。9/8/2

60、02472n四、缓冲池四、缓冲池 上述的循环缓冲区仅适用于某特定的上述的循环缓冲区仅适用于某特定的I/O进程和计算进程,进程和计算进程,是专用缓冲结构,而不是针对整个系统的公用缓冲结构。当是专用缓冲结构,而不是针对整个系统的公用缓冲结构。当系统较大时,会有很多这样的缓冲结构,这不仅要消耗大量系统较大时,会有很多这样的缓冲结构,这不仅要消耗大量的内存空间,而且其利用率不高。的内存空间,而且其利用率不高。 为了提高缓冲区的利用率,目前普遍采用公用缓冲池结构,为了提高缓冲区的利用率,目前普遍采用公用缓冲池结构,在缓冲池中设置了可供多个并发进程共享的缓冲区。在缓冲池中设置了可供多个并发进程共享的缓冲区

61、。9/8/202473 如图所示,缓冲池是由多个大小相同的缓冲区组成,如图所示,缓冲池是由多个大小相同的缓冲区组成,同管理程序统一对缓冲池进行管理。当某个进程需要使同管理程序统一对缓冲池进行管理。当某个进程需要使用缓冲区时,由管理程序将缓冲池中合适的缓冲区分配用缓冲区时,由管理程序将缓冲池中合适的缓冲区分配给它,使用完毕,再将缓冲区释放回缓冲池。给它,使用完毕,再将缓冲区释放回缓冲池。 9/8/202474 为便于管理,系统将相同类型的缓冲区链成一个队列,缓为便于管理,系统将相同类型的缓冲区链成一个队列,缓冲池中共有三种队列:冲池中共有三种队列: (1) 空缓冲队列。空缓冲队列。 (2) 输入

62、队列。输入队列。 (3) 输出队列。输出队列。 这三种队列各有指向其首缓冲区的队首指针和指向尾缓这三种队列各有指向其首缓冲区的队首指针和指向尾缓冲区的队尾指针。系统根据需要从这三种队列中取出缓冲区,冲区的队尾指针。系统根据需要从这三种队列中取出缓冲区,对缓冲区进行存数据、取数据操作。对缓冲区进行存数据、取数据操作。这些缓冲区称为工作缓这些缓冲区称为工作缓冲区。冲区。缓冲池中有四种工作缓冲区:缓冲池中有四种工作缓冲区: (1) 收容输入工作缓冲区。收容输入工作缓冲区。 (2) 提取输入工作缓冲区。提取输入工作缓冲区。 (3) 收容输出工作缓冲区。收容输出工作缓冲区。 (4) 提取输出工作缓冲区。

63、提取输出工作缓冲区。9/8/202475对缓冲池管理提供两个基本操作对缓冲池管理提供两个基本操作(过程过程): (1) getbuf(type):用于从:用于从type所指定的队列的队首,所指定的队列的队首, 摘摘下一个缓冲区;下一个缓冲区; (2) putbuf(type,number):用于将用参数:用于将用参数number所指所指示的缓冲区,示的缓冲区, 挂在挂在type队列上。队列上。9/8/202476 下面是缓冲池在具体的工作过程中,对缓冲池中的缓冲区下面是缓冲池在具体的工作过程中,对缓冲池中的缓冲区实施管理和使用的情况:实施管理和使用的情况: (1) 当输入设备要进行数据输入时,

64、先从空缓冲区队列当输入设备要进行数据输入时,先从空缓冲区队列的队首摘取一个空缓冲区,将它作为收容输入工作缓冲区,的队首摘取一个空缓冲区,将它作为收容输入工作缓冲区,在其装满输入数据后,再将它挂到输入数据队列的队尾。在其装满输入数据后,再将它挂到输入数据队列的队尾。 (2) 当某个计算进程需要输入数据时,从输入队列中取当某个计算进程需要输入数据时,从输入队列中取出一个缓冲区作为输入工作缓冲区,进程从中提取数据,取出一个缓冲区作为输入工作缓冲区,进程从中提取数据,取空后,将该缓冲区挂到空缓冲区队列的队尾。空后,将该缓冲区挂到空缓冲区队列的队尾。 (3) 当某个计算进程想输出数据时,从空缓冲区队首摘

65、当某个计算进程想输出数据时,从空缓冲区队首摘下一个空缓冲区作为收容输出工作缓冲区,在其装满计算进下一个空缓冲区作为收容输出工作缓冲区,在其装满计算进程的输出数据后,将它挂到输出队列的队尾。程的输出数据后,将它挂到输出队列的队尾。 (4) 当输出设备进行数据输出时,从输出队列取下一个当输出设备进行数据输出时,从输出队列取下一个缓冲区作为提取输出工作缓冲区,当其数据全送到输出设备缓冲区作为提取输出工作缓冲区,当其数据全送到输出设备后,再将它挂到空缓冲队列尾。后,再将它挂到空缓冲队列尾。9/8/202477n特点特点 缓冲池结构复杂,在主存中设置公用缓冲池,在池中设缓冲池结构复杂,在主存中设置公用缓

66、冲池,在池中设置多个可以供多个进程共享的缓冲区。缓冲区既可以用于输置多个可以供多个进程共享的缓冲区。缓冲区既可以用于输入,又可以用于输出(即共享)。缓冲池的设置,减少了主入,又可以用于输出(即共享)。缓冲池的设置,减少了主存空间的消耗,提高了主存的利用率,适应于现代操作系统。存空间的消耗,提高了主存的利用率,适应于现代操作系统。 无论是多缓冲,还是缓冲池,由于缓冲器是临界资源,无论是多缓冲,还是缓冲池,由于缓冲器是临界资源,因此在使用缓冲区时都有一个申请、释放和互斥的问题。因此在使用缓冲区时都有一个申请、释放和互斥的问题。 9/8/202478缓冲和缓存的差异缓冲和缓存的差异 缓冲与缓存的基本

67、原理和作用是相似的,如果不加区缓冲与缓存的基本原理和作用是相似的,如果不加区分的话,都可以称之为缓冲。分的话,都可以称之为缓冲。 但两者之间确实存在细微的差异:但两者之间确实存在细微的差异: 缓冲的作用在于协调速度不匹配的缓冲的作用在于协调速度不匹配的I/O传输过程;传输过程; 而缓存的作用在于减少对设备的实际访问次数。这而缓存的作用在于减少对设备的实际访问次数。这个差异导致了两者的管理方法有所不同。个差异导致了两者的管理方法有所不同。9/8/202479 一般来说,缓冲区的生命期较短,当进程开始数据传输一般来说,缓冲区的生命期较短,当进程开始数据传输时建立,一旦数据传输完毕,将立即释放缓冲区

68、,它只起暂时建立,一旦数据传输完毕,将立即释放缓冲区,它只起暂存数据的作用。存数据的作用。 而缓存区的生命期较长,缓存的数据可以长时间地保存而缓存区的生命期较长,缓存的数据可以长时间地保存在缓存区中,服务于各种应用目的。如文件系统中的在缓存区中,服务于各种应用目的。如文件系统中的i节点缓节点缓存、目录项缓存等在整个系统运行期间都存在于内存中,由存、目录项缓存等在整个系统运行期间都存在于内存中,由文件系统管理和使用。文件系统管理和使用。 9/8/202480 另外,缓冲区的管理相对简单,系统只需提供另外,缓冲区的管理相对简单,系统只需提供简单的分配算法以及同步机制即可。简单的分配算法以及同步机制

69、即可。 而缓存区的管理则需要利用更复杂的算法,以而缓存区的管理则需要利用更复杂的算法,以提高访问的命中率,最大限度地发挥缓存的作用。提高访问的命中率,最大限度地发挥缓存的作用。例如,磁盘的缓存算法要确定哪些数据应存放在缓例如,磁盘的缓存算法要确定哪些数据应存放在缓存中,哪些数据应从缓存中撤出等。存中,哪些数据应从缓存中撤出等。 在应用上,进程间的通信多使用缓冲技术,而在应用上,进程间的通信多使用缓冲技术,而设备的设备的I/O往往 往使用缓冲兼缓存技术。往使用缓冲兼缓存技术。9/8/2024815.4I/O软件软件 分层结构的底层是设备分层结构的底层是设备相关部分,称为设备驱动相关部分,称为设备

70、驱动程序。它们直接和相应的程序。它们直接和相应的设备打交道,负责设备的设备打交道,负责设备的具体驱动和控制。上层通具体驱动和控制。上层通常是和设备无关的,这个常是和设备无关的,这个部分接受来自用户层的访部分接受来自用户层的访问请求,并把这些访问请问请求,并把这些访问请求传给具体的设备驱动程求传给具体的设备驱动程序,再将驱动程序的执行序,再将驱动程序的执行结果进行转换,传给用户结果进行转换,传给用户9/8/2024825.4I/O软件的设计目标和原则软件的设计目标和原则设备无关性设备无关性错误处理错误处理同步同步/异步传输异步传输必须能处理独占设备和共必须能处理独占设备和共享设备的享设备的I/O

71、操作操作9/8/202483 为实现以上四个目标,为实现以上四个目标, I/O系统应组织成以系统应组织成以下四个层次:下四个层次: (1) 中断处理程序中断处理程序 (2) 设备驱动程序设备驱动程序 (3) 与设备无关的与设备无关的I/O软件软件 (4) 用户空间的用户空间的I/O软件软件9/8/2024845.4.2中断处理程序中断处理程序 中断事件通常由硬件发现。对出现的事件进行处中断事件通常由硬件发现。对出现的事件进行处理的程序称为中断处理程序。理的程序称为中断处理程序。 中断处理程序是由操作系统处理的,属于操作中断处理程序是由操作系统处理的,属于操作系统的组成部分。系统的组成部分。 中

72、断处理程序位于中断处理程序位于I/O系统的最低层。当进程需要系统的最低层。当进程需要进行进行I/O操作时,操作系统应将该进程挂起,即进入操作时,操作系统应将该进程挂起,即进入阻塞,直至阻塞,直至I/O操作结束并发生中断。当中断发生时,操作结束并发生中断。当中断发生时,中断处理程序执行相应的操作,以解除相应进程的中断处理程序执行相应的操作,以解除相应进程的阻塞状态。阻塞状态。9/8/202485n一个完整的中断处理过程包括以下四步一个完整的中断处理过程包括以下四步: (1) 中断请求:由中断源向中断请求:由中断源向CPU提出中断请求提出中断请求(软中断除外软中断除外)。 (2) 中断响应:中断响

73、应:CPU在收到中断请求并具备响应在收到中断请求并具备响应条件的情况下,进行中断响应,以实现向中断服务条件的情况下,进行中断响应,以实现向中断服务程序的过渡。程序的过渡。 (3) 中断服务:中断服务:CPU在执行中断服务程序期间,在执行中断服务程序期间,要进行具体的中断服务。要进行具体的中断服务。 (4) 中断返回:中断服务程序的最后一条指令应中断返回:中断服务程序的最后一条指令应是中断返回指令。当执行到该指令时,便返回到被是中断返回指令。当执行到该指令时,便返回到被终止的程序,从断点处继续执行。终止的程序,从断点处继续执行。9/8/202486n中断请求:中断请求: 中断源需要通过中断线送到

74、中断控制器的输入端,中断源需要通过中断线送到中断控制器的输入端,这称为中断请求。这称为中断请求。 中断控制器是一个硬件装置,它负责捕获中断请中断控制器是一个硬件装置,它负责捕获中断请求,并以一定的方式向求,并以一定的方式向CPU提交中断。由于同时可提交中断。由于同时可能会有多个中断信号产生,它们需要共用有限的中能会有多个中断信号产生,它们需要共用有限的中断线。断线。 因此,当设备要使用中断线时就要先进行中断因此,当设备要使用中断线时就要先进行中断请求请求(IRQ),以获得中断线的使用权。,以获得中断线的使用权。9/8/202487n中断响应中断响应 对中断请求的整个处理过程是由硬件和软件相结合

75、的一整对中断请求的整个处理过程是由硬件和软件相结合的一整套中断机构实施的。中断响应由硬件实施,中断处理主要由套中断机构实施的。中断响应由硬件实施,中断处理主要由软件实施。软件实施。 中断响应是中断响应是CPU对中断源中断请求的响应,包括保护断对中断源中断请求的响应,包括保护断点和将程序转向中断服务程序的入口地址。点和将程序转向中断服务程序的入口地址。 在处理器执行完一条指令后,硬件的中断装置就立即检在处理器执行完一条指令后,硬件的中断装置就立即检查有无中断事件发生。若无,继续执行下一条指令;若有,查有无中断事件发生。若无,继续执行下一条指令;若有,则停止现行进程,由操作系统中的中断处理程序占用

76、处理器,则停止现行进程,由操作系统中的中断处理程序占用处理器,这一过程称为这一过程称为“中断响应中断响应”。9/8/202488n一般说来,中断响应过程顺序执行下述动作:一般说来,中断响应过程顺序执行下述动作: (1) 中止当前进程的执行;中止当前进程的执行; (2) 对被响应的中断进行应答;对被响应的中断进行应答; (3) 保存当前进程的断点信息保存当前进程的断点信息(主要是程序状态字主要是程序状态字PSW和程序计数器和程序计数器PC); (4) 转到中断处理程序入口。转到中断处理程序入口。9/8/202489n中断处理中断处理 中断处理主要由软件实施。响应中断后,中断处理主要由软件实施。响

77、应中断后,CPU转转去执行相应的中断处理程序。每个中断都对应一个去执行相应的中断处理程序。每个中断都对应一个特定的中断处理程序,因而系统中会有许多中断处特定的中断处理程序,因而系统中会有许多中断处理程序,如时钟中断处理程序、键盘中断处理程序理程序,如时钟中断处理程序、键盘中断处理程序等。在设备的驱动程序中包含了对该设备所有中断等。在设备的驱动程序中包含了对该设备所有中断的处理程序。的处理程序。9/8/202490n中断处理过程:中断处理过程: 当中断装置发现中断事件后,先把中断事件存放到程当中断装置发现中断事件后,先把中断事件存放到程序状态字寄存器中的中断码位置。序状态字寄存器中的中断码位置。

78、 把程序状态字寄存器中的把程序状态字寄存器中的“当前当前PSW”作为作为“旧旧 PSW”保存到预先约定的主存的固定单元中。保存到预先约定的主存的固定单元中。 根据中断码,把该类事件处理程序的根据中断码,把该类事件处理程序的“新新PSW”送入程送入程序状态字寄存器。序状态字寄存器。 处理器按新处理器按新PSW控制处理该事件的中断处理程序执控制处理该事件的中断处理程序执行。行。 当中断程序处理完后,再恢复现场,继续执行原先被中断当中断程序处理完后,再恢复现场,继续执行原先被中断的进程的进程9/8/202491n中断处理程序的处理过程如下:中断处理程序的处理过程如下: 1唤醒被阻塞的驱动程序进程唤醒

79、被阻塞的驱动程序进程 2保护被中断进程的现场保护被中断进程的现场 3分析中断原因、转入相应的设备中断处理程序分析中断原因、转入相应的设备中断处理程序 4进行中断处理进行中断处理 5恢复被中断进程的现场恢复被中断进程的现场 中断处理程序的工作是对传输的结果进行必要的处理。中断处理程序的工作是对传输的结果进行必要的处理。9/8/202492n多中断的处理多中断的处理 对于中断处理过程中又发生中断,引起多中断处对于中断处理过程中又发生中断,引起多中断处理的问题,通常有两种处理方法。理的问题,通常有两种处理方法。 (1) 处理一个中断时禁止中断对任何新中断置之处理一个中断时禁止中断对任何新中断置之不理

80、,在此期间发生的中断将保持挂起状态,当再不理,在此期间发生的中断将保持挂起状态,当再次允许中断时,新中断信号被处理器检测到再予以次允许中断时,新中断信号被处理器检测到再予以处理处理 (2) 中断按照优先权分级允许优先级高的中断打中断按照优先权分级允许优先级高的中断打断优先级低的中断处理过程断优先级低的中断处理过程9/8/2024935.4.3 设备驱动程序设备驱动程序 设备驱动程序是驱动物理设备直接进行各种操设备驱动程序是驱动物理设备直接进行各种操作的软件,它可看作作的软件,它可看作I/O系统和物理设备的接口。系统和物理设备的接口。 设备驱动程序包括了所有与设备有关的代码。每设备驱动程序包括了

81、所有与设备有关的代码。每一个设备驱动程序只处理一种设备或者一类密切相一个设备驱动程序只处理一种设备或者一类密切相关的设备。关的设备。 9/8/202494n设备驱动程序的功能:设备驱动程序的功能: (1)实现逻辑设备到物理设备的转换。)实现逻辑设备到物理设备的转换。 (2)发出)发出I/O命令,启动相应的命令,启动相应的I/O设备,完成相设备,完成相应的应的I/O操作。操作。9/8/202495n设备驱动程序与设备控制器交互的大致过程设备驱动程序与设备控制器交互的大致过程 驱动程序将控制命令发到控制器的命令寄存器驱动程序将控制命令发到控制器的命令寄存器中,控制器启动设备进行中,控制器启动设备进

82、行I/O操作。操作。 当数据准备好后,驱动程序负责与控制器交互,当数据准备好后,驱动程序负责与控制器交互,完成数据传输工作。完成数据传输工作。 控制器将设备产生的状态信息存入状态寄存器控制器将设备产生的状态信息存入状态寄存器中,供驱动程序查询。中,供驱动程序查询。 当有设备中断事件发生时,控制器发出中断请当有设备中断事件发生时,控制器发出中断请求信号,系统进入中断处理程序进行处理。求信号,系统进入中断处理程序进行处理。9/8/202496n设备处理方式有三类:设备处理方式有三类: 一是为每一类设备设置一个进程,专门执行这一是为每一类设备设置一个进程,专门执行这类设备的输入输出操作。类设备的输入

83、输出操作。 二是在整个系统中设置一个输入输出进程,专二是在整个系统中设置一个输入输出进程,专门负责对系统中所有各类设备的输入输出操作。门负责对系统中所有各类设备的输入输出操作。 三是不设置专门的设备处理进程,只为各类设三是不设置专门的设备处理进程,只为各类设备设置相应的设备处理程序,供用户进程或系统进备设置相应的设备处理程序,供用户进程或系统进程调用。程调用。9/8/202497n设备驱动程序的特点设备驱动程序的特点 (1) 驱动程序主要是在请求输入输出的进程与设驱动程序主要是在请求输入输出的进程与设备控制器之间的一个通信程序。备控制器之间的一个通信程序。 (2) 驱动程序与输入输出设备的特性

84、密切相关。驱动程序与输入输出设备的特性密切相关。因而对不同类型的设备应配置不同的驱动程序因而对不同类型的设备应配置不同的驱动程序 (3) 驱动程序与输入输出控制方式紧密相关。驱动程序与输入输出控制方式紧密相关。 (4) 驱动程序与硬件紧密相关,其部分被固化在驱动程序与硬件紧密相关,其部分被固化在ROM 中。中。9/8/202498n设备驱动程序的处理过程:设备驱动程序的处理过程: 1将抽象要求转化为具体要求将抽象要求转化为具体要求 2检查输入输出请求的合法性检查输入输出请求的合法性 3读出和检查设备的状态读出和检查设备的状态 4传送必要的参数传送必要的参数 5设置工作方式设置工作方式 6启动输

85、入输出设备启动输入输出设备9/8/2024995.4.4 设备独立性软件设备独立性软件 为了实现设备独立性而引入了逻辑设备和物理为了实现设备独立性而引入了逻辑设备和物理设备这两个概念。设备这两个概念。 在应用程序中,在应用程序中, 使用逻辑设备名称来请求使用使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,某类设备;而系统在实际执行时, 还必须使用物理还必须使用物理设备名称。设备名称。 因此,系统须具有将逻辑设备名称转换为某物因此,系统须具有将逻辑设备名称转换为某物理设备名称的功能,这非常类似于存储器管理中所理设备名称的功能,这非常类似于存储器管理中所介绍的逻辑地址和物理地址的概念。介绍

86、的逻辑地址和物理地址的概念。 9/8/2024100n1 逻辑设备与物理设备的概念逻辑设备与物理设备的概念 物理设备是一个具体的设备。系统为了能识别全物理设备是一个具体的设备。系统为了能识别全部外设,给每台外设分配一个唯一不变的名字,称为部外设,给每台外设分配一个唯一不变的名字,称为物理设备名。系统在实际工作时使用物理设备名。物理设备名。系统在实际工作时使用物理设备名。 逻辑设备是对实际物理设备属性的抽象,它并不逻辑设备是对实际物理设备属性的抽象,它并不限于某个具体设备。用户在编程时,不用关心系统具限于某个具体设备。用户在编程时,不用关心系统具体配置了哪些设备,也不需要了解各种设备的物理特体配

87、置了哪些设备,也不需要了解各种设备的物理特性,而只是按照惯例为所用的设备起个逻辑名字,称性,而只是按照惯例为所用的设备起个逻辑名字,称为逻辑设备名。为逻辑设备名。9/8/2024101n2 设备独立性设备独立性 设备独立性也称设备无关性,指用户编程时所设备独立性也称设备无关性,指用户编程时所使用的设备与实际使用的设备无关。使用的设备与实际使用的设备无关。 为此,要求用户程序对输入输出设备的请求采用为此,要求用户程序对输入输出设备的请求采用逻辑设备名;逻辑设备名; 而在程序实际执行时使用物理设备名,它们之而在程序实际执行时使用物理设备名,它们之间的关系类似存储管理中的逻辑地址和物理地址的间的关系

88、类似存储管理中的逻辑地址和物理地址的关系。关系。9/8/2024102 用户程序以逻辑设备名来请求使用某类设备时,用户程序以逻辑设备名来请求使用某类设备时,系统将在该类设备中,根据设备的使用情况,将任系统将在该类设备中,根据设备的使用情况,将任一台合适的物理设备分配给程序。一台合适的物理设备分配给程序。 在实现了设备独立性的功能后,在实现了设备独立性的功能后, 可带来以下两可带来以下两方面的好处:方面的好处: 1) 设备分配时的灵活性设备分配时的灵活性 2) 易于实现易于实现I/O重定向重定向9/8/20241035.4.5 用户层用户层I/O软件软件 尽管大部分尽管大部分I/O软件属于操作系

89、统,但是也有一软件属于操作系统,但是也有一小部分是与用户程序链接在一起的库例程,甚至是小部分是与用户程序链接在一起的库例程,甚至是在核心外运行的完整程序。在核心外运行的完整程序。 系统调用,系统调用, 包括包括I/O系统调用,通常是库例程调系统调用,通常是库例程调用。在如下用。在如下C语句:语句: count=write(fd, buffer, nbyte); 中,中, 所调用的库函数所调用的库函数write( )将与用户程序链接将与用户程序链接在一起,在一起, 并包含在运行时的二进制代码中。这一类并包含在运行时的二进制代码中。这一类库例程显然也是库例程显然也是I/O系统的一部分。标准系统的一

90、部分。标准I/O库包含库包含相当多涉及相当多涉及I/O的库例程,它们作为用户程序的一部的库例程,它们作为用户程序的一部分运行。分运行。 9/8/2024104总结总结I/O系统各层的主要功能如下:系统各层的主要功能如下: (1) 用户进程层执行输入用户进程层执行输入/输出系统调用,对输出系统调用,对I/O数据进行格式化,为假数据进行格式化,为假脱机输入脱机输入/输出做准备。输出做准备。 (2) 独立于设备的软件实现设备的命名、设备的保护、成块处理、缓冲独立于设备的软件实现设备的命名、设备的保护、成块处理、缓冲技术和设备分配。技术和设备分配。 (3) 设备驱动程序设置设备寄存器、检查设备的执行状

91、态。设备驱动程序设置设备寄存器、检查设备的执行状态。 (4) 中断处理程序负责中断处理程序负责I/O完成时,唤醒设备驱动程序进程,进行中断完成时,唤醒设备驱动程序进程,进行中断处理。处理。 (5) 硬件层实现物理硬件层实现物理I/O的操作。的操作。9/8/20241055.5 设备分配设备分配 设备分配是由设备分配是由I/O系统中的设备分配程序完成的。系统中的设备分配程序完成的。 每当进程提出每当进程提出I/O请求时,设备分配程序便按照一请求时,设备分配程序便按照一定的策略把所需的设备分配给进程使用。定的策略把所需的设备分配给进程使用。 设备分配的原则是要尽可能地让设备忙碌,充分设备分配的原则

92、是要尽可能地让设备忙碌,充分发挥设备的使用效率。发挥设备的使用效率。9/8/20241065.5.1 设备分配中的数据结构设备分配中的数据结构n设备控制表设备控制表 DCTn控制器控制表控制器控制表 COCTn系统设备表系统设备表 SDTn通道控制表通道控制表CHCT(有时有)(有时有)9/8/2024107n1.设备控制表设备控制表 系统为每个设备配置一张设备控制表,用于记录系统为每个设备配置一张设备控制表,用于记录设备的特性及与输入输出控制器连接的情况。设备的特性及与输入输出控制器连接的情况。 该表在系统生成时或在该设备和系统连接时创建,该表在系统生成时或在该设备和系统连接时创建,但表中的

93、内容则根据系统执行情况而被动态地修改但表中的内容则根据系统执行情况而被动态地修改。9/8/2024108 表目表目i 设备类型设备类型 设备标识符设备标识符 设备状态设备状态 控制器表指针控制器表指针 重复执行次数和时间重复执行次数和时间 设备队列的队首指针设备队列的队首指针 设备队列的队尾指针设备队列的队尾指针 表目表目1 1 设备控制表集合设备控制表集合 设备控制表设备控制表 设备控制表 9/8/2024109n2.系统设备表系统设备表SDT 系系统统设设备备表表也也称称为为设设备备类类表表,整整个个系系统统配配置置一一张张。它它记记录录了了已已被被连连接接到到系系统统中中的的所所有有物物

94、理理设备的情况,并为每个物理设备设一个表项。设备的情况,并为每个物理设备设一个表项。9/8/2024110 表目表目i 设备类型设备类型 设备标识符设备标识符 进程标识符进程标识符 设备接口模块标识设备接口模块标识符符 表目表目1 1 系统设备表 9/8/2024111n3.控制器控制表控制器控制表COCT 系系统统为为每每个个控控制制器器配配置置了了一一张张控控制制器器控控制制表表,以反映控制器的使用状态。以反映控制器的使用状态。9/8/2024112 表目表目i 控制器标识符控制器标识符 控制器状态控制器状态 与控制器连接的通道与控制器连接的通道表指针表指针 控制器队列的队首指针控制器队列

95、的队首指针 控制器队列的队尾指针控制器队列的队尾指针 表目表目1 1 控制器表控制器表 控制器表 n其中控制器表中包括:控制器标识符、控制器状态、与控制器连接的通道表指针、控制器队列的队首指针和队尾指针。与设备控制表的表目类似,不再重复。9/8/2024113n4.通道控制表通道控制表CHCT 系统为每个通道配置一张通道控制表,以反系统为每个通道配置一张通道控制表,以反映通道的使用状态。映通道的使用状态。 该表只在通道控制方式的系统中存在,每个该表只在通道控制方式的系统中存在,每个通道一张。通道一张。9/8/2024114 表目表目i 通道标识符通道标识符 通道状态通道状态 与通道连接的控制器

96、表与通道连接的控制器表首址首址 通道队列的队首指针通道队列的队首指针 通道队列的队尾指针通道队列的队尾指针 表目表目1 1 通道表通道表通道表 其中通道表中包括:通道标识符、通道状态、与通道连接的控制器表首址、通道队列的队首指针和队尾指针。与设备控制表的表目类似,不再重复。9/8/2024115这几张表的关系:这几张表的关系: 在系统设备表中有指向设备控制表的指针,在设备控在系统设备表中有指向设备控制表的指针,在设备控制表中有指向该设备控制器控制表的指针,在控制器控制表中有指向该设备控制器控制表的指针,在控制器控制表中有指向与该控制器连接的通道控制表的指针。系制表中有指向与该控制器连接的通道控

97、制表的指针。系统就是通过这种关系进行设备的分配与回收的。统就是通过这种关系进行设备的分配与回收的。9/8/20241165.5.2 设备分配时应考虑的因素设备分配时应考虑的因素n1设备的使用性质设备的使用性质 按照设备自身的使用性质,可以采用以下三种不按照设备自身的使用性质,可以采用以下三种不同的分配方式:独享分配、共享分配、虚拟分配。同的分配方式:独享分配、共享分配、虚拟分配。 独享分配适用于大多数低速设备,如打印机。独享分配适用于大多数低速设备,如打印机。 共享分配适应于高速设备,如磁盘。共享分配适应于高速设备,如磁盘。 虚拟分配适应于虚拟设备。根据设备的使用性质虚拟分配适应于虚拟设备。根

98、据设备的使用性质来决定一台设备可以分给几个进程。来决定一台设备可以分给几个进程。9/8/2024117n2.设备分配的算法设备分配的算法 当有多个进程同时请求设备时,系统应采用某种策略决定当有多个进程同时请求设备时,系统应采用某种策略决定将设备分配给哪个进程使用。主要的分配策略有先来先服务和将设备分配给哪个进程使用。主要的分配策略有先来先服务和优先级两种。优先级两种。 (1)先来先服务算法根据进程对某设备提出请求的先后次)先来先服务算法根据进程对某设备提出请求的先后次序,将这些进程排成一个设备请求队列,设备分配程序总是把序,将这些进程排成一个设备请求队列,设备分配程序总是把设备首先分配给队首的

99、进程。先来先服务的算法简单、公平,设备首先分配给队首的进程。先来先服务的算法简单、公平,但无法满足某些紧迫进程对但无法满足某些紧迫进程对I/O响应时间的要求。响应时间的要求。 (2)优先级算法的策略是对高优先权进程的)优先级算法的策略是对高优先权进程的I/O请求也赋予请求也赋予高优先权,这有助于这种进程尽快完成。在利用该算法形成设高优先权,这有助于这种进程尽快完成。在利用该算法形成设备队列时,将优先级高的进程排在设备请求队列的前面,而对备队列时,将优先级高的进程排在设备请求队列的前面,而对于同优先级的于同优先级的I/O请求,则按先来先服务的原则排队。请求,则按先来先服务的原则排队。9/8/20

100、24118n3. 设备分配的安全性设备分配的安全性 设备分配的安全性是指在设备分配中应防止发生进程的死锁。设备分配的安全性是指在设备分配中应防止发生进程的死锁。设备分配的安全性采用的方法有静态分配策略和动态分配策略,设备分配的安全性采用的方法有静态分配策略和动态分配策略,它们可以防止进程死锁。它们可以防止进程死锁。 (1)静态分配策略。静态分配策略是在作业级进行的,用)静态分配策略。静态分配策略是在作业级进行的,用户作业开始执行前,由系统一次分配给该作业所要求的全部设户作业开始执行前,由系统一次分配给该作业所要求的全部设备、控制器和通道,直到该作业撤消为止。静态分配不会出现备、控制器和通道,直

101、到该作业撤消为止。静态分配不会出现死锁,但是,设备利用率低。死锁,但是,设备利用率低。 (2)动态分配策略。动态分配策略是在进程执行过程中,)动态分配策略。动态分配策略是在进程执行过程中,根据执行的需要所进行的设备分配。动态分配提高了设备的利根据执行的需要所进行的设备分配。动态分配提高了设备的利用率,但是分配不当,会造成进程的死锁。用率,但是分配不当,会造成进程的死锁。9/8/2024119n4. 设备的独立性设备的独立性 设备的独立性是指用户在编制程序时所使用的设备设备的独立性是指用户在编制程序时所使用的设备与实际使用的设备无关。为此,要求用户程序对输入与实际使用的设备无关。为此,要求用户程

102、序对输入输出设备的请求采用逻辑设备名,而在程序实际执行输出设备的请求采用逻辑设备名,而在程序实际执行时使用物理设备名,它们之间的关系类似存储管理中时使用物理设备名,它们之间的关系类似存储管理中的逻辑地址和物理地址的关系。的逻辑地址和物理地址的关系。9/8/20241205.5.3 独占设备的分配程序独占设备的分配程序 在一个具有在一个具有I/O通道的系统中,当进程提通道的系统中,当进程提出出I/O请求时,对独占设备的分配过程是:请求时,对独占设备的分配过程是: 首先为其进行分配合适的设备,然后分配首先为其进行分配合适的设备,然后分配控制器,最后分配通道。控制器,最后分配通道。9/8/20241

103、分配设备分配设备 分配设备的过程如图示:分配设备的过程如图示: 当进程提出当进程提出I/O请求后,首先请求后,首先根据进程提出的逻辑设备名,查根据进程提出的逻辑设备名,查找到与之对应的物理设备名,检找到与之对应的物理设备名,检索系统设备表索系统设备表SDT,以获得该设,以获得该设备的设备控制表备的设备控制表DCT。查看设备控制表中设备的状态。查看设备控制表中设备的状态。 若设备忙,将该进程若设备忙,将该进程PCB放放入设备请求队列中;入设备请求队列中; 否则,系统可根据一定的算否则,系统可根据一定的算法判定分配此设备给进程是否安法判定分配此设备给进程是否安全。全。 若不安全,将进程的若不安全,

104、将进程的PCB块也块也放入设备请求队列。放入设备请求队列。 若有设备空闲,且分配安全,若有设备空闲,且分配安全,就将该设备分配给进程。就将该设备分配给进程。9/8/2024121计算机操作系统chap5设备管理2分配控制器分配控制器 在在系系统统把把设设备备分分配配给给请请求求输输入入输出的进程后,输出的进程后, 再再到到设设备备控控制制表表中中找找到到与与该该设设备备相相连连的的控控制制器器控控制制表表,从从该该表表的的状状态态字字段段中中可可知知该该控控制制器器是是否否忙碌。忙碌。 若若控控制制器器忙忙,则则将将进进程程插插入入到到等待该控制器的队列;等待该控制器的队列; 否否则则,将将该

105、该控控制制器器分分配配给给进进程程,即即修修改改控控制制器器控控制制表表,把把状状态态字字段的值由段的值由“0”改为进程名。改为进程名。9/8/2024122计算机操作系统chap5设备管理3分配通道分配通道 在分配完设备控制器后,从控在分配完设备控制器后,从控制器控制表中找到与该控制器相制器控制表中找到与该控制器相连的通道控制表,从该表的状态连的通道控制表,从该表的状态字段中可知该通道是否忙碌。字段中可知该通道是否忙碌。 若通道处于忙碌状态,则将该若通道处于忙碌状态,则将该进程插入到等待该通道的队列;进程插入到等待该通道的队列; 否则,将该通道分配给进程,否则,将该通道分配给进程,即修改通道

106、控制表,把状态字段即修改通道控制表,把状态字段的值由的值由“0”改为进程名。改为进程名。9/8/2024123计算机操作系统chap5设备管理设备回收设备回收 当进程撤消或设备使用完毕后,要进行设当进程撤消或设备使用完毕后,要进行设备的回收,设备回收的过程如图所示。设备备的回收,设备回收的过程如图所示。设备回收的步骤:回收的步骤:(1)系统根据进程名在设备分配表中找到相)系统根据进程名在设备分配表中找到相应的记录,把设备状态修改为应的记录,把设备状态修改为“0”表示未分配,表示未分配,若该设备的等待队列不空,则唤醒队首进程,若该设备的等待队列不空,则唤醒队首进程,进行设备分配;进行设备分配;(

107、2)到该设备的控制器控制表中,把其状态)到该设备的控制器控制表中,把其状态由进程名改为由进程名改为“0”,若该控制器的等待队列不,若该控制器的等待队列不空,则唤醒队首进程,进行控制器分配;空,则唤醒队首进程,进行控制器分配;(3)到该控制器的通道控制表中,把其状态)到该控制器的通道控制表中,把其状态由进程名改为由进程名改为“0”,若该通道的等待队列不空,若该通道的等待队列不空,则唤醒队首进程,进行通道分配;则唤醒队首进程,进行通道分配;(4)在系统设备表中,把回收设备台数添加)在系统设备表中,把回收设备台数添加到到“现存设备台数现存设备台数”中。中。 9/8/2024124计算机操作系统cha

108、p5设备管理对设备分配程序的改进对设备分配程序的改进 以上设备分配程序有两个特点:以上设备分配程序有两个特点: 一是一是,进程是以进程是以物理设备名物理设备名来提出输入输出请求的。来提出输入输出请求的。 二是二是,系统采用的是系统采用的是单通路单通路的输入输出系统结构。这样的输入输出系统结构。这样的系统容易产生的系统容易产生“瓶颈瓶颈”现象。现象。 为此,对设备分配程序做以下改进:为此,对设备分配程序做以下改进: (1)增加设备的独立性。)增加设备的独立性。进程应以逻辑设备名请求输入进程应以逻辑设备名请求输入输出。系统首先根据系统设备表找到第一个该类设备的设备输出。系统首先根据系统设备表找到第

109、一个该类设备的设备分配表,若该设备忙,则查找第二个该类设备的设备分配表,分配表,若该设备忙,则查找第二个该类设备的设备分配表,仅当所有该类设备都忙时,才把进程挂在该类设备的等待队仅当所有该类设备都忙时,才把进程挂在该类设备的等待队列上。这样通过增加设备的独立性,提高了设备分配的安全列上。这样通过增加设备的独立性,提高了设备分配的安全性。性。9/8/2024125计算机操作系统chap5设备管理(2)考虑多通路情况。)考虑多通路情况。 系统采用多通路的输入输出系统结构,如图示:系统采用多通路的输入输出系统结构,如图示: 即一个设备可以由多个控制器控制,一个控制器可以由多即一个设备可以由多个控制器

110、控制,一个控制器可以由多个通道控制(即增加图中的虚线部分)。这样,可以防止系个通道控制(即增加图中的虚线部分)。这样,可以防止系统出现统出现“瓶颈瓶颈”现象。也就是对控制器和通道的分配,同样经现象。也就是对控制器和通道的分配,同样经过几次反复,只要有一个控制器或通道可用,系统就可以把过几次反复,只要有一个控制器或通道可用,系统就可以把它分配给进程。这样,就增加了分配控制器和通道的可能性,它分配给进程。这样,就增加了分配控制器和通道的可能性,提高了设备分配的效率。提高了设备分配的效率。返回9/8/2024126计算机操作系统chap5设备管理1275.5.4 SPOOLing技术技术n虚拟设备技

111、术虚拟设备技术 虚拟设备:指通过某种虚拟技术,将一台物理设备虚拟设备:指通过某种虚拟技术,将一台物理设备变换成若干台逻辑设备,从而实现多个用户对该物变换成若干台逻辑设备,从而实现多个用户对该物理设备的同时共享。由于多台逻辑设备实际上并不理设备的同时共享。由于多台逻辑设备实际上并不存在,而只是给用户的一种感觉,因此被称作虚拟存在,而只是给用户的一种感觉,因此被称作虚拟设备。设备。 过程:过程:当进程中请求独享设备时,系统将共享设备当进程中请求独享设备时,系统将共享设备的一部分存储空间分配给它。进程与设备交换信息的一部分存储空间分配给它。进程与设备交换信息时,系统把要交换的信息存放在这部分存储空间

112、,时,系统把要交换的信息存放在这部分存储空间,在适当的时候对信息作相应的处理。在适当的时候对信息作相应的处理。 9/8/2024128nSPOOLing的概念的概念 为了缓和为了缓和CPU的高速性与的高速性与I/O设备低速性间的矛盾设备低速性间的矛盾而引了脱机输入、脱机输出技术,利用专门的外围而引了脱机输入、脱机输出技术,利用专门的外围控制机,将数据在低速控制机,将数据在低速I/O设备上与高速磁盘之间传设备上与高速磁盘之间传送。通过共享设备来模拟独享设备所采用的操作是送。通过共享设备来模拟独享设备所采用的操作是假脱机操作,或假脱机操作,或SPOOLing ,即在联机情况下外部,即在联机情况下外

113、部设备设备同时操作。设备设备同时操作。什么是什么是SPOOLing系统?系统? 指在多道程序的环境下,利用多道程序中的一道或指在多道程序的环境下,利用多道程序中的一道或两道程序来模拟外围控制机,从而在联机的条件下两道程序来模拟外围控制机,从而在联机的条件下实现脱机实现脱机I/O的功能。的功能。9/8/2024129nSPOOLing系统的组成系统的组成1 输入井和输出井。输入井和输出井。 2 输入缓冲区和输出缓冲区。输入缓冲区和输出缓冲区。 3 输入进程和输出进程。输入进程和输出进程。9/8/2024130n假脱机技术的组成:假脱机技术的组成: (1)输入井和输出井。这是在磁盘上开辟的两个大的

114、存)输入井和输出井。这是在磁盘上开辟的两个大的存储区。输入井是模拟脱机输入时的磁盘,用于收容输入设备储区。输入井是模拟脱机输入时的磁盘,用于收容输入设备输入的数据。输出井是模拟脱机输出时的磁盘,用于收容用输入的数据。输出井是模拟脱机输出时的磁盘,用于收容用户程序的输出数据。户程序的输出数据。 (2)输入缓冲区和输出缓冲区。它们是在主存中开辟的)输入缓冲区和输出缓冲区。它们是在主存中开辟的两个缓冲区。输入缓冲区用于暂存由输入设备送来的数据,两个缓冲区。输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入井,输出缓冲区用于暂存从输出井送来的以后再传送到输入井,输出缓冲区用于暂存从输出井送来的数

115、据,以后再传送给输出设备。数据,以后再传送给输出设备。 (3)输入进程和输出进程。输入进程模拟脱机输入时的外)输入进程和输出进程。输入进程模拟脱机输入时的外围控制机,将用户要求的数据从输入设备,通过输入缓冲区围控制机,将用户要求的数据从输入设备,通过输入缓冲区送到输入井。当送到输入井。当CPU需要数据时,直接从输入井读入主存。需要数据时,直接从输入井读入主存。输出进程模拟脱机输出时的外围控制机,把用户要求输出的输出进程模拟脱机输出时的外围控制机,把用户要求输出的数据,先从主存送到输出井,待输出设备空闲时,再将输出数据,先从主存送到输出井,待输出设备空闲时,再将输出井中的数据,经过输出缓冲区送到

116、输出设备上。井中的数据,经过输出缓冲区送到输出设备上。9/8/2024131n思考题思考题SPOOLing是如何实现输入输出的?是如何实现输入输出的? 输入进程模拟脱机输入时的外围控制机,将用户输入进程模拟脱机输入时的外围控制机,将用户要求的数据从输入机通过输入缓冲区再送到输入井,要求的数据从输入机通过输入缓冲区再送到输入井,当当CPU需要输入数据时,直接从输入井读入内存;需要输入数据时,直接从输入井读入内存; 输出进程模拟脱机输出时的外围控制机,把用户输出进程模拟脱机输出时的外围控制机,把用户要求输出的数据先从内存送到输出井,待输出设备要求输出的数据先从内存送到输出井,待输出设备空闲时,再将

117、输出井中的数据经过输出缓冲区送到空闲时,再将输出井中的数据经过输出缓冲区送到输出设备上。输出设备上。9/8/2024132用用SPOOLing技术实现打印机共享例技术实现打印机共享例 系统在外存开辟了一个打印机输出井和一个磁带机输入井。系统在外存开辟了一个打印机输出井和一个磁带机输入井。 对用户进程来说,这就是一台虚拟打印机和一台虚拟磁对用户进程来说,这就是一台虚拟打印机和一台虚拟磁带机。带机。 当进程需要从磁带机输入数据时,当进程需要从磁带机输入数据时,SPOOLing系统启动系统启动磁带机,将数据读入磁带机输入井中,随后进程直接从输入磁带机,将数据读入磁带机输入井中,随后进程直接从输入井提

118、取数据,不需再等待。井提取数据,不需再等待。 当进程需要打印输出时,它们将数据高速地送入打印机输当进程需要打印输出时,它们将数据高速地送入打印机输出井,然后继续运行。在输出井等待打印的数据形成打印队出井,然后继续运行。在输出井等待打印的数据形成打印队列,由列,由SPOOLing系统控制在适当的时候完成实际的打印工系统控制在适当的时候完成实际的打印工作。作。9/8/2024133 虚拟设备除了可以减少进程对设备的等待时间外,还可虚拟设备除了可以减少进程对设备的等待时间外,还可以解决多个进程对独占设备的竞争问题。例如,在设置了以解决多个进程对独占设备的竞争问题。例如,在设置了虚拟打印机的系统中,每

119、个进程都可以随时执行打印输出虚拟打印机的系统中,每个进程都可以随时执行打印输出操作,好像系统的打印机是自己独占的。也就是说,使用操作,好像系统的打印机是自己独占的。也就是说,使用虚拟设备永远不会引起进程死锁。虚拟设备永远不会引起进程死锁。9/8/2024134 当用户进程请求打印输出时,当用户进程请求打印输出时, SPOOLing系统系统同意为它打印输出,同意为它打印输出, 但并不真正立即把打印机分配但并不真正立即把打印机分配给该用户进程,给该用户进程, 而只为它做两件事:而只为它做两件事: 由输出进程在输出井中为之申请一个空闲磁由输出进程在输出井中为之申请一个空闲磁盘块区,盘块区, 并将要打

120、印的数据送入其中;并将要打印的数据送入其中; 输出进程再为用户进程申请一张空白的用户输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,请求打印表,并将用户的打印要求填入其中, 再将再将该表挂到请求打印队列上。该表挂到请求打印队列上。9/8/2024135n思考题思考题请说明请说明SPOOLing 系统是如何实现虚拟设备的?系统是如何实现虚拟设备的? 答:答:SPOOLing系统主要由输入井和输出井、输入缓冲区和系统主要由输入井和输出井、输入缓冲区和输出缓冲区、输入进程和输出三部分组成。输出缓冲区、输入进程和输出三部分组成。 当要运行用户程序时,由输入进程将用户要求的

121、程序和当要运行用户程序时,由输入进程将用户要求的程序和数据预先从输入设备经由输入缓冲区送到输入井,当程序运数据预先从输入设备经由输入缓冲区送到输入井,当程序运行需要输入数据时,直接从输入井将数据读入内存。行需要输入数据时,直接从输入井将数据读入内存。 当用户程序要求输出数据时,由输出进程先将数据从内存当用户程序要求输出数据时,由输出进程先将数据从内存送到输出井,待输出设备空闲时,再将输出井中的数据经由送到输出井,待输出设备空闲时,再将输出井中的数据经由输出缓冲区送到输出设备上。输出缓冲区送到输出设备上。 由于磁盘是共享设备,输入井及输出井是磁盘上的两个由于磁盘是共享设备,输入井及输出井是磁盘上

122、的两个存储区域,因此多个用户进程可以共享使用输入井及输出井,存储区域,因此多个用户进程可以共享使用输入井及输出井,这样,就将独占型设备改造成了可共享使用的虚拟设备。这样,就将独占型设备改造成了可共享使用的虚拟设备。9/8/2024136nSPOOLing系统特点系统特点 1 提高了提高了I/O速度。速度。 2 将独享设备改造为共享设备。将独享设备改造为共享设备。 3 实现了虚拟设备功能。实现了虚拟设备功能。 (1) 提高了输入输出速度。提高了输入输出速度。SPOOLing技术引入了输入井技术引入了输入井和输出井,可以使输入进程、用户进程和输出进程同时工作,和输出井,可以使输入进程、用户进程和输

123、出进程同时工作,从而提高了输入输出速度。从而提高了输入输出速度。 (2) 将独占设备改造为共享设备。由于将独占设备改造为共享设备。由于SPOOLing技术把技术把所有用户进程的输出都送入输出井,然后再由输出进程完成所有用户进程的输出都送入输出井,然后再由输出进程完成打印工作,而输出井在磁盘上,为共享设备。这样打印工作,而输出井在磁盘上,为共享设备。这样SPOOLing技术就把打印机等独占设备改造成了共享设备。技术就把打印机等独占设备改造成了共享设备。 (3) 实现了虚拟设备功能。由于实现了虚拟设备功能。由于SPOOLing技术实现了多技术实现了多个用户进程共同使用打印机这种独占设备的情况,从而

124、实现个用户进程共同使用打印机这种独占设备的情况,从而实现了把一个设备当成多个设备来使用,即虚拟设备的功能。了把一个设备当成多个设备来使用,即虚拟设备的功能。9/8/20241375.6 磁盘存储器的管理磁盘存储器的管理n5.6.1 磁盘性能简述磁盘性能简述磁盘的结构磁盘的结构 每个盘面上有许多磁道,从每个盘面上有许多磁道,从0开始按由开始按由外向里的次序顺序编号,不同盘面上具有外向里的次序顺序编号,不同盘面上具有相同编号的磁道在同一个柱面上,把盘面相同编号的磁道在同一个柱面上,把盘面上的磁道号称为上的磁道号称为“柱面号柱面号”。 每个盘面有一个读写磁头,所每个盘面有一个读写磁头,所有的读写磁头

125、被固定在唯一的移有的读写磁头被固定在唯一的移动臂上同时移动,把所有的读写动臂上同时移动,把所有的读写磁头按从上到下的次序从磁头按从上到下的次序从0开始进开始进行编号,称为磁头号。行编号,称为磁头号。 在磁盘初始化时把每个盘面划分成相等在磁盘初始化时把每个盘面划分成相等数量的扇区,按磁盘旋转的反向从数量的扇区,按磁盘旋转的反向从 0开始开始给各扇区编号,称为扇区号。给各扇区编号,称为扇区号。 要确定一个块所在的要确定一个块所在的位置,必须给出三个参位置,必须给出三个参数:柱面号、磁头号、数:柱面号、磁头号、扇区号。扇区号。9/8/2024138n磁盘的类型磁盘的类型 1) 固定头磁盘固定头磁盘

126、这种磁盘在每条磁道上都有一读这种磁盘在每条磁道上都有一读/写磁头,所有写磁头,所有的磁头都被装在一刚性磁臂中。通过这些磁头可访的磁头都被装在一刚性磁臂中。通过这些磁头可访问所有各磁道,并进行并行读问所有各磁道,并进行并行读/写,有效地提高了磁写,有效地提高了磁盘的盘的I/O速度。速度。 这种结构的磁盘主要用于大容量磁盘这种结构的磁盘主要用于大容量磁盘上。上。 2) 移动头磁盘移动头磁盘 每一个盘面仅配有一个磁头,也被装入磁臂中。每一个盘面仅配有一个磁头,也被装入磁臂中。为能访问该盘面上的所有磁道,该磁头必须能移动为能访问该盘面上的所有磁道,该磁头必须能移动以进行寻道。可见,移动磁头仅能以串行方

127、式读以进行寻道。可见,移动磁头仅能以串行方式读/写,写,致使其致使其I/O速度较慢;但由于其结构简单,速度较慢;但由于其结构简单, 故仍广泛故仍广泛应用于中小型磁盘设备中。应用于中小型磁盘设备中。9/8/2024139n磁盘访问时间磁盘访问时间 启动磁盘执行输入输出操作时,要把移动臂移动启动磁盘执行输入输出操作时,要把移动臂移动到指定的柱面,再等待指定的扇区旋转到磁头位置到指定的柱面,再等待指定的扇区旋转到磁头位置下,然后让指定的磁头进行读写,完成信息传送。下,然后让指定的磁头进行读写,完成信息传送。因此,执行一次输入输出所花的时间有:因此,执行一次输入输出所花的时间有: 1)寻道时间)寻道时

128、间磁头在移动臂带动下移动到指定磁头在移动臂带动下移动到指定柱面所花的时间。(柱面所花的时间。(Seek) 2)延迟时间)延迟时间(Delay)指定扇区旋转到磁头下指定扇区旋转到磁头下所需的时间。所需的时间。 3)传输时间)传输时间由磁头进行读写完成信息传送由磁头进行读写完成信息传送的时间。的时间。9/8/20241405.6.2 磁盘调度磁盘调度n1.先进先服务算法先进先服务算法FCFS 这是最简单的一种磁盘调度算法。它根据进程请这是最简单的一种磁盘调度算法。它根据进程请求访问磁盘的先后次序进行调度。求访问磁盘的先后次序进行调度。 它将各进程对磁盘请求的等待队列按提出请求的它将各进程对磁盘请求

129、的等待队列按提出请求的时间进行排序,并按此次序给予服务。时间进行排序,并按此次序给予服务。 它对各进程是公平的,它不管进程优先级多高,它对各进程是公平的,它不管进程优先级多高,只要是新来到的访问请求,都被排在队尾。只要是新来到的访问请求,都被排在队尾。9/8/2024141 例如,如果现在读写磁头正在例如,如果现在读写磁头正在53号柱面上执行输入输出号柱面上执行输入输出操作,而等待访问者依次要访问的柱面为操作,而等待访问者依次要访问的柱面为98,183,37,122,14,124,65,67。那么,当。那么,当53号柱面上的操作结束号柱面上的操作结束后,移动臂将按请求的先后次序先移到后,移动臂

130、将按请求的先后次序先移到98号往面,最后到达号往面,最后到达67号柱面,如下图所示。号柱面,如下图所示。 其相应的臂的其相应的臂的总移动量为:总移动量为:(98-53)+(183-98)+(183-37)+(122-37)+(122-14)+(124-14)+(124-65)+(67-65) =45 + 85+146+85+108+110+59+2 = 640 9/8/2024142n 当用户提出的访问请求比较均匀地遍布整个盘面,当用户提出的访问请求比较均匀地遍布整个盘面,而不是集中某部分时,先来先服务策略导致了随机而不是集中某部分时,先来先服务策略导致了随机访问模式,在这种策略下无法对访问进

131、行优化。在访问模式,在这种策略下无法对访问进行优化。在对磁盘的访问请求比较多的情况下,此策略将降低对磁盘的访问请求比较多的情况下,此策略将降低设备服务的吞吐量和提高响应时间,但各进程得到设备服务的吞吐量和提高响应时间,但各进程得到服务的响应时间的变化幅度较小。服务的响应时间的变化幅度较小。n 先来先服务策略在访问请求不是很多的情况下,先来先服务策略在访问请求不是很多的情况下,是一个可以接受地策略,而且算法的实现比较简单是一个可以接受地策略,而且算法的实现比较简单9/8/2024143n2.最短寻道时间优先算法最短寻道时间优先算法SSTF 选择请求队列中柱面号最接近于磁头当前所在的选择请求队列中

132、柱面号最接近于磁头当前所在的柱面的访问要求,作为下一个服务对象。柱面的访问要求,作为下一个服务对象。 此策略可以得到比较好的吞吐量和较低的平均响此策略可以得到比较好的吞吐量和较低的平均响应时间。应时间。9/8/2024144 现对需要存取得磁筒进行排序:现对需要存取得磁筒进行排序:14,37,65,67 98,122,124,183。 相对于相对于53最近的磁筒为最近的磁筒为65。余下的问题是在到达。余下的问题是在到达67后,后,下一个目标是?下一个目标是? 37,67,98其差为其差为30与与31,所以下一个目标为,所以下一个目标为37。9/8/2024145 其缺点是对用户的服务请求的响应

133、机会不是均等其缺点是对用户的服务请求的响应机会不是均等的,对中间磁道的访问请求得到最好的服务,对内、的,对中间磁道的访问请求得到最好的服务,对内、外两侧磁道的服务随偏离中心磁道的距离愈远而愈外两侧磁道的服务随偏离中心磁道的距离愈远而愈差,因而导致响应时间的变化幅度很大,在服务请差,因而导致响应时间的变化幅度很大,在服务请求很多的情况下,对内、外边缘磁道的请求将会无求很多的情况下,对内、外边缘磁道的请求将会无限期地被延迟。因而有些请求的响应时间将不可预限期地被延迟。因而有些请求的响应时间将不可预期。期。9/8/2024146电梯调度算法电梯调度算法 “电梯调度电梯调度”算法总是从移动臂当前位置开

134、始沿算法总是从移动臂当前位置开始沿着臂的移动方向去选择离当前移动臂最近的那个住着臂的移动方向去选择离当前移动臂最近的那个住面的访问者,如果沿臂的移动方向无请求访问时,面的访问者,如果沿臂的移动方向无请求访问时,就改变臂的移动方向再选择。就改变臂的移动方向再选择。 这好比乘电梯,如果电梯已向上运动到这好比乘电梯,如果电梯已向上运动到4层时,层时,依次有依次有3位乘客位乘客A,B,C,他们的要求是:,他们的要求是:A在在2层层等待去等待去10层;层;B在在5层等待去底层;层等待去底层;C在在8层等待上层等待上15层。电梯管理员不是按照乘客来到的先后次序服层。电梯管理员不是按照乘客来到的先后次序服务

135、,而是考虑电梯的效率。在这种情况下,沿电梯务,而是考虑电梯的效率。在这种情况下,沿电梯运动方向总是先把乘客运动方向总是先把乘客C带到带到15层,然后把乘客层,然后把乘客B带带到底层,最后再把乘客到底层,最后再把乘客A送到送到10层。层。9/8/2024147n3.扫描算法扫描算法 扫描算法是在选择请求队列中,按磁臂前进方向扫描算法是在选择请求队列中,按磁臂前进方向最接近于磁头当前所在柱面的访问要求作为下一个最接近于磁头当前所在柱面的访问要求作为下一个服务对象。服务对象。 此策略基本上克服了最短查找时间优先策略的服此策略基本上克服了最短查找时间优先策略的服务集中于中间磁道和响应时间变化比较大的缺

136、点。务集中于中间磁道和响应时间变化比较大的缺点。 并且具有最短查找时间优先策略地优点,即吞吐并且具有最短查找时间优先策略地优点,即吞吐量比较大,平均响应时间较小,但是由于是摆动式量比较大,平均响应时间较小,但是由于是摆动式的扫描方法,两侧磁道被访问的频率仍然低于中间的扫描方法,两侧磁道被访问的频率仍然低于中间磁道,比最短查找时间优先策略要好多了。磁道,比最短查找时间优先策略要好多了。9/8/2024148 对相同的例子采用单向扫描调度算法的执行次序为:对相同的例子采用单向扫描调度算法的执行次序为:65,67 98,122,124,183 , 此时移动臂继续向里移动,直到最内的柱面(图中为此时移

137、动臂继续向里移动,直到最内的柱面(图中为199号号柱面)后,再返回到柱面)后,再返回到0号柱面,号柱面, 重新扫描时依次为重新扫描时依次为37 , 14柱面的访问者服务。柱面的访问者服务。 9/8/2024149n4.循环扫描算法循环扫描算法 循环扫描策略与扫描策略的不同之处在于循环扫循环扫描策略与扫描策略的不同之处在于循环扫描是单向反复地扫描。描是单向反复地扫描。 循环扫描算法不管等待访问请求者的先后顺序,循环扫描算法不管等待访问请求者的先后顺序,磁头总是从磁头总是从0柱面开始向里扫描,按照各访问者所要柱面开始向里扫描,按照各访问者所要访问的柱面位置的次序去选择访问者。当移臂移到访问的柱面位

138、置的次序去选择访问者。当移臂移到最后一个柱面后,直接返回到最后一个柱面后,直接返回到0柱面,返回时不为任柱面,返回时不为任何的访问者提供服务,返回后再次按照请求的柱面何的访问者提供服务,返回后再次按照请求的柱面位置依次扫描。位置依次扫描。9/8/2024150磁盘调度算法总结磁盘调度算法总结对于这些调度算法的优劣比较:对于这些调度算法的优劣比较: 先来先服务(先来先服务(FIFS):算法简单,但效率差。):算法简单,但效率差。 最短寻找时间优先调度算法:效率比较高,但会最短寻找时间优先调度算法:效率比较高,但会出现有的请求很长时间得不到响应。出现有的请求很长时间得不到响应。 单向扫描调度算法:

139、效率比较高,但有一个空行单向扫描调度算法:效率比较高,但有一个空行程。程。 双向扫描调度算法:比单向扫描调度算法效率高,双向扫描调度算法:比单向扫描调度算法效率高,调度算法也相对合理。但还是有一个空行程。调度算法也相对合理。但还是有一个空行程。 电梯调度算法:是一个比较合理、优化的算法。电梯调度算法:是一个比较合理、优化的算法。9/8/20241515.6.3 磁盘高速缓存磁盘高速缓存 当进程从磁盘读取数据时,为了提高读盘速度,当进程从磁盘读取数据时,为了提高读盘速度,可以采用缓冲技术。即在内存中开辟一个缓冲区用可以采用缓冲技术。即在内存中开辟一个缓冲区用于接收从磁盘读取的数据,这个缓冲区称为

140、磁盘高于接收从磁盘读取的数据,这个缓冲区称为磁盘高速缓存,缓冲区的大小与磁盘块相匹配。其工作原速缓存,缓冲区的大小与磁盘块相匹配。其工作原理类似于内存和理类似于内存和CPU之间的高速缓存。之间的高速缓存。 利用内存中的存储空间,来暂存从磁盘中读出的利用内存中的存储空间,来暂存从磁盘中读出的一系列盘块中的信息。因此,这里的高速缓存是一一系列盘块中的信息。因此,这里的高速缓存是一组在逻辑上属于磁盘,组在逻辑上属于磁盘, 而物理上是驻留在内存中的而物理上是驻留在内存中的盘块。盘块。9/8/2024152 高速缓存在内存中可分成两种形式:高速缓存在内存中可分成两种形式: 第一种是在内存中开辟一个单独的

141、存储空间来作为磁盘第一种是在内存中开辟一个单独的存储空间来作为磁盘高速缓存高速缓存,其大小是固定的,不会受应用程序多少的影响;,其大小是固定的,不会受应用程序多少的影响; 第二种是把所有未利用的内存空间变为一个缓冲池,供第二种是把所有未利用的内存空间变为一个缓冲池,供请求分页系统和磁盘请求分页系统和磁盘I/O时时(作为磁盘高速缓存作为磁盘高速缓存)共享。共享。此时高此时高速缓存的大小,显然不再是固定的。当磁盘速缓存的大小,显然不再是固定的。当磁盘I/O的频繁程度较的频繁程度较高时,该缓冲池可能包含更多的内存空间;而在应用程序运高时,该缓冲池可能包含更多的内存空间;而在应用程序运行得较多时,该缓

142、冲池可能只剩下较少的内存空间。行得较多时,该缓冲池可能只剩下较少的内存空间。 9/8/2024153 当有一进程请求访问某盘块中的数据时,先去查看磁盘当有一进程请求访问某盘块中的数据时,先去查看磁盘高速缓存,看其中是否有进程所需访问的盘块数据的拷贝。高速缓存,看其中是否有进程所需访问的盘块数据的拷贝。若有,则直接从磁盘高速缓存中提取数据,而不必访问磁盘;若有,则直接从磁盘高速缓存中提取数据,而不必访问磁盘;若没有,则先将所需盘块读到磁盘高速缓存,然后从中提取若没有,则先将所需盘块读到磁盘高速缓存,然后从中提取数据送往请求进程的数据存储区。数据送往请求进程的数据存储区。9/8/2024154n5.6.4 提高磁盘提高磁盘I/O速度的其它方法速度的其它方法 1、提前读、提前读 2、延迟写、延迟写 3、优化物理块的分布、优化物理块的分布 4、虚拟盘、虚拟盘9/8/2024

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号