990 likes | 1.1k Vues
第六章 设备管理. 主讲:陈笑蓉 贵州大学计算机科学与技术学院. 在现代计算机系统中,培植了越来越多的外部设备,为了有效地完成对各类外围设备的管理,更好地提高外设资源的利用率,在用户面前提供一种方便、统一的接口界面,从而引入了设备管理,它承担了各种设备的分配、管理及 I/O 操作控制。. 你有过如此体验吗?. 1 、你是否在用光驱听 CD 时,又在疯狂地击打着键盘与网友聊天?(爽!) 2 、操作系统认不得你的声卡,你又找不到驱动程序,你有过苦恼吗? 3 、是否有过在刻录文件时,碟子被烧坏的感觉? ……. 由操作系统的定义知:
E N D
第六章 设备管理 主讲:陈笑蓉 贵州大学计算机科学与技术学院
在现代计算机系统中,培植了越来越多的外部设备,为了有效地完成对各类外围设备的管理,更好地提高外设资源的利用率,在用户面前提供一种方便、统一的接口界面,从而引入了设备管理,它承担了各种设备的分配、管理及I/O操作控制。在现代计算机系统中,培植了越来越多的外部设备,为了有效地完成对各类外围设备的管理,更好地提高外设资源的利用率,在用户面前提供一种方便、统一的接口界面,从而引入了设备管理,它承担了各种设备的分配、管理及I/O操作控制。
你有过如此体验吗? 1、你是否在用光驱听CD时,又在疯狂地击打着键盘与网友聊天?(爽!) 2、操作系统认不得你的声卡,你又找不到驱动程序,你有过苦恼吗? 3、是否有过在刻录文件时,碟子被烧坏的感觉? ……
由操作系统的定义知: • 1、由于I/O设备是计算机系统中重要的系统硬件资源。操作系统是要控制和管理计算机系统的资源的; • 2、操作系统要使系统的资源得到充分而有效的利用,故应该对它们进行管理; • 3、用户与计算机直接打交道的是计算机系统的I/O设备,操作系统应该提供方便的操作I/O设备的界面。
主要内容 • 设备类型和设备管理子系统的功能 • 设备管理中的两种支撑技术 • I/O系统中数据的传输控制 • 设备分配 • 设备的启动及I/O中断处理 • 共享设备的驱动调度 • 虚拟设备
6.1 设备类型和设备管理子系统的功能 • I/O设备是计算机与外界进行信息交换的装置,因此,在各种类型的计算机中都配置有一定数量的I/O设备,这些设备可以从不同的角度进行分类。常见的分类方式有下列几种: • 以设备的隶属关系划分 • 按信息组织方式划分 • 从资源分配角度进行划分
以设备的隶属关系划分 (1)系统设备(System Device):这类设备属于计算机中最基本的标准配置设备,常常在操作系统启动时自动完成设备的登录。如打印机、键盘、显示器和磁盘驱动器等都属于这种类型的设备。 (2)用户设备(User Device):这类设备属于非标准配置,可由用户根据实际需要连入系统,在使用之前通过运行对应的驱动程序进行安装、登录。如绘图仪、扫描仪等。
2.按信息组织方式划分 (1)字块设备(Block Device):这种设备也称为存储型设备,在其上信息的组织和安排都以块为单位进行。在进行存取访问时,也是以块为单位计量的。常见的有磁盘驱动器、磁带机、磁鼓等。 (2)字符设备(Character Device):字符设备上的信息,是以字符为单位来组织安排的,这类设备也称为输入/输出型设备。在信息存取调用时,都是以字符为单位来访问的。如键盘、纸带输入机、磁卡机等属于该类型设备。
3.从资源分配角度进行划分 (1)独占设备(Independence Device):一次只允许分给一个用户作业使用的设备。设备一旦被分出去后,在作业的整个执行期间都被单独占用,别的作业不能与之共用,必须等释放后才可再用。而且,这类设备如果分配不当,可能会造成死锁。 (2)共享设备(Share Device):一次可以允许多个作业同时进行访问的设备。各作业在执行期间内,可以交替分时地对共享设备进行占用。它是一个作业还未撤离,另一个作业便可使用的设备。 (3)虚拟设备(Virtual Device):严格来讲,虚拟设备是一种设备管理的技术。采用该技术可以使慢速独占设备的使用方式变为共享设备的使用方式,以利于独占设备使用效率的提高。
6.1.2 设备管理的主要功能 • 设备管理属于操作系统中最烦琐、最具复杂性的部分。为了有效的提高系统中设备的效率,在设备管理中不仅涉及了I/O中断技术、缓冲技术及通道技术,而且还包括了各种类型设备的分配、启动以及虚拟设备等多方面的管理。 • 为了对物理特性各异的设备在调用时具有统一的格式和界面,以方便用户使用,在设备管理中应追求如下的目标: (1) 建立方便、一致的用户界面 (2) 尽量使CPU与外围设备、外设与外设之间的并行处理能力提高 (3) 充分发挥I/O设备的效率
设备管理功能 : (1)完成设备的分配和回收。 • 对于类型不相同的设备,采取不同的分配策略,将设备及其相关的硬件分配给申请设备的进程,对当前不能分配资源的进程,应将它们排到对应的等待队列中,等到以后适当时再重新分配。 • 进程使用完设备后,系统应及时收回,以便能分给别的要用此设备的进程。
(2)实现缓冲区的管理。 CPU的运行速度往往高于外设的处理速度,为了缓解两者间的矛盾,使外设与CPU在处理速度上尽量匹配, 系统通过设置缓冲区来完成此任务。缓冲区的分配、回收及管理工作由设备管理部分实现。
(3)控制I/O设备的启动。在计算机中,为保证设备调用的灵活性和可靠性,并减轻用户负担,设备的启动由系统自己完成,不允许用户直接启动设备。(3)控制I/O设备的启动。在计算机中,为保证设备调用的灵活性和可靠性,并减轻用户负担,设备的启动由系统自己完成,不允许用户直接启动设备。 (4)进行I/O事件的中断处理。具有通道的计算机系统中,I/O操作的控制是由通道执行通道程序来实现的。通道与CPU的协调操作依靠I/O中断信号来指挥,当I/O中断信号出现时,设备管理负责I/O中断事件的处理。
(5)管理共享设备的驱动调度。共享设备在使用上允许多个作业交替启动占用不同的区域,故对它们不能预分配,用时才分。这使分配变为什么时候为谁服务的问题,即驱动调度问题。(5)管理共享设备的驱动调度。共享设备在使用上允许多个作业交替启动占用不同的区域,故对它们不能预分配,用时才分。这使分配变为什么时候为谁服务的问题,即驱动调度问题。 (6)提供虚拟设备。为提高独占设备的利用率,用共享设备模拟独占设备,使独占设备的使用变为共享使用。为达到此目的,在设备管理中提供了一个SPOOLING系统。
6.2 设备管理中的两种支撑技术 6.2.1 缓冲技术 • 在设备管理中,采用通道技术,虽可以实现CPU与外设的并行工作方式,但CPU的速度一般总是比外设快许多。 • 为了进一步改善CPU与外设之间的速度不匹配的矛盾,解决通道占用时的阻塞现象,提高CPU通道及外部设备之间的并行性,延长CPU对中断的响应时间,减少CPU的中断次数,有效地增长设备的使用时间,并妥善解决物理记录大小与逻辑记录大小不一致的问题,在操作系统中引入了缓冲技术。
缓冲技术的实现原理:当某个进程进行数据输出操作时,先将数据送入缓冲区,当缓冲区装满时再将缓冲区的内容送到输出设备上;反之,当一个进程要进行输入操作时,可先将输入设备上的数据送入缓冲区,当缓冲区装满时,再由CPU将数据取走。缓冲技术的实现原理:当某个进程进行数据输出操作时,先将数据送入缓冲区,当缓冲区装满时再将缓冲区的内容送到输出设备上;反之,当一个进程要进行输入操作时,可先将输入设备上的数据送入缓冲区,当缓冲区装满时,再由CPU将数据取走。 • 缓冲区的设定有两种方式: • 专门的硬件方法来实现缓冲。会增加硬件成本 。 • 软件缓冲的方式,即从主存空间中划定出一个特殊的内存区域作为缓冲区。 • 介绍几种常见的软缓冲区管理技术。
单缓冲管理 单缓冲是在系统的CPU与外设之间只设立一个缓冲区,输入与输出操作全部经该缓冲区来完成。 当输入设备占用缓冲区时,输出设备必须处于等待状态;而当输出设备正在缓冲区将数据取走时,输入设备也必须等待,其工作方式是串行完成的。此时,缓冲区成了可共享的临界资源,必须互斥占用,不可能实现并行工作,系统效率低。如下图:
双缓冲管理 由于单缓冲不能实现并行处理,为避免单缓冲造成的设备利用率不高的状况,可引入双缓冲技术,为输入、输出分配两个缓冲区(如图6-2),并让两个缓冲区交替工作,就可以形成并行操作的方式。 当输入或是输出时,外设先占用一个缓冲区,等当该缓冲区满后,再转去占用另一个缓冲区,同时第一个缓冲区中的数据可被取走,缓冲区可以释放,当另一个缓冲区满后,设备又可转过来占用被释放的缓冲区。这样,由于缓冲区交替被占用,可以使CPU与外设间的并行度进一步提高。 如下图:
例如:有一批卡片要从卡片机上读入,然后再从打印机上输出。系统设置了两个缓冲区buf1h和buf2,它们用于从卡片机上接受数据,恰当时交给打印机输出。例如:有一批卡片要从卡片机上读入,然后再从打印机上输出。系统设置了两个缓冲区buf1h和buf2,它们用于从卡片机上接受数据,恰当时交给打印机输出。 • 双缓冲虽然提高了I\O操作的效率,但不可能彻底解决在实际系统中的并行操作。由于计算机中配备有多种外围设备,CPU与外设的速度匹配全部由双缓冲来承担是不能胜任的,为此,必须使用多缓冲或是缓冲池技术来解决并行操作问题。
3.多缓冲及缓冲池管理 • 多缓冲是把主存中的多个缓冲区组织成两部分,一部分用于做输入缓冲区,另一部分作为输出缓冲区。 • 缓冲池则是将多个缓冲区连接成一个完整的区域,其中每个缓冲区既可以作为输入又可以作为输出用。 • 多缓冲及缓冲池属于系统中的共享资源,可提供给各进程使用,由系统进行统一分配和管理,它必须被互斥使用。
缓冲池是若干缓冲区的集合,每一个缓冲区有两部分:一部分是标识缓冲器的缓冲首都(如图6-4),另一部分是保存信息的缓冲体。缓冲池是若干缓冲区的集合,每一个缓冲区有两部分:一部分是标识缓冲器的缓冲首都(如图6-4),另一部分是保存信息的缓冲体。 • 缓冲区在缓冲池内按使用情况组成三条队列: 空闲缓冲区队列、输入缓冲区队列及输出缓冲区队列。 空闲缓冲区队列:由空闲缓冲区连接而成,用em指针指向队首。 输入缓冲区队列:由装满输入数据的缓冲区连接而成,用in指针指向队首。 输出缓冲区队列:由装满输出数据的缓冲区连接而成,用out指针指向队首 缓冲池的构成 如右图
缓冲池的工作原理如下: • 系统开始启动时,所有缓冲区全部排入em队列中。 • 当有输入任务时,收容输入进程执行读数操作时,自动从em队列的队首取下一空闲缓冲区,将输入数据装入其中,待装满后排入in队列尾部。 • 当有输出任务时,收容输出进程从em队列中取下一个空闲缓冲区,将输出数据装入,装满后排入out队列尾部
4. 当系统要从输入缓冲区中为用户进程取走数据时,由提取输入进程从in队列中取出一缓冲区,将其中的数据复制到用户指定的区域。并将该缓冲区排入em队列的尾部。 5. 当系统要从输出缓冲区输出数据时,由提取输出进程从out队列中取出一缓冲区,将其中的。
4.缓冲的作用 (1)很好地解决了CPU与I/O设备速度不匹配的问题,使信息得以在系统中平滑传输。 (2)提高了CPU、通道和设备之间的并行性,从而使系统的资源利用率及吞吐量增高。 (3)减少了系统的中断次数,降低了CPU的开销。
6.2.2 中断技术 1.中断概念 • 在设备管理中,为了实现系统的高并行性,中断是不可缺少的另一种支撑技术。 • 当进程申请外设时,往往通过访管中断进入系统功能调用来提出请求;而设备的I/O操作任务完成时,又是通过I/O中断信号,将信息反馈给CPU,然后由CPU作出响应,对后续任务作出相关处理。 • 所以I/O中断处理的好坏,会直接影响到设备效率的发挥。
中断就其本身而言,实质上是CPU在执行中,由于系统中出现了异步事件,打断了CPU当前的正常执行,而迫使CPU停止当前操作,转去处理异步事件,待处理完后又返回的过程。中断就其本身而言,实质上是CPU在执行中,由于系统中出现了异步事件,打断了CPU当前的正常执行,而迫使CPU停止当前操作,转去处理异步事件,待处理完后又返回的过程。 • 中断技术的实现是软、硬件协调配合的结果。
2. 中断源、中断优先级、中断优屏蔽 • 凡是可以引发中断产生的事件,在计算机中系统都被称为中断源。各种不同的中断源发出信号后,CPU必须根据情况作出响应,然后转入相关的中断处理程序去作处理。 • 在各种计算机系统中,都设置有很多类型的中断源。如在IBM360系统中,就设有硬件故障中断、程序执行中断、外部事件中断、I/O中断、访管中断五大类中断源。
将中断源按照外界因素的作用程度进行划分,常可分为自愿型中断与强迫型中断两大类。将中断源按照外界因素的作用程度进行划分,常可分为自愿型中断与强迫型中断两大类。 • 自愿型中断在小型机和微机管理上经常称为“系统功能调用”或内陷,例如在UNIX系统中就是用“trap”指令陷入中断来完成系统功能调用,而在DOS中,可用“INT”指令实现系统功能调用。
设备管理中出现的I/O中断,属于强迫型中断的一种,它是在外设与CPU进行交往时所产生的一种中断,利用这种中断可以让CPU及时掌握外设的工作情况,作处相应处理。设备管理中出现的I/O中断,属于强迫型中断的一种,它是在外设与CPU进行交往时所产生的一种中断,利用这种中断可以让CPU及时掌握外设的工作情况,作处相应处理。 • 由于中断是异步事件,随时都可能发生,所以不能排除中断同时发生的情况。为了对同时发生的中断事件作出处理,一般在计算机系统的硬件线路中都设立了中断优先级线路和中断屏蔽线路,以确保中断响应的次序及中断嵌套的重数。
中断优先级是预先在硬件线路安排好的中断响应次序,当几个中断信号同时出现时,CPU先响应优先级高的中断。中断优先级是预先在硬件线路安排好的中断响应次序,当几个中断信号同时出现时,CPU先响应优先级高的中断。 • 中断屏蔽却是为了有选择地封锁某些中断信号而设立的。这样,能够有效地限制中断嵌套的重数,减少管理上的复杂性。
中断信号发生 中断装置检测中断源 关中断 保护现场 进入中断处理程序 完成中断处理任务 开中断 转调度程序 图 6 - 7 中断处理过程 3.中断处理 • 中断发生时,CPU作出响应后,一般都要转入中断处理过程,中断处理分两阶段完成。第一阶段,进行现场保护,将被中断进程在寄存器组内的信息送入进程控制块中存;第二阶段,根据中断引发的事件,作出具体处理。中断处理流程图如图6-7所示。
6.3 I/O系统中数据的传输控制 在一个完整的I/O系统内,包含了I/O设备、设备控制器、通道及相关的管理软件。 特别是在多通道程序设计环境下,I/O操作控制能力已经成为计算机系统综合处理能力的重要构成因素。一般选取衡量I/O控制方式的好坏时应考虑如下因素: • 信息传输效率尽量高,以形成大的吞吐量。 • I/O系统资源利用率好,实现资源的均衡使用。 • 尽量减少CPU用于进行I/O处理的开销,使CPU效率得以充分发挥。
为此,按照I/O数据传输控制能力的强弱程度,以及CPU与外设并行处理程度的不同。通常将I/O系统中信息的传输控制方式分为四类:为此,按照I/O数据传输控制能力的强弱程度,以及CPU与外设并行处理程度的不同。通常将I/O系统中信息的传输控制方式分为四类: (1) 程序直接控制方式(CPU直接询问方式) (2) 中断方式 (3) DMA方式 (4) 通道方式
6.3.1 程序直接控制方式 • 程序直接控制方式,也称为CPU直接询问方式。 • CPU在一条启动外设的I/O指令发出后,便检测一台设备的忙闲标志,如果外设的工作没有完成,则标志一直为忙状态,CPU便一直进行循环检测下去,直到标志为不忙为止。 • 然后,主存与外设之间便可以交换一定量的信息。
这种操作方式,迫使CPU将大量的时间花费在循环等待上,使CPU效率发挥极差,外设也不能合理利用,整个系统的效率很低。这种操作方式,迫使CPU将大量的时间花费在循环等待上,使CPU效率发挥极差,外设也不能合理利用,整个系统的效率很低。 • 现在已较少使用这种方式作为I/O的数据传输控制。程序直接控制工作方式如图6-8所示。
6.3.2 中断方式 • 利用中断信号,外设可以将自身操作的状态及时反馈给中央处理CPU,这样,CPU便可以在发出一条I/O指令后,转去继续完成其他任务。而对外设的I/O工作,则转成了由设备控制器来指挥完成。 • 当I/O操作完成后,外设控制控制器自动向CPU发出中断请求信号,CPU接收到I/O中断信号后进行干预,启动I/O中断处理程序执行。 • 中断控制工作方式如图6-9所示。
中断驱动I/O方式虽然大大提高了主机的利用率,但是它以字(节)为单位进行数据传送,每完成一个字(节)的传送,控制器便要向CPU请求一次中断(做保存现场信息,恢复现场等工作),仍然占用了CPU的许多时间。中断驱动I/O方式虽然大大提高了主机的利用率,但是它以字(节)为单位进行数据传送,每完成一个字(节)的传送,控制器便要向CPU请求一次中断(做保存现场信息,恢复现场等工作),仍然占用了CPU的许多时间。 • 这种方式对于高速的块设备的I/O控制显然是不适合。
6.3.3 DMA方式 • DMA方式也称为直接存取方式,主要用在块设备的I/O操作中。利用总线直接连接外设和内存,由DMA控制机构窃取总线占有权,完成外设与内存间的成批数据交换。 • 除了在数据块进行I/O操作初始由CPU发出启动命令以及完成时CPU进行中断处理外,在整个数据块的传输期间不再需要CPU进行干预, • DMA工作方式如图6-10所示。
DMA方式比中断驱动方式已显著地减少了CPU的干预,即由以字(节)为单位的干预减少到以数据块为单位的干预。DMA方式比中断驱动方式已显著地减少了CPU的干预,即由以字(节)为单位的干预减少到以数据块为单位的干预。 • 但是CPU每发出一条I/O指令,也只能去读(或写)一个连续的数据块。而当需要一次去读多个离散的数据块且将它们分别传送到不同的内存区域,或者相反时,则需由CPU分别发出多条I/O指令及进行多次中断处理,才能完成。 • 不能满足复杂的I/O操作要求。
6.3.4 通道方式 • 通道的引入,是为了进一步提高CPU与外设之间的并行工作能力,使I/O操作形成独立于CPU的体系,以减少CPU的负担,使外设与内存的数据交换更加灵活。 • 在没有通道的计算机系统种,外设与主机间的连接,必须以通道及设备控制器作为中介,实现四级连接,三级控制。而且往往是通道、设备控制器、设备间实行多路连接,形成多路交叉传输,以利于I/O效率的提高。 • 多通道的I/O控制结构如图
通道也称为I/O处理机,专门负责内存与外设之间的信息交换工作。在通道机构中含有通道指令,每一条通道命令规定了设备的一种操作,由通道指令可构成指挥外设工作的通道程序。通道也称为I/O处理机,专门负责内存与外设之间的信息交换工作。在通道机构中含有通道指令,每一条通道命令规定了设备的一种操作,由通道指令可构成指挥外设工作的通道程序。 • 在I/O操作时,CPU只要发出启动命令,就可以启动通道。当通道启动成功后,通道执行相应的通道程序控制外设进行I/O操作。 • CPU与通道互不干涉,独立工作,直到I/O工作结束时,通道发出中断信号,CPU停止当前操作,转I/O中断处理,完成I/O操作的结束工作。
在计算机中,按信息交换方式不同,通道可分为三类:在计算机中,按信息交换方式不同,通道可分为三类: • 字节多路通道:它连接控制的是大量的慢速设备,如终端、打印机、磁卡机、纸带机等。按字节交叉方式传送数据。 • 选择通道:对于像磁盘、磁鼓这样的快速设备,按成批方式传送数据的选择通道。选择通道虽然可连接多台高速设备,但一段时间内只能为一台设备服务,只有一个输入或输出请求完成后释放了通道,通道才可再转向另一台设备服务。由于工作方式是独占的,所以利用效率不高。
3. 数组多路通道:这种通道是将字节多路通道与选择通道的优点抽取出来所设计的一种效率很高的通道。 在数组多路通道中,信息量的交换按成批方式进行,而通道的占用选用了分时交叉使用的办法,从而在数据传输率及通道利用率两方面都获得了满意的效果。 数组多路通道可以被认为是多道程序设计技术思想在通道中的体现,可以广泛用于中、高速外设的连接中。
命令码 主存地址 标志码 字节传输量 • IBM370计算机系统中每条通道指令由8个字符构成,其指令格式如下: 0 7 8 31 32 39 40 63
命令码:也称操作码,规定了外设应执行的操作。分成三类:命令码:也称操作码,规定了外设应执行的操作。分成三类: • (1)数据传输类,包含读、写、取、反转读; • (2)通道转移类,控制通道完成必要的数据转移任务; • (3)设备控制类,因设备类型而异,主要任务是实现外设的操作控制,如磁盘的查找、搜寻等。