当前位置:问答库>考研试题

2017年西安工业大学光电学院808操作系统考研强化模拟题

  摘要

一、选择题

1. 下列陈述中,正确的是( )。

A. 磁盘是外部存储器,和输入/输出系统没有关系

B. 对速度极慢或简单的外围设备可以不考虑设备的状态直接进行接收数据和发送数据

C. 从输入/输出效率分析,DMA 方式效率最高、中断方式次之、程序查询方式最低,所以才有DMA 方式淘汰中断方式、中断方式淘汰程序查询方式的发展过程

D. 在程序查询方式、中断方式中需要组织I/O接口,而DMA 方式和通道方式就不需要了

【答案】B

2. 某计算机系统中有8台打印机,由K 个进程竞争使用,每个进程最多需要3台打印机。该系统可能会发生死锁的K 的最小值是( )。

A.2

B.3

C.4

D.5

【答案】C

【解析】假设K=3, 3个进程共享8台打印机,每个进程最多可以请求3台打印机,若3个进程都分别得到2台打印机,系统还剩下2台打印机,然后无论哪个进程申请打印机,都可以得到满足,3个进程都可以顺利执行完毕,这种情况下不会产生死锁。假设k=4, 4个进程共享8台打印机,都得不到满足,产生了互相等待,可能会发生死锁。

如果觉得这种思路不够简略,换个说法或许更好理解。根据组合数学中鸽巢原理的思想,考虑极端情况,因为每个进程最多需要3台,当每个进程都已经占用了2台时,如果仍然有空闲打印机,则必定能满足某个进程3台的条件;如果没有,则死锁。所以,将8个打印机分给K 个进程的极端情况就是K 为4, 刚好每个进程2台,没有剩余。

这类型的题通常数字不大,可以凭经验给出正确答案,这样或许会快一些。下面给出对应计算公式,以便大家加深理解。假设n 为每个进程所需的资源数,m 为进程数,A 为系统的资源数,则满足^的最小整数m 即为可能产生死锁的最小进程数,该公式同样可以用于求出每个进程需要多少资源时可能会产生死锁。

该公式可以这样理解:当所有进程都差一个资源就可以执行,此时系统中所有资源都已经分配,因此死锁,其思想和鸽巢原理类似。

3. 时间片轮转法进行进程调度是为了( )。

A. 多个终端都能得到系统的及时响应

B. 先来先服务

C. 优先级较高的进程得到及时响应

D. 需要CPU 最短的进程先做

【答案】A

【解析】时间片轮转法被用于分时操作系统,使得每个终端都能得到及时响应。B 项是先来先服务算法,C 项是优先级高者优先算法,D 项是短进程优先算法。

4. 下列选项中,不可能在用户态发生的事件是( )。

A. 系统调用

B. 外部中断

C. 进程切换

D. 缺页

【答案】C

【解析】判断能否在用户态执行的关键在于事件是否会执行特权指令。

首先看A 项,系统调用是系统提供给用户程序调用内核函数的,当用户程序执行系统调用时,会使CPU 状态从用户态切换至系统态并执行内核函数,执行结束之后将控制权还给用户程序,并且CPU 状态从系统态切换至用户态。从这个过程可以看出,虽然系统调用的执行过程中CPU 需要切换至系统态,但系统调用(或者引用、调用)是在用户态发生的,是系统特意为用户态设计的,因此系统调用可以发生在用户态。

B 项为外部中断,很多考生会被中断二字影响,认为涉及中断的都应该是系统态的事情,而不能在用户态执行,因此选错。中断在系统中经常发生,如键盘输入会引发外部中断(外部中断

;进程缺页会产生缺页是指由外部事件引起的中断,比如鼠标单击和键盘输入等操作引起的中断)

中断等,这些都经常发生在用户进程中,自然这些也都是用户态的事件。以键盘输入举例,一个

,用户进程需要用户输入一串命令,当用户用键盘输入时会引发外部中断(此时CPU 还是用户态)

,处理程序处理之后将输此时系统会切换至系统态执行中断处理程序(这时CPU 转变为系统态)

入结果返回给用户程序并将CPU 状态切换为用户态,中断处理结束。由此过程可见,中断的发生和处理与系统调用类似,都是发生在用户态,通过切换至系统态完成对应功能,然后返回至用户态。系统调用和中断的发生是在用户态,处理是在系统态。

,看D 项,缺页与B 项类似,用户态执行进程缺页时会产生缺页中断(中断发生在用户态)

然后系统转入系统态进行缺页中断处理,然后再返回用户态,将控制权交还给用户进程。因此D 项也可以发生在用户态。

根据排除法知道答案是C 项,进程切换实际上是对于程序状态的修改,因此要修改程序状态字,这是特权指令,必须在系统态执行。

5. 在UNIX 系统中,请求调用是采用下列算法中的( )算法。

A.LFU

B.FIFO

C.LRU

D.LIFO

【答案】C

【解析】最近最久未使用算法(LRU )。该算法选择在最近一段时间内最久没有使用过的页淘汰掉。它依据的是程序局部性原理。最近最久未使用算法是利用一个特殊的栈来保存当前使用的各个页的页号。每当访问某页时,考察栈内是否有与此相同的页号,若有则将该页的页号从栈中抽出,再将它压入栈顶。在UNIX 系统中,请求调用选用的是LRU 算法。所以答案为C 项。

6. 串行接口是指( )。

A. 接口与系统总线之间串行传送,接口与I/0设备之间串行传送

B. 接口与系统总线之间串行传送,接口与1/0设备之间并行传送

C. 接口与系统总线之间并行传送,接口与I/0设备之间串行传送

D. 接口与系统总线之间并行传送,接口与I/0设备之间并行传送

【答案】C

7. 在操作系统中,可以并行工作的基本单位是( )。

A. 作业

B. 程序

C. 进程

D. 过程

【答案】C

8. 下列选项中,在用户态执行的是( )。

A. 命令解释程序

B. 缺页处理程序

C. 进程调度程序

D. 时钟中断处理程序

【答案】A

【解析】CPU 状态分为管态和目态,管态又称为特权状态、系统态或核心态。通常,操作系统在管态下运行。CPU 在管态下可以执行指令系统的全集。目态又称为常态或用户态,当机器处于目态时,程序只能执行非特权指令,用户程序只能在目态下运行。

CPU 将指令分为特权指令和非特权指令,对于那些危险的指令,只允许操作系统及其相关模块使用,普通的应用程序不能使用。

缺页处理与时钟中断都属于中断处理程序,处理不当会对系统造成不良影响,因此只能在系统态执行。进程调度属于系统的一部分,也只能在系统态执行。命令解释程序属于命令接口,是操作系统提供给用户所使用的接口,因此可以用在用户态执行。因此选A 项。

另一个提供给用户程序的接口-系统调用也是在用户态执行。