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位才能对其进行寻址。
请参阅门角适用于所有上一年的论文/解决方案/说明, 课程提纲, 重要日期, 注释等。
如果你发现任何答案/解释不正确, 或者你想分享有关上述主题的更多信息, 请写评论。