您的当前位置:首页正文

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

2023-01-11 来源:客趣旅游网
2022年武汉工程大学计算机科学与技术专业《操作系统》科目期末试

卷B(有答案)

一、选择题

1、下列选项中,不能改善磁盘设备I/O性能的是( )。 A.重排I/O请求次序 B.在一个磁盘上设置多个分区 C.预读和滞后写 D.优化文件物理的分布 2、无结构文件的含义是( ) A.变长记录的文件 B.索引文件 C.流式文件 D.索引顺序文件

3、进程和程序的本质区别是( ) A.前者分时使用CPU,后者独占CPU B.前者存储在内存,后者存储在外存 C.前者在一个文件中,后者在多个文件中 D.前者为动态的,后者为静态的

4、一个进程的读磁盘操作完成后,操作系统针对该进程必做的是(A.修改进程状态为就绪态

),B.降低进程优先级

C.给进程分配用户内存空间 D.增加进程时间片大小

5、与单道程序相比,多道程序系统的优点是( ) I.CPU 利用率高 II.系统开销小 III.系统吞吐量大 IV. I/O设备利用率高

A.仅I、III B.仅I、IV C. 仅II、III D.仅I、III,IV

6、若用8个字(字长32位,H字号从0开始计数)组成的位示图管理内存,用户归还一个块号为100的内存块时,它对应位示图的位置为( )(注意:位号也从0开始)。 A.字号为3,位号为5 B.字号为4,位号为4 C.字号为3,位号为4 D.字号为4,位号为5

7、某系统采用改进型CLOCK置换算法,页表项中字段A为访问位,M为修改位。A=0表示页最近没有被访问,A=1表示页最近被访问过。M=0表示页没有被修改过,M=1表示页被修改过。按(A,M)所有可能的取值,将页分为4类:(0,0)、(1,0)、(0,1)和(1,1),则该算法淘汰页的次序为( )。 A.(0,0),(0,1),(1,0),(1,1) B.(0,0),(1,0),(0,1),(1,1) C.(0,0),(0,1),(1,1),(1,0)

D.(0,0),(1,1),(0,1),(1,0)

8、某时刻进程的资源使用情况见表。

此时的安全序列是( ) A.P1、P2、P3、P4 B. P1、P3、P2、P4 C. P1、P4、P3、P2 D.不存在

9、列选项中,不可能在用户态发生的事件是( )。 A.系统调用 B.外部中断 C.进程切换 D.缺页

10、CPU输出数据的速度远远高于打印机的打印速度,为解决这矛盾可采用( )。 A.并行技术 B.通道技术 C.缓冲技术 D.虚拟技术 11、下面设备中属于共享设备的是( )。

A.打印机 B.磁带机 C.磁盘 D.磁带机和磁盘 12、在SPOOLing系统中,用户进程实际分配到的是( )。 A.用户所要求的外设 B.内存区,即虚拟设备

C.设备的部分存储区 D.设备的部分空间

二、填空题

13、UNIX的shell有两层含义,一是指由shell命令组成的Shell命令__________;二是指该命令的__________。

14、把并发进程中与共享变量有关的程序段称为__________

15、从用户观点看,UNIX系统将文件分三类:__________、__________、__________。 16、网络操作系统把计算机网络中的各台计算机有机地联结起来,实现各台计算机之间的__________及网络中各种资源的__________。

17、Spool 是在一个计算问题开始之前,把计算所需要的程序和数据从输入设备上预输入到__________中存放。对于输出的结果,是从__________中依次输出。

18、在UNIX中,对磁盘空闲块采用成组连接方式,每一组的第一个空闲块中登记了下一组空闲块的__________和__________。

19、文件的目录由若干目录项组成,每个目录项中除了指出文件的名字和__________存取的物理地址外,还可包含如何__________和文件__________的信息。 20、主存储器与外围设备之间的__________操作称为输入输出操作。

三、判断题

21、不可抢占式动态优先数法一定会引起进程长时间得不到运行. ( ) 22、选择通道主要用于连接低速设备. ( )

23、在请求页式存储管理中,页面淘汰所花费的时间不属于系统开销. ( ) 24、同一文件系统中不允许文件同名,否则会引起混乱. ( )

25、当一个进程从等待态变成就绪态,则一定有一个进程从就绪态变成运行态. ( )

26、文件目录一般存放在外存. ( ) 27、对文件进行读写前,要先打开文件. ( ) 28、虚拟存储系统可以在每一台计算机上实现. ( ) 29、打印机是一类典型的块设备. ( )

30、在作业调度时,采用最高响应比优先的作业调度算法可以得到最短的作业平均周转时间. ( )

四、名词解释题

31、吞吐量:

32、作业调度:

33、抢占式调度:

34、物理记录:

35、逻辑地址空间:

36、虚拟设备:

五、简答题

37、系统调用的执行过程分可分为哪几步?

38、影响缺页中断率的因素有哪些?

39、请说明在生产者一消费者问题的描述中,P操作颠倒会产生死锁吗?为什么?

40、计算机系统中产生死锁的根本原因是什么一般解决死锁的方法有哪三种

41、主存空间信息保护有哪些措施?

六、综合题

42、假定计算机M采用二级分页虚拟存储管理方式,虚拟地址格式如下:

回答下列问题。

1)函数f1的机器指令代码占多少页?

2)取第1条指令(push ebp)时,若在进行地址变换的过程中需要访问内存中的页目录和页表则分别会访问它们各门的第几个页表项(编号从0开始)?

3)M的1/0采用中断控制方式。若进程P在调用fl之前通过scanf()获取n的值,则在执行scanf()的过程中,进程P的状态会如何变化?CPU是否会进入内核态?

43、请求分页管理系统中,假设某进程的页表内容见表,页面大小为4KB,一次内存的访问时间是100ns,一次快表(TLB)的访问时间是10ns,处理一次缺页的平均时间为10ns(已含更新TLB和页表的时间),进程的驻留集大小固定为2,采用最近最少使用置换算法(LRU)和局部淘汰策略。假设①TLB 初始为空。②地址转换时先访问TLB.若TLB术命中,再访向页表(忽略访问页表之后的TLB更新时间)。③有效位为0表示页面不在内存,产生缺页中断,缺页中断处理后,返回到产生缺页中断的指令处重新执行。设虚地址访问序列2362H、1565H、25ASH,请问:

1)依次访问上述3个虚地址,各需多少时间?给出计算过程。

2)基于上述访问序列,虚地址1565H的物理地址是多少?请说明理山。

44、考虑某个系统在表所示时刻的状态。

使用银行家算法回答下面的问题。 1)计算Need矩阵。

2)系统是否处于安全状态?如安全,请给出个安全序列。

3)如果从进程P1发来个请求(0,4,2,0),这个请求能否立刻被满足?如安全,请给出一个安全序列。

45、4个哲学家甲、乙、丙、丁,坐在圆桌前思考问题。甲乙间有筷子0,乙丙间有筷子1,依次类推。每个哲学家饥饿时,就试图取用两边的筷子,只有两根筷了都被拿到才开始进餐。请用P、V操作写出哲学家活动的同步执行程序。

参考答案

一、选择题

1、B 2、C 3、D 4、A 5、D 6、C 7、A

8、D

9、C 10、C 11、C 12、B

二、填空题

13、【答案】语言、解释程序 14、【答案】临界区

15、【答案】普通文件 目录文件 特殊文件 16、【答案】通信、共享

17、【答案】磁盘的输入井、磁盘的输出井

18、【答案】块号、空闲块数 19、【答案】文件、控制、管理 20、【答案】信息传送

三、判断题

21、【答案】:错 22、【答案】:错 23、【答案】:错 24、【答案】:对 25、【答案】:错 26、【答案】:对 27、【答案】:对 28、【答案】:错 29、【答案】:错 30、【答案】:错

四、名词解释题

31、吞吐量:

在一段给定的时间内,计算机所能完成的总工作量。 32、作业调度:

作业调度的主要任务是完成作业从后备状态到执行状态和从执行状态到完成状态的转换。 33、抢占式调度:

当一个进程正在执行时,系统基于某种策略强行将处理机从占有者进程剥夺而分配给另一个进程的调度。这种调度方式系统开销大,但系统能及时响应请求。 34、物理记录:

文件存储器上组织信息的一个单位。它是文件存储器识别信息的单位。 35、逻辑地址空间:

由程序中逻辑地址组成的地址范围叫做逻辑地址空间。 36、虚拟设备:

它是利用共享设备上的一部分空间来模拟独占设备的一种I/O技术。

五、简答题

37、答:系统调用的执行过程分成以下几步:(1)设置系统调用号和参数;(2)系统调用命令的一般性处理;(3)系统调用命令处理程序做具体处理。

38、答:4个因素,分别是:(1)分配给程序的主存块数;(2)页面的大小;(3)程序编制方法;(4)页面调度算法

39、答:如果将生产者执行的两个P操作顺序颠倒,会产生死锁。因为,在这种情况下,当缓冲区都为满时,生产者仍可顺利执行P(mutex)操作,于是它获得了对缓冲区的存取控制权。然后,当它执行P(mutex)操作时,由于没有空缓冲区它被挂起。能够将这个生产者进程释放的唯一途径是消费者从缓冲区取出了一个产品,并执行V(mutex)操作。但在此时,由于缓冲区已被挂起的生产者所占有,所以没有一个消费者能够取得对缓冲区的存取控制权。因此,出现了生产者和消费者的互相死等的局面。

40、答:计算机系统中产生死锁的根本原因是:资源有限且操作不当,一般解决死锁的方法有:死锁的预防,死锁的避免,死锁的检测与恢复等三种.

41、答:①程序自己主存区域的信息,允许它既可读,又可写;②共享区域中的信息只可读,不可修改;③非共享区域或非自己的主存区域中的信息既不可读,也不可写。

六、综合题

42、【解析】

1)函数fl的代码段中所有指令的虚拟地址的高20位相同,因此fl的机器指令代码在同一页中,仅占用1页。

2)push ebp指令的虚拟地址的最高10位(页目录号)为0000000001,中间10位(页表索引)为00 0000 0001,所以取该指令时访问了页目录的第1个表项,在对应的页表中访问了第1个表项。

3)在执行scanf()的过程中,进程P因等待输入而从执行态变为阻塞态。输入结束后,P被中断处理程序晚醒,变为就绪态。P被调度程序调度,变为运行态。CPU状态会从用户态变为内核态。 43、【解析】

1)因为每页大小为4KB.页内位移为12位(二进制位)或3位(十六进制位),逻辑地,址2362H的页号为第一个十六进制位(也可转化为二进制,得0010 0011 0110 0010B,则对应的页号为前4个二进制位),即为2。通过查询表得知,该页在内存,但初始TLB为空,因此2362H的访问时间为10ns(访问TLB)+100ns(访问页表)+100ns(访问内存单元)=210ns.

同理,逻辑地址1565H对应的页号为1,查询TLB未命中,之后查询页表发现该页不在内存,出现缺页中断。缺页中断处理后,返回到产生缺页中断的指令处重新执行,需要访问一次快表。所以,1565H的访问时间为10ns(访问TLB)+100ns(访问页表)+108ns(调页)+10ns(访问TLB)+100ns(访问内存单元)=108ns。

逻辑地址25ASH对应的页号为2,该页在内存,TLB命中,所以25A5H的访问时间=10ns(访问TLB)+100ns(访问内存单元)=110ns。

2)1565H对应的物理地址是101565H。在1)中,当访问1565H产生缺页中断时,内存中已经有2页达到驻留集大小上限,应选出-页换出,由于在之前访问过2362H地址,2号页面刚被访问,因此根据LRU算法,淘汰0号页面,即页框号为101H的页面,因此换入的,1号页面的页框号为101H,所以虚地址:1565H的物理地址为页框号101H与页内位移565H的组合,即101565H。

44、【解析】

2)Work向量初始值=Available(1,5,2,0)

由表可知,因为存在一个安全序列(P0,P2,P1,P3),所以系统处于安全状态。

3)Requesti(0,4,2,0)假设先试着满足P1进程的这个请求,则Available变为(1,1,0,0)。 系统状态变化见表

因为存在一个安全序列(P0,P2,P1,P3),所以系统仍处于安全状态,即P1的这个请求应该马上:被满足。

45、【解析】设置4个信号量:chopstick0,chopstickl、chopstick2 和 chopstick3,初值为1,分别表示筷了是否可用。Po~P3表示4人活动的进程。

Semaphore chopsticko=chopstickl=chopstick2=chopstick3=1; P0() {

While(true) {

P(chopstick3) P(chopstick0); V(chopstick3); V(chopstickD); While(true) {

P(chopstick1) P(chopstick0); V(chopstickl); V (chopstick0); P2() {

While(true) {

P(chopstick1): P(chopstick2); V(chopstickl); V(chopstick2); P3() While(true) {

P(chopstick3): P(chopstick2): v(chopstick3); v(chopstick2) } }

本题是典型的哲学家进餐问题。为避免4个哲学家间时饥饿而各白拿起一根筷子,结果都因陷入无限期等待而死锁,本题采用的方法是甲、丙先拿起各自右边的筷子,然后拿左边的筷子,而乙、丁则相反(设想哲学家都面对圆桌而坐)。另外,解决死锁的方法还有:①至多只允许(n-1)个哲学家同时进餐,以保证至少一个哲学家能拥有两根筷了而可以进餐,最终会释放出他所使用的筷子,从而更多人可以进餐。②仅当哲学家的左右两根筷子同时可用时,才允许其拿起筷子进餐。

下面给出至多允许3个哲学家进餐的解法,其中使用了信号量数组(信号量数组易于理解,书中没有展开详细叙述):

semaphore chopstick[4]=(1,1,1,1); semaphore S=3; P(i) While(true) { P(s):

P(chopstick[i]);

P(chopstick[i+3]mod 4); V(chopstick[i]);

V(chopstick[i+3]mod 4); V(s): } }

因篇幅问题不能全部显示,请点此查看更多更全内容