2022年西安理工大学计算机科学与技术专业《操作系统》科目期末试卷B(有答案)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2022年西安理工大学计算机科学与技术专业《操作系统》科目期末试
卷B(有答案)
一、选择题
1、文件的顺序存取是()。

A.按终端号依次存取
B.按文件的逻辑号逐一存取
C.按物理块号依次存取,
D.按文件逻辑记录大小逐存取
2、磁盘高速缓存设在()中。

A.内存
B.磁盘控制器
C.Cache
D.磁盘
3、有5个批处理任务A、B、C、D、E几乎同时到达一计算中心。

它们预计运行的时间分别是10min,6min,2min、4min和8min。

其优先级(由外部设定)分别为3,5,2,1和4,这里5为最高优先级。

下列各种调度算法中,其平均进程周转时间为14min 的是()。

A.时间片轮转调度算法
B.优先级调度算法
C.先来先服务调度算法
D.最短作业优先调度算法
4、进程调度算法中,可以设计成可抢占式的算法有()。

A.先来先服务调度算法
B.最高响应比优先调度算法
C.最短作业优先调度算法
D.时间片轮转调度算法
5、中断扫描机构是()扫描次中断寄存器。

A.每隔一个时间片
B.每条指令执行周期内最后时刻
C.每当进程释放CPU
D.每产生一次中断
6、要保证一个程序在主存中被改变了存放位置后仍能正确地执行,则对主存空间应采用()技术。

A.静态重定位
B.动态重定位
C.动态分配
D.静态分配
7、对重定位存储管理方式,应()。

A.在整个系统中设置一个重定位寄存器
B.为每个程序设置个重定位寄存器
C.为每个程序设置两个重定位寄存器
D.为每个程序和数据都设置一个重定位寄存器
8、假设5个进程P0、P1、P2、P3、P4共享3类资源R1、R2、R3.这些资源总数分别为18、6、22。

T0时刻的资源分配情况(见表),此时存在的一个安全序列是()。

A. P0, P2, P4, P1, P3
B. P1, P0, P3, P4, P2
C. P2, P1, P0, P3, P4
D. P3, P4, P2, P1, P0
9、所谓(),是指将一个以上的作业放入内存,并且同时处于运行状态。

这些作业,共享处理器的时间和外设及其他资源。

A.多重处理
B.多道程序设计
C.实时处理
D.并行执行
10、在SPOOLing系统中,用户进程实际分配到的是()。

A.用户所要求的外设
B.内存区,即虚拟设备
C.设备的部分存储区
D.设备的部分空间
11、下列关于SPOOLing技术的叙述中,错误的是()
A.需要外存的文持
B.需要多道程序设计技术的支持
C.可以让多个作业共享一台独占设备
D.由用户作业控制设备与输入/输出之间的数据传送
12、用户程序发出磁盘1/0请求后,系统的正确处理流程是()
A.用户程序→系统调用处理程序→中断处理程序→设备驱动程序
B.用户程序→系统调用处理程序→设备驱动程序→中断处理程序
C.用户程序→设备驱动程序→系统调用处理程序→中断处理程序
D.用户程序→设备驱动程序→中断处理程序→系统调用处理程序
二、填空题
13、操作系统中,进程调度通常有先来先服务、__________、__________和分级调度算法等调度算法。

14、设备1/0方式有如下三种:__________、__________、__________
15、文件存取方式主要取决于两个方面的因素,与__________有关和与__________有关。

16、可变分区方式管理主存时,往往采用__________重定位方式来实现地址转换。

17、被中断进程的现场信息是由一中断处理程序,程序将其保存到__________中的。

18、固定分区存储管理中的作业装入固定的主存区域,故可采用__________方式装入。

19、当一个进程能被选中占用处理器时,就从__________态成为__________态。

20、主存储器与外围设备之间的__________操作称为输入输出操作。

三、判断题
21、流式文件是指无结构的文件. ()
22、同一文件系统中不允许文件同名,否则会引起混乱. ()
23、由于P、V操作描述同步、互斥等问题的能力不足,所以有必要引入其它的通讯原语或机制,如send,receive或Monitor等. ()
24、清内存指令只能在管态下执行. ()
25、实时系统中的作业周转时间有严格的限制. ()
26、有m个进程的操作系统出现死锁时,死锁进程的个数为1<k<m. ()
27、优先数是进程调度的重要依据,一旦确定不能改变. ()
28、如果输入输出所用的时间比处理时间短得多,则缓冲区最有效. ()
29、对文件进行读写前,要先打开文件. ()
30、由于现代操作系统提供了程序共享的功能,所以要求被共享的程序必须是可再入程序. ()
四、名词解释题
31、可再现性:
32、进程调度:
33、死锁防止:
34、物理记录:
35、交换:
36、设备的无关性:
五、简答题
37、计算机系统中产生死锁的根本原因是什么一般解决死锁的方法有哪三种
38、在设备管理中,按照设备共享特性分成哪几种类型比较合理,并分别举例说明。

39、试比较进程调度与作业调度的不同点。

40、什么是快表?它在地址转换中起什么作用?
41、试简述页式存储管理的优缺点
六、综合题
42、为什么要设置内存I/O缓冲区?通常有哪几类缓冲区?
43、已知某系统页而长为4KB,页表项4B,采用多级分页策略映射64位虚拟地址空间。

若限定最高层页表占用1页,则可以采用几层分页策略?
44、系统中有多个生产者进程和多个消费者进程,共享一个能存放1000件产品的环形缓冲区(初始为空)。

当缓冲区未满时,生产者进程可以放入其生产的一件产品,否则等待:当缓冲区未空时,消费者进程可以从缓冲区取走·件产品,否则等待。

要求一个消费者进程从缓冲区连续取出10件产品后,其他消费者进程才时以取产品。

请使用信号量P、V(wait()、signal())操作实现进程间的互斥与同步,要求写出完整的过程,并说明所用信号量的含义和初值。

45、某火车订票系统可供多个用户同时共享一个订票数据库。

规定允许多个用户
同时查询该数据库,有查询者时,用户不能订票:有用户订票而需要更新数据库时,不可以有其他用户使用数据库。

请用P、V操作写出查询者和订票者的同步执行程序。

参考答案
一、选择题
1、B
2、A
3、D
4、D
5、B
6、B
7、A
8、D
9、B
10、B
11、D
12、B
二、填空题
13、【答案】优先数调度算法、时间片轮转调度算法
14、【答案】询问、中断、通道
15、【答案】文件管理、设备管理
16、【答案】动态
17、【答案】PCB
18、【答案】静态重定位
19、【答案】就绪、运行
20、【答案】信息传送
三、判断题
21、【答案】:对
22、【答案】:对
23、【答案】:错
24、【答案】:对
25、【答案】:错
26、【答案】:对
27、【答案】:错
28、【答案】:错
29、【答案】:对
30、【答案】:对
四、名词解释题
31、可再现性:
是指程序的执行结果与程序运行的速度无关4进程:程序在并发环境中的执行过程。

32、进程调度:
也称低级调度程序,它完成进程从就绪状态到运行状态的转化。

33、死锁防止:
要求进程申请资源时遵循某种协议,从而打破产生死锁的四个必要条件中的一个或几个,
保证系统不会进入死锁状态。

34、物理记录:
文件存储器上组织信息的一个单位。

它是文件存储器识别信息的单位。

35、交换:
交换系统指系统根据需要把主存中暂时不运行的某个(或某些)作业部分或全部移到外存。

而把外存中的某个(或某些)作业移到相应的主存区,并使其投入运行。

36、设备的无关性:
也称设备独立性,就是说,用户程序应与实际使用的物理设备无关,由操作系统来考虑因
实际设备不同而需要使用不同的设备驱动程序等问题。

五、简答题
37、答:计算机系统中产生死锁的根本原因是:资源有限且操作不当,一般解决死锁的方法有:死锁的预防,死锁的避免,死锁的检测与恢复等三种.
38、答:按照是否可共享,可以分成独占设备和共享设备两类,独占设备不能让多个程序同时使用,共享设备可以同时让多个程序使用。

打印机属于独占设备,如果多个程序同时
使用打印机,则打印出来的数据就可能会随机混合交叉在一起,所以打印机只能让一个程
序独占。

而磁盘属于共享设备,多个程序同时在磁盘上打开文件是可以的。

39、答:(1)作业调度是宏观调度,它决定了哪一个作业能进入主存.进程调度是微观调度,它决定各作业中的哪一个进程占有中央处理机.(2)作业调度是选符合条件的收容态
作业装入内存.进程调度是从就绪态进程中选一个占用处理机.
40、答:快表是一个高速、具有并行查询能力的联想存储器,用于存放正运行的进程的当前页号和块号,或者段号和段起始地址。

加入快表后,在地址转换时,首先在快表中查找,若找到就直接进行地址转换;未找到,则在主存页表继续查找,并把查到的页号和块号放
入联想存储器中。

快表的命中率很高,有效地提高了地址转换的速度。

41、答:优点:有效地解决了碎片问题;缺点:程序的最后一页会有浪费空间的现象并且不能应用在分段编写的、非连续存放的大型程序中。

六、综合题
42、【解析】设置内存I/O缓冲区的主要原因如下。

1)缓和CPU 和I/O设备间速度不匹配的矛盾。

“般情况下,程序的运行过程是时而进行计算,时而进行I/O。

以输出为例,若没有缓冲区,则程序在输出时,必然由于打印机速度跟不上而使CPU等待:然而在计算阶段,打印机又因无输入数据而无事可做。

如果设置一个缓冲区,程序可以将待输出的数据先输出到缓冲区中,然后继续执行:而打印机可以从缓冲区取出数据慢慢打印。

2)减少中断CPU的次数,例如,假定设备只用位:二进制位接收从系统外传来的数据,则设备每收到一位"进制数就要中断CPU 次,若数据通信速率为9.6kbit/s,则中断CPU的频率也为9.6kHz,若设置一个具有8位的缓冲寄存器,则使CPU被中断的次数降为前者的1/8。

3)提高CPU和I/O设备之间的并行性。

由于在CPU和设备之问引入了缓冲区,CPU可以从缓冲区中读取或向缓冲区写入信息;相应地,设备也可以向缓冲区写入或从缓冲区读取,信息。

在CPU工作的同时,设备也能进行输入/输出操作,这样CPU和I/O设备可以并行上作。

通常有4类缓冲区:单缓冲、双缓冲、循环缓冲和缓冲池。

43、【解析】由页表长4KB可知,页面长为212B,页内位移占12位。

由每"项页表项占4B 可知,每页可有页表项20个,最高层页表的页号占10位。

由于最高层页表占1页,即该页最多存放页表项个数为210个。

每项指向一页,每页义存放210个页表项,依次类推,最多可采用的分页策略层数为(64-12)/10=5.2,故应为6。

44、【解析】
这是典型的生产者-消费者问题,只对典型问题加了一个条件,只需在标准模型上新加一个信号量,即可完成指定要求。

设置4个变量mutex1、mutex2,empty和full.mutex1用于一个消费者进程一个周期(10次)内对于缓冲区的控制,初值为1:mutex2用于进程单次互斥地访问缓冲区,初值为1;empty代表缓冲区的空位数,初值为0:full代表缓冲区的产品数,初值为1000。

具体进程的描述如下:
semaphore mutexl=1;
semaphore mutex2=1;semaphore empty=1000;semaphore full=0;producer(){
{while(1)
生产一个产品;
P(empty);
P(mutex2);
把产品放入缓冲区;
V(mutex2);
V(full);
}
}
consumer()
{
while(1)
{
P(mutex1)
for(int i= 0;i<= 10;++i)P(full);
P(mutex2);
从缓冲区取出一件产品;
V(mutex2);
V(empty);
消费这件产品;
}
V(mutex1)
}
45、【解析】本题是个典型的读者-写者问题,查询者是读者,订票者是写者。

读者-者问题的主要要求是:①允许多个读者共享对象。

②不允许写者和其他读者或写者同时访问共享对象。

为了达到上述控制,引入一个变量readcount,用于记录当前正在运行的读者进程数以及读斥信号量rmutex和写互斥信号量wmutex。

每个读者进程进入系统后需对readcount加1。

当readcount的值由0变为1时,说明是第·个读者进程进入,A此需要该读者进程对控制写者进程的信号量wmutex进行P操作,以便与写者进程互斥运行:当readcount的值由非0值增加时,说明不是第一个读者进程,此时控制写者进程的信号最已进行过P操作,已经禁止写者进程进入,因此不需要再次对该信号量进行P操作。

当读者进程退出时,需对readcount减1。

如发现减1后readcount的值变为0,说明是最后一个读者进程退出,因此需要该读者进程对控制写者进程的信号量wmutex进行V操作,以便写者进程能够进入。

同步程序描述如下:
Semaphore rmutex=1,wmutex=1;
Int readcount=0;
Inquirer()
{
While(true)
{
P(rmutex);
If(readcount==0)P(wmutex);
readcount=readcount+1;
V(rmutex);
P(rmutex);
readcount=readcount-1;
If(readcount==0)V(wmutex):
V(rmutex);
Booker()
{
While(true)
{
P(wmutex);
V(wmutex);
}
}
下面改进要求,规定允许多个用户同时查询数据库,当有订票者到达时,不允许后续查询者查询数据库,H多个订票者可以互斥使用数据库(即写者优先算法)。

描述如下:
Semaphore rmutex=wmutex=r=w=1;
Int Readcount=0;
Int writecount=0;Inquirer()
{
While(true)
P(r);
P(rmutex);
If(readcount==0)P(w)Readcount=readcount+1;V(rmutex);
V(r)
P(rmutex);Readcount=readcount-1;If(readcount==0)v(w);v(rmutex)
Booker()
{
While(true)
{
P(wmutex):
If(writecount==0)P(r);writecount=writecount+1;
V(wmutex);
P(w);
V(w);
P(wmutex);
Writecount=writecount-1;
If(writecount==0)v(r);
V(wmutex)
}
}
这里r信号量用来控制读者进程的进入,若有写者存在,则占用该信号量,阻止后续读者进入临界区:mw信号最则表示对临界区进行写操作的权力,当读者在临界区时,占用w信号量以阻止写者进行写操作,这里w的作用类似于刚才未添加新条件的解法中的wmutex信号量。

本解法中,mutex和wmutex信号量变为对读者、写者计数器进行生斥操作控制的信号量。

相关文档
最新文档