3.3 考研真题详解
1一个多道批处理系统中仅有P1和P2两个作业,P2比P1晚5ms到达。它们的计算和I/O操作顺序如下:
P1:计算60ms,I/O 80ms,计算20ms。
P2:计算120ms,I/O 40ms,计算40ms。
若不考虑调度和切换时间,则完成两个作业需要的时间最少是( )。[2012年统考]
A.240ms
B.260ms
C.340ms
D.360ms
【答案】B
【解析】画出P1和P2的运行甘特图如图3-2所示。P2晚到,因此先从P1开始执行,由图可知最少时间为260ms。
图3-2 P1和P2的运行甘特图
2若某单处理机多进程系统中有多个就绪进程,则下列关于处理机调度的叙述中,错误的是( )。[2012年统考]
A.在进程结束时能进行处理机调度
B.创建新进程后能进行处理机调度
C.在进程处于临界区时不能进行处理机调度
D.在系统调用完成并返回用户态时能进行处理机调度
【答案】C
【解析】对于A、B、D显然是可以进行处理机调度的,对于C,当进程处于临界区时,说明进程正在占用处理机,只要不破坏临界资源的使用规则,是不会影响处理机调度的,比如,通常访问临界资源可能是慢速的外设(如打印机),如果在进程访问打印机时,不能处理机调度,那么系统的性能将是非常低的。几种不进行处理机调度的情况如下:①在处理机中断的过程中;②进程在操作系统内核程序临界区中;③其他需要完全屏蔽中断的原子操作过程中。
3某时刻进程的资源使用情况(如表3-8所示)。
表3-8 进程的资源使用情况
此时的安全序列是( )。[2011年统考]
A.P1,P2,P3,P4
B.P1,P3,P2,P4
C.P1,P4,P3,P2
D.不存在安全序列
【答案】D
【解析】使用银行家算法可知,不存在安全序列。由于初始R1资源没有剩余,只能分配资源给P1执行,P1完成之后释放资源。这时由于R2只有2个剩余,因此只能分配对应资源给P4执行,P4完成之后释放资源。此时R2仍然只有2个剩余,无法满足P2、P3的要求,无法分配,因此产生死锁状态。
4假设5个进程P0、P1、P2、P3、P4共享3类资源R1、R2、R3,这些资源总数分别为18、6、22。T0时刻的资源分配情况(如表3-9所示),此时存在的一个安全序列是( )。[2010年统考]
表3-9 T0时刻的资源分配情况
A.P0,P2,P4,P1,P3
B.P1,P0,P3,P4,P2
C.P2,P1,P0,P3,P4
D.P3,P4,P2,P1,P0
【答案】D
【解析】对4个选项分别进行安全性检测,只有D项能够全部执行结束,其他3个选项都不能执行完全,中途会出现因资源不足而死锁。
5进行P0和P1的共享变量定义及其初值如下:
boolean flag[2];
int turn = 0;
flag[0]=FALSE; flag[1]=FALSE;
若进行P0和P1访问临界资源的类c代码实现如下:
void P0() //进程P0 void P1() //进程P1
{ {
while(TRUE) while(TRUE)
{ {
flag[0]=TRUE;turn=1; flag[1]=TRUE;turn=0;
while(flag[1]&&(turn==1)); while(flag[0]&&(turn==0));
临界区; 临界区;
flag[0]=FALSE; flag[1]=FALSE;
} }
} }
则并发执行进程P0和P1时产生的情况是( )。[2010年您统考]
A.不能保证进程互斥进入临界区,会出现饥饿现象
B.不能保证进程互斥进入临界区,不会出现饥饿现象
C.能保证进程互斥进入临界区,会出现饥饿现象
D.能保证进程互斥进入临界区,不会出现饥饿现象
【答案】D
【解析】这是皮特森算法的实现,保证进入临界区的进程合理安全。该算法为了防止两个进程为进入临界区而无限期等待,设置变量turn,表示不允许进入临界区的编号,每个进程在先设置自己标志后再设置turn标志,不允许另一个进程进入,这时,再同时检测另一个进程状态标志和不允许进入标志,这样可以保证当两个进程同时要求进入临界区时只允许一个进程进入临界区。保存的是较晚的一次赋值,则较晚的进程等待,较早的进程进入。先到先入,后到等待,从而完成临界区访问的要求。
6下列进程调度算法中,综合考虑进程等待时间和执行时间的是( )。[2009年统考]
A.时间片轮转调度算法
B.短进程优先调度算法
C.先来先服务调度算法
D.高响应比优先调度算法
【答案】D
【解析】在高响应比优先调度算法中,计算每个进程的响应比,响应比最高的进程优先获得CPU。响应比计算公式为:
因此高响应比优先调度算法综合考虑到了进程等待时间和执行时间。