1.下列进程调度算法中,综合考虑进程等待时间和执行时间的是()
-
时间片轮转调度算法
-
短进程优先调度算法
-
先来先服务调度算法
-
高响应比优先调度算法
解析:
在高响应比优先调度算法中,选出响应比最高的进程投入执行,响应比R定义如下:响应比R=(等待时间+执行时间)/执行时间。它综合考虑了每个进程的等待时间和执行时间,对于同时到达的长进程和短进程,短进程会优先执行,以提高系统吞吐量;而长进程的响应比可以随等待时间的增加而提高,不会产生进程无法调度的情况。 .
2.某计算机系统中有8台打印机,由K个进程竞争使用,每个进程最多需要3台打印机。该系统可能会发生死锁的K的最小值是()
-
2
-
3
-
4
-
5
解析:
这种题用到组合数学中鸽巢原理的思想。考虑最极端情况,因为每个进程最多需要3台打印机,如果每个进程已经占有了2台打印机,那么只要还有多的打印机,总能满足一个进程达到3台的条件,然后顺利执行,所以将8台打印机分给K个进程,每个进程有2台打印机,这个情况就是极端情况,K为4
3.下列选项中,导致创建新进程的操作是()。
Ⅰ.用户登录成功 Ⅱ.设备分配 Ⅲ.启动程序执行
-
仅Ⅰ和Ⅱ
-
仅Ⅱ和Ⅲ
-
仅Ⅰ和Ⅲ
-
Ⅰ、Ⅱ和Ⅲ
解析:
引起进程创建的事件有:用户登录、作业调度、提供服务、应用请求等。Ⅰ.用户登录成功后,系统要为此创建一个用户管理的进程,包括用户桌面、环境等。所有的用户进程会在该进程下创建和管理。Ⅱ.设备分配是通过在系统中设置相应的数据结构实现的,不需要创建进程。Ⅲ.启动程序执行是典型的引起创建进程的事件。
4.设与某资源关联的信号量初值为3,当前值为1。若M表示该资源的可用个数,N表示等待该资源的进程数,则M、N分别是(B)。
-
0、1
-
1、0
-
1、2
-
2、0
解析:
信号量表示相关资源的当前可用数量。当信号量K>0时,表示还有K个相关资源可用,所以该资源的可用个数是1。而当信号量K<0时,表示有|K|个进程在等待该资源。由于资源有剩余,可见没有其他进程等待使用该资源,故进程数为0。
5.下列选项中,降低进程优先级的合理时机是(A)。
-
进程的时间片用完
-
进程刚完成I/O,进入就绪列队
-
进程长期处于就绪列队中
-
进程从就绪状态转为运行状态
解析:
进程时间片用完,可降低其优先级以让别的进程被调度进入执行状态。B选项中进程刚完成I/O,进入就绪队列等待被处理机调度,为了让其尽快处理I/O结果,故应提高优先权。C选项中进程长期处于就绪队列,为不至于产生饥饿现象,也应适当提高优先级。D选项中进程的优先级不应该在此时降低,而应在时间片用完后再降低。
6.进程P0和P1的共享变量定义及其初值为:
boolean flag[2];
int turn=0;
flag[0]=FALSE;flag[1]=FALSE;
若进程P0和P1访问临界资源的类C伪代码实现如下:
则并发执行进程P0和P1时产生的情形是(D)。
-
不能保证进程互斥进入临界区,会出现“饥饿”现象
-
不能保证进程互斥进入临界区,不会出现“饥饿”现象
-
能保证进程互斥进入临界区,会出现“饥饿”现象
-
能保证进程互斥进入临界区,不会出现“饥饿”现象
解析:
这是皮特森算法的实际实现,保证进入临界区的进程合理安全。该算法为了防止两个进程为进入临界区而无限期等待,设置变量turn,表示不允许进入临界区的编号,每个进程在先设置自己标志后再设置turn标志,不允许另一个进程进入,这时,再同时检测另一个进程状态标志和不允许进入表示,这样可以保证当两个进程同时要求进入临界区时只允许一个进程进入临界区。保存的是较晚的一次赋值,则较晚的进程等待,较早的进程进入。先到先入,后到等待,从而完成临界区访问的要求。
其实这里可以想象为两个人进门,每个人进门前都会和对方客套一句“你走先”。如果进门时没别人,就当和空气说句废话,然后大步登门入室;如果两人同时进门,就互相请先,但各自只客套一次,所以先客套的人请完对方,就等着对方请自己,然后光明正大地进门。
7.下列选项中,满足短任务优先且不会发生饥饿现象的调度算法是()。
-
先来先服务
-
高响应比优先
-
时间片轮转
-
非抢占式短任务优先
解析:
高响应比优先算法是一种综合考虑任务长度和等待时间的调度算法,响应比=(等待时间+执行时间)/执行时间。高响应比优先算法在等待时间相同的情况下,作业执行时间越短则响应比越高,满足短任务优先。随着长任务的等待时间增加,响应比也会变大,执行机会也就增大,所以不会发生饥饿现象。先来先服务和时间片轮转不符合短任务优先,非抢占式短任务优先会产生饥饿现象。
8.在支持多线程的系统中,进程P创建的若干个线程不能共享的是()。
-
进程P的代码段
-
进程P中打开的文件
-
进程P的全局变量
-
进程P中某线程的栈指针
解析:
进程是资源分配的基本单位,线程是处理机调度的基本单位。因此,进程的代码段、进程打开的文件、进程的全局变量等都是进程的资源,唯有进程中某线程的栈指针是属于线程的,属于进程的资源可以共享,属于线程的栈是独享的,对其他线程透明。
9.某时刻进程的资源使用情况如下表所示。
进程 |
已分配资源 |
尚需分配 |
可用资源 |
||||||
R1 |
R2 |
R3 |
R1 |
R2 |
R3 |
R1 |
R2 |
R3 |
|
P1 |
2 |
0 |
0 |
0 |
0 |
1 |
0 |
2 |
1 |
P2 |
1 |
2 |
0 |
1 |
3 |
2 |
|||
P3 |
0 |
1 |
1 |
1 |
3 |
1 |
|||
P4 |
0 |
0 |
1 |
2 |
0 |
0 |
此时的安全序列是()。
-
P1,P2,P3,P4
-
P1,P3,P2,P4
-
P1,P4,P3,P2
-
不存在的
解