操作系统常见问题和答案合集|S11

2021年3月13日16:37:07 发表评论 670 次浏览

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

1)一个进程执行以下代码

for (i = 0; i < n; i++) fork();

创建的子进程总数为

(A)n

(B)2 ^ n-1

(C)2 ^ n

(D)2 ^(n + 1)-1;

答案(B)

F0       // There will be 1 child process created by first fork
      /     \
    F1      F1    // There will be 2 child processes created by second fork
   /  \    /  \
 F2   F2  F2   F2  // There will be 4 child processes created by third fork
/ \   / \ / \  / \
 ...............   // and so on

如果将i = 0到n-1的上述树的所有级别求和, 则得到2 ^ n-1。因此将有2 ^ n – 1个子进程。另见这个发布更多详细信息。

2)死锁预防和避免死锁方案中下列哪一项是不正确的?

(A)在防止死锁中, 如果结果状态是安全的, 则始终会授予资源请求

(B)在避免死锁的情况下, 如果结果状态安全, 则始终会批准对资源的请求

(C)避免死锁比防止死锁的限制要少

(D)避免死锁需要先验知识

答案(A)

死锁预防方案通过确保不会出现四个必要条件之一来处理死锁。在防止死锁中, 即使结果状态是安全的, 也可能不会批准对资源的请求。 (请参阅

高尔文书幻灯片

更多细节)

3)处理器使用36位物理地址和32位虚拟地址, 页面帧大小为4 KB。每个页表条目的大小为4个字节。三级页表用于虚拟到物理地址的转换, 其中虚拟地址的用法如下

•位30-31用于索引第一级页面表

•位21-29用于索引到第二级页面表

•位12-20用于索引到第三级页表, 并且

•0-11位用作页面内的偏移量

在第一, 第二和第三级页表的页表项中, 寻址下一级页表(或页框)所需的位数分别是

(A)20、20和20

(B)24、24和24

(C)24、24和20

(D)25、25和24

答案(D)

虚拟地址大小= 32位

物理地址大小= 36位

物理内存大小= 2 ^ 36字节

页面帧大小= 4K字节= 2 ^ 12字节

访问物理内存帧所需的位数= 36-12 = 24

因此, 在页表的第三级中, 需要24位才能访问条目。

9位虚拟地址用于访问第二级页面表条目, 第二级页面的大小为4个字节。因此, 第二级页表的大小为(2 ^ 9)* 4 = 2 ^ 11字节。这意味着存在(2 ^ 36)/(2 ^ 11)个可能的位置来存储此页表。因此, 第二页表需要25位才能对其进行寻址。同样, 第三页表需要25位才能对其进行寻址。

多级页表

请参阅门角适用于所有上一年的论文/解决方案/说明, 课程提纲, 重要日期, 注释等。

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

木子山

发表评论

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