第五章 设备管理
本章学习要点
【1】掌握与设备管理相关的概念
【2】深入掌握I/O控制方式
【3】深入掌握缓冲、中断与通道技术
【4】深入领会SPOOLing的功能与实现原理
本章学习难点
【1】缓冲、中断与通道技术
【2】SPOOLing技术
习题分析
一.判断改错题(判断由下划线标明的关键词的叙述是否正确,正确的打√,错误的打×并改正。)
1.虚拟设备是指被多个用户或进程交替使用的设备,宏观上好象多个用户同时在使用。( )
2.采用Spooling技术,就可使独占设备增加,使用户同时面对独立的同类设备。( )
3.通道技术根本上是从软件上解决操作系统对输入输出操作的控制问题。( )
4.逻辑设备是物理设备属性的表示,用来指定某一具体设备。( )
5.从设备的资源属性分类,可把设备分为独占设备、共享设备和虚拟设备。( )
6.操作系统设备管理模块的主要任务是如何有效地分配和使用设备,如何协调处理机与设备操作的时间差异,提高系统总体性能。( )
7.系统与设备间的协调主要是速度上的协调,要解决快速处理器与慢速的I/O设备间的操作匹配矛盾,只有通过建立硬件缓冲区的方法。( )
8.用户在使用I/O设备时,通常采用物理设备名,指明具体的设备。( )
9.缓冲是一种暂存技术,它利用外存的一部分,在数据传送过程中进行暂时的存放。( )
10.中断矢量是中断断点地址。( )
习题解答:
1.错;应为:……是指采用某种I/O技术,将某个独占设备改进为多用户共享的设备,以提高资源的利用率。
2.错;应为:采用SPOOLing 技术,就可将一台独占设备改造成为多用户共享设备。
3.错;应为:通道技术根本上是从硬件上解决操作系统的输入输出操作的控制问题。
4.错;应为:……它并不特指某个具体设备,而是对应一类设备。
5.对;
6.对;
7.错;应为:……,可以采用缓冲区的方法来缓解这个矛盾。
8.错;应为:用户在使用I/O设备时,通常采用逻辑设备名,指明设备类型。
9.错;应为:……它利用存储设备、部件或其中一部分,在……。
10.错;应为:中断矢量是中断处理程序的入口地址。
二.填空题
1.设备分配的具体实现是由操作系统中的 负责对________提出的设备请求 分配设备,这种分配还应包括分配 ,如控制器等,以保证分配的完整性。
2.通常的I/O操作通过两种指令实现控制,一种是由操作系统发出的 ,另一种是由 提供的。
3.在微机中,常把I/O中断处理程序以 的方式作为操作系统设备管理和控制的依据,用户采用一种通用的 来使用这些设备。
4.从计算机设备的数据组织方式分类,设备可以分为块设备和_____________,而按设备的共享属性分类,可以分为 、共享设备和 。
5.在设备分配算法的实现中,同样要考虑 问题,防止在多个进程进行设备请求时,因相互等待对方释放所占设备而陷入 。
6.引入缓冲技术,有效地改善了系统CPU与I/O设备之间 不匹配的情况,也减少了I/O设备对CPU的 ,简化了中断机制,节省了系统开销。
7.中断源向CPU提出进行处理的请求称为中断请求;发生中断时被打断程序的暂停点称为 ;CPU暂停现行程序而转去响应中断请求称为 。
8.设备管理中采用的数据结构有 、 、 和 四种。
9.每一条通道命令规定了设备的一种操作,一般由命令码、 、 及标志码等四部分组成。
10.CPU对外围设备的控制方式主要由四种: 方式、 方式、 方式和通道方式。
11.保护 、启动 是中断处理的主要工作之一。
习题解答:
1.设备分配程序,用户(进程),支持部件;
2.专用I/O指令,通道程序;
3.设备驱动程序,界面和操作;
4.字符设备,独占设备,虚拟设备;
5.分配策略,死锁;
6.速度,占用率;
7.断点、中断响应;
8.设备控制表,控制器控制表,通道控制表,系统设备表;
9.内存地址,计数;
10.程序I/O,中断驱动,直接存取访问;
11.被中断进程的现场信息,中断处理程序。
三.简答题
1.设备管理的目标是什么?
答:完成用户提出的I/O请求,为用户分配I/O设备,提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备。
2.简述设备管理的主要功能。
答:设备管理的主要功能有:
缓冲管理——管理好各类缓冲区,以缓和CPU和I/O速度不匹配的矛盾,达到提高CPU和I/O设备利用率,进而提高系统吞吐量的目的。
设备分配——根据用户的I/O请求,为之分配其所需的设备、控制器和通道。
设备处理——实现CPU与设备控制器之间的通信。
虚拟设备——将每次只允许一个进程使用的物理设备,改造为能同时供多个进程共享的设备。
3.简述操作系统中设备的概念。
答:设备包括用于进行实际输入输出操作的物理设备以及控制这些设备并进行I/O操作的支持部件,以及为提高设备利用率,采用某种I/O技术形成的逻辑设备和虚拟设备。
4.什么是缓冲?引入缓冲有什么好处?
缓冲是一种暂存技术,利用一种存储部件设备,在数据传输过程中进行暂时存放,缓解I/O设备与CPU之间的速度矛盾。
好处:
缓和CPU与I/O设备间速度不匹配的矛盾;
减少对CPU的中断频率,放宽对中断响应的时间限制;
提高CPU和I/O设备之间的并行性。
5.什么是中断?系统内部中断与外部中断有什么区别?
答:中断就是处理器停止当前的工作,保存现场所有数据和状态参数,转而处理更紧急的事物,处理完后恢复原来的数据和参数,继续原来的工作。
系统内部中断是由于操作系统内部运行所造成的中断,外部中断是用户应用程序运行所造成的中断。
6.试述缺页中断与一般中断的主要区别。
答:缺页中断是一种特殊的中断。它在指令执行期间产生和处理中断信号;一条指令执行期间,可能产生多次缺页中断。
7.简述通道和缓冲的概念。
答:通道是一种硬件设施,也称为I/O处理机,它是一种专用的、有很强I/O处理功能的部件,它可以独立完成CPU交付的I/O操作任务,通过执行本身的I/O专用程序(通道程序),来进行系统内存与外部设备之间的数据传输。
缓冲是一种暂存技术,利用一种存储设备在数据传输过程中,进行暂时存放,缓解CPU与I/O设备之间的速度矛盾,提高各部件的利用率。
8.时钟有何用途?试说明软、硬时钟的概念。
答:时钟是用来计量时间的硬件或软件系统,在操作系统中常有两种用途:报告日历和时间,对资源使用计时。硬件时钟是一种独特的设备,它的作用在于提供记录时间间隔的手段;软件时钟可以用计数器实现,也可以用一段循环程序实现。
9.打印机和磁盘都是共享资源,当多个作业共享时有什么不同?
答:打印机是独占设备,属于临界资源,当多个作业共享时应互斥访问,即在一段时间内只允许一个进程访问,其它要访问的进程必须等待。磁盘是共享设备,在一段时间内允许多个进程同时访问,宏观上是同时的,微观上是交替的。
10.什么是设备的独立性?
答:也称设备无关性,指应用程序独立于具体使用的物理设备。应用程序中使用逻辑设备名请求使用某类设备,系统实际执行时使用物理设备名,系统完成逻辑设备名到物理设备名的转换。
11.有哪几种I/O控制方式,分别适用于何种场合?
程序I/O方式,用于早期无中断机制的操作系统;
中断驱动控制方式,由CPU与I/O设备控制器共同完成操作。
直接存储器访问DMA控制方式,传送的数据从设备直接送入内存,数据传送的基本单位是数据块,仅在传送一个或多个数据块开始和结束时,才需CPU干预。主要用于块设备。
I/O通道控制方式;用于大型主机,I/O设备较多的情况下。
12.试比较I/O控制方式中的中断控制方式和DMA方式。
答:I/O中断控制方式是指CPU与I/O设备并行操作,数据I/O操作完成,设备控制器通过控制线向CPU发送一中断信号,CPU花极短的时间去进行中断处理。CPU利用率显著提高。但它以字(节)为单位进行I/O,对块设备低效。
直接内存存取(DMA)方式,数据传输以数据块为基本单位,在控制器的控制下完成,数据直接送入内存,在一个或多个数据块传输开始和结束时,才需CPU干预。
13.I/O设备与CPU之间有何主要矛盾?如何解决?
答:I/O设备与CPU之间主要是速度上的矛盾。操作系统中采用缓冲区的方式来缓解快速的处理器和慢速的I/O设备之间的操作匹配矛盾,提供处理器和设备的利用率,使它们并行工作。
14.在设备管理中,瓶颈问题产生的原因是什么?如何解决?
答:由于通道价格昂贵,通道的数量远比I/O 设备少,往往会因通道数量不足,而产生一系列瓶颈问题,影响整个系统的吞吐量。解决方法有:
配备足够的通道和控制器;
减少通道使用时间;
增加通路,提高通道灵活性。
15.系统如何进行I/O中断处理的?
答:当某进程要启动某I/O设备工作时,CPU中断当前的工作,转而向相应的设备控制器发出一条I/O指令,然后立即返回,继续原来的工作。具体过程为:
将接收到的抽象要求(如read)转换为具体要求。
检查用户I/O请求的合法性,了解I/O设备的状态,传递参数,设置设备的工作方式。
发出I/O命令,启动设备完成指定的I/O操作。
及时处理由控制器和通道发来的中断请求。
设置通道的系统,驱动程序还能自动构成通道程序。
16.设备驱动程序通常完成哪些功能?
答:接受上层软件发来的抽象的要求,再把它转换为具体的要求后,发送给设备控制器,启动设备去执行;此外,它也将由设备控制器发来的信号传送给上层软件。
17.简述设备分配过程。
答:进行设备分配时要借助于设备控制表、控制器控制表、通道控制表和系统设备表等数据结构。首先分配设备,再分配与设备相连的控制器及与控制器相连的通道,只要存在一条通路就可完成设备的分配。
18.磁盘访问时间有哪几部分组成?试说明各组成部分的含义。
答:寻道时间Ts:把磁头从当前磁道移动到指定磁道的时间;
旋转延迟时间Tr:指定扇区移动到磁头下的时间;
传输时间:把数据从磁盘读出或写入磁盘所经历的时间。
四.应用题
【解答】(1)磁盘空间的总块数=100416=6400
内存字数=640064=100
需用100个内存字来存储磁盘空间的位示图。
(2)空闲块数和磁盘地址都用4个字节记录,考虑磁盘空间盘块总数变化的情况。
成组链接方案需要一个专用块,512字节
专用块内容调入内存需占用的字节数为100×4+4=404
即成组链接方案占用存储空间总数为512+404=916字节。
下面计算占用存储空间总数为916字节时,采用位示图方案时磁盘的最大块数:
用1个块存位示图,占512字节磁盘空间;
位示图调入内存后所占用的空间应不超过(916-512)=404个字节,即位示图应不超过404÷8 = 50.5(字),即位示图为50个内存字,50×64 = 3200(块)。
故当空闲块数和磁盘地址都用4个字节且磁盘块数大于3200时,成组链接方案占用的存储空间总数小于位示图法占用的存储空间总数。
【解答】(1)采用电梯调度算法的访问序列为:(20)→25→32→18→7。
(2)访问2号记录:
移臂时间T2=0.35=1.5ms
最大旋转一周时间R2=(601000)/3600=50/3ms=16.67 ms
数据传输时间A2=旋转一周时间=16.67 ms
3项时间合计为34.84ms。
访问3号记录:
移臂时间T3=0.37=2.1ms
最大旋转一周时间R3=(601000)/3600=50/3ms=16.67 ms
数据传输时间A3=旋转一周时间=16.67 ms
3项时间合计为35.44ms。
访问1号记录
移臂时间T1=0.314=4.2ms
最大旋转一周时间R1=(601000)/3600=50/3ms=16.67 ms
数据传输时间A1=旋转一周时间=16.67 ms
3项时间合计为37.54ms。
访问4号记录
移臂时间T4=0.311=3.3ms
最大旋转一周时间R4=(601000)/3600=50/3ms=16.67 ms
数据传输时间A4=旋转一周时间=16.67 ms
3项时间合计为36.64ms。
所以,总的访问时间为:3+34.84+35.44+37.54+36.64=147.46ms
假定一个磁盘组共有65536个柱面,每个柱面上有16个磁道(即有16个读写磁头),每个盘面分成256个扇区。问:
(1)整个磁盘空间共有多少个存储块(扇区)?
(2)如果用字长为32位的单元来构造位示图,共需多少个字?
(3)位示图中18字,16位对应的块号是多少?(字号和位号皆从0开始编号,块号从1开始编号)
(4)由(2)的计算结果分析,你认为大容量磁盘空间的管理,是否适宜采用位示图?
【解答】(1) 6553616256=268435456
即整个磁盘空间共有268435456个存储块(扇区)
(2) 26843545632=8388608
即用字长为32位的单元来构造位示图,共需8388608个字。(即32MB)
(3) 块号=字号字长+位号+1=1832+16+1=593
(4) 由(2)可知,构造位示图需要8388608个字,即32MB,占用磁盘空间相当大,系统启动后,位示图调入内存后占用内存空间相当大,查找如此巨大的位示图,效率也不高。由此可知,大容量磁盘空间的管理不宜采用位示图。
(2010全国试题)假设计算机系统采用CSCAN(循环扫描)磁盘调度策略,使用2KB的内存空间记录16384个磁盘块的空闲状态。
(1)请说明在上述条件下如何进行磁盘块空闲状态的管理。
(2)设某单面磁盘旋转速度为每分钟6000转,每个磁道有100个扇区,相邻磁道间的平均移动时间为1ms。若在某时刻,磁头位于100号磁道处,并沿着磁道号增大的方向移动(如下图所示),磁道号请求队列为50,90,30,120,对请求队列中的每一个磁道需读取1个随机分布的扇区,则读完这4个扇区总共需要多少时间?给出计算过程。
(3)如果将磁盘替换为随机访问的Flash半导体存储器(如U盘、SSD等),是否有比CSCAN更高效的磁盘调度策略?若有,给出磁盘调度策略的名称并说明理由;若无,说明理由。【答案要点】
(1) 用位图表示磁盘的空闲块状态。每一位表示一个磁盘块的空闲状态,共需16384/32= 512个字=512×4个字节=2KB,正好可放在系统提供的内存中。
(2) 采用CSCAN调度算法,访问磁道的顺序为120,30,50,90,则移动磁道长度为20+90+20+40= 170,总的移动时间为170×1ms=170ms。
由于转速为6000r/m,则平均旋转延迟时间为60/(6000×2)×1000ms=5ms,总的旋转时间为5ms×4=20ms。
由于转速为6000r/m,则读取一个磁道上的一个扇区的平均读取时间为10ms/100=0.1ms,总的读取扇区的时间=0.1ms×4=0.4ms。
读取上述磁道上的所有4个扇区所花费的总时间=170ms+20ms+0.4ms=190.4ms。
(3) 采用FCFS(先来先服务)调度策略更高效。因为Flash半导体存储器的物理结构不需要考虑寻道时间和旋转延迟,可直接按I/O请求的先后顺序服务。
五. 练习题
(一)选择题
1.虚拟设备技术是指用 的技术。
A.共享设备代替独占设备 B.独占设备代替共享设备
C.共享设备模拟独占设备 D.独占设备模拟共享设备
2.SPOOLing系统克服了______利用率低的缺点。
A.共享设备 B.独占设备 C.主存储器 D.虚拟设备
3.下列算法中可用于磁盘移臂调度的是 。
A.最短计算时间优先 B.电梯算法 C.时间片轮转 D.响应比高者优先
4.用户编写程序时使用的设备与实际使用的设备无关,这种特性称为 。
A.设备一致性 B.设备独立性 C.设备虚拟性 D.设备共享性
5.指定扇区旋转到磁头位置所需的时间称为 时间。
A.寻找 B.延迟 C.传送 D.旋转
6.硬件采用了中断和通道技术,使得 。
A.CPU与外设能紧密结合 B.CPU与外设能并行工作
C.CPU速度提高 D.外设速度提高
7.对磁盘进行移臂调度时,既考虑了减少寻找时间,又不频繁改变移动臂的移动方向的调度算法是 。
A.先来先服务 B.最短寻找时间优先
C.电梯调度 D.优先级高者优先
8.对磁盘进行移臂调度的目的是为了缩短 时间。
A.寻道 B.延迟 C.传送 D.启动
9.操作系统采用SPOOLing技术提高了 利用率。
A.独占设备 B.文件 C.主存储器 D.共享设备
10. 从磁盘读取数据的下列时间中, 对系统效率的影响最大。
A. 处理时间 B.传输时间 C.延迟时间 D.寻道时间
11.通道是一种 。
A.存储器 B.控制器 C.I/O处理器 D.I/O设备
12.在采用SPOOLing技术的系统中,用户作业的打印结果首先被送到 。
A.硬盘固定区域 B.终端 C.内存固定区 D.打印机
13.为了使多个进程能有效地同时处理输入和输出,最好使用 结构的缓冲技术。
A.单缓冲区 B.双缓冲区 C.多缓冲区环 D.缓冲池
14.通过硬件和软件的功能扩充,把原来的独占设备“改造”成能为若干用户共享的设备,这种设备称为 设备。
A.用户 B.系统 C.虚拟 D.临界
15.在操作系统中, 指的是一种硬件机制。
A.缓冲池 B.通道技术 C.SPOOLing技术 D.内存覆盖技术
16.基本的I/O设备处理程序一般处于 状态。
A.就绪 B.执行 C.阻塞 D.挂起
17.I/O软件一般分为4个层次:用户层、与设备无关软件层、设备驱动程序、中断处理程序。以下工作中,不是由设备驱动程序完成的是 。
A.向设备寄存器写命令
B.检查用户是否有权使用设备
C.将二进制整数转换成ASCII码以便打印
D.解释用户的I/O请求,并将该请求转化为具体的I/O操作
18.I/O系统硬件结构分为4级:①设备控制器;②I/O设备;③计算机;④I/O通道。按级别由高到低的顺序是 。
A.②-④-①-③ B.③-①-④-② C.②-①-④-③ D.③-④-①-②
19.本地用户通过键盘登录系统时,首先获得键盘输入信息的程序是 。(2010全国题)
A.命令解释程序 B.中断处理程序
C.系统调用服务程序 D.用户登录程序
(键盘是典型的通过中断I/O方式工作的外设,当用户输入信息时,计算机响应中断并通过中断处理程序获得输入信息。)
20.单处理机系统中,能并行的是__________。(2009全国试题)
I.进程与进程 II.处理机与设备 III.处理机与通道 IV.设备与设备
A.I、II和III B.I、II和IV C.I、III和IV D.II、III和IV
21.假设磁头当前位于105道,正在向磁道号增加的方向移动。现有一个磁道访问请求序列为35,45,12, 68,110,180,170,195,采用SCAN调度(电梯调度)算法得到的磁道访问序列是________。(2009全国试题)
A.110,170,180,195,68,45,35,12
B.110,68,45,35,12,170,180,195
C.110,170,180,195,12,35,45,68
D.12,35,45,68,110,170,180,195
22.程序员利用系统调用打开I/O设备时,通常使用的设备标识符是______。(2009全国题)
A.逻辑设备名 B.物理设备名 C.主设备号 D.从设备号
23.用户程序发出磁盘I/O请求后,系统的正确处理流程是 。(2011全国试题)
A.用户程序→系统调用处理程序→中断处理程序→设备驱动程序
B.用户程序→系统调用处理程序→设备驱动程序→中断处理程序
C.用户程序→设备驱动程序→系统调用处理程序→中断处理程序
D.用户程序→设备驱动程序→中断处理程序→系统调用处理程序
(考查输入输出处理的过程。I/O软件一般从上到下分为四个层次。与设备无关的软件层也就是系统调用的处理程序。)
24.操作系统的I/O子系统通常由四个层次组成,每一层明确定义了与邻层的接口,其合理的层次组织排列次序是 。(2012全国试题)
A.用户级I/O软件、设备无关软件、设备驱动程序、中断处理程序
B.用户级I/O软件、设备无关软件、中断处理程序、设备驱动程序
C.用户级I/O软件、设备驱动程序、设备无关软件、中断处理程序
D.用户级I/O软件、中断处理程序、设备无关软件、设备驱动程序
25.下列选项中,不能改善磁盘I/O性能的是 。(2012全国试题)
A.重排I/O请求次序 B.在一个磁盘设置多个分区
C.预读和滞后写 D.优化文件物理的分布
(考查影响磁盘设备I/O性能的因素。
对于A,重排I/O请求次序也就是进行I/O调度,从而使得进程之间公平地共享磁盘访问,减少I/O完成所需要的平均等待时间。对于C,缓冲区结合预读和滞后写技术对于具有重复性以及阵发性的I/O进程改善磁盘I/O性能很有帮助。对于D,优化文件物理块的分布可以减少寻找时间与延迟时间,从而提高磁盘性能。)
(二)应用题
若干个等待访问磁盘者依次要访问的柱面为20,44,40,4,80,12,76,假设每移动一个柱面需要3毫秒时间,移动臂当前位于40号柱面,请按下列算法分别计算为完成上述各次访问总共花费的寻找时间。
(1)先来先服务算法;
(2)最短寻找时间优先算法。
假设有一磁盘含有64000块,块号记为1~64000,现用2000个32位(Bit)的字作该盘的位示图,试问第59999块对应于位示图中第几字的第几位(字、位均从0开始);而第1599字的第17位对应于磁盘的第几块?