计算机操作系统chap5设备管理课程(PPT 155页).ppt_第1页
计算机操作系统chap5设备管理课程(PPT 155页).ppt_第2页
计算机操作系统chap5设备管理课程(PPT 155页).ppt_第3页
计算机操作系统chap5设备管理课程(PPT 155页).ppt_第4页
计算机操作系统chap5设备管理课程(PPT 155页).ppt_第5页
已阅读5页,还剩149页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、使操作系统获得最佳效率; 为用户提供一个友好的透明接口,把用户和设备硬件特性分开,使得用户在编制应用程序时不必涉及具体设备,系统按用户要求控制设备工作。,03.10.2020,设备管理功能,设备分配与回收 缓冲管理 设备处理 虚拟设备,03.10.2020,511 I/O设备 计算机系统的外围设备包括:显示器、键盘、纸带阅读器、纸带穿孔机、打印机、磁带、磁盘、光盘、激光打印机、绘图仪、图形数字化仪、鼠标器、声音输入、声音输出设备以及办公自动化设备等等,种类相当繁多,可从不同的角度对它们进行分类。,5.1 I/O系统,03.10.2020,系统设备:在操作系统生成时已配置好的的标准设备。 如:键

3、盘、显示器、打印机、磁盘等。 用户设备:指系统设备之外的非标准设备,一般由用户提供设备及其处理程序,并通过适当的手段把它们纳入系统中,由系统实施管理。 如:网卡、调制解调器、绘图仪等。,1设备的从属关系分类,03.10.2020,块设备:指以数据块为单位存储和传输数据的设备 如磁盘、磁带等。 字符设备:指以单个字符为单位来传送信息的设备。 如键盘、显示器、打印机等。,2设备中的信息交换单位方式分类,03.10.2020,存储设备:它是计算机用来存储永久性信息的设备 如,磁带、磁盘(软盘、硬盘)、光盘等。 输入设备:将外部信息送给计算机的设备。 如,键盘、鼠标、扫描仪、手写笔、数码相机、麦克风、

4、游戏手柄等 输出设备:将计算机加工后的信息传送给外界的设备。 如,显示器、打印机、投影仪等。,3按设备的使用特性分类,03.10.2020,独占设备:这类设备在用户作业的整个运行期间必须为此用户所占有,即多个作业对某一外设的访问应该是互斥的,一旦系统将这类设备分配给某个作业,便由该设备独占,直至释放该资源。 大多数低速I/O设备,如用户终端、打印机等 共享设备:指在同一时间段内可以同时让几个作业使用的设备,当然,在某一时刻,该设备只能为一个作业服务。 适应于高速设备,如磁盘 虚拟设备:根据设备的使用性质来决定一台设备可以分给几个进程以提高该设备的使用率。 如虚拟打印机,4按资源分配的角度分类,

5、03.10.2020,1、按( )分类可将设备分为块设备和字符设备。 A.从属关系 B.操作特性 C.共享属性 D.信息交换单位 2、大多数低速设备都属于( ) 设备。 A独占 B共享 C虚拟 DSpooling 3、从资源分配的角度看,可以把设备分为独占设备、共享设备和 虚拟设备 ,打印机属于_ 设备,而磁盘属于_设备。,03.10.2020,5.1.2 设备控制器,1.设备控制器的概念 设备控制器是CPU与外围设备之间的接口,是一个可编址设备,每一个地址对应一个设备。 它接收从CPU发来的命令,并去控制输入输出设备的工作,使CPU从繁杂的设备控制事务中解脱出来,提高CPU的使用效率。,03

6、.10.2020,2.作用:接收从CPU发来的命令,控制I/O设备工作 3.功能: 接收和识别命令 数据交换 地址识别 标识和报告设备的状态 差错控制,03.10.2020,4.设备控制器的组成,(1).设备控制器与处理机的接口 (2).设备控制器与设备的接口 (3).I/O逻辑,03.10.2020,I/O系统的结构,一、微型机I/O系统 :总线结构,磁盘驱动器,打印机,03.10.2020,二、主机系统输入输出结构,当主机所配置的输入输出设备较多时,特别是配有较多的高速外设时,采用总线型输入输出系统结构会加重CPU与总线的负担。 因此,在这样的输入输出系统中不宜采用单总线结构,而是增加一级

7、输入输出通道,用来代替CPU与各设备控制器进行通信,实现对控制器的控制。,03.10.2020,03.10.2020,5.1.3 I/O通道,1、通道的引入 为了提高计算机系统的运行效率,就要使CPU摆脱繁忙的I/O事务,而配置专门处理I/O事务的机构通道。 通道的引入是为了建立独立的I/O操作。它不仅要求数据传送独立于CPU,而且要求I/O操作的组织、管理、结束等也尽量独立,以保证CPU有更多的时间从事计算。这样就可以实现CPU计算和I/O操作的并行工作。,03.10.2020,思考题一,什么是通道? 通道有哪些类型?,03.10.2020,2、I/O通道概念 通道是一种硬件机构,又称I/O

8、处理机。输入输出通道是指专门负责输入输出工作的处理器。 它有自己的指令系统(包含数据传送指令和设备控制指令),独立执行自己的通道程序来实现内存与外设之间的数据传输,从而使系统获得CPU与外设并行处理的能力。,03.10.2020,3、通道的类型 根据信息交换方式的不同,可把通道分成字节多路通道、数组多路通道和选择通道三种。 (1)字节多路通道 通常都含有许多非分配型子通道,其数量可以从几十到数百个,每一个子通道连接一台输入输出设备,这些子通道按时间片轮转方式共享主通道。,字节多路通道连接低速或中速设备时,不会丢失信息。,03.10.2020,选择通道的数据传送是按成批的方式进行的,故传送速率很

9、高。,(2)数据选择通道,它适用于连接高速I/O设备,如磁带、磁盘等。选择通道只有一个分配型子通道,即这个子通道可以连接多台设备,但每次只能把子通道分配给一台设备使用。一旦分配给某台设备,子通道就被它独占,即使暂时出现空闲,也不允许其他设备利用该子通道。直到它被释放,再选择另一台设备为其服务。因此选择通道的利用率是很低的。,03.10.2020,这种通道综合了字节多路通道分时并行工作和选择通道传输速率高的特点。 它具有多个非分配型子通道,每个子通道连接一台中、高速I/O设备,如:磁带、磁鼓、磁盘等,因而通道所连接的几个设备可以并行工作。 数组多路通道技术相当于通道程序的多道程序设计技术。,(3

10、)数组多路通道,03.10.2020,CPU,字节多路通道,打印机1,打印机2,I/O控制器,I/O控制器,内存,选择通道,成组多路通道,磁盘,I/O控制器,磁盘,I/O控制器,I/O控 制器,I/O 控制器,磁带,磁带,存在这三种通道的计算机系统的各硬件的连接关系如图所示:,03.10.2020,思考题二,设备管理中,什么是“瓶颈”现象? 如何解决?,03.10.2020,通道命令和通道程序 通道有自己的指令系统,为了与CPU的指令相区别,通道的指令被称为“通道命令字”。通道命令字条数不多,主要涉及控制、转移、读、写及查询等功能。,0 7 8 31 32 47 48 63,每条通道命令由四个

11、字段组成: (1) 操作码(07): 表示通道要执行的命令; (2) 数据主存始址: 表示本命令要访问的主存数据区的起始地址; (3) 特征位(3247, 只使用了 3236 位, 其余未用): 3739 位必须置 0,否则认为通道命令错。,03.10.2020,通道程序存放在内存中,由I/O指令启动执行。用户请求I/O时,CPU对通道的通信是向通道发出查询、启动和停止通道程序工作,而通道向CPU的通信则采用中断方式。其执行过程如图所示。,03.10.2020,用户I/O请求,查询设备忙闲?,调用通道程序,执行通道程序,I/O操作完成,发中断请求,CPU响应中断,进行结束处理,以I/O指令启动

12、通道,结束通道工作,进入设备请求队列,等待,忙,不忙,通道程序的执行过程,03.10.2020,5、通道工作过程 (1) 当进程有I/O请求时,系统首先查询设备状态。若忙,进程进入设备请求队列等待;若闲,CPU发指令指明I/O操作、设备号和对应通道。 (2) 对应通道收到CPU发来的启动指令后,读出内存中的通道指令程序、设置对应设备的控制状态寄存器的初值。 (3) 设备按通道指令的求,把数据送往内存指定区域。 (4) 若传送结束,I/O控制器通过中断请求线发中断信号请求CPU做中断处理。 (5) 中断处理结束后,CPU返回到被中断进程处继续执行。 (6) 当进程调度程序选中这个已得到数据的进程

13、后,才能进行加工处理。,03.10.2020,思考题三,通道的作用是什么?,通道是一个独立于CPU的专管输入/输出控制的处理器,它控制内存与外部设备直接进行数据交换。 它有自己的通道指令,这些通道指令受CPU启动,并在操作结束时向 CPU发中断信号。 通道方式进一步减轻了CPU的工作负担,增加了计算机系统的并行工作程度。,03.10.2020,5.1.4 总线系统,1、总线基本概念 在计算机系统内各种子系统,如CPU、内存、I/O设备等之间,构建公用的信号或数据传输通道 这种可共享的传输通道称为总线。,03.10.2020,2、总线的分类,03.10.2020,当用户进程通过系统调用提出I/O

14、请求时,从系统响应此请求开始,至系统完成用户要求的I/O操作,并唤醒相应的等待I/O完成的进程为止,这整个过程称为I/O控制过程。,52 I/O控制方式,03.10.2020,I/O控制过程包括以下步骤: (1)响应I/O请求,为在具体物理设备上进行I/O操作做准备。包括将逻辑设备名转换为物理设备名(设备分配)、I/O请求的合法性等。 (2)设备驱动,控制设备完成I/O操作,对每类设备分别设置不同的设备驱动程序。 (3)中断处理,I/O操作完成之后,设备控制器向CPU发送中断信号,CPU响应后转向相应的中断处理程序进行善后处理。,03.10.2020,I/O操作的控制方式一般有四种: 查询方式

15、 中断方式 直接内存存取方式 通道方式 它们的主要差别在于处理器和外设并行工作的方式和程度的不同。,03.10.2020,查询方式是最简单的I/O控制方式。 在设备控制器中有两个寄存器,一个是状态寄存器,由其中的一个状态位的值反映设备的忙或闲;另一个是数据缓冲寄存器。 当设备启动时,状态寄存器的启动位为1,此时外设把数据送往数据缓冲寄存器,并将状态寄存器的状态位置1。 CPU执行完一条指令后就测试状态位,如果为1,就把数据寄存器中的数据取到内存;若状态位为0,则再测试,直到状态寄存器的状态位为1,然后再读取数据。所以此种方式也称循环测试I/O方式,521 查询方式,03.10.2020,就绪,

16、03.10.2020,步骤: (1) 当用户需要输入数据时,由处理器向设备控制器发出一条输入输出指令,启动设备进行输入 (2) 当用户进程需要向设备输出数据时,也必须同样发出启动命令启动设备输出,并等待输出操作完成。 特点: 工作过程简单,CPU的利用率低。在要求不高的场合下常被采用,而且不能支持多道程序。程序直接控制方式适用于早期的无中断的计算机系统。,03.10.2020,查询方式是主机向外设询问,而引入中断后,每当设备完成I/O操作,它便以中断请求方式主动向CPU汇报。 因此,CPU一旦启动I/O设备后便可转去处理其他程序,仅在接到I/O中断信息请求时才花费极少时间去处理。,522 中断

17、方式,03.10.2020,1、中断概念 所谓中断,是指处理机在执行进程的过程中, 由于某些事件的出现, 中止当前进程的运行, 转而去处理出现的事件, 待处理完毕后返回原来被中断处继续执行或调度其他进程执行。 2、中断源 引起中断的事件称为中断源。 (1)强迫性中断源 硬件故障、程序性错误、外部事件、I/O中断事件 (2)自愿性中断源,03.10.2020,3、步骤 (1)进程需要数据时,将允许启动和允许中断的控制字写入设备控制状态寄存器中,启动该设备进行输入操作。 (2)该进程放弃处理机,等待输入的完成。操作系统进程调度程序调度其他就绪进程占用处理机。 (3)当输入完成时,输入设备通过中断请

18、求线向CPU发出中断请求信号。CPU在接收到中断信号之后,转向中断处理程序。 (4)中断处理程序首先保护现场,然后把输入缓冲寄存器中的数据传送到某一特定单元中去,同时将等待输入完成的那个进程唤醒,进入就绪状态,最后恢复现场,并返回到被中断的进程继续执行。 (5)在以后的某一时刻,操作系统进程调度程序选中提出的请求并得到获取数据的进程,该进程从约定的内存特定单元中取出数据继续工作,03.10.2020,03.10.2020,例如,打印机每打一行需要60ms,在查询方式中,大约有59.99ms,CPU都处于循环等待中,而以中断方式处理的话,CPU仅花费0.1ms时间来处理I/O设备发来的中断,其余

19、的59.99ms都可以用来做别的事情。所以中断方式比查询方式节省CPU的时间。,03.10.2020,中断方式的方法是当设备完成I/O操作后,主动向CPU报告,CPU只用少量时间处理I/O中断,并将数据取回。 在多道程序中的环境下,一个程序或进程启动I/O设备并允许中断后,不是自己主动去执行别的程序或继续执行主流程,而是应当把自己挂起,控制权交还给进程调度程序。在中断处理程序中,完成指定的I/O操作之后应把等待此结果的进程唤醒,而后由进程调度程序在适当时机把此进程投入运行。,03.10.2020,某进程,其他进程,输入中断处理,中断,调度,调度,唤醒,启动I/O并允许中断,阻塞等待,处理输入的

20、数据,保护现场,输入处理,唤醒等待进程,恢复现场,多道程序下的中断处理方式,03.10.2020,4、特点 中断控制方式比程序直接控制方式提高了CPU的利用率。每输入输出一个数据都会发生中断,传输一组数据需要多次中断,浪费了CPU的处理时间。中断控制方式应用于现代计算机系统中。,03.10.2020,1、DMA控制方式的引入 引入的原因:中断处理方式提高了主机的利用率,但是每次中断都要保存现场信息,恢复现场等,仍占用CPU时间。在传送数据量大、速度高的情况下,中断方式就不适应了。 为了进一步减少CPU对外设操作干预而引入直接存储器访问方式。,523 直接内存存取方式,03.10.2020,2、

21、DMA控制方式 是指对I/O设备的控制由DMA控制器完成,在DMA控制器的作用下,设备和主存之间可以成批地进行数据交换,而不用CPU的干涉。,523 直接内存存取方式,03.10.2020,3、DMA控制器的组成:,03.10.2020,4、DMA工作步骤: 当进程要求设备输入一批数据时,CPU将设备存放输入数据的内存始址以及要传送的字节数分别送入DMA控制器中的地址寄存器和传送字节计数器;另外,还要将中断位和启动位置为1,以启动设备开始进行数据输入并允许中断。 发出数据要求的进程进入等待状态,进程调度程序调度其他进程占据CPU。 输入设备不断地挪用CPU工作周期,将数据寄存器中的数据源源不断

22、地写入内存,直到所要求的字节全部传送完毕。 DMA控制器在传送字节数完成时,通过中断请求线发出中断信号,CPU收到中断信号后转中断处理程序,唤醒等待输入完成的进程,并返回被中断的程序。 在以后的某个时刻,进程调度程序选中提出请求输入的进程,该进程从指定的内存始址取出数据做进一步处理。,03.10.2020,CPU向控制器发出启动DMA通知和有关参数,控制器向内存发出询问请求,访问内存(读、写),计数器减1,结束否,发中断,N,Y,DMA的实现流程,03.10.2020,5、DMA方式特点: (1) 数据传送的基本单位是数据块; (2) 所传送的数据是从设备直接送入内存,或者相反; (3) 仅在

23、传送一个或多个数据块的开始和结束时,才需中断CPU,请求干预,整块数据的传送是在DMA控制器控制下完成的。,缺点: DMA方式只能完成简单的数据传送、计数、内存地址加1或减1等操作,不能满足复杂的I/O操作要求。,03.10.2020,6、DMA方式与中断的主要区别,(1) 中断方式是在数据缓冲寄存区满后,发中断请求,CPU进行中断处理; DMA方式则是在所要求传送的数据块全部传送结束时要求CPU进行中断处理,大大减少了CPU进行中断处理的次数。 (2) 中断方式的数据传送是由CPU控制完成的; DMA方式则是在DMA控制器的控制下不经过CPU控制完成的。,03.10.2020,5.2.4 I

24、/O通道控制方式,1、概念 通道控制方式是一种以主存为中心,是设备与主存直接交换数据的控制方式。 CPU只需要发出启动指令,指出通道相应的操作和输入输出设备,该指令就可以启动通道并使该通道从主存中调出相应的通道指令执行,完成一组数据块的输入/输出。,03.10.2020,2、通道控制方式步骤 (1)当进程要求设备输入时,CPU发指令指明I/O操作、设备号和对应通道。 (2)对应通道收到CPU发来的启动指令后,读出内存中的通道指令程序、设置对应设备的控制状态寄存器的初值。 (3)设备按通道指令的要求,把数据送往内存指定区域。 (4)若传送结束,I/O控制器通过中断请求线发中断信号请求CPU做中断

25、处理。 (5)中断处理结束后,CPU返回到被中断进程处继续执行。 (6)当进程调度程序选中这个已得到数据的进程后,才能进行加工处理。,03.10.2020,3、特点 通道所需要的CPU干预更少,并可以实现CPU、通道和输入输出设备三者之间的并行操作,从而更有效地提高整个系统资源的利用率。 通道控制方式适用于现代计算机系统中的大量数据交换。,03.10.2020,通道和DMA控制器的区别 (1)一个DMA控制器只能连接同类外设,且如果是多台同类外设,则它们只能是以串行方式工作。 一个通道可以连接多个不同类型的设备控制器,而一个设备控制器又可以管理一台或多台外围设备,这就构成了典型的多级层次结构,

26、众多外设均可在通道控制下同时工作; (2)DMA控制是借助硬件完成数据交换的,而通道是执行通道程序完成数据的; (3)DMA控制器需要CPU对多个外设进行初始化。CPU只需发一个I/O指令启动通道,由通道自己完成外设的初始化。,03.10.2020,综上所述,在前三种I/O控制方式中,CPU直接对设备控制器和I/O接口编程,可以简化接口的设计。 对于非DMA传送,需要CPU实际去完成数据传送。对于高速数据传送可以使用DMA,但还是需要CPU设置设备控制器,初始化DMA操作和操作完毕去检查端口传送状态。 而通道不同于DMA控制器,它能够去取和执行它自己的指令; 而且这些指令的功能已不仅仅是数据传

27、送,还包括检索、分支转移,甚至一些简单的算术、逻辑运算。,03.10.2020,大、中型计算机系统普遍用通道方式去控制设备完成I/O操作,以提高CPU与外设,外设与外设并行的程度。一些小型机和绝大多数微型机都是以CPU直接控制设备接口和设备控制器以查询、中断或DMA方式完成I/O操作,以降低系统造价。,03.10.2020,思考题四,综上所述的4种I/O控制方式,分别适合用于何种场合?,03.10.2020,课堂练习题,1、从下面关于设备属性的论述中,选择一条正确的描述。( ) A字符设备的一个基本特征是可寻址的,即能指定输入时的源地址和输出时的目标地址 B共享设备必须是可寻址的和随机访问的设

28、备 C共享设备是指在同一时刻,允许多个进程同时访问的设备 D在分配共享设备和独占设备时,都可能引起进程死锁 2、( )在一般大型计算机系统中,主机对外围设备的控制可通过通道、控制器和设备三个层次来实现。从下述叙述中选出一条正确的叙述。 A 控制器可控制通道,设备在通道控制下工作 B 通道控制控制器,设备在控制器控制下工作 C 通道和控制器分别控制设备 D 控制器控制通道和设备的工作,03.10.2020,1、通过硬件和软件的扩充,把原来独立的设备改造成能为若干用户共享的设备,这种设备称为 ? 。 2、引起中断发生的事件称为 ? 。 3、如果I/O设备与存储设备进行数据交换不经过CPU来完成,这

29、种数据交换方式是 ? 。 4、常用的I/O控制方式有程序I/O方式、 ? 、? 、?. 5、DMA是指允许 ? 和 ? 之间直接交换数据的设备。在DMA中必须设置地址寄存器,用于存放 ? ,还必须设置 ? 寄存器,用来暂存交换的数据。 6、设备控制器是 ? 和 ? 之间的接口,它接受来自 ? 的I/O命令,并用于控制 ? 的工作。 7、按从属关系对I/O设备分类,可分为系统设备和 ? 两类。,03.10.2020,5.3 缓冲管理,5.3.1 缓冲的引入,1、引入的原因 (1)缓和CPU与输入输出设备间速度不匹配的矛盾 (2)减少对CPU的中断频率,放宽对中断响应时间的限制。 (3)提高CPU

30、与输入输出设备间的并行性。,03.10.2020,2、缓冲技术的实现思想 建立一个缓冲区,当进程要执行读写操作时,首先向申请一块内存区域作为缓冲区,然后,将要传送的数据高速送到缓冲区。 如果是读操作,则根据进程要求,把当前需要的逻辑记录从缓冲区中选出并传送给进程。若为写操作,则不断把数据填到缓冲区,直到它被填满为止。,03.10.2020,3、实现缓冲的方法 (1) 硬件缓冲。硬件缓冲采用专用硬件缓冲器,一般由外设自带的专用寄存器构成。 (2)软件缓冲。在内存中专门开辟若干单元作为缓冲区为各种设备服务。,03.10.2020,5.3.2 单缓冲和双缓冲,一、单缓冲 单缓冲即是在发送者和接收者之

31、间只有一个缓冲区,过程:当一个用户进程要求输入数据时,操作系统控制输入设备将数据送往缓冲区存放,再送往用户进程的数据存储区。,03.10.2020,特点 在主存中只有一个缓冲区。对于块设备,该缓冲区可以存放一块数据,对于字符设备,该缓冲区可以存放一行数据。设备和处理器对缓冲区的操作是串行的,传输速度慢。在任一时刻,只能进行单向的数据传输,并且传输数据量较少。 优点是设计简单,容易实现 缺点是发送者和接收者不能并行工作,03.10.2020,二、双缓冲 双缓冲可在发送者与接收者之间设两个缓冲区缓冲区1和缓冲区2。,过程:发送者将数据送满缓冲区1,接收者从缓冲区1取数据时,发送者则可将数据送入缓冲

32、区2,当接收者将缓冲区1取空后,又可到缓冲区2中取数据,这时发送者再将数据送入缓冲区1。 于是,发送者和接收者交替使用两个缓冲区,达到了并行工作的目的。,03.10.2020,特点,在主存中设置两个缓冲区,完成数据的传输。两个缓冲区可以交替使用,提高了处理器和输入设备的并行操作能力。 在任一时刻,可以进行双向的数据传输。一个缓冲区用于输入,另一个用于输出。 适用于输入/输出、生产者/消费者速度基本相匹配的情况。 当传输数据量较大,或者两者的速度相差较远时,双缓冲区效率较低,还是不能解决两者并行工作问题。,03.10.2020,三、循环缓冲 由于双缓冲并不能真正解决实际系统中的并行操作,为了能够

33、进一步提高系统操作的并行程度,可以通过增加缓冲区的个数,即实现多缓冲区方式。为了更好地控制和使用这些缓冲区,将多个缓冲区组成环形,称为循环缓冲技术。,循环缓冲技术是在内存中分配大小相等的存储区作为缓冲区,并将这些缓冲区连接起来,每个缓冲区中有一个指向下一个缓冲区的指针,最后一个缓冲区的指针指向第一个缓冲区,03.10.2020,为了充分利用这些缓冲资源,使进程的处理和I/O设备的工作具有较好的连续性,提高设备的利用率,将缓冲区分为以下两种类型: (1) 空缓冲区。准备接收输入的数据。 (2) 满缓冲区。用于存放可供使用的数据。,过程: 当循环缓冲接收数据时,将待传送的数据送入EMPTY指向的空

34、缓冲区,填满后,让EMPTY指向下一个空缓冲区。每次申请一个空缓冲区时,需要判断EMPTY是否与FULL相等。若相等,表示系统中已没有空缓冲区,输入进程需要等待;否则,可以继续输入。 若要从缓冲区取数据时,直接到FULL所指向的缓冲区中取,然后让FULL指向下一个满缓冲区。同样,每次FULL指针移动时,需要判断FULL是否与EMPTY相等。若相等,表示缓冲区已无数据可取,等待缓冲区满后继续操作。,03.10.2020,特点: 在主存中设置多个缓冲区。读和写可以并行处理,适用于某种特定的输入输出进程和计算进程,如输入/输出、生产者/消费者速度不相匹配的情况。 循环缓冲区属于专用缓冲区。当系统较大

35、时,使用多个这样的缓冲区要消耗大量的主存空间,降低缓冲区的使用效率。 两个缺点: (1)当系统的资源较多时,就要占用大量的缓冲区,增加内存开销。 (2)可能会出现某个设备的缓冲不够用,而其他设备有多个空闲缓冲区的情况,导致循环缓冲的利用率不高。,03.10.2020,四、缓冲池 上述的循环缓冲区仅适用于某特定的I/O进程和计算进程,是专用缓冲结构,而不是针对整个系统的公用缓冲结构。当系统较大时,会有很多这样的缓冲结构,这不仅要消耗大量的内存空间,而且其利用率不高。 为了提高缓冲区的利用率,目前普遍采用公用缓冲池结构,在缓冲池中设置了可供多个并发进程共享的缓冲区。,03.10.2020,如图所示

36、,缓冲池是由多个大小相同的缓冲区组成,同管理程序统一对缓冲池进行管理。当某个进程需要使用缓冲区时,由管理程序将缓冲池中合适的缓冲区分配给它,使用完毕,再将缓冲区释放回缓冲池。,03.10.2020,为便于管理,系统将相同类型的缓冲区链成一个队列,缓冲池中共有三种队列: (1) 空缓冲队列。 (2) 输入队列。 (3) 输出队列。,这三种队列各有指向其首缓冲区的队首指针和指向尾缓冲区的队尾指针。系统根据需要从这三种队列中取出缓冲区,对缓冲区进行存数据、取数据操作。这些缓冲区称为工作缓冲区。 缓冲池中有四种工作缓冲区: (1) 收容输入工作缓冲区。 (2) 提取输入工作缓冲区。 (3) 收容输出工

37、作缓冲区。 (4) 提取输出工作缓冲区。,03.10.2020,对缓冲池管理提供两个基本操作(过程): (1) getbuf(type):用于从type所指定的队列的队首, 摘下一个缓冲区; (2) putbuf(type,number):用于将用参数number所指示的缓冲区, 挂在type队列上。,03.10.2020,下面是缓冲池在具体的工作过程中,对缓冲池中的缓冲区实施管理和使用的情况: (1) 当输入设备要进行数据输入时,先从空缓冲区队列的队首摘取一个空缓冲区,将它作为收容输入工作缓冲区,在其装满输入数据后,再将它挂到输入数据队列的队尾。 (2) 当某个计算进程需要输入数据时,从输入

38、队列中取出一个缓冲区作为输入工作缓冲区,进程从中提取数据,取空后,将该缓冲区挂到空缓冲区队列的队尾。 (3) 当某个计算进程想输出数据时,从空缓冲区队首摘下一个空缓冲区作为收容输出工作缓冲区,在其装满计算进程的输出数据后,将它挂到输出队列的队尾。 (4) 当输出设备进行数据输出时,从输出队列取下一个缓冲区作为提取输出工作缓冲区,当其数据全送到输出设备后,再将它挂到空缓冲队列尾。,03.10.2020,特点 缓冲池结构复杂,在主存中设置公用缓冲池,在池中设置多个可以供多个进程共享的缓冲区。缓冲区既可以用于输入,又可以用于输出(即共享)。缓冲池的设置,减少了主存空间的消耗,提高了主存的利用率,适应

39、于现代操作系统。 无论是多缓冲,还是缓冲池,由于缓冲器是临界资源,因此在使用缓冲区时都有一个申请、释放和互斥的问题。,03.10.2020,缓冲和缓存的差异,缓冲与缓存的基本原理和作用是相似的,如果不加区分的话,都可以称之为缓冲。 但两者之间确实存在细微的差异: 缓冲的作用在于协调速度不匹配的I/O传输过程; 而缓存的作用在于减少对设备的实际访问次数。这个差异导致了两者的管理方法有所不同。,03.10.2020,一般来说,缓冲区的生命期较短,当进程开始数据传输时建立,一旦数据传输完毕,将立即释放缓冲区,它只起暂存数据的作用。 而缓存区的生命期较长,缓存的数据可以长时间地保存在缓存区中,服务于各

40、种应用目的。如文件系统中的i节点缓存、目录项缓存等在整个系统运行期间都存在于内存中,由文件系统管理和使用。,03.10.2020,另外,缓冲区的管理相对简单,系统只需提供简单的分配算法以及同步机制即可。 而缓存区的管理则需要利用更复杂的算法,以提高访问的命中率,最大限度地发挥缓存的作用。例如,磁盘的缓存算法要确定哪些数据应存放在缓存中,哪些数据应从缓存中撤出等。 在应用上,进程间的通信多使用缓冲技术,而设备的I/O往 往使用缓冲兼缓存技术。,03.10.2020,5.4I/O软件,分层结构的底层是设备相关部分,称为设备驱动程序。它们直接和相应的设备打交道,负责设备的具体驱动和控制。上层通常是和

41、设备无关的,这个部分接受来自用户层的访问请求,并把这些访问请求传给具体的设备驱动程序,再将驱动程序的执行结果进行转换,传给用户,03.10.2020,5.4I/O软件的设计目标和原则,设备无关性 错误处理 同步/异步传输 必须能处理独占设备和共享设备的I/O操作,03.10.2020,为实现以上四个目标, I/O系统应组织成以下四个层次: (1) 中断处理程序 (2) 设备驱动程序 (3) 与设备无关的I/O软件 (4) 用户空间的I/O软件,03.10.2020,5.4.2中断处理程序,中断事件通常由硬件发现。对出现的事件进行处理的程序称为中断处理程序。 中断处理程序是由操作系统处理的,属于

42、操作系统的组成部分。 中断处理程序位于I/O系统的最低层。当进程需要进行I/O操作时,操作系统应将该进程挂起,即进入阻塞,直至I/O操作结束并发生中断。当中断发生时,中断处理程序执行相应的操作,以解除相应进程的阻塞状态。,03.10.2020,一个完整的中断处理过程包括以下四步: (1) 中断请求:由中断源向CPU提出中断请求(软中断除外)。 (2) 中断响应:CPU在收到中断请求并具备响应条件的情况下,进行中断响应,以实现向中断服务程序的过渡。 (3) 中断服务:CPU在执行中断服务程序期间,要进行具体的中断服务。 (4) 中断返回:中断服务程序的最后一条指令应是中断返回指令。当执行到该指令

43、时,便返回到被终止的程序,从断点处继续执行。,03.10.2020,中断请求: 中断源需要通过中断线送到中断控制器的输入端,这称为中断请求。 中断控制器是一个硬件装置,它负责捕获中断请求,并以一定的方式向CPU提交中断。由于同时可能会有多个中断信号产生,它们需要共用有限的中断线。 因此,当设备要使用中断线时就要先进行中断请求(IRQ),以获得中断线的使用权。,03.10.2020,中断响应 对中断请求的整个处理过程是由硬件和软件相结合的一整套中断机构实施的。中断响应由硬件实施,中断处理主要由软件实施。 中断响应是CPU对中断源中断请求的响应,包括保护断点和将程序转向中断服务程序的入口地址。 在

44、处理器执行完一条指令后,硬件的中断装置就立即检查有无中断事件发生。若无,继续执行下一条指令;若有,则停止现行进程,由操作系统中的中断处理程序占用处理器,这一过程称为“中断响应”。,03.10.2020,一般说来,中断响应过程顺序执行下述动作: (1) 中止当前进程的执行; (2) 对被响应的中断进行应答; (3) 保存当前进程的断点信息(主要是程序状态字PSW和程序计数器PC); (4) 转到中断处理程序入口。,03.10.2020,中断处理 中断处理主要由软件实施。响应中断后,CPU转去执行相应的中断处理程序。每个中断都对应一个特定的中断处理程序,因而系统中会有许多中断处理程序,如时钟中断处

45、理程序、键盘中断处理程序等。在设备的驱动程序中包含了对该设备所有中断的处理程序。,03.10.2020,中断处理过程: 当中断装置发现中断事件后,先把中断事件存放到程序状态字寄存器中的中断码位置。 把程序状态字寄存器中的“当前PSW”作为“旧 PSW”保存到预先约定的主存的固定单元中。 根据中断码,把该类事件处理程序的“新PSW”送入程序状态字寄存器。 处理器按新PSW控制处理该事件的中断处理程序执行。 当中断程序处理完后,再恢复现场,继续执行原先被中断的进程,03.10.2020,中断处理程序的处理过程如下: 1唤醒被阻塞的驱动程序进程 2保护被中断进程的现场 3分析中断原因、转入相应的设备

46、中断处理程序 4进行中断处理 5恢复被中断进程的现场 中断处理程序的工作是对传输的结果进行必要的处理。,03.10.2020,多中断的处理 对于中断处理过程中又发生中断,引起多中断处理的问题,通常有两种处理方法。 (1) 处理一个中断时禁止中断对任何新中断置之不理,在此期间发生的中断将保持挂起状态,当再次允许中断时,新中断信号被处理器检测到再予以处理 (2) 中断按照优先权分级允许优先级高的中断打断优先级低的中断处理过程,03.10.2020,5.4.3 设备驱动程序,设备驱动程序是驱动物理设备直接进行各种操作的软件,它可看作I/O系统和物理设备的接口。 设备驱动程序包括了所有与设备有关的代码

47、。每一个设备驱动程序只处理一种设备或者一类密切相关的设备。 ,03.10.2020,设备驱动程序的功能: (1)实现逻辑设备到物理设备的转换。 (2)发出I/O命令,启动相应的I/O设备,完成相应的I/O操作。,03.10.2020,设备驱动程序与设备控制器交互的大致过程 驱动程序将控制命令发到控制器的命令寄存器中,控制器启动设备进行I/O操作。 当数据准备好后,驱动程序负责与控制器交互,完成数据传输工作。 控制器将设备产生的状态信息存入状态寄存器中,供驱动程序查询。 当有设备中断事件发生时,控制器发出中断请求信号,系统进入中断处理程序进行处理。,03.10.2020,设备处理方式有三类: 一

48、是为每一类设备设置一个进程,专门执行这类设备的输入输出操作。 二是在整个系统中设置一个输入输出进程,专门负责对系统中所有各类设备的输入输出操作。 三是不设置专门的设备处理进程,只为各类设备设置相应的设备处理程序,供用户进程或系统进程调用。,03.10.2020,设备驱动程序的特点 (1) 驱动程序主要是在请求输入输出的进程与设备控制器之间的一个通信程序。 (2) 驱动程序与输入输出设备的特性密切相关。因而对不同类型的设备应配置不同的驱动程序 (3) 驱动程序与输入输出控制方式紧密相关。 (4) 驱动程序与硬件紧密相关,其部分被固化在ROM 中。,03.10.2020,设备驱动程序的处理过程:

49、1将抽象要求转化为具体要求 2检查输入输出请求的合法性 3读出和检查设备的状态 4传送必要的参数 5设置工作方式 6启动输入输出设备,03.10.2020,5.4.4 设备独立性软件,为了实现设备独立性而引入了逻辑设备和物理设备这两个概念。 在应用程序中, 使用逻辑设备名称来请求使用某类设备;而系统在实际执行时, 还必须使用物理设备名称。 因此,系统须具有将逻辑设备名称转换为某物理设备名称的功能,这非常类似于存储器管理中所介绍的逻辑地址和物理地址的概念。,03.10.2020,1 逻辑设备与物理设备的概念 物理设备是一个具体的设备。系统为了能识别全部外设,给每台外设分配一个唯一不变的名字,称为

50、物理设备名。系统在实际工作时使用物理设备名。 逻辑设备是对实际物理设备属性的抽象,它并不限于某个具体设备。用户在编程时,不用关心系统具体配置了哪些设备,也不需要了解各种设备的物理特性,而只是按照惯例为所用的设备起个逻辑名字,称为逻辑设备名。,03.10.2020,2 设备独立性 设备独立性也称设备无关性,指用户编程时所使用的设备与实际使用的设备无关。 为此,要求用户程序对输入输出设备的请求采用逻辑设备名; 而在程序实际执行时使用物理设备名,它们之间的关系类似存储管理中的逻辑地址和物理地址的关系。,03.10.2020,用户程序以逻辑设备名来请求使用某类设备时,系统将在该类设备中,根据设备的使用

51、情况,将任一台合适的物理设备分配给程序。 在实现了设备独立性的功能后, 可带来以下两方面的好处: 1) 设备分配时的灵活性 2) 易于实现I/O重定向,03.10.2020,5.4.5 用户层I/O软件,尽管大部分I/O软件属于操作系统,但是也有一小部分是与用户程序链接在一起的库例程,甚至是在核心外运行的完整程序。 系统调用, 包括I/O系统调用,通常是库例程调用。在如下C语句: count=write(fd, buffer, nbyte); 中, 所调用的库函数write( )将与用户程序链接在一起, 并包含在运行时的二进制代码中。这一类库例程显然也是I/O系统的一部分。标准I/O库包含相当

52、多涉及I/O的库例程,它们作为用户程序的一部分运行。,03.10.2020,总结,I/O系统各层的主要功能如下: (1) 用户进程层执行输入/输出系统调用,对I/O数据进行格式化,为假脱机输入/输出做准备。 (2) 独立于设备的软件实现设备的命名、设备的保护、成块处理、缓冲技术和设备分配。 (3) 设备驱动程序设置设备寄存器、检查设备的执行状态。 (4) 中断处理程序负责I/O完成时,唤醒设备驱动程序进程,进行中断处理。 (5) 硬件层实现物理I/O的操作。,03.10.2020,5.5 设备分配,设备分配是由I/O系统中的设备分配程序完成的。 每当进程提出I/O请求时,设备分配程序便按照一定

53、的策略把所需的设备分配给进程使用。 设备分配的原则是要尽可能地让设备忙碌,充分发挥设备的使用效率。,03.10.2020,5.5.1 设备分配中的数据结构,设备控制表 DCT 控制器控制表 COCT 系统设备表 SDT 通道控制表CHCT(有时有),03.10.2020,1.设备控制表 系统为每个设备配置一张设备控制表,用于记录设备的特性及与输入输出控制器连接的情况。 该表在系统生成时或在该设备和系统连接时创建,但表中的内容则根据系统执行情况而被动态地修改。,03.10.2020,表目1,设备控制表集合,设备控制表,设备控制表,03.10.2020,2.系统设备表SDT 系统设备表也称为设备类

54、表,整个系统配置一张。它记录了已被连接到系统中的所有物理设备的情况,并为每个物理设备设一个表项。,03.10.2020,表目1,系统设备表,03.10.2020,3.控制器控制表COCT 系统为每个控制器配置了一张控制器控制表,以反映控制器的使用状态。,03.10.2020,表目1,控制器表,控制器表,其中控制器表中包括:控制器标识符、控制器状态、与控制器连接的通道表指针、控制器队列的队首指针和队尾指针。与设备控制表的表目类似,不再重复。,03.10.2020,4.通道控制表CHCT 系统为每个通道配置一张通道控制表,以反映通道的使用状态。 该表只在通道控制方式的系统中存在,每个通道一张。,0

55、3.10.2020,表目1,通道表,通道表,其中通道表中包括:通道标识符、通道状态、与通道连接的控制器表首址、通道队列的队首指针和队尾指针。与设备控制表的表目类似,不再重复。,03.10.2020,这几张表的关系:,在系统设备表中有指向设备控制表的指针,在设备控制表中有指向该设备控制器控制表的指针,在控制器控制表中有指向与该控制器连接的通道控制表的指针。系统就是通过这种关系进行设备的分配与回收的。,03.10.2020,5.5.2 设备分配时应考虑的因素,1设备的使用性质 按照设备自身的使用性质,可以采用以下三种不同的分配方式:独享分配、共享分配、虚拟分配。 独享分配适用于大多数低速设备,如打

56、印机。 共享分配适应于高速设备,如磁盘。 虚拟分配适应于虚拟设备。根据设备的使用性质来决定一台设备可以分给几个进程。,03.10.2020,2.设备分配的算法 当有多个进程同时请求设备时,系统应采用某种策略决定将设备分配给哪个进程使用。主要的分配策略有先来先服务和优先级两种。 (1)先来先服务算法根据进程对某设备提出请求的先后次序,将这些进程排成一个设备请求队列,设备分配程序总是把设备首先分配给队首的进程。先来先服务的算法简单、公平,但无法满足某些紧迫进程对I/O响应时间的要求。 (2)优先级算法的策略是对高优先权进程的I/O请求也赋予高优先权,这有助于这种进程尽快完成。在利用该算法形成设备队

57、列时,将优先级高的进程排在设备请求队列的前面,而对于同优先级的I/O请求,则按先来先服务的原则排队。,03.10.2020,3. 设备分配的安全性 设备分配的安全性是指在设备分配中应防止发生进程的死锁。设备分配的安全性采用的方法有静态分配策略和动态分配策略,它们可以防止进程死锁。 (1)静态分配策略。静态分配策略是在作业级进行的,用户作业开始执行前,由系统一次分配给该作业所要求的全部设备、控制器和通道,直到该作业撤消为止。静态分配不会出现死锁,但是,设备利用率低。 (2)动态分配策略。动态分配策略是在进程执行过程中,根据执行的需要所进行的设备分配。动态分配提高了设备的利用率,但是分配不当,会造

58、成进程的死锁。,03.10.2020,4. 设备的独立性 设备的独立性是指用户在编制程序时所使用的设备与实际使用的设备无关。为此,要求用户程序对输入输出设备的请求采用逻辑设备名,而在程序实际执行时使用物理设备名,它们之间的关系类似存储管理中的逻辑地址和物理地址的关系。,03.10.2020,5.5.3 独占设备的分配程序,在一个具有I/O通道的系统中,当进程提出I/O请求时,对独占设备的分配过程是: 首先为其进行分配合适的设备,然后分配控制器,最后分配通道。,03.10.2020,1分配设备 分配设备的过程如图示:,当进程提出I/O请求后,首先根据进程提出的逻辑设备名,查找到与之对应的物理设备名,检索系统设备表SDT,以获得该设备的设备控制表DCT。 查看设备控制表中设备的状态。 若设备忙,将该进程PCB放入设备请求队列中; 否则,系统可根据一定的算法判定分配此设备给进程是否安全。 若不

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论