一、选择题
1. 下面有关选择进程调度算法的准则错误的是( )。
A. 尽量提高处理器利用率
B. 尽可能提尚系统吞吐量
C. 适当增长进程在就绪队列中的等待时间
D. 尽快响应交互式用户的请求
【答案】C
【解析】选择调度算法应该尽量减少等待时间,从而降低响应时间。
2. 在进程管理中,当( )时,进程状态从运行态转换到就绪态。
A. 进程被调度程序选中
B. 时间片用完
C. 等待某一事件发生
D. 等待的事件发生
【答案】B
【解析】考查进程调度的原因。A 项进程将从就绪态变为运行态,C 项将从运行态变成阻塞态,D 项从阻塞态变成就绪态。
3. 下列进程调度算法中,综合考虑进程等待时间和执行时间的是( )。
A. 时间片轮转调度算法
B. 短进程优先调度算法
C. 先来先服务调度算法
D 高响应比优先调度算法
【答案】D
【解析】在高响应比优先调度算法中,计算每个进程的响应比,响应比最高的进程优先获得CPU 。响应比计算公式为:
因此高响应比优先调度算法综合考虑到了进程等待时间和执行时间。对于同时到达的长进程和短进程相比,由于执行时间短,短进程会优先执行,以提高系统吞吐量。当某进程等待时间较长时,响应比会变大,其优先级会提高并很快得到执行,因此不会产生进程调度不到的情况。
4. 某计算机系统中有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 即为可能产生死锁的最小进程数,该公式同样可以用于求出每个进程需要多少资源时可能会产生死锁。
该公式可以这样理解:当所有进程都差一个资源就可以执行,此时系统中所有资源都已经分配,因此死锁,其思想和鸽巢原理类似。
5. 操作系统是对( )进行管理的软件。
A. 软件
B. 硬件
C. 计算机资源
D. 应用程序
【答案】C
【解析】从一般用户的观点,可把0S 看做是用户与计算机硬件系统之间的接口;从资源管理的观点看,则可把0S 视为计算机系统资源的管理者。另外,0S 实现了对计算机资源的抽象,隐藏了对硬件操作的细节,使用户能更方便地使用机器。操作系统是系统软件,它管理着计算机的软硬件资源。软件资源是指计算机中的应用程序和数据。
6. 周期挪用方式常用于方式的输入/输出中( )。
A. 程序查询方式
B. 中断方式
C.DMA 方式
D. 通道方式
【答案】C
7. 在下述存储管理技术中,( )处理不当会产生抖动。
A. 固定分区
B. 可变分区
C. 简单分页
D. 请求分页
【答案】D
【解析】请求分页涉及到页面的换入换出,处理不当会产生抖动。
8. 进程在系统中是否存在的唯一标志是( )。
A. 数据集合
B. 目标程序
C. 源程序
D. 进程控制块
【答案】D
【解析】在进程的整个生命期中,系统总是通过PCB 对进程进行控制的,亦即,系统是根据
PCB 是进程存在的惟一标志。 进程的PCB 而不是任何别的什么而感知到该进程的存在的。所以说,
9. 下列选项中,在用户态执行的是( )。
A. 命令解释程序
B. 缺页处理程序
C. 进程调度程序
D. 时钟中断处理程序
【答案】A
【解析】CPU 状态分为管态和目态,管态又称为特权状态、系统态或核心态。通常,操作系统在管态下运行。CPU 在管态下可以执行指令系统的全集。目态又称为常态或用户态,当机器处于目态时,程序只能执行非特权指令,用户程序只能在目态下运行。
CPU 将指令分为特权指令和非特权指令,对于那些危险的指令,只允许操作系统及其相关模块使用,普通的应用程序不能使用。
缺页处理与时钟中断都属于中断处理程序,处理不当会对系统造成不良影响,因此只能在系统态执行。进程调度属于系统的一部分,也只能在系统态执行。命令解释程序属于命令接口,是操作系统提供给用户所使用的接口,因此可以用在用户态执行。因此选A 项。
另一个提供给用户程序的接口-系统调用也是在用户态执行。