操作系统试题第6章.docx
《操作系统试题第6章.docx》由会员分享,可在线阅读,更多相关《操作系统试题第6章.docx(20页珍藏版)》请在冰豆网上搜索。
![操作系统试题第6章.docx](https://file1.bdocx.com/fileroot1/2022-11/15/fe7fcd1f-1845-42e7-aedc-340948a1da60/fe7fcd1f-1845-42e7-aedc-340948a1da601.gif)
操作系统试题第6章
第6章设备管理
6.1例题解析
例6.2.1何谓虚拟设备?
请说明SPOOLing系统是如何实现虚拟设备的。
解本题的考核要点是虚拟设备的实现方法。
虚拟设备是指利用软件方法,比如SPOOLing系统,把独享设备分割为若干台逻辑上的独占的设备,使用户感受到系统有出若干独占设备在运行。
当然,系统中至少一台拥有物理设备,这是虚拟设备技术的基础。
SPOOLing系统又称“假脱机I/O系统”,其中心思想是,让共享的、高速的、大容量外存储器(比如,磁盘)来模拟若干台独占设备,使系统中的一台或少数几台独占设备变成多台可并行使用的虚拟设备。
SPOOLing系统主要管理外存上的输入井和输出井,以及内存中的输入缓冲区和输出缓冲区。
其管理进程主要有输入和输出进程,负责将输入数据装入到输入井,或者将输出井的数据送出。
它的特点是:
提高了I/O操作的速度;将独占设备改造为共享设备;实现了虚拟设备功能。
例6.2.2有关设备管理要领的下列叙述中,()是不正确的。
A.通道是处理输入、输出的软件
B.所有外围设备都由系统统一来管理
C.来自通道的I/O中断事件由设备管理负责处理
D.编制好的通道程序是存放在主存贮器中的
E.由用户给出的设备编号是设备的绝对号
解本题的考核要点是设备管理的基本概念。
(1)通道是计算机上配置的一种专门用于输入输出的设备,是硬件的组成部分。
因此A是错误的。
(2)目前常见I/O系统其外部设备的驱动和输入输出都由系统统一管理。
因此B是对的。
(3)设备管理模块中的底层软件中配有专门处理设备中断的处理程序。
通道中断属于设备中断的一种。
因此C是对的。
(4)通道设备自身只配有一个简单的处理装置(CPU),并不配有存储器,它所运行的通道程序全部来自内存。
因此D是对的。
(5)系统在初启时为每台物理设备赋予一个绝对号,设备绝对号是相互独立的。
由用户给出的设备号只能是逻辑编号,由系统将逻辑号映射为绝对号。
因此E是错误的。
例6.2.3在关于SPOOLING的叙述中,描述是不正确的。
A.SPOOLING系统中不需要独占设备
B.SPOOLING系统加快了作业执行的速度
C.SPOOLING系统使独占设备变成共享设备
D.SPOOLING系统利用了处理器与通道并行工作的能力。
本题的考核要点是SPOOLING技术。
涉及的概念有4方面:
(1)该项技术应有外存空间作为物质基础,同时应当至少有一台独占设备实现输入或输出,因此选项A错误。
(2)SPOOLING技术又称“脱机输入输出系统”。
它将独享设备改造成与共享设备,使进程避免长期等待I/O操作的完成,因此加快了作业执行的速度。
所以说B是正确的。
(3)SPOOLING技术将外存空间模拟成多台独占设备,功能上看,它将一台独占设备变成一台共享设备,因而C是对的。
(4)在计算机系统中安装上通道设备,使处理器与通道可以并行工作。
这作为一种硬件配置,与没有通道的系统相比,系统的资源利用率得到提高。
不过,无论有没有配置通道,SPOOLING系统都是可以运行的。
因此D是不正确的。
例6.2.4I/O软件一般分为4个层次,用户层、与设备无关软件层、设备驱动程序以及中断处理程序。
请说明以下各工作是在哪一层完成的?
(1)向设备寄存器写命令;
(2)检查用户是否有权使用设备;
(3)将二进制整数转换成ASCII码以便打印。
解本题的考核要点为设备管理模块的结构。
有些系统的结构分为本题所说的4层结构,而有的系统将设备驱动程序与中断处理程序合并为1层,共分为3层(见汤子瀛《计算机操作系统》,P221)。
无论如何划分并不影响本题的回答。
设备驱动程序是设备管理的底层软件,用于控制I/O设备进行具体输入输出操作。
其功能是:
1)将抽象的要求转换为具体的要求;
2)检查用户I/O请求的合法性,了解外设的状态,设置设备的工作方式;
3)向设备发出I/O命令,启动设备,实现I/O。
(1)由于“向设备寄存器写命令”属于直接操作设备控制器的操作,因此属于设备驱动程序。
(2)用户层软件是用户与设备管理模块的接口,负责解释用户的应用请求,并将这种请求转化为具体的输入输出操作。
不过,该层软件并不检查用户的访问权限,因此,“检查用户是否有权使用设备”属于设备驱动程序。
(3)与设备无关软件层软件主要负责将逻辑设备名转换为物理设备,实现设备的分配和回收,进行缓冲区管理等。
“将二进制整数转换成ASCII码以便打印”不属于该层软件。
它应当是将抽象要求转换为具体要求的一部分,所以也属于设备驱动程序。
例6.2.5在缓冲池中有3个队列,分别为空白缓冲队列em,输入缓冲队列in,以及输出缓冲队列out。
过程add_buf(type,numb)和take_buf(type,numb)分别用来把缓冲区numb插入type队列和从type队列中取出缓冲区numb。
试描述进程从任一缓冲队列得到一个缓冲区的过程get_buf(type,numb)和将一个缓冲区numb放入缓冲队列的过程put_buf(type,numb)。
解设队列type的互斥信号量为S(type),初值为1。
设描述资源数目的信号量RS(type),初值为n。
信号量的定义及初始化过程,以及get_buf()过程和put_buf()过程的描述如下:
SemaphoreS(type):
=1;
SemaphoreRS(type):
=n;/*n为type队列长度*/
PROCEDUREget_buf(type,number)
BEGIN
P(RS(type));
P(S(type));
Pointerofbuffer(number)=take_buf(type,number)
V(S(type));
END;
PROCEDUREput_buf(type,number)
BEGIN
P(S(type));
add_buf(type,number)
V(S(type));
V(RS(type));
END。
例6.7描述操作系统中使用公用缓冲池时数据块插入缓冲队列的输入过程。
本题考核的要点是缓冲池技术。
缓冲池由多个缓冲区组成,其中每个缓冲区包括缓冲区首部和缓冲体两部分。
系统通过操作缓冲池首部,实现对缓冲区的管理。
解通常,缓冲池中有3个队列:
em队列(空白缓冲区队列)、in队列(装满输入数据的缓冲区队列)、out队列(装满输出数据的缓冲区队列)。
令参数type表示缓冲队列类型,number表示缓冲区号。
缓冲池管理中负责数据输入的过程可包括:
(1)过程get_buf(type,number):
以某种选取规则从type指定的缓冲区队列中摘取一个缓冲区number。
(2)过程put_buf(type,number):
将number缓冲区程将缓冲区放入相应缓冲区队列。
使用上述操作,输入过程可被描述如下:
(1)输入进程调用过程get_buf(em,number)从空白缓冲区队列em中取出一个缓冲区,返回的号码为number。
将该空白缓冲区命名为hin。
(2)将输入的数据装入缓冲区hin,当hin中装满了由输入设备输入的数据之后,系统调用过程put_buf(in,hin)将该缓冲区插入输入缓冲队列in中。
例6.8逻辑设备表(LUT)的主要功能是()和()。
设备驱动程序是一种低级的系统例程,它通常分为()和()两个部分。
本题的考核要点是设备管理的基本概念。
涉及的内容有:
设备管理的功能之一是,将用户输入的逻辑设备名映射为系统内的物理设备。
可使系统在设备分配中更灵活,设备管理更具独立性。
在多用户系统中,LUT是系统为每个进程配置的一种数据结构。
该结构被保存到进程的PCB中,内含两个域:
逻辑设备名和指向系统设备的指针。
因此,该问题的正确答案应为:
(实现逻辑设备到物理设备的映射)和(实现设备独立性)。
②.设备驱动程序是设备管理的底层软件,用于控制I/O设备进行具体输入输出操作。
此外,当输入输出操作完成时,产生的外中断信号由系统予以响应,转入设备中断处理程序,根据操作的状态进行相应的处理。
因此正确答案应为:
控制I/O设备进行具体输入输出操作程序、设备中断处理程序
例6.9(论述题)试给出两种I/O调度算法,并说明为什么I/O调度中不能采用时间片轮转法。
本题的考核要点是I/O调度算法。
两种常用的I/O调度算法是:
①.先来先服务算法。
当系统中多个进程对同一I/O设备提出输入输出请求时,该算法把它们按请求顺序排成一个等待队列,并将该I/O设备分配给队列中的第一个进程。
②.优先权高者优先算法。
当系统中多个进程对同一I/O设备提出输入输出请求时,该算法把它们按优先权由高到低的顺序排成一个等待队列。
并将该I/O设备分配给队列中的第一个进程(其优先权最高)。
时间片轮转算法是不能用于I/O调度中的。
因为在I/O操作中,大部分外部设备都是独占设备,其固有属性决定了设备只能独占使用,不能共享使用。
这种设备一旦被某进程占用,直到使用完才能被释放。
而且在通道程序控制的输入输出系统中,通道程序的执行是不受中断影响的。
时间片中断信号并不能中断通道程序的操作。
所以I/O调度中不能采用时间片轮转法。
例6.10某操作系统采用双缓冲传送磁盘上的数据。
设从磁盘将数据传送到缓冲区所用时间为T1,将缓冲区中数据传送到用户区所用时间为T2(假设T2<(A)T1+T2+T3(B)MAX(T2,T3)+T1
(C)MAX(T1,T3)+T2(D)MAX(T1,T3)
分析:
系统采用双缓冲传送某磁盘数据时:
①.如果T3>T1,即CPU处理数据快,数据传送慢。
此时意味着I/O设备可连续输入,磁盘将数据传送到缓和冲区,再传送到用户区,与CPU处理数据可视为并行处理。
时间的花费取决于CPU最大花费时间,则系统的用总时间为T3。
②.如果T3答案应为D。
例6.11下面是一段简单的通道程序,则四个选项中叙述不正确的是()。
操作
P
R
计数
内存地址
WRITE
0
1
90
743
WRITE
0
1
100
250
READ
0
1
230
1200
WRITE
0
0
120
400
WRITE
0
1
120
350
READ
1
1
70
2000
(A)该段通道程序包括六条、两类通道指令
(B)这些指令涉及的数据内存地址有相邻接的地方
(C)该段通道程序共处理了5条记录
(D)单记录最大为230个字节
本题考核的是通道程序的功能。
涉及的概念有:
①.每一行就是一条指令;该段通道程序的6条指令可分为WRITE和READ两类通道指令。
1.在6条指令中,第2条和第5条指令访问的内存地址是邻接的。
2.在通道指令中,域R是记录的结束标志。
R=0表明本通道指令与下一条通道指令处理的数据属于同一条记录;R=1表明本指令处理完数据后,记录就结束了。
因此上面的程序涉及5条记录。
3.程序中的第4条指令和第5条指令共同处理一条记录,即第4条记录。
记录的长度为240(120+120)字节。
答案应为D。
例6.12(填空题)进行设备分配时所需的数据表格主要有()、()、()和()等。
本题的考核要点是设备分配中使用的数据结构。
主要包括:
∙设备控制表(UC或DCB):
记