计算机操作系统第五章设备管理复习资料Word文档下载推荐.docx
《计算机操作系统第五章设备管理复习资料Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《计算机操作系统第五章设备管理复习资料Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
多道程序并发执行后,可利用其中的一道程序来模拟脱机输入时外围控制机的功能,将低速I/O设备上的数据传送到高速磁盘上;
再利用另一道程序来模拟脱机输出时外围控制机的功能,将高速磁盘上的数据传送到输出设备上,这样就可以在主机的直接控制下,实现脱机输入、输出操作,这时外围操作与CPU对数据的执行同时进行。
4、有如下请求磁盘服务的队列,要访问的磁道分别是98、183、37、122、14、124、65、67。
现在磁头在53道上,若按最短寻道时间优先法,磁头的移动道数是多少?
最短寻道时间优先法总是让查找时间最短的那个请求先执行,而不考虑请求访问者到来的先后时间。
即靠近当前移动臂位置的请求访问者将优先执行。
当前磁头在53道上,则总的移动道数为:
12+2+30+23+84+24+2+59=236
6567371498122124183
5、什么是虚拟设备?
请说明SPOOLing系统是如何实现虚拟设备的。
虚拟设备是指通过虚拟技术将一台独占设备变换为若干台逻辑设备,供若干个用户进程同时使用,通常把这种经过虚拟技术处理后的设备称为虚拟设备。
SPOOLing系统主要由输入井和输出井(磁盘上)、输入缓冲区和输出缓冲区(内存中)、输入进程和输出进程三部分组成。
当要运行用户程序时,由输入进程将用户要求的程序和数据预先从输入设备经由输入缓冲区送到输入井,当程序运行需要输入数据时,直接从输入井将数据读入内存。
当用户程序要求输出数据时,由输出进程先将数据从内存送到输出井,待输出设备空闲时,再将输出井中的数据经由输出缓冲区送到输出设备上。
由于磁盘是共享设备,输入井及输出井是磁盘上的2个存储区域,因此多个用户进程可以共享使用输入井及输出井,这样,就将独占型设备改造成了可共享使用的虚拟设备。
下面以打印机为例进行说明,当用户进程请求打印输出时,操作系统同意为进程打印,但并不真正把打印机分配给该用户进程,而是为进程在磁盘上的输出井中分配一个空闲区域,并将要打印的数据送入其中,同时还为用户进程申请一张用户请求打印表,将用户的打印要求填入其中,再将该请求打印表挂在请求打印队列上。
如果还有进程要求打印输出,系统仍可以接受该请求,也为进程完成上述操作。
如果打印机空闲,输出进程将从请求打印队列的队首取出一张请求打印表,根据表中的要求将要打印的数据从输出井传送到内存的输出缓冲区,再由打印机进行打印。
打印完成后,输出进程再查看请求打印队列中是否还有请求打印表,若有,则再取出第一张请求打印表,并根据其中的打印要求进行打印,如此重复,直至请求打印队列空为止,输出进程才将自己阻塞起来,直到下次再有打印请求时才被唤醒。
6、在应如何实现I/O的问题上,整个系统可以只设置一个I/O进程,负责系统内的所有设备的I/O操作。
是否还有其他实现方案(至少回答2种)?
在不同操作系统中,所采用的设备处理方式并不完全相同。
除整个系统设置一个I/O进程这种方式外,还有以下2种方式。
(1)为每一类设备设置一个I/O进程,它专门执行这类设备的I/O操作。
例如,为同一类型的打印机设置一个打印进程。
(2)不设置专门的I/O进程,而只为各类设备设置相应的设备处理程序模块,供用户或系统进程调用。
7、简述中断处理过程。
当中断发生时,一旦CPU响应中断,系统就开始进行中断处理。
中断处理过程如下:
(1)保护被中断进程现场。
为了在中断处理结束后能使进程正确地返回到中断点,系统必须保存当前处理机状态字PSW和程序计数器PC等的值。
(2)分析中断原因,转去执行相应的中断处理程序。
在多个中断请求同时发生时,处理优先级最高的中断源发出的中断请求。
(3)恢复被中断进程的现场,CPU继续执行原来被中断的进程。
8、在某系统中,从磁盘将一块数据输入到缓冲区需要花费的时间为T,CPU对一块数据进行处理的时间为C,将缓冲区的数据传送到用户区所花时间为M,那么在单缓冲和双缓冲情况下,系统处理大量数据时,一块数据的处理时间为多少?
在无缓冲的情况下,为了读取磁盘数据,应先从磁盘把一块数据输入到用户数据区,所花费的时间为T;
然后再由CPU对这一块数据进行计算,计算时间为C,所以每一块数据的处理时间为T+C。
(1)在单缓冲的情况下,应先从磁盘把一块数据输入到缓冲区,所花费的时间为T;
然后由OS将缓冲区的数据传送到用户区,其所花的时间为M;
接下来便由CPU对这一块数据进行计算,计算时间为C。
由于CPU的计算操作与磁盘的数据输入操作可以并行,因此一块数据的处理时间为max(C,T)+M
(2)在双缓冲区的情况下,应先从磁盘把一块数据输入到第一个缓冲区,当装满第一个缓冲区后,操作系统可将第一个缓冲区的数据传送到用户区并对第一块数据进行计算时,与此同时可以将磁盘输入数据送入第二个缓冲区;
当计算完成后,若第二个缓冲区已装满数据,则又可以将第二个缓冲区中的数据传送至用户区并对第二块数据进行计算时,与此同时可以将磁盘输入数据送入第一个缓冲区,如此反复交替使用2个缓冲区。
当C>
T时,计算操作比输入操作慢,在此情况下,上一块数据计算完成后,仍需将一个缓冲区中的数据传送到用户区,花费时间为M,再对这块数据进行计算,花费时间为C,所以一块数据的处理时间为C+M,即max(C,T)+M;
当C<
T时,输入操作比计算操作慢,在此情况下,由于M远小于T,故在将磁盘上的一块数据传送到一个缓冲区期间(花费时间为T),计算机已完成了将另一个缓冲区中的数据传送到用户区并对这块数据进行计算的工作,所以一块数据的处理时间为T,即max(C,T)。
9、什么是缓冲池?
设计一个数据结构来管理缓冲池。
缓冲池由多个缓冲区组成,这些缓冲区可供多个进程共享,且既能用于输入又能用于输出。
缓冲池中至少应包含3个缓冲队列和4类工作缓冲区,如下图。
缓冲池中的3个缓冲队列如下:
(1)空缓冲队列:
由系统中的空闲缓冲区组成;
(2)输入队列:
由装满输入数据的缓冲区组成队列,输入设备已将这些缓冲区中装满了输入数据等待CPU处理;
(3)输出队列:
由装满输出数据的缓冲区组成,这些数据等待输出设备输出。
缓冲池中的4类工作缓冲区如下:
(1)收容输入工作缓冲区:
用于收容来自输入设备的数据;
(2)提取输入工作缓冲区:
供CPU从中提取输入数据进行计算;
(3)收容输出工作缓冲区:
用于收容CPU要输出的计算结果;
(4)提取输出工作缓冲区:
供输出设备从中提取数据进行输出。
当输入设备欲输入数据时,便从空缓冲区队列的队首摘下一个空缓冲区,作为收容输入工作缓冲区,然后把数据输入其中,装满后再将它挂到输入队列队尾。
当CPU需要数据处理时,便从输入队列取得一个缓冲区作为提取输入工作缓冲区,CPU从中提取数据,数据用完后再将它挂到空缓冲队列尾。
当CPU欲输出结果时,便从空缓冲队列的队首取得一个空缓冲,作为收容输出工作缓冲区,当其中装满输出数据后,再将它挂到输出队列尾。
当输出设备欲输出结果时,由输出进程从输出队列中取得一个装满输出数据的缓冲区,作为提取输出工作缓冲区,当数据提取完后,再将它挂到空缓冲队列的末尾。
如此周而复始不停地工作,任何进程都可使用缓冲池中的缓冲区。
10、在某计算机系统中,其屏幕显示分辨率为1024×
768,若要存储一屏256彩色的图像,需要多少字节存储空间?
屏幕信息的显示是以像素为单位进行的。
由于屏幕显示分辨率为1024×
768,故屏幕上有像素:
1024×
768=768×
210个。
当用256彩色显示时,每个像素需要8位二进制数(28=256)表示,因此一屏信息需要存储空间:
8×
768×
210位=768×
210字节=768K字节,所以需要768K字节存储空间。
11、为什么在操作系统中要引入虚拟设备?
在操作系统设备管理中,引入虚拟设备是为了克服独占设备速度较慢、设备资源利用率较低的缺点,从而提高设备的利用率。
12、假脱机系统的基本工作原理是什么?
假脱机技术主要由输入程序模块和输出程序模块所组成,系统分别为之创建输入进程和输出进程,它们的优先级高于一般用户进程。
输入进程负责通过通道将信息从输入设备送到盘区的输入井中,输出进程负责通过通道将信息从盘区的输出井送到输出设备。
主机仅和快速存储设备磁盘中的输入井和输出井交换信息,大大提高了信息处理的速率。
13、什么是逻辑设备?
什么是物理设备?
如何实现从逻辑设备到物理设备的转换?
用户程序中使用的设备是逻辑设备,计算机系统中实际配置的设备是物理设备。
在OS中,通常设置了反映逻辑设备和物理设备对应关系的数据结构,其中存放了逻辑设备名、物理设备名及设备驱动程序入口地址等信息,通过该数据结构即可实现逻辑设备到物理设备的转换。
14、操作系统用户接口中包含哪几种接口?
它们分别提供给谁使用?
【解】操作系统用户接口包括:
1、联机命令接口(分时系统)
2、脱机命令接口(批处理系统)
3、GUI(用户操作)
4、程序接口(用户编程)
15、什么是输入、输出重定向?
并举例说明。
P295
【解】在UNIX和MS-DOS,都定义了两个标准I/O设备。
通常,命令的输入取自标准输入设备,而命令的输出通常是送标准输出设备,即显示终端,如果在命令中设置重定向“>
”,其后接文件名或设备名,表示命令的输出改向,送到指定文件或设备上。
而输入重定向“<
”类似。
16、何谓管道联接?
【解】是指把第一个命令的输出作为第二个命令的输入;
类似的,又把第二个命令的输出作为第三条命令的输入。
在MS-DOS和UNIX中用“|”作为管道符号。
一般格式为command1|command2|command3|…|commandn。
17、设备终端处理程序的主要作用是什么?
它应具有哪些功能?
P296
【解】设备终端处理程序的作用是实现人机交互。
应具有功能有:
5、接受用户从终端上敲入的字符;
6、字符缓冲,暂存所接收的字符;
7、回送显示;
8、屏幕编辑;
9、特殊字符处理
18、命令解释程序的主要作用是什么?
P298
【解】命令解释程序的主要作用是在屏幕上产生提示符,请用户输入命令,然后读命令、识别命令、转到相应的命令处理程序入口地址,再把控制权交给该处理程序去执行,并将处理结果送屏幕显示后显示某些出错信息。
19、试比较一般的过程调用和系统调用。
P300
10、一般的过程调用,其调用和被调用的过程或者都是用子程序,或者都是系统程序,故都运行在同一系统状态下:
系统态或用户态。
系统调用过程都是用户程序,它运行在用户态;
其被调用过程是系统过程,运行在系统态下。
11、一般的过程调用可直接由调用过程转向被调用过程;
而执行系统调用时,由于调用和被调用过程是处于不同系统状态,因而不允许由调用过程直接转向被调用过程,而通常都是通过软中断机制。
12、和一般进程一样,系统调用也允许嵌套调用,即在一个被调用过程的执行期间,还可以再利用系统调用命令去调用另一个系统过程。
但每个系统对嵌套调用的深度都有一定的限度。
20、系统调用都有哪几种类型?
P302
【解】系统调用类型有:
13、进程控制
14、文件操纵
15、进程通讯
16、信息维护
21、试说明设备控制器的组成。
P147
22、为了实现CPU与设备控制器间的通信,设备控制器应具有哪些功能?
P146
23、什么是字节多路通道?
什么是数组选择多路通道和数组多路通道?
P148-149
(1)字节多路通道:
这是一种按字节交互方式工作的通道,它通常都含有许多非分配型子通道,其数量可从几十到数百个,每一个子通道连接一台I/O设备,并控制该设备的I/O操作,这些子通道按时间片轮转方式共享主通道。
(2)数组选择通道:
可以连接多台高速设备,但是它只有一个分配子通道,在一段时间内只能执行一道通道程序,控制一台设备进行数据传送,致使当某台设备占用了该通道后,便一直由它独占,即使是它无数据传送,通道被闲置,也不允许其他设备使用该通道,直至该设备传送完毕释放该通道。
(3)数组多路通道:
是将数组选择通道传输速率和字节多路通道能使各子通道(设备)分时并行操作的优点相结合而形成的一种新通道,它含有多个非分配型子通道,因而这种通道既具有很高的数据传输速率,又能获得令人满意的通道利用率。
24、如何解决因通道不足而产生的瓶颈问题?
P149
解决“瓶颈”问题最有效的方法便是:
增加设备到CPU间的通路而不增加通道,换言之,就是把一个设备连接到多个控制器上,而一个控制器又连接到多个通道上,如图所示,设备1、2、3、4,都有4条通往存储器的通路。
多通路方式不仅解决了“瓶颈”问题,而且也提高了系统的可靠性,个别通道或控制器的故障,不会使存储器之间没有通路。
25、试对VESA及PCI两种总线进行比较。
P151
26、试说明推动I/O控制发展的主要因素是什么?
27、有哪几种I/O控制方式?
各适用于何种场合?
28、试说明DMA的工作流程。
P153
29、在单缓冲情况下,为什么系统对一块数据的处理时间为max(C,T)+M?
在单缓冲的情况下,先从磁盘把一块数据输入到缓冲区,所花费的时间为T;
然后由操作系统将缓冲区的数据传送到用户区,其所花的时间为M;
由于CPU的计算操作与磁盘的数据输入操作可以并行,因此一块数据的处理时间为max(C,T)+M。
30、在双缓冲情况下,为什么系统对一块数据的处理时间为max(C,T)?
在双缓冲的情况下,先从磁盘把一块数据输入到第一个缓冲区,装满后便将数据输入第二个缓冲区,与此同时操作系统可将第一个缓冲区的数据传送到用户区;
当CPU对第一块数据进行计算时,又可将磁盘输入数据送入第一缓冲区,当计算完成后又可以从第二个缓冲区中取数据,如此反复交替使用两个缓冲区。
T时,计算操作比输入操作慢,在此情况下,上一块数据计算完成后,仍需将一个缓冲区中的数据传送到用户区,花费时间为M,再对这块数据进行计算,花费时间C,所以一块数据的处理时间为C+M,即max(C,T)+M;
31、试绘图说明把多缓冲用于输出时的情况。
32、试说明收容输入工作缓冲区和提取输出工作缓冲区的工作情况。
33、何谓安全分配方式和不安全分配方式?
P163
安全分配方式:
在这种分配方式中,每当进程发出I/O请求后,便进入阻塞状态,直到其I/O操作完成时才被唤醒。
在采用这种分配策略时,一旦进程已经获得某种设备(资源)后便阻塞,使该进程不可能再请求任何资源,而在它运行时又不保持任何资源。
因此这种分配方式已经摒弃了造成死锁的四个必要条件之一的“请求和保持”条件,从而使设备分配是安全的。
不安全分配方式:
在这种分配方式中,进程在发出I/O请求后仍继续运行,需要时又发出第二个I/O请求、第三个I/O请求等。
仅当进程所请求的设备已被一进程占用时,请求才进入阻塞状态。
34、为何要引入设备独立性?
如何实现设备的独立性?
引入设备独立性是为了:
提高OS的可适应性可扩充性,在现代OS中都毫无例外地实现了设备的独立性,也称为设备无关性。
其基本含义是:
应用程序独立于具体使用的物理设备。
在实现了设备独立性功能后,可使设备分配时更具灵活性,也易于实现I/O重定位。
设备独立的实现可有以下层次的实现而实现:
Ø
设备独立性软件:
其完成功能:
执行所有设备的公有操作;
向用户层(或文件层)软件提供统一的接口。
逻辑设备名到物理设备名映射的实现:
逻辑设备表(LUT);
LUT的设置问题——整个系统设置一张LUT、每个用户设置一张LUT。
独占设备的分配程序
1.基本的设备分配程序:
分配设备、分配控制器、分配通道。
2.设备分配程序的改进:
增加设备的独立性、考虑多通路情况。
35、在考虑到设备的独立性时,应如何分配独享设备?
36、何为设备虚拟?
实现设备虚拟时所依赖的关键技术是什么?
37、试说明SPOOLing系统的组成。
P166
SPOOLing系统是对脱机输入、输出该的模拟,它必须有高速随机外存的支持,这通常是采用磁盘。
SPOOLing系统主要有以下三部分:
输入井和输出井。
这是在磁盘上开辟的两个大存储空间。
输入井是模拟脱机输入时的磁盘设备,用于暂存I/O设备输入的数据;
输出井是模拟脱机输出时的磁盘,用于暂存用户程序的输出数据。
输入缓冲区和输出缓冲区。
为了缓和CPU和磁盘之间的速度不匹配的矛盾,在内存中要开辟两个缓冲区:
输入缓冲区和输出缓冲区。
输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入井。
输出缓冲区用于暂存输出井送来的数据,以后再传送给输出设备。
输入进程Spi和输出进程Spo。
这里利用两个进程来模拟脱机I/O时的外围控制机。
其中,进程Spi模拟脱机输入时的外围机,将用户要求的数据从输入机通过输入缓冲区再送到输入井,当CPU需要输入数据时,直接从输入井读入内存;
进程Spo模拟脱机输出时的外围控制机,把用户要求的数据,先从内存送到输出井,待输出设备空闲时,再将输出井中的数据经过输出缓冲区送到输出设备上。
如下图示出了SPOOLing系统的组成:
38、在实现后台打印时,SPOOLing系统应为请求I/O的进程提供哪些服务?
(1)由输出进程在输出井中为之申请一空闲盘块区,并将用户的数据送入其中;
(2)输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,再将该表挂到请求打印队列上。
39、试说明设备驱动程序具有哪些特点?
40、试说明设备驱动程序应完成哪些功能?
41、设备驱动程序通常要完成哪些工作?
42、设备中断处理程序通常完成哪些工作?
(1)唤醒被阻塞的驱动程序进程
(2)保护被中断进程的CPU环境
(3)分析中断原因、转入相应的设备中断处理程序
(4)进行中断处理
(5)恢复被中断进程的现场
43、磁盘访问时间由哪几部分组成?
每部分时间应如何计算?
P173
磁盘访问时间由以下三部分组成:
●寻道时间:
指磁臂(磁头)移动到指定磁道上所经历的时间。
该时间是启动磁臂的时间S与磁头移动N条磁道所花费的时间之和,即TS=M*N+S。
●旋转延迟时间Tτ:
指定扇区移动到磁头下面所经历的时间。
●传输时间Tt:
指把数据从磁盘读出或写入数据所经历的时间。
Tt的大小与每次所读/写的字节数b和旋转速度有关。
Tt=b/rN。
其中,r为磁盘每秒钟的转数;
N为一条磁道上的字节数,第一次读/写的字节数相当于半条磁道上的字节数时,Tτ与Tt相同。
因此,可将访问时间Ta表示为:
Ta=TS+1/2r+b/rN
44、目前常用的磁盘调度算法由哪几部分组成?
每种算法优先考虑的问题是什么?
(见补充题)
目前常用的磁盘调度算法有:
先来先服务、最短寻道时间优先及扫描等算法。
先来先服务:
优先考虑的是按进程请求访问磁盘的先后次序进行调度。
最短寻道时间优先:
优先考虑的是与当前磁头所有的磁道距离最近,以使每次的寻道时间最短。
扫描:
优先考虑的是磁头当前的移动方向。
循环扫描算法:
优先考虑的磁头的单向性。
45、为什么要引入磁盘调度高速缓冲?
何谓磁盘高速缓冲?
P176
引入磁盘调度高速缓冲是因为:
目前,磁盘的I/O速度远低于对内存的访问速度,通常要低上4—6个数量级。
因此,磁盘的I/O已成为计算机系统的瓶颈。
于是,人们便千方百计地去提高磁盘I/O的速度,其中最主要的技术,便是采用磁盘高速缓存。
磁盘高速缓冲,并不是通常意义下的内存和CPU之间的所增设一个小容量高速存储器,而是指利用内存中的存储空间,来暂存从磁盘中读出的一系列盘块中的信息。
因此,这里的高速缓存是一组在逻辑上属于磁盘、物理上驻留在内存中的盘块。
46、在设计磁盘高速缓冲时,如何实现数据交付?
数据交付是指:
将磁盘高速缓存中的数据传送给请求者进程。
当有一进程请求访问某个盘块中的数据时,由核心先去看磁盘高速缓冲器,看其中是否存在进程所需访问的盘块数据的拷贝。
若有其拷贝,便直接从高速缓存中提取数据交付请求者进程,这样就避免了访盘操作,否则,应先从磁盘中将要访问的数据读入并交付给请求者进程,同时也将数据送高速缓存,当以后又要访问该数据时,便可直接从高速缓存中提取。
系统可以采用两种方式将数据交付给请求者进程:
●数据交付:
这是直接将高速缓存中的数据,传送到请求者进程的内存工作区中。
●指针交付:
只将指向高速缓存中某区域的指针,交付给请求者进程。
此方式由于所传送的数据量少,因而节省了数据从磁盘高速缓存存储空间到进程的内存工作区的时间。
47、何谓提前读、延迟写和虚拟盘?
P178
提前读:
即在读当前块的同时,还要求将下一个盘块(提前读的块)中的数据也读入缓冲区。
这样,当下一次要读该盘块中的数据时,由于该数据已被提前读入缓冲区,因而此时便可直接从缓冲区取得下一盘块的数据,而不再去启动磁盘I/O,从而大大减少了读数据的时间。
延迟写:
指在缓冲区A中的数据本应立即写回磁盘,但考虑到该缓冲区中的数据不久后可能还会再被本进程访问(共享资源),因而并不立即将该缓冲