2017年北京航空航天大学计算机学院961计算机学科专业基础综合之计算机操作系统考研强化模拟题
● 摘要
一、选择题
1. 对于处理机调度中的高响应比调度算法,通常,影响响应比的主要因素可以是( )。
A. 程序长度
B. 静态优先数
C. 运行时间
D. 等待时间
【答案】D
【解析】响应比R 定义如下:
其中,T 为该作业估计需要的执行时间,W 为作业在后备状态队列中的等待时间。
作业的执行时间通常改变不了,所以影响响应比的主要因素是等待时间。
2. 中断处理和子程序调用都需要压栈以保护现场。中断处理一定会保存而子程序调用不需要保存其内容的是( )。
A. 程序计数器
B. 程序状态字寄存器
C. 通用数据寄存器
D. 通用地址寄存器
【答案】B
【解析】本题考查的是中断处理和子程序调用所保存内容的区别,可以先从两者的作用不同来考虑。中断的发生通常是突然的,如地址越界等,往往是系统无法预知的(外部输入中断也是无法预知的,计算机不会知道用户什么时候用键盘输入)。当系统发生中断时要转入中断处理程序,处理完之后要返回到发生中断时的指令处继续执行,由于处理中断时CPU 可能会切换状态(如果
,在系统态发生中断则始终为系统态,不需要切换)所以中断处理返回时就需要还原当时的程序状
态,包括处理器信息等,这就用到了程序状态字(PSW )寄存器所存储的内容。程序状态字寄存器用于记录当前处理器的状态和控制指令的执行顺序,并且保留和指示与运行程序有关的各种信息,其主要作用是实现程序状态的保护和恢复。所以中断处理时一定要将PSW 压栈保存。
子程序调用是系统能够预知的,而且子程序调用通常是在进程内部执行,不会更改程序状态,即便更改程序状态,只要更新寄存器就行,而不需要保存,因为一切都是系统预料到的,不需要保护和恢复。因此,子程序调用主要保存局部参数信息等,不需要将PSW 压栈。
中断处理和子程序调用对其他3个选项的操作都是相同的。
3. 有关进程的说法不正确的是( )
A. 操作系统通过PCB 来控制和管理进程,用户进程可从PCB 中读出与本身运行状态相关的信息。
B. 用户进程被创建时,系统为它申请和构造一个相应的PCB 。
C. 进程的优先级信息是保存在进程的PCB 中的。
D. 同一个程序是不能被创建成多个进程的。
【答案】D
【解析】一个应用程序通常有多个进程组成。程序是构成进程的组成部分之一,一个进程的运行目标是执行它所对应的程序。从静态的角度看,进程是由程序、数据和进程控制块(PCB )三部分组成的。
4. 下列选项中,满足短任务优先且不会发生饥饿现象的调度算法是( )。
A. 先来先服务
B. 高响应比优先
C. 时间片轮转
D. 非抢占式短任务优先
【答案】B
【解析】这里考查的是多种作业调度算法的特点。响应比=作业响应时间/作业执行时间=(作业执行时间+作业等待时间)/作业执行时间。高响应比优先算法,在等待时间相同情况下,作业执行的时间越短,响应比越高,满足短任务优先。同时响应比会随着等待时间增加而变大,优先级会提高,能够避免饥饿现象;先来先服务仅仅考虑作业到达的时间,并不考虑作业的长短,所以A 项错误;时间片轮转仅仅考虑时间片大小,无关作业长短,所以C 项错误;非抢占式短任务优先,虽然满足短任务优先,但是如果不断地到达短作业且是非抢占式,会使等待的长作业长期等待,导致饥饿现象,因此D 项错误。
5. 进程在系统中是否存在的唯一标志是( )。
A. 数据集合
B. 目标程序
C. 源程序
D. 进程控制块
【答案】D
【解析】在进程的整个生命期中,系统总是通过PCB 对进程进行控制的,亦即,系统是根据
PCB 是进程存在的惟一标志。 进程的PCB 而不是任何别的什么而感知到该进程的存在的。所以说,
6. 不属于I/O控制方式的是( )。
A. 程序查询方式
B. 覆盖方式
C.DMA 方式
D. 中断驱动方式
【答案】B
【解析】I/O控制方式有:程序查询方式、中断驱动方式、DMA 方式和通道方式。
7. 在采用DMA 方式高速传输数据时,数据传送是( )。
A. 在总线控制器发出的控制信号控制下完成的
B. 在DMA 控制器本身发出的控制信号控制下完成的
C. 由CPU 执行的程序完成的
D. 由CPU 响应硬中断处理完成的
【答案】B
8. 磁带适用于存放( )文件。
A. 随机
B. 索引
C. 串联
D. 顺序
【答案】D
9. 在不同速度的设备之间传送数据( )。
A. 必须采用同步控制方式
B. 必须采用异步控制方式
C. 可用同步方式,也可用异步方式
D. 必须采用应答方式
【答案】C
10.下列选项中,不可能在用户态发生的事件是( )。
A. 系统调用
B. 外部中断
C. 进程切换
D. 缺页
【答案】C
【解析】判断能否在用户态执行的关键在于事件是否会执行特权指令。
首先看A 项,系统调用是系统提供给用户程序调用内核函数的,当用户程序执行系统调用时,会使CPU 状态从用户态切换至系统态并执行内核函数,执行结束之后将控制权还给用户程序,并且CPU 状态从系统态切换至用户态。从这个过程可以看出,虽然系统调用的执行过程中CPU 需