《操作系统原理7设备管理.ppt》由会员分享,可在线阅读,更多相关《操作系统原理7设备管理.ppt(63页珍藏版)》请在三一办公上搜索。
1、第7章 外部设备管理,7.0 引言7.1 I/O控制技术7.2 缓冲技术7.3 设备分配7.4 设备控制7.5 磁盘设备管理,外设的特点:种类多 差异大(控制和速度)外设管理目的包括:外设资源的控制 外设资源的共享 提高外设资源的利用率。,7.0 引言,7.0.0 I/O设备管理的重要性7.0.1 外部设备类型和特征 外设管理的目的和功能7.0.3 外设管理结构,返回,7.0.0 I/O管理的重要性,I/O设备就像计算机系统的五官和四肢 I/O性能经常成为系统性能的瓶颈(1)CPU性能不等于系统性能 响应时间也是一个重要因素(2)CPU性能越高,与I/O差距越大 弥补:更多的进程(3)进程切换
2、多,系统开销大3.操作系统庞大复杂的原因之一是:资源多、杂,并发,均来自I/O4.理解I/O的工作过程与结构是理解操作系统的工作过程与结构的关键5.I/O技术很实用6.与其他功能联系密切,特别是文件系统,7.0.1 外部设备类型和特征,人机交互设备:视频显示设备、键盘、鼠标、打印机与计算机或其他电子设备交互的设备:磁盘、磁带、传感器、控制器计算机间的通信设备:网卡、调制解调器,返回,1.按交互对象分类,2.按交互方向分类,输入(可读):键盘、扫描仪输出(可写):显示设备、打印机输入/输出(可读写):磁盘、网卡,3.按外设特性分类,使用特征:存储、输入/输出、终端数据传输率:低速(如键盘)、中速
3、(如打印机)、高速(如网卡、磁盘)信息组织特征:单个字符或数据块字符设备(如打印机):通常的输入输出型设备,以字符为单位存储、传输信息;不可寻址块设备(如磁盘):以数据块为单位存储、传输信息。可寻址,4.按资源分配角度分类,独占设备在一段时间内只能有一个进程使用的设备,一般为低速I/O设备。如打印机,磁带等。共享设备在一段时间内可有多个进程共同使用的设备,多个进程以交叉的方式来使用设备,其资源利用率高。(如硬盘)虚设备在一类设备上模拟另一类设备,常用共享设备模拟独占设备,用高速设备模拟低速设备,被模拟的设备称为虚设备.(实例:SPOOLing技术,利用虚设备技术用硬盘模拟输入输出设备),5.从
4、程序使用角度分 逻辑设备:用户程序中使用的设备 物理设备:实际完成I/O操作的设备,7.0.2 外设管理的目的和功能,提高效率:提高I/O访问效率,匹配CPU和多种不同处理速度的外设方便使用:方便用户使用,对不同类型的设备统一使用方法,协调对设备的并发使用方便控制:方便OS内部对设备的控制:增加和删除设备,适应新的设备类型,返回,1.外设管理目的,2.外设管理功能,提供设备使用的用户接口:命令接口和编程接口设备分配和释放:使用设备前,需要分配设备和相应的通道、控制器。设备的访问和控制:包括并发访问和差错处理(虚拟设备)。I/O缓冲和调度:目标是提高I/O访问效率,7.1 I/O控制技术(数据传
5、送控制方式),返回,外围设备与内存或CPU间常用的数据传送控制方式:程序直接控制方式中断控制方式DMA方式通道方式,1.程序控制I/O(programmed I/O),I/O操作由程序(用户)发起,并等待操作完成。数据的每次读写通过CPU。,等待,发Start指令,设备标志触发器为“Done”?,CPU,执行下一条指令开始数据传送,否,是,外围设备,接收到Start指令,作接收或发送数据准备,准备好?,标志触发器置为“Done”,等待CPU来的下一条指令,是,否,特点,缺点:在外设进行数据处理时,CPU只能等待。CPU与外设只能串行工作只适用于CPU执行速度较慢,且外围设备较少的系统,2.中断
6、驱动方式,I/O操作由程序发起,在操作完成时(如数据可读或已经写入)由外设向CPU发出中断,通知该程序。数据的每次读写通过CPU。优点:在外设进行数据处理时,CPU不必等待,可以继续其他程序。缺点:CPU每次处理的数据量少(I/O控制器的数据缓冲寄存器通常不超过几个字节),在一次数据传送过程中,发生中断次数较多,将耗费大量CPU时间,只适于数据传输率较低的设备。另外,多种设备并行发生中断,由于中断次数的急剧增加而造成CPU无法响应中断而出现数据丢失现象。如果外设速度也很快的话,则可能造成数据缓冲寄存器的数据由于CPU来不及取走而丢失。,中断控制方式的处理过程,接收到CPU发来的Start指令,
7、缓冲寄存器满?,设备,控制器发中断信号,是,CPU,调度程序调度其它进程,收到中断信号了吗?,中断处理,被中断进程执行,是,否,准备数据并将其置入缓冲寄存器,否,向设备发Start指令,置中断允许位为“1”,其它进程执行,3.直接存储访问方式(DMA,Direct Memory Access),在外设和内存之间开辟直接的数据通路。由程序设置DMA控制器中的若干寄存器值(如内存始址,传送字节数),然后发起I/O操作,而后者完成内存与外设的成批数据交换,在操作完成时由DMA控制器向CPU发出中断。优点:DMA控制器可用来代替CPU控制内存和设备之间进程成批的数据交换。CPU只需干预I/O操作的开始
8、和结束,而其中的一批数据读写无需CPU控制,适于高速设备。,当进程要求输入数据时,CPU将准备存放输入数据的内存起始地址、要传送的字节数送入DMA控制器的内存地址寄存器和传送字节计数器,将中断允许位和启动位置成1,启动设备发出传输要求的进程进入等待状态,执行指令被暂时挂起,进程调度其他进程占据CPU输入设备不断窃取CPU工作周期,数据不断写入内存传送完毕,发出中断信号CPU接到中断信号转入中断处理程序处理中断处理结束,CPU返回原进程或切换到新的进程,DMA工作原理窃取总线控制权,窃取总线控制权,DMA(I/O处理器)和CPU共享主存储器和总线,因此会出现通道和CPU同时争相访问主存的情况。因
9、此给DMA和CPU规定了不同的有限次序;通常CPU被规定位最低优先级。但在微机中,系统总线的使用是在CPU控制之下的,当I/O处理器要求使用总线时,向CPU发出请求总线的信号,CPU就把总线使用权暂时转让给I/O处理器。,DMA方式与中断方式的主要区别,中断方式是在数据缓冲寄存器满后,发中断请求,CPU进行中断处理 DMA方式则是在所要求传送的数据块全部传送结束时要求CPU进行中断处理 大大减少了CPU进行中断处理的次数中断方式的数据传送是由CPU控制完成的 而DMA方式则是在DMA控制器的控制下不经过CPU控制完成的,因此避免了因速度不匹配而造成数据丢失的现象。(DMA硬件比较复杂),4.通
10、道控制方式(channel control),通道(I/O处理机)定义:是可以执行程序的、负责且只负责操纵输入输出设备的、功能简单专用的、低速、低性能的、造价低的专用处理机。负责管理设备与内存之间的数据传送的一切工作。CPU只是命令I/O处理器执行主存中的I/O程序。当整个I/O程序执行完成后,CPU被I/O模块中断,通道控制器(Channel Controller):有自己的专用存储器,可以执行由通道指令组成的通道程序,可以进行较为复杂的I/O控制,如网卡上信道访问控制。通道程序通常由操作系统所构造,放在内存里。,引入通道的目的,为了使CPU从I/O事务中解脱出来,同时为了提高CPU与设备,
11、设备与设备之间的并行工作能力,优点:执行一个通道程序可以完成几批I/O操作。,通道分类,选择通道(selector channel):可以连接多个外设,而一次只能访问其中一个外设成组多路通道(Block multiplexor channel):可以并发访问多个外设,同时连接多个中速块设备。字节多路通道:多个字符设备,字节多路通道以字节为单位传输信息,它可以分时地执行多个通道程序。当一个通道程序控制某台设备传送一个字节后,通道硬件就控制转去执行另一个通道程序,控制另一台设备传送信息主要连接以字节为单位的低速I/O设备。如打印机,终端。,1)字节多路通道,字节多路通道的工作原理,选择通道是以成组
12、方式工作的,即每次传送一批数据,故传送速度很高。选择通道在一段时间内只能执行一个通道程序,只允许一台设备进行数据传输,当这台设备数据传输完成后,再选择与通道连接的另一台设备,执行它的相应的通道程序,2)选择通道,主要连接磁盘,磁带等高速I/O设备,它结合了选择通道传送速度高和字节多路通道能进行分时并行操作的优点。它先为一台设备执行一条通道指令,然后自动转接,为另一台设备执行一条通道指令主要连接高速设备这样,对于连接多台磁盘机的数组多路通道,它可以启动它们同时执行移臂定位操作,然后,按序交叉地传输一批批数据。数据多路通道实际上是对通道程序采用多道程序设计的硬件实现,3)成组多路通道,硬件连接结构
13、,通道:执行通道程序,向控制器发出命令,并具有向CPU发中断信号的功能。一旦CPU发出指令,启动通道,则通道独立于CPU工作。一个通道可连接多个控制器,一个控制器可连接多个设备,形成树形交叉连接主要目的是启动外设时:a 提高了控制器效率 b 提高可靠性 c 提高并行度,设备、控制器、通道、内存之间的关系,交叉连接,中断技术,中断是指CPU在收到外部中断信号后,停止原来工作,转去处理该中断事件,完毕后回到原来断点继续工作。中断处理过程:中断请求,中断响应,中断点(暂停当前任务并保存现场),中断处理例程,中断返回(恢复中断点的现场并继续原有任务可处理算术溢出和非法操作码,死循环(利用时钟中断进行超
14、时限定)开中断、关中断、中断屏蔽中断的分类外中断:来自CPU和内存的外部。如I/O设备,定时器,调试中断等内中断:来自CPU和内存的内部,内中断一般称为陷阱(trap,包括地址非法、页面实效,溢出、时间片中断等,中断和陷入(trap)的区别,陷入通常由处理机正在执行的现行指令引起,而中断是由与现行指令无关的中断源引起的陷入处理程序提供的服务为当前进程所用,而中断处理程序提供的服务则不是为当前进程的CPU在执行完一条指令之后,下一条指令开始之前响应中断,而在一条指令执行中也可以响应陷入。如非法指令执行时,尽管被执行的非法指令不能执行结束,但CPU仍可对其进行处理。,中断处理过程(课本),7.2
15、缓冲技术,返回,缓冲技术可提高外设利用率,尽可能使外设处于忙状态;但有一个限制:进程的I/O请求不能超过外设的处理能力。缓冲技术的基本思想:在CPU和外设之间设置缓冲区,用于暂存CPU与外设之间交换的数据,从而缓和CPU与外设速度不匹配的矛盾。缓冲区是在内存中开辟一块存储空间。包括输入缓存和输出缓存分为专用缓存(为一个设备独占,如键盘缓存)和公用缓存(为多个设备公用),缓冲区,CPU,外设,1.引入缓冲技术的目的,匹配CPU或用户应用进程与外设的不同处理速度减少对CPU的中断次数:提高CPU和I/O设备之间以及各个I/O设备之间的处理并行性。解决DMA或通道方式时的瓶颈问题缓冲区所在的位置:内
16、存,控制器或外设。这些在不同位置的缓冲区组合在一起,构成多级缓冲机制。缓冲的实现:硬件缓冲器,如I/O控制器中的数据缓冲寄存器在内存画出一个具有n个单元的专用缓冲区。(软件缓冲),2.单方向缓冲,单缓冲(single buffer):一个缓冲区,CPU和外设轮流使用,一方处理完之后接着等待对方处理。双缓冲(double buffer):两个缓冲区,CPU和外设都可以连续处理而无需等待对方。要求CPU和外设的速度相近。环形缓冲(circular buffer):多个缓冲区,CPU和外设的处理速度可以相差较大。由于缓冲区是临界资源,在使用缓冲区时都有一个申请、释放和互斥的问题。,3.缓冲池(buf
17、fer pool),缓冲区队列:三种:空闲缓冲区,输入缓冲区,输出缓冲区操作:四种:设备输入,CPU读入,设备输出,CPU写出。上述操作访问各个缓冲区队列时,需要进行相应的互斥操作。,这是一种双方向缓冲技术;缓冲区整体利用率高。,注:缓冲池的管理见教材P217-2197,缓冲池的结构:由多个缓冲区构成,每个缓冲区由两部分组成:缓冲区首部:设备号、数据块号、缓冲器号、互斥标识位,连接指针;缓冲体:存放数据,缓冲池的管理(P218),供进程申请缓冲区用的过程get_buf(type,number)Begin P(RS(type)P(S(type)Pointer of buffer(number)=
18、take_buf(type,number)V(S(type)end供进程将缓冲区放入相应队列的过程Put_buf(type,work_buf)Begin P(S(type)Add_buf(type,number)V(S(type)V(RS(type)end,7.3 设备分配,7.3.1 设备分配数据结构7.3.2 设备分配原则7.3.3 假脱机技术,返回,由于外设资源的有限,需解决进程间的外设共享问题,以提高外设资源的利用率。设备分配是对进程使用外设过程的管理。这里有两种作法:1)在进程间切换使用外设,如键盘和鼠标;2)通过一个虚拟设备把外设与应用进程隔开,只由虚拟设备来使用设备。,7.3.1
19、 设备分配数据结构,设备控制表(DCT,Device Control Table):每个设备一张,描述设备特性和状态。反映设备的特性、设备和控制器的连接情况。系统设备表(SDT,System Device Table):系统内一张,反映系统中设备资源的状态,记录所有设备的状态及其设备控制表的入口。控制器控制表(COCT,COntroller Control Table):每个设备控制器一张,描述I/O控制器的配置和状态。如DMA控制器所占用的中断号、DMA数据通道的分配。通道控制表(CHCT,CHannel Control Table):每个通道一张,描述通道工作状态。,返回,各表间的关系,系
20、统设备表,设备控制表(DCT),控制器控制表COCT,通道控制表CHCT,7.3.2 设备分配原则,与设备分配有关的设备属性:独享设备:打印机等;共享设备:磁盘、网卡等;设备分配方式:各有优缺点(课本)静态分配:不会出现死锁;设备利用率不高;动态分配:需要考虑死锁问题有利于提高设备利用率,返回,设备分配的原则是合理使用外设(公平和避免死锁)提高设备利用率。应用程序与设备无关,针对特定的设备采用特定的分配策略先来先服务(FCFS):按I/O请求的先后顺序,排成I/O请求命令队列,队首指向被请求设备的DCT;按FCFS分配设备;基于优先级:依据进程的优先级,指定I/O请求的优先级,排成不同优先级队
21、列;按优先级高低分配设备;,动态分配策略,为进程P分配所需的I/O设备,从SDT表查该类设备的控制表DCT,由DCT检查该设备忙否?,不忙,检查分配此设备的安全性?,不安全,分配此设备给进程P,查此设备连接的COCT忙否?,不忙,不忙,分配此控制器给进程P,查此控制器连接的CHCT忙否?,最后一个DCT?,分配此通道给进程P,启动I/O,进行具体的I/O操作,忙,进程P的PCB放入此设备的等待队列,Y,N,忙,最后一个COCT?,最后一个DCT?,进程 P 的 PCB 放入此控制器的等待队列,Y,N,Y,忙,最后一个CHCT?,Y,最后一个COCT?,N,Y,N,N,设备分配流程示意图,7.3
22、.3 假脱机技术,返回,利用假脱机技术(SPOOLing,Simultaneous Peripheral Operation On Line,也称为虚拟设备技术)可把独享设备转变成具有共享特征的虚拟设备,从而提高设备利用率。独享设备经常会成为系统中的“瓶颈”资源)进程在占用设备的整个期间,并不经常使用该设备引入:在多道批处理系统中,专门利用一道程序(SPOOLing程序)来完成对设备的I/O操作。无需使用外围I/O处理机。,假脱机的原理:SPOOLing程序和外设进行数据交换,可以称为“实际I/O”。一方面,SPOOLing程序预先从外设输入数据并加以缓冲,在以后需要的时候输入到应用程序;另一
23、方面,SPOOLing程序接受应用程序的输出数据并加以缓冲,在以后适当的时候输出到外设。(输入spool和输出spool)在SPOOLing程序中,需要管理两级缓冲区:内存缓冲区和快速外存上的缓冲池,后者可以暂存多批I/O操作的较多数据。应用程序进行I/O操作时,只是和SPOOLing程序交换数据,可以称为虚拟I/O。这时虚拟I/O实际上是从SPOOLing程序的缓冲池中读出数据或把数据送入缓冲池,而不是跟实际的外设进行I/O操作。,优点:高速虚拟I/O操作:应用程序的虚拟I/O比实际I/O速度提高,缩短应用程序的执行时间。另一方面,程序的虚拟I/O操作时间和实际I/O操作时间分离开来。实现对
24、独享设备的共享:由SPOOLing程序提供虚拟设备,可以对独享设备依次共享使用。举例:打印机设备和可由打印机管理器管理的打印作业队列。如:Windows NT中,应用程序直接向针式打印机输出需要15分钟,而向打印作业队列输出只需要1分钟,此后用户可以关闭应用程序而转入其他工作,在以后适当的时候由打印机管理器完成15分钟的打印输出而无需用户干预。,7.3.4 I/O进程控制,从用户的输入输出请求开始,给用户进程分配设备和启动有关设备进行I/O操作,以及在IO操作之后响应中断,进行善后处理为止的整个系统控制过程称为IO控制。,I/O控制的实现,作为请求IO操作的进程的一部分实现作为当前进程的一部分
25、实现由专门的系统进程IO进程完成,设备驱动程序是驱动物理设备和DMA或I/O控制器等直接进行I/O操作的子程序的集合。他们负责完成设置相应设备有关寄存器的值,启动设备进行I/O操作,指定操作的类型和数据流向等。与设备密切相关的代码放在设备驱动程序中,每个设备驱动程序处理一种设备类型,7.4 设备驱动程序,为了对驱动程序进行管理,系统中设置由设备开关表DST(DeviceSwitchTable)DST中给出相应设备的各种操作子程序的入口地址,例如打开、关闭、读、写和启动设备子程序的入口地址。是一个二维结构。,7.5 磁盘设备管理,7.5.1 磁盘I/O访问时间的组成7.5.2 磁盘I/O调度策略
26、7.5.3 磁盘缓存置换算法,返回,CPU和内存的访问速度比磁盘要快若干个数量级,磁盘系统的性能对整个系统的性能有重要影响,磁盘设备管理的目标就是提高磁盘系统的性能。,7.5.1 磁盘I/O访问时间的组成,柱面定位时间:磁头移动到指定柱面的机械运动时间;旋转延迟时间:磁盘旋转到指定扇区的机械运动时间;它与磁盘转速相关,如:软盘转速可为600rpm(每分钟转速),硬盘可为3600rpm。数据传送时间:从指定扇区读写数据的时间。,返回,由于柱面定位时间在访问时间中占主要部分,合理组成磁盘数据的存储位置可提高磁盘I/O性能。当一个进程读磁盘上一个大地 连续分配文件时,尽管看起来对磁盘的访问请求很多,
27、但由于各信息块连在一起,磁头的移动距离却很小,而链接文件和索引文件的数据块可能会散布在整个盘上,使磁盘的磁臂大幅度移动,I/O负担加重。例子:读一个128KB大小的文件:(1)文件由8个连续磁道(每个磁道32个扇区)上的256 个扇区构成:20ms+(7.3ms+16.7ms)*8=220ms;其中,柱面定位时间为20ms,旋转延迟时间为7.3ms,32扇区数据传送时间为16.7ms;(2)文件由256个随机分布的扇区构成:(20ms+7.3ms+0.5ms)*256=7373ms;其中,1扇区数据传送时间为0.5ms;随机分布时的访问时间为连续分布时的33.5倍。,7.5.2 磁盘I/O调度
28、策略,返回,当多个访盘请求在等待时,采用一定的策略,对这些请求的服务顺序调整安排,旨在降低平均磁盘服务时间,达到公平、高效公平:一个I/O请求在有限时间内满足高效:减少设备机械运动所带来的时间浪费2.磁盘调度考虑的问题:一次访盘时间=寻道时间+旋转延迟时间+存取时间(1)减少寻道时间(活动头磁盘)(2)减少延迟时间(固定头磁盘),磁盘调度算法,先进先出算法优先级算法后进先出算法短查找时间优先算法扫描(SCAN)算法循环扫描(C-SCAN)算法N步扫描(N-step-SCAN)算法双队列扫描(FSCAN)算法,先进先出(FIFO,First In First Out)算法:原理:磁盘I/O执行顺
29、序为磁盘I/O请求的先后顺序。该算法的特点是公平性;在磁盘I/O负载较轻且每次读写多个连续扇区时,性能较好。缺点:效率不高,相临两次请求可能会造成最内到最外的柱面寻道,使磁头反复移动,增加了服务时间,对机械也不利例:假设磁盘访问序列:98,183,37,122,14,124,65,67读写头起始位置:53安排磁头服务序列计算磁头移动总距离(道数),优先级算法:依据进程优先级来调整磁盘I/O请求的执行顺序。该算法反映进程在系统的优先级特征,目标是系统目标的实现,而不是改进磁盘I/O性能。后进先出(LIFO,Last In First Out)算法:后产生的磁盘I/O请求,先执行。该算法是基于事务
30、系统中顺序文件中磁盘I/O的局部性特征,相邻访问的位置也相邻。它的问题在于系统负载重时,可能有进程的磁盘I/O永远不能执行,处于饥饿状态。,短查找时间优先(SSTF,Shortest Service Time First)算法:考虑磁盘I/O请求队列中各请求的磁头定位位置,选择从当前磁头位置出发,移动最少的磁盘I/O请求。该算法的目标是使每次磁头移动时间最少。它不一定是最短平均柱面定位时间,但比FIFO算法有更好的性能。对中间的磁道有利,可能会有进程处于饥饿状态。,扫描(SCAN)算法,选择在磁头前进方向上从当前位置移动最少的磁盘I/O请求执行,没有前进方向上的请求时才改变方向。该算法是对SS
31、TF算法的改进,磁盘I/O较好,且没有进程会饿死。,循环扫描(C-SCAN)算法:在一个方向上使用扫描算法,当到达边沿时直接移动到另一沿的第一个位置。单向反复地扫描,将磁盘各磁道视为一个环形缓冲区,首尾相连,最后一个磁道与第一个磁道相连该算法可改进扫描算法对中间磁道的偏好。实验表明,该算法在中负载或重负载时,磁盘I/O性能比扫描算法好。N步扫描(N-step-SCAN)算法:把磁盘I/O请求队列分成长度为N的段,每次使用扫描算法处理这N个请求。当N=1时,该算法退化为FIFO算法。该算法的目标是改进前几种算法可能在多磁头系统中出现磁头静止在一个磁道上,导致其它进程无法及时进行磁盘I/O。双队列扫描(FSCAN)算法:把磁盘I/O请求分成两个队列,交替使用扫描算法处理一个队列,新生成的磁盘I/O请求放入另一队列中。该算法的目标与N步扫描算法一致。,小结,外部设备:交互对象、输入输出类型、特性外设管理目的和功能I/O控制技术:程序控制、中断驱动、DMA方式、通道方式缓冲:目的、单缓冲、双缓冲和环形缓冲、缓冲池设备分配:共享和独享、静态和动态、假脱机技术磁盘调度算法,作业:课后18,1,35掌握磁盘调度算法,更多资料请访问:,