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

2017年山西师范大学408计算机学科专业基础综合之计算机操作系统考研导师圈点必考题汇编

  摘要

一、选择题

1. 在9个生产者,6个消费者共享容量为8的缓冲区的生产者消费者问题中,互斥使用缓冲区的信号量S 的初始值为( )。

A.8

B.1

C.9

D.6

【答案】B

【解析】互斥使用缓冲区的信号量只能取值0、1,一般初始值为1。

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

A.LFU

B.FIFO

C.LRU

D.LIFO

【答案】C

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

3. 设与某资源相关联的信号量初值为3, 当前值为1,若M 表示该资源的可用个数,N 表示等待该资源的进程数,则M ,N 分别是( )。

A.0, 1

B.1, 0

C.1, 2

D.2, 0

【答案】B

【解析】首先应该明确资源型信号量的含义。资源型信号量可以用来表示某资源的当前可用数量,初值与对应资源的初始数量相同,题目中信号量初值为3, 表示该资源初始时有3个。

信号量当前值K>0时,表示此资源还有K 个资源可用,题目中信号量当前值为1,表示还有1个可用资源,M 应该为1。由于还存在可用资源,所以此时不应存在等待该资源的进程,N 应当为0。因此答案选B 项。

4. 操作系统内核与用户程序——应用程序之间的接口是( )。

A.Shell 命令

B. 图形界面

C. 系统调用

D.C 语言函数

【答案】C

5. 存储管理的目的是( )。

A. 方便用户

B. 提高内存利用率

C. 方便用户和提高内存利用率

D. 増加内存实际容量

【答案】C

【解析】存储管理的目的有两个:一是方便用户,二是提高内存利用率。

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

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

B. 先来先服务

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

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

【答案】A

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

7. 最容易造成很多小碎片的可变分区分配算法是( )。

A. 首次适应算法

B. 最佳适应算法

C. 最坏适应算法

D. 以上算法都不会

【答案】B

【解析】最佳适应算法是指,根据申请在空闲区表中选择能满足申请长度的最小空闲区。此

算法最节约空间,因为它尽量不分割大的空闲区。该算法缺点是可能会形成很多很小的空闲区域。

8. 一个正在运行的进程,当发生某一事件,将其挂在( )。

A. 等待队列

B. 运行队列

C. 就绪队列

D. 任意一个队列

【答案】A

【解析】只有在分时系统时间片完时,进程由运行转为就绪状态。一般来说,有事件发生时,进程会被挂在等待队列。

9. 某计算机系统中有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 即为可能产生死锁的最小进程数,该公式同样可以用于求出每个进程需要多少资源时可能会产生死锁。

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

10.下列关于进程和线程的叙述中,正确的是( )。

A. 不管系统是否支持线程,进程都是资源分配的基本单位

B. 线程是资源分配的基本单位,进程是调度的基本单位

C. 系统级线程和用户级线程的切换都需要内核的支持

D. 同一进程中的各个线程拥有各自不同的地址空间

【答案】A

【解析】进程始终是操作系统资源分配的基本单位,线程不能直接被系统分配资源。因此A 项是正确的,B 项错误。而且线程可以参与调度,如系统级线程可以被系统直接调度执行。

用户级线程切换不需要通过内核,因为用户级线程只在用户进程的空间内活动,系统并不能感知到用户级线程的存在,所以用户级线程的切换不需要通过内核。系统级线程的切换是需要内