操作系统试题介绍和解析|S9

2021年3月26日15:56:23 发表评论 822 次浏览

GATE 2009 CS考试中提出了以下问题。

1)在单处理器系统的以下进程状态转换图中, 假定总是有某些进程处于就绪状态:现在考虑以下语句:

操作系统试题介绍和解析|S91

I. 如果一个进程进行转换D, 则将导致另一个进程立即进行转换A。

II. 处于阻塞状态的进程P2可以在另一个进程P1处于运行状态时进行转换E。

III. 操作系统使用抢占式调度

IV. 操作系统使用非抢占式调度。

上面哪个陈述是正确的?

(A)I和II

(B)I和III

(C)II和III

(D)II和IV

答案(C)

I是错误的。如果一个进程进行了转换D, 则将导致另一个进程进行了转换B, 而不是A。

II是正确的。 I / O完成时, 无论其他进程是否处于运行状态, 该进程都可以进入就绪状态。

III是正确的, 因为存在从运行状态到就绪状态的过渡。

IV是错误的, 因为OS使用抢占式调度。

2)使用测试和设置指令来实现用于实现进程关键部分的enter_CS()和leave_CS()函数, 如下所示:

void enter_CS(X)
{
    while test-and-set(X) ;
}
void leave_CS(X)
{
   X = 0;
}

在上述解决方案中, X是与CS关联的内存位置, 并且被初始化为0。现在考虑以下语句:

I.上述解决CS问题的方法没有死锁

II.解决方案是无饥饿的。

III.进程按FIFO顺序输入CS。

IV多个进程可以同时进入CS。

以上哪个陈述是正确的?

(A)仅I

(B)I和II

(C)II和III

(D)仅IV

答案(A)

上面的解决方案是一个简单的test-and-set解决方案,它确保不会发生死锁,但它没有使用任何队列来避免饥饿或具有FIFO顺序。

3)与将虚拟地址转换为物理地址单级页表相比, 多级页表更可取

(A)它减少了读取或写入内存位置的内存访问时间。

(B)它有助于减小实现进程的虚拟地址空间所需的页表的大小。

(C)转换后备缓冲区需要它。

(D)它有助于减少页面替换算法中的页面错误数。

答案(B)

页表的大小可能太大(请参考http://dysphoria.net/OperatingSystems1/4_multilevel_paging.html)以适合连续的空间。这就是为什么页表通常分为几层。

如果你发现任何答案/解释不正确, 或者你想分享有关上述主题的更多信息, 请写评论。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: