一、选择题
1. 可重定位内存分区分配目的为( )。
A. 解决碎片问题
B. 便于多作业共享内存
C. 回收空白区方便
D. 摆脱用户干预
【答案】A
【解析】在连续分配方式中,很容易产生不能被利用的小分区,也称碎片。可重定位内存分区分配目的就是为了解决碎片问题。
2. 下列选项中,不可能在用户态发生的事件是( )。
A. 系统调用
B. 外部中断
C. 进程切换
D. 缺页
【答案】C
【解析】判断能否在用户态执行的关键在于事件是否会执行特权指令。
首先看A 项,系统调用是系统提供给用户程序调用内核函数的,当用户程序执行系统调用时,会使CPU 状态从用户态切换至系统态并执行内核函数,执行结束之后将控制权还给用户程序,并且CPU 状态从系统态切换至用户态。从这个过程可以看出,虽然系统调用的执行过程中CPU 需要切换至系统态,但系统调用(或者引用、调用)是在用户态发生的,是系统特意为用户态设计的,因此系统调用可以发生在用户态。
B 项为外部中断,很多考生会被中断二字影响,认为涉及中断的都应该是系统态的事情,而不能在用户态执行,因此选错。中断在系统中经常发生,如键盘输入会引发外部中断(外部中断是指由外部事件引起的中断,比如鼠标单击和键盘输入等操作引起的中断);进程缺页会产生缺页中断等,这些都经常发生在用户进程中,自然这些也都是用户态的事件。以键盘输入举例,一个用户进程需要用户输入一串命令,当用户用键盘输入时会引发外部中断(此时CPU 还是用户态),此时系统会切换至系统态执行中断处理程序(这时CPU 转变为系统态),处理程序处理之后将输入结果返回给用户程序并将CPU 状态切换为用户态,中断处理结束。由此过程可见,中断的发生和处理与系统调用类似,都是发生在用户态,通过切换至系统态完成对应功能,然后返回
至用户态。系统调用和中断的发生是在用户态,处理是在系统态。
看D 项,缺页与B 项类似,用户态执行进程缺页时会产生缺页中断(中断发生在用户态),然后系统转入系统态进行缺页中断处理,然后再返回用户态,将控制权交还给用户进程。因此D 项也可以发生在用户态。
根据排除法知道答案是C 项,进程切换实际上是对于程序状态的修改,因此要修改程序状态字,这是特权指令,必须在系统态执行。
3. 中断向量可提供( )。
A. 被选中设备的地址
B. 传送数据的起始地址
C. 中断服务程序入口地址
D. 主程序的断点地址。
【答案】C
4. 有两个并发执行的进程P1和P2, 共享初值为1的变量x 。P1对x 加1,P2对x 减1。
两个操作完成后,x 的值( )。
A. 可能为-1或3
B. 只能为1
C. 可能为0、1或2
D. 可能为-1、0、1或2
【答案】C
【解析】执行①②③④⑤⑥结果为1,执行①②④⑤⑥③结果为2, 执行④⑤①②⑨⑥结果为0, 结果-1无法得到。这个题目的进程之间没有同步关系,因此通过分步尝试就可以得到答案。有的题目中两个进程会有同步关系,可以画出前趋图,以防推进顺序错误。
5. 下列文件中属于逻辑结构的文件是( )。
A. 连续文件
B. 系统文件
C. 散列文件
D. 流式文件
【答案】D
【解析】考查文件的逻辑结构的分类。文件的逻辑结构就是从用户观点出发所见到的文件结构。它通常分为两种形式:记录式文件和流式文件。
6. 在段式存储管理中,一个段是一个( )区域。
A. 定长的连续
B. 不定长的连续
C. 定长的不连续
D. 不定长的不连续
【答案】B
【解析】段是一个逻辑的概念,物理上可以是不连续的。
7. 假如一个FCB 为64字节。盘块大小为1KB , 则在每个盘块中只能存放( )。
A.64个FCB
B.1个FCB
C.1000个FCB
D.16个FCB
【答案】D
【解析】因为1KB=1024B, 1024B/64B=16, 即每个盘块中只能存放16个FCB (File Control Block )。
8. 原语是一种特殊的系统调用命令,它的特点是( )。
A. 执行时不可中断
B. 自己调用自己
C. 可被外层调用
D. 功能强
【答案】A
【解析】原语可分为两类:一类是机器指令级的,其特点是执行期间不允许中断;另一类是功能级的,其特点是作为原语的程序段不允许并发执行。两类原语在执行时都不可中断。
9. 在支持多线程的系统中,进程P 创建的若干个线程不能共享的是( )。
A. 进程P 的代码段
B. 进程P 中打开的文件
C. 进程P 的全局变量
D. 进程P 中某线程的栈指针
【答案】D
【解析】进程是资源分配的基本单元,进程下的各线程可以并行执行,它们共享进程的资源,包括地址空间、持有资源、相关变量和代码等,但各个线程有自己的栈,这样各线程才能够独立执行程序而不相互干扰,各自的栈指针对其他线程是透明的,因此进程P 中某线程的栈指针是不