Top Banner
第第第 第第第第 第第 第第第 第第第第第第第第第第第第第第
99

第六章 设备管理

Jan 01, 2016

Download

Documents

Ramona Smith

第六章 设备管理. 主讲:陈笑蓉 贵州大学计算机科学与技术学院. 在现代计算机系统中,培植了越来越多的外部设备,为了有效地完成对各类外围设备的管理,更好地提高外设资源的利用率,在用户面前提供一种方便、统一的接口界面,从而引入了设备管理,它承担了各种设备的分配、管理及 I/O 操作控制。. 你有过如此体验吗?. 1 、你是否在用光驱听 CD 时,又在疯狂地击打着键盘与网友聊天?(爽!) 2 、操作系统认不得你的声卡,你又找不到驱动程序,你有过苦恼吗? 3 、是否有过在刻录文件时,碟子被烧坏的感觉? ……. 由操作系统的定义知: - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 第六章      设备管理

第六章 设备管理

主讲:陈笑蓉

贵州大学计算机科学与技术学院

Page 2: 第六章      设备管理

在现代计算机系统中,培植了越来越多的外部设备,为了有效地完成对各类外围设备的管理,更好地提高外设资源的利用率,在用户面前提供一种方便、统一的接口界面,从而引入了设备管理,它承担了各种设备的分配、管理及 I/O 操作控制。

Page 3: 第六章      设备管理

你有过如此体验吗?

1 、你是否在用光驱听 CD 时,又在疯狂地击打着键盘与网友聊天?(爽!)

2 、操作系统认不得你的声卡,你又找不到驱动程序,你有过苦恼吗?

3 、是否有过在刻录文件时,碟子被烧坏的感觉?

……

Page 4: 第六章      设备管理

由操作系统的定义知:• 1 、由于 I/O 设备是计算机系统中重要的系统硬

件资源。操作系统是要控制和管理计算机系统的资源的;

• 2 、操作系统要使系统的资源得到充分而有效的利用,故应该对它们进行管理;

• 3 、用户与计算机直接打交道的是计算机系统的 I/O 设备,操作系统应该提供方便的操作 I/O 设备的界面。

Page 5: 第六章      设备管理

主要内容 设备类型和设备管理子系统的功能 设备管理中的两种支撑技术 I/O 系统中数据的传输控制 设备分配 设备的启动及 I/O 中断处理 共享设备的驱动调度 虚拟设备

Page 6: 第六章      设备管理

6.1 设备类型和设备管理子系统的功能 I/O 设备是计算机与外界进行信息交换

的装置,因此,在各种类型的计算机中都配置有一定数量的 I/O 设备,这些设备可以从不同的角度进行分类。常见的分类方式有下列几种:

• 以设备的隶属关系划分 • 按信息组织方式划分• 从资源分配角度进行划分

Page 7: 第六章      设备管理

1. 以设备的隶属关系划分 ( 1 )系统设备( System Device ):这类设备属

于计算机中最基本的标准配置设备,常常在操作系统启动时自动完成设备的登录。如打印机、键盘、显示器和磁盘驱动器等都属于这种类型的设备。

( 2 )用户设备( User Device ):这类设备属于非标准配置,可由用户根据实际需要连入系统,在使用之前通过运行对应的驱动程序进行安装、登录。如绘图仪、扫描仪等。

Page 8: 第六章      设备管理

2 .按信息组织方式划分( 1 )字块设备( Block Device ):这种设备也称为存储

型设备,在其上信息的组织和安排都以块为单位进行。在进行存取访问时,也是以块为单位计量的。常见的有磁盘驱动器、磁带机、磁鼓等。

( 2 )字符设备( Character Device ):字符设备上的信息,是以字符为单位来组织安排的,这类设备也称为输入 / 输出型设备。在信息存取调用时,都是以字符为单位来访问的。如键盘、纸带输入机、磁卡机等属于该类型设备。

Page 9: 第六章      设备管理

3 .从资源分配角度进行划分( 1 ) 独占设备( Independence Device ):一次

只允许分给一个用户作业使用的设备。设备一旦被分出去后,在作业的整个执行期间都被单独占用,别的作业不能与之共用,必须等释放后才可再用。而且,这类设备如果分配不当,可能会造成死锁。

( 2 ) 共享设备( Share Device ):一次可以允许多个作业同时进行访问的设备。各作业在执行期间内,可以交替分时地对共享设备进行占用。它是一个作业还未撤离,另一个作业便可使用的设备。

( 3 )虚拟设备( Virtual Device ):严格来讲,虚拟设备是一种设备管理的技术。采用该技术可以使慢速独占设备的使用方式变为共享设备的使用方式,以利于独占设备使用效率的提高。

Page 10: 第六章      设备管理

6.1.2 设备管理的主要功能 设备管理属于操作系统中最烦琐、最具复杂性的

部分。为了有效的提高系统中设备的效率,在设备管理中不仅涉及了 I/O 中断技术、缓冲技术及通道技术 , 而且还包括了各种类型设备的分配、启动以及虚拟设备等多方面的管理。

为了对物理特性各异的设备在调用时具有统一的格式和界面,以方便用户使用 , 在设备管理中应追求如下的目标:

(1) 建立方便、一致的用户界面(2) 尽量使 CPU 与外围设备、外设与外设之间的并行处理能力提高

(3) 充分发挥 I/O 设备的效率

Page 11: 第六章      设备管理

设备管理功能 :

( 1 ) 完成设备的分配和回收。 对于类型不相同的设备,采取不同的分配策略,将设备及其相关的硬件分配给申请设备的进程,对当前不能分配资源的进程,应将它们排到对应的等待队列中,等到以后适当时再重新分配。

进程使用完设备后,系统应及时收回,以便能分给别的要用此设备的进程。

Page 12: 第六章      设备管理

( 2 ) 实现缓冲区的管理。CPU 的运行速度往往高于外设的处理速

度,为了缓解两者间的矛盾,使外设与CPU 在处理速度上尽量匹配,

系统通过设置缓冲区来完成此任务。缓冲区的分配、回收及管理工作由设备管理部分实现。

Page 13: 第六章      设备管理

( 3 )控制 I/O 设备的启动。在计算机中,为保证设备调用的灵活性和可靠性,并减轻用户负担,设备的启动由系统自己完成,不允许用户直接启动设备。

( 4 )进行 I/O 事件的中断处理。具有通道的计算机系统中, I/O 操作的控制是由通道执行通道程序来实现的。通道与 CPU 的协调操作依靠 I/O 中断信号来指挥,当 I/O 中断信号出现时 , 设备管理负责 I/O中断事件的处理。

Page 14: 第六章      设备管理

( 5 )管理共享设备的驱动调度。共享设备在使用上允许多个作业交替启动占用不同的区域,故对它们不能预分配,用时才分。这使分配变为什么时候为谁服务的问题,即驱动调度问题。

( 6 )提供虚拟设备。为提高独占设备的利用率,用共享设备模拟独占设备,使独占设备的使用变为共享使用。为达到此目的,在设备管理中提供了一个 SPOOLING 系统。

Page 15: 第六章      设备管理

6.2 设备管理中的两种支撑技术

6.2.1 缓冲技术 • 在设备管理中,采用通道技术,虽可以实现 CPU 与

外设的并行工作方式,但 CPU 的速度一般总是比外设快许多。

• 为了进一步改善 CPU 与外设之间的速度不匹配的矛盾,解决通道占用时的阻塞现象,提高 CPU通道及外部设备之间的并行性,延长 CPU 对中断的响应时间,减少 CPU 的中断次数,有效地增长设备的使用时间,并妥善解决物理记录大小与逻辑记录大小不一致的问题,在操作系统中引入了缓冲技术。

Page 16: 第六章      设备管理

缓冲技术的实现原理:当某个进程进行数据输出操作时,先将数据送入缓冲区,当缓冲区装满时再将缓冲区的内容送到输出设备上;反之,当一个进程要进行输入操作时,可先将输入设备上的数据送入缓冲区,当缓冲区装满时,再由 CPU将数据取走。

缓冲区的设定有两种方式:• 专门的硬件方法来实现缓冲。会增加硬件成本 。 • 软件缓冲的方式,即从主存空间中划定出一个特殊的

内存区域作为缓冲区。• 介绍几种常见的软缓冲区管理技术。

Page 17: 第六章      设备管理

单缓冲管理 单缓冲是在系统的 CPU 与外设之间只设立一个缓冲区,输入与输出操作全部经该缓冲区来完成。

当输入设备占用缓冲区时,输出设备必须处于等待状态;而当输出设备正在缓冲区将数据取走时,输入设备也必须等待,其工作方式是串行完成的。此时,缓冲区成了可共享的临界资源,必须互斥占用,不可能实现并行工作,系统效率低。如下图:

Page 18: 第六章      设备管理

双缓冲管理由于单缓冲不能实现并行处理,为避免单缓冲造成的设备利用率不

高的状况,可引入双缓冲技术 , 为输入、输出分配两个缓冲区(如图 6-2 ),并让两个缓冲区交替工作,就可以形成并行操作的方式。

当输入或是输出时,外设先占用一个缓冲区,等当该缓冲区满后,再转去占用另一个缓冲区,同时第一个缓冲区中的数据可被取走,缓冲区可以释放,当另一个缓冲区满后,设备又可转过来占用被释放的缓冲区。这样,由于缓冲区交替被占用,可以使 CPU 与外设间的并行度进一步提高。 如下图:

Page 19: 第六章      设备管理

例如:有一批卡片要从卡片机上读入,然后再从打印机上输出。系统设置了两个缓冲区 buf1h 和 buf2 ,它们用于从卡片机上接受数据,恰当时交给打印机输出。

双缓冲虽然提高了 I\O 操作的效率,但不可能彻底解决在实际系统中的并行操作。由于计算机中配备有多种外围设备, CPU 与外设的速度匹配全部由双缓冲来承担是不能胜任的,为此,必须使用多缓冲或是缓冲池技术来解决并行操作问题。

Page 20: 第六章      设备管理

3 .多缓冲及缓冲池管理 • 多缓冲是把主存中的多个缓冲区组织成两部分,一

部分用于做输入缓冲区,另一部分作为输出缓冲区。

• 缓冲池则是将多个缓冲区连接成一个完整的区域,其中每个缓冲区既可以作为输入又可以作为输出用。

• 多缓冲及缓冲池属于系统中的共享资源,可提供给各进程使用,由系统进行统一分配和管理,它必须被互斥使用。

Page 21: 第六章      设备管理

缓冲池是若干缓冲区的集合,每一个缓冲区有两部分:一部分是标识缓冲器的缓冲首都(如图 6-4 ),另一部分是保存信息的缓冲体。

缓冲区在缓冲池内按使用情况组成三条队列:空闲缓冲区队列、输入缓冲区队列及输出缓冲区队列。

空闲缓冲区队列:由空闲缓冲区连接而成,用 em指针指向队首。输入缓冲区队列:由装满输入数据的缓冲区连接而成,用 in指针指向队首。

输出缓冲区队列:由装满输出数据的缓冲区连接而成,用 out指针指向队首

缓冲池的构成 如右图

Page 22: 第六章      设备管理

缓冲池的工作原理如下:1. 系统开始启动时,所有缓冲区全部排入 em队列中。

2. 当有输入任务时,收容输入进程执行读数操作时,自动从 em队列的队首取下一空闲缓冲区,将输入数据装入其中,待装满后排入 in队列尾部。

3. 当有输出任务时,收容输出进程从 em队列中取下一个空闲缓冲区,将输出数据装入,装满后排入 out队列尾部

Page 23: 第六章      设备管理

4. 当系统要从输入缓冲区中为用户进程取走数据时,由提取输入进程从 in队列中取出一缓冲区,将其中的数据复制到用户指定的区域。并将该缓冲区排入 em队列的尾部。

5. 当系统要从输出缓冲区输出数据时,由提取输出进程从 out队列中取出一缓冲区,将其中的。

Page 24: 第六章      设备管理

缓冲池工作方式

Page 25: 第六章      设备管理

4 .缓冲的作用( 1 )很好地解决了 CPU 与 I/O 设备速度不匹配的

问题,使信息得以在系统中平滑传输。

( 2 )提高了 CPU 、通道和设备之间的并行性,从而使系统的资源利用率及吞吐量增高。

( 3)减少了系统的中断次数,降低了 CPU 的开销。

Page 26: 第六章      设备管理

6.2.2 中断技术 1 . 中断概念 在设备管理中,为了实现系统的高并行性,中断

是不可缺少的另一种支撑技术。

当进程申请外设时,往往通过访管中断进入系统功能调用来提出请求;而设备的 I/O 操作任务完成时,又是通过 I/O 中断信号,将信息反馈给 CPU ,然后由 CPU 作出响应,对后续任务作出相关处理。

所以 I/O 中断处理的好坏,会直接影响到设备效率的发挥。

Page 27: 第六章      设备管理

中断就其本身而言,实质上是 CPU 在执行中,由于系统中出现了异步事件,打断了 CPU 当前的正常执行,而迫使 CPU停止当前操作,转去处理异步事件,待处理完后又返回的过程。

中断技术的实现是软、硬件协调配合的结果。

Page 28: 第六章      设备管理

2. 中断源、中断优先级、中断优屏蔽•凡是可以引发中断产生的事件,在计算

机中系统都被称为中断源。各种不同的中断源发出信号后, CPU 必须根据情况作出响应,然后转入相关的中断处理程序去作处理。

•在各种计算机系统中,都设置有很多类型的中断源。如在 IBM360系统中,就设有硬件故障中断、程序执行中断、外部事件中断、 I/O中断、访管中断五大类中断源。

Page 29: 第六章      设备管理

将中断源按照外界因素的作用程度进行划分,常可分为自愿型中断与强迫型中断两大类。

自愿型中断在小型机和微机管理上经常称为“系统功能调用”或内陷,例如在UNIX系统中就是用“ trap”指令陷入中断来完成系统功能调用,而在 DOS中,可用“ INT”指令实现系统功能调用。

Page 30: 第六章      设备管理

设备管理中出现的 I/O 中断,属于强迫型中断的一种,它是在外设与 CPU 进行交往时所产生的一种中断,利用这种中断可以让 CPU 及时掌握外设的工作情况,作处相应处理。

由于中断是异步事件,随时都可能发生,所以不能排除中断同时发生的情况。为了对同时发生的中断事件作出处理,一般在计算机系统的硬件线路中都设立了中断优先级线路和中断屏蔽线路,以确保中断响应的次序及中断嵌套的重数。

Page 31: 第六章      设备管理

中断优先级是预先在硬件线路安排好的中断响应次序,当几个中断信号同时出现时, CPU先响应优先级高的中断。

中断屏蔽却是为了有选择地封锁某些中断信号而设立的。这样,能够有效地限制中断嵌套的重数,减少管理上的复杂性。

Page 32: 第六章      设备管理

3 . 中断处理• 中断发生时, CPU

作出响应后,一般都要转入中断处理过程,中断处理分两阶段完成。第一阶段,进行现场保护,将被中断进程在寄存器组内的信息送入进程控制块中存;第二阶段,根据中断引发的事件,作出具体处理。中断处理流程图如图 6-7所示。

中断装置检测中断源

关中断

保护现场

进入中断处理程序

完成中断处理任务

转调度程序

开中断

图 6 - 7 中断处理过程

中断信号发生

Page 33: 第六章      设备管理

6.3 I/O 系统中数据的传输控制 在一个完整的 I/O 系统内 ,包含了 I/O 设备、设

备控制器、通道及相关的管理软件。

特别是在多通道程序设计环境下 ,I/O 操作控制能力已经成为计算机系统综合处理能力的重要构成因素。一般选取衡量 I/O 控制方式的好坏时应考虑如下因素:

(1) 信息传输效率尽量高,以形成大的吞吐量。(2) I/O 系统资源利用率好,实现资源的均衡使用。(3) 尽量减少 CPU 用于进行 I/O 处理的开销,使 CP

U 效率得以充分发挥。

Page 34: 第六章      设备管理

为此 , 按照 I/O 数据传输控制能力的强弱程度 , 以及 CPU 与外设并行处理程度的不同。通常将 I/O 系统中信息的传输控制方式分为四类 :

(1) 程序直接控制方式 (CPU 直接询问方式 )

(2) 中断方式(3) DMA 方式(4) 通道方式

Page 35: 第六章      设备管理

6.3.1 程序直接控制方式 程序直接控制方式,也称为 CPU 直接询问方

式。

CPU 在一条启动外设的 I/O指令发出后,便检测一台设备的忙闲标志,如果外设的工作没有完成,则标志一直为忙状态, CPU 便一直进行循环检测下去,直到标志为不忙为止。

然后,主存与外设之间便可以交换一定量的信息。

Page 36: 第六章      设备管理

这种操作方式,迫使 CPU将大量的时间花费在循环等待上,使 CPU 效率发挥极差,外设也不能合理利用,整个系统的效率很低。

现在已较少使用这种方式作为 I/O 的数据传输控制。程序直接控制工作方式如图 6-8所示。

Page 37: 第六章      设备管理

图 6-8 程序直接控制方式

Page 38: 第六章      设备管理

6.3.2 中断方式 利用中断信号,外设可以将自身操作的状态及

时反馈给中央处理 CPU ,这样, CPU 便可以在发出一条 I/O指令后,转去继续完成其他任务。而对外设的 I/O工作,则转成了由设备控制器来指挥完成。

当 I/O 操作完成后,外设控制控制器自动向 CPU发出中断请求信号, CPU 接收到 I/O 中断信号后进行干预,启动 I/O 中断处理程序执行。

中断控制工作方式如图 6-9所示。

Page 39: 第六章      设备管理

中断控制方式

Page 40: 第六章      设备管理

中断驱动 I/O方式虽然大大提高了主机的利用率,但是它以字(节)为单位进行数据传送,每完成一个字(节)的传送,控制器便要向 CPU请求一次中断(做保存现场信息,恢复现场等工作),仍然占用了 CPU的许多时间。

这种方式对于高速的块设备的 I/O控制显然是不适合。

Page 41: 第六章      设备管理

6.3.3 DMA 方式 DMA 方式也称为直接存取方式,主要用在块设备的 I/O 操作中。利用总线直接连接外设和内存,由 DMA 控制机构窃取总线占有权,完成外设与内存间的成批数据交换。

除了在数据块进行 I/O 操作初始由 CPU发出启动命令以及完成时 CPU 进行中断处理外,在整个数据块的传输期间不再需要 CPU 进行干预,

DMA工作方式如图 6-10所示。

Page 42: 第六章      设备管理

DMA控制方式

Page 43: 第六章      设备管理

DMA方式比中断驱动方式已显著地减少了 CPU的干预,即由以字(节)为单位的干预减少到以数据块为单位的干预。

但是 CPU每发出一条 I/O指令,也只能去读(或写)一个连续的数据块。而当需要一次去读多个离散的数据块且将它们分别传送到不同的内存区域,或者相反时,则需由 CPU分别发出多条 I/O指令及进行多次中断处理,才能完成。

不能满足复杂的 I/O操作要求。

Page 44: 第六章      设备管理

6.3.4 通道方式 通道的引入,是为了进一步提高 CPU 与外设之间的并行工作能力,使 I/O 操作形成独立于 CPU 的体系,以减少 CPU 的负担,使外设与内存的数据交换更加灵活。

在没有通道的计算机系统种,外设与主机间的连接,必须以通道及设备控制器作为中介,实现四级连接,三级控制。而且往往是通道、设备控制器、设备间实行多路连接,形成多路交叉传输,以利于 I/O 效率的提高。

多通道的 I/O 控制结构如图

Page 45: 第六章      设备管理

多通道的计算机系统

Page 46: 第六章      设备管理

通道也称为 I/O 处理机,专门负责内存与外设之间的信息交换工作。在通道机构中含有通道指令,每一条通道命令规定了设备的一种操作,由通道指令可构成指挥外设工作的通道程序。

在 I/O 操作时, CPU 只要发出启动命令,就可以启动通道。当通道启动成功后,通道执行相应的通道程序控制外设进行 I/O 操作。

CPU 与通道互不干涉,独立工作,直到 I/O工作结束时,通道发出中断信号, CPU停止当前操作,转 I/O 中断处理,完成 I/O 操作的结束工作。

Page 47: 第六章      设备管理

在计算机中,按信息交换方式不同,通道可分为三类:1. 字节多路通道:它连接控制的是大量的慢速设备,如终端、打印机、磁卡机、纸带机等。按字节交叉方式传送数据。

2. 选择通道:对于像磁盘、磁鼓这样的快速设备,按成批方式传送数据的选择通道。选择通道虽然可连接多台高速设备,但一段时间内只能为一台设备服务,只有一个输入或输出请求完成后释放了通道,通道才可再转向另一台设备服务。由于工作方式是独占的,所以利用效率不高。

Page 48: 第六章      设备管理

3. 数组多路通道:这种通道是将字节多路通道与选择通道的优点抽取出来所设计的一种效率很高的通道。

在数组多路通道中,信息量的交换按成批方式进行,而通道的占用选用了分时交叉使用的办法,从而在数据传输率及通道利用率两方面都获得了满意的效果。

数组多路通道可以被认为是多道程序设计技术思想在通道中的体现,可以广泛用于中、高速外设的连接中。

Page 49: 第六章      设备管理

IBM370 计算机系统中每条通道指令由 8个字符构成,其指令格式如下:

命令码 主存地址 标志码 字节传输量 0 7 8 31 32 39 40 63

Page 50: 第六章      设备管理

• 命令码:也称操作码,规定了外设应执行的操作。分成三类: ( 1 )数据传输类,包含读、写、取、反转读; ( 2 )通道转移类,控制通道完成必要的数据转移任务;

( 3 )设备控制类,因设备类型而异,主要任务是实现外设的操作控制,如磁盘的查找、搜寻等。

Page 51: 第六章      设备管理

• 主存地址:存放的内容与命令类型有关,对于数据传输类的命令,存放要传输数据的主存首地址,同时由“字节传输量”给出要传送数据量的多少;对转移类命令,存的是即将要转移的那条指令的地址;对控制类命令,则存的是有关的控制信息。

•标志码:用来规定通道程序的连接方式或是指明通道命令的特征。

Page 52: 第六章      设备管理

其中 32 与 33 两位同时为 0 时,表示该命令是当前通道程序的最后一条命令,执行后通道程序结束;如果 32位为 0 , 33位为 1 ,表示该命令为通道程序中某条命令的结束,但不是通道程序的结束;

当 32位为 1 , 33位为 0 时,表示其后的下一条命令仍为该命令的延续,命令未曾结束。 34位为 1 时,禁止在通道执行中发出长度错误指示。 35位为 1时,形成假读,阻止数据读入主存。 36位为 1 时,请求外设的进程被中断,产生 I/O 中断信号。

二进制位 32 33 34 35 36

特征意义 数据链 命令链 禁 止 发“ 长 度错”标志

封锁读入存,实现假读

程 序 进 程中断

Page 53: 第六章      设备管理

6.4 设备分配 从管理的层次看,设备的分配对象有两级,一级是

在作业级分配,另一级是在进程级上进行分配。 对作业级的分配工作,是在作业提交之后,开始执

行前进行的。

此时,系统按用户对设备的请求,将该作业所需要的有关设备及相关的通道和设备控制器资源,全部一次性的分给作业,直到作业用完自动释放归还给系统为止。这种分配方式属于静态分配。

Page 54: 第六章      设备管理

进程级的分配,一般由在 CPU上运行的进程,根据任务需要,通过系统功能调用提出 I/O请求,设备分配程序按一定的策略将可用的设备分配给有 I/O请求的进程。

同时,还分配与设备相关的通道和设备控制器,以确保在 CPU 与外设之间形成一条有效的数据通路。由于这种分配是在执行中动态完成的,设备用完后又必须立即释放,所以,属于动态分配。

Page 55: 第六章      设备管理

6.4.1 设备独立性 为了便于对这些外设进行管理,系统对每台进入计

算机系统中的设备都给定一个对应的编号,作为调用时识别和区分设备用。这种编号无任何重复,一般被称为设备的绝对号(或物理设备名)。

作为用户而言,如果直接让其用绝对号来申请设备,就会造成用户在使用中极不方便,复杂程度增加 。所以在系统中一般不允许用户用绝对号来直接申请所需的设备。

Page 56: 第六章      设备管理

为了方便用户,也为了提高外设利用率,在计算机系统中规定用户申请外设时,只需要向系统说明所需用的某类设备,至于真正在实际中使用那台设备,由系统根据这类设备的应用情况作出分配。这种由用户申请设备时所用的编号称为相对号(或称逻辑设备名)。

有了设备的绝对号和相对号后,用户编制程序使用的设备与实际使用的设备无关,这就是设备的独立性。

Page 57: 第六章      设备管理

具备设备独立性的计算机系统中,用户编程时只考虑逻辑设备,系统调用的是物理设备,逻辑设备与物理设备间的转换工作由设备分配程序来完成。

这样,可使系统的适应性好,灵活性强,对改善资源利用率极为有利。当某台设备坏了,只要操作系统改变分配就行了,而程序本身不必做任何修改。对方便用户,改善资源利用率、提高系统的可扩展性和可适应性都有极大的好处。

Page 58: 第六章      设备管理

6.4.2 设备分配算法的数据基 在多道环境下的设备分配,不仅只是对设备的分配,

而且还要实现与设备相联的通道及设备控制器的分配。所以,在分配算法的实现中,常采用的数据基主要含下述四张表:• 系统设备表 SDT• 设备控制表 DCT• 控制器控制表 COCT• 通道控制表 CHCT这四张表在分配算法中形成了一个有机整体,有效地记录

了外设资源在系统中的情况。

Page 59: 第六章      设备管理

图 6 - 12 设备分配数据基

Page 60: 第六章      设备管理

设备分配的数据结构图

表 目1……表目 i……

设备类型设备标识符进程标识符DCT表指针

驱动程序入口地址

表 目1……表目 i……

设备类型设备标识符

设备状态(等待 / 不等待,忙 /闲)COCT表指针

重复执行次数或时间设备队列的队首指针设备队列的队尾指针

表 目1……表目 i……

控制器标识符控制器状态(忙 /闲)

CHCT表指针控制器队列的队首指针控制器队列的队尾指针

表 目1……表目 i……

通道标识符通道状态(忙 /闲)

COCT表指针通道队列的队首指针通道队列的队尾指针

DCT设备控制表

SDT系统设备表 DCT 集合 SDT集合

COCT控制器控制表 CHCT

通道控制表CHCT 集合

COCT 集合

Page 61: 第六章      设备管理

6.4.3 设备分配 1 .设备分配的基本要求

• 设备分配受设备的固有特性,设备在系统中的配置数量,用户应用需求等多方面的限制。

• 两方面的目标: 在系统方面,应最大限度地发挥设备的效率,分配尽

量合理化,避免在分配完成后使占用设备的进程组内产生不安全性,引发死锁现象;

从用户方面考虑,应使分配体现设备独立性,让用户面对逻辑设备,而与物理设备无关,从而减轻用户编程的负担,提高应用程序的灵活性。

Page 62: 第六章      设备管理

2 .设备分配方式• 设备分配中的分配方式主要有两种:静态分

配与动态分配。

静态分配方式主要适用对独占型设备的分配,这种类型的分配在使用上必须是互斥地占用,所以往往是在某个作业执行之前,根据作业需求,全部一次性分出,当作业撤离时,再由系统收回。

由于是预分配,一般不会引起不安全因素。这种方式主要用在分配设备上,而对数量较少的通道和设备控制器的分配不能采用此方式。

Page 63: 第六章      设备管理

动态分配的方式则是由进程在执行中根据需要来动态申请外设,资源分配的灵活性大,利用率高。

在此方式下,设备不是进行预分配,而是用时才分,运行中的进程当需要与外界交换信息时,通过执行系统中的访管指令,形成访管中断,系统响应后进入访管中断处理,启动分配程序工作,完成分配任务。

系统必须采取一定的策略加以控制。常见的策略主要是先请求先分配、优先级高优先级两种。

Page 64: 第六章      设备管理

( 1 )先请求先分配• 当若干进程申请某一设备的请求得不到满足

时,必须排入等队列中。

• 这些进程由于申请时的先后次序,故排入等待队列的次序也是不相同的。

• 当该设备被归还给系统后,就可以重新分配,此时,系统按进程在等待队列中排队的先后次序,将设备分给最早排入等待队列的那个进程。

Page 65: 第六章      设备管理

( 2 )优先级高优先分配• 在此分配对策中,进程的优先级起了决定作用。

• 当从等待某设备的进程队列中挑选下一个可占用设备的进程时,往往按进程所具有的优先级来处理:高优先级的进程先分配;同优先级的,先申请先分配。

Page 66: 第六章      设备管理

3 . 设备分配算法

在具有通道的 I/O 系统中,分配算法对各资源的分配顺序为:

(a) 设备 (b) 控制器 (c) 通道。具体分配流程图为 6-13所示。

Page 67: 第六章      设备管理

设备分配算法流

Page 68: 第六章      设备管理

6.5 设备的启动及 I/O 中断处理 设备的分配完成之后,由操作系统指挥外设完成具

体的 I/O 操作。 ( 与进程的状态转换相联系 )

不同的操作系统对 I/O 的处理方式上各有不同,常用的处理方法是在操作系统中设立 I/O 管理进程,负责统一管理系统的 I/O工作。

有的系统中是按设备类型来设立各自的 I/O 管理进程。在设有通道的计算机中, I/O 操作是在通道程序控制下完成的。

Page 69: 第六章      设备管理

6.5.1 设备的启动 在通道方式下的外设启动工作分两阶段进行。

• 第一阶段是准备阶段,由 I/O 进程在 CPU上执行,构造好通道程序,且将通道程序的首地址放入到通道地址字 CAW 中;

• 第二阶段,由 CPU 执行 I/O 启动命令去启动通道工作。通道根据具体情况形成条件码向 CPU 作出能否执行的回答,如果启动失败, CPU 应推迟 I/O 操作的执行。

Page 70: 第六章      设备管理

在通道执行时,通道会将执行中有关通道、控制器、设备的情况实时地记录下来,放入一个主存中的特定单元内,该单元被称为通道状态字 CSW ( Channel Status Word ),

当通道状态字在跟踪通道执行过程中,出现通道结束、通道出错、设备结束、设备出错、控制器结束、控制器出错等情形时,通道会自动形成 I/O 中断请求信号,将信号反馈给 CPU 。

CPU 可根据 I/O 中断信号对通道程序的执行情况作出相关的处理,这就是常说的 I/O 中断处理。

Page 71: 第六章      设备管理

I/O处理过程

Page 72: 第六章      设备管理

6.5.2 I/O 中断处理 I/O 中断的发生是在通道、设备以及设备控制器正常或异常结束时。 I/O 中断是 CPU 与通道交往协调的一种手段。

通常, CPU根据 I/O 中断信号来判断操作的完成情况,作出相应的处理。正常的与异常的 I/O 中断,系统在处理上所采用的方式不相同,产生的结果也不一样。

Page 73: 第六章      设备管理

正常 I/O 中断处理 : 当通道程序顺利执行完成后,一次 I/O 操作已就正常结束,此时, I/O 中断信号发出,请求 CPU干预。 CPU 接受信号后,进行中断响应后,转入中断处理。中断处理过程中应完成下列任务:

• 保护正在 CPU上运行的当前进程的现场信息 • 将原来曾经因 I/O请求,执行过访管指令而被置为等待态

的进程唤醒,变为就绪态插入到就绪队列中• 查看当前被释放出的 I/O 设备的等待队列中是否还有别的

进程在排队,将等设备的进程唤醒 • 重新启动进程调度程序工作

Page 74: 第六章      设备管理

异常的 I/O 中断处理 : 当 I/O 操作时,发生了数据传输线路上的 I/O异常中断,这说明 I/O 操作没有完成,可能产生了故障或是特殊事件,系统要分情况进行处理。

• 对故障原因引发的中断,可以组织通道程序复执 • 若多次复执后故障仍不能排除,则必须请求人工干预 • 对设备特殊事件,引发事件原因往往是设备上的卷用完,

此时系统应给操作员提示,进行换卷工作。完成后通知操作系统,继续控制操作转入正常执行。

Page 75: 第六章      设备管理

6.6 共享设备的驱动调度 配置在计算机系统中的共享设备,由于在使用特征上表现为在同一时间段内允许多作业的进程交替占用,故这类设备在分配方式上就不可能将设备只分给某个进程使用,而让别的进程不能使用。

因此,对共享设备的分配,实质上就变成了决定设备在什么时刻被启动?启动后到底为谁服务的问题?也就是常说的驱动调度问题。不同的共享设备,由于其构造特征不同,所采用的驱动调度策略也会有差别。下面针对较熟悉的共享设备——磁盘来讨论驱动调度问题。

Page 76: 第六章      设备管理

6.6.1 磁盘的访问时间构成

磁盘的物理构造(如图 6-15 )决定了一次磁盘的 I/O操作,物理记录的位置必须由柱面号,磁头号(盘面号),扇区号三个参数共同确定。如何确定这三个参数是磁盘访问成功的关键。

Page 77: 第六章      设备管理

找柱面,实质上是由磁臂带动磁头沿半径方向平行移动到指定柱面的工作。在磁盘中,每个盘面都对应一个磁头,所有磁头都被固定在唯一的磁臂上,一旦柱面被找到,所有磁头指向的都是同一柱面。系统中找柱面的操作被称为查找操作,所花费的移臂时间称为查找时间。

柱面找出后,磁头并不与磁道接触,而要等想

访问的扇区转到磁头所在位置时,磁头才与扇区接触,完成对物理记录的读 /写操作。扇区转动到磁头位置的时间称为旋转延迟时间。

磁头将扇区的信息读到主存或是将主存的信息写入扇区都需要时间,这个时间称为传输时间。

Page 78: 第六章      设备管理

由查找时间、旋转延迟时间、传输时间三部分之和构成了一次磁盘的 I/O 访问时间。要使磁盘利用率高,应尽量减少每次 I/O 操作的访问时间,增加单位时间内的 I/O 操作吞吐量。

系统应采用一定的管理对策,决定出当有多个访问请求发生时,让哪个访问者被先访问?这个管理对策被称为“驱动调度”。

Page 79: 第六章      设备管理

具体的磁盘驱动调度算法分为两部分:

• “ 移臂调度”:控制的是查找操作的先后次序;

• “旋转调度”:控制的是哪个扇区先被访问的问题。磁盘工作时,应先完成“移臂调度”,然后再进行“旋转调度”。

Page 80: 第六章      设备管理

6.6.2 移臂调度 先来先服务查找算法( FCFS )

• 这是一种最简单的移臂调度算法,它只考虑对磁盘请求的先后次序,而不考虑访问的物理位置,所有对磁盘有 I/O请求的进程先去等待队列中排队,排在先的先给予服务。该算法对于访问进程是平等的,先提 I/O请求的进程,磁盘先分配给它使用(如图 6-16所示)。

• 这种算法当访问请求分布不好时,可能会造成磁臂反复来回移动,增加总的访问时间,无法实现查找优化,只适用于访问请求不太多的情况。

Page 81: 第六章      设备管理

图 6-16 FCFS 算法 图 6-17 SSFT 算法

Page 82: 第六章      设备管理

最短查找时间优先的算法( SSFT , Shortest-Seek-Time-First ) • 这个算法是 FCFS 算法的改进。它总是选择请求 队列中离当前磁头所在柱面最近的下一个柱面作为即将访问的对象,而不管请求访问者到达请求队列的先后次序(如图 6-17所示)。

• 此算法克服了 FCFS 算法中磁臂大幅度来回移动的缺陷,在吞吐量上有所提高。但对访问者的服务机会是不均衡的,有时会造成内/外边缘磁道上的请求被无限推迟响应的现象。

Page 83: 第六章      设备管理

扫描算法 (SCAN) • 该算法是为了克服 SSTF 算法的缺点而提出

的一种查找优化的算法,在 SSTF 算法中只考虑了请求访问的柱面与磁头当前所处位置的距离,而不考虑磁臂的移动方向。

• 而 SCAN 算法则既要考虑距离,也要考虑方向,且方向优先考虑。

Page 84: 第六章      设备管理

• SCAN 算法在选择下一个访问者时,先选与磁臂移动方向一致的访问请求,并以此为基础,选出与磁头当前所在柱面距离最近的柱面作为下一个访问对象。

•也称“电梯调度”算法。

• SCAN 算法是一种高效率的算法。它很好地解决了磁头来回移动浪费时间的现象,使系统I/O吞吐量增大,资源利用率好

Page 85: 第六章      设备管理

图 6 - 18 SCAN 算法

Page 86: 第六章      设备管理

N 步扫描与循环扫描法 • N步扫描与循环算法的服务方式与 SCAN 方法基本一致,但它们在向外或向内的移动过程中,只对在磁头改变方向以前已提出申请的访问请求作出服务,新到达的访问请求本次不予访问,留待下次再服务。

•循环扫描法也称单向扫描,它对请求者的服务总是每次从0柱面号开始,然后移动至最大柱面,遇到要访问的柱面进行服务。一次扫描完成后,磁头再返回0号柱面,又重复上述步骤。

Page 87: 第六章      设备管理

图 6-19 N 步扫描

图 6-20 循环扫描

Page 88: 第六章      设备管理

6.6.3 旋转调度 通过移臂调度后,确定了访问的柱面号,当

在同一柱面上有多个访问者等待访问时,如何安排访问者的访问次序?这就是旋转调度应解决的问题。

旋转调度应以尽量减少旋转延迟时间为目标。

Page 89: 第六章      设备管理

“最短延迟时间优化”的策略。 • 该方法以时间为衡量指标,对同一柱面上扇区的

访问请求不是按申请的先后次序来读/写,而是经过重新排序后再处理,使时间上大大缩短。

Page 90: 第六章      设备管理

例如:假设10号柱面上有四个访问者,它们的访问请求次序如下:请求次序   柱面号   磁头号   扇区号

     (1)    10    3     1     (2)    10    2     6     (3)    10    1     3     (4)    10    4     9

若如不进行优化处理,处理完这四个访问请求可能需要两周的旋转时间。而采用(1),(3),(2),(4)的次序处理,一周就可全部访问完毕,节省了一半的时间。有时几个访问请求所需的可能是同一柱面,不同磁头号所对应的是同一扇区,这样会造成这些扇区同时到达磁头位置下,这时可以按请求的先后次序,先请求的先读/写。 

Page 91: 第六章      设备管理

6.7 虚拟设备 虚拟设备实际上是一种提高独占设备利用率而采

用的管理技术。 早期的虚拟设备技术采用的是脱机外围机操作技

术。在这种方法中,除了主机系统之外,系统还必须提供两台卫星机:• 一台负责预输入操作,要完成的工作是将慢速独占的

输入设备上的信息预先输入到共享高速的磁盘上,当磁盘的一个卷装满后,由系统操作员将卷移到主机系统中;

• 另一台则专门负责缓输出的工作,当主机加工完成后即将要输出的结果,先存入主机的另一个磁盘内,待磁盘装满后由操作员将存有结果的磁盘移到负责缓输出的卫星机上,由该机控制输出操作。如图 6-21所示。

Page 92: 第六章      设备管理

卫星机 1 (预输入)

主机系统 卫星机 2 (缓输出)

慢速输入设备

共享设备

输入信息

结果

结果

慢速输出设备

图 6 – 21 脱机外围设备操作系统

Page 93: 第六章      设备管理

这种脱机外围操作管理技术,在独占设备的使用性能方面有极大改善,但还存在一些缺陷:

• 由于增加了两台卫星机,使系统成本升高;• 卫星机与主机系统的搬卷工作是人工完成的,既增加了

操作员的工作量,还容易出错;• 由于增加了人工操作的任务,使作业周转时间增加。

要解决这些问题,必须采用一种更先进的方法,使预输入和缓输出的工作由主机系统自己完成,这种办法就是现在普遍用于许多计算机系统中的 SPOOLING 技术。

Page 94: 第六章      设备管理

6.7.2 SPOOLING 系统 SPOOLING(Simultaneous Peripheral Operatio

n On Line)也称同时联机的外围操作系统或是伪脱机系统。

思想是利用一台高速共享设备(磁盘或磁鼓)将一台独占设备模拟成多台可并行操作的虚拟设备,这样一来,使用户感到每人都得到了系统中的一台独享设备。

这种技术是在计算机技术发展到一定阶段,在硬件中出现了大容量的共享设备:磁盘或是磁鼓,出现了通道技术和中断技术,在软件中出现了多道程序技术的前提下产生的。

Page 95: 第六章      设备管理

SPOOLING

的组成

输入

设备

输入缓冲区

共享设备输入井

输出井

输出缓冲区

输出

设备

通道及缓冲区

SPOOLING 的进程

主 机 系 统

预输入 输入井 输出井 缓输出 进程 管理进程 管理进程 进程

图 6-22说明了 SPOOLING 的组成。

Page 96: 第六章      设备管理

SPOOLING 系统的组成 ( 1 )硬件部分这部分包含了在磁盘或磁鼓上设立的两个区域:输入井和输出井,以及在主存中开辟出的两个缓冲区:输入缓冲区和输出缓冲区。

· 输入井:用来存放来自于输入设备的信息。· 输出井:用来保存即将送到输出设备上的结果。· 输入缓冲区:暂时保存外设准备送入输入井的信息。·输出缓冲区:暂时保存从输出井送出的结果。

Page 97: 第六章      设备管理

( 2 )软件部分在这部分中,包含了预输入进程,缓输出进程,

输入井管理进程,输出井管理进程。

• 预输入进程:将用户要求的输入数据从输入设备上,经输入缓冲区送入输入井。

• 缓输出进程:将用户的输出结果在设备空闲时从输出井中,经输出缓冲区送上输入设备。

• 输入井管理进程:将输入井中的信息读入内存。• 输出井管理进程:将内存中的结果送到输出井中。

Page 98: 第六章      设备管理

2 . SPOOLING 系统的工作过程

Job4

主存

输入缓冲区

Job2Job3

输出缓冲区

预输入进程

输入 #管理进程

输出 #管理进程

缓输出管理进程

磁盘或磁鼓

输入 #

输出 #

Job4

Job3

Job2

Job3

Job2

Job1

打印机

图 6 - 23 四个作业在 SPOOLING 中的工作方式

Page 99: 第六章      设备管理

小结 设备类型和设备管理子系统的功能 设备管理中的两种支撑技术 I/O 系统中数据的传输控制 设备分配 设备的启动及 I/O 中断处理 共享设备的驱动调度 虚拟设备

重点:设备管理中的两种支撑技术 、 I/O 系统中数据的传输控制 、共享设备驱动调度

难点:

作业: 2 、 4 、 8 、 12 、 14