在2009门CS考试中提出了以下问题。
1)在单处理器系统的后续进程状态转换图中,假设在准备状态下总是有一些进程:现在考虑以下语句: I.如果一个流程进行了转换D,则会导致另一个流程立即进行转换a。 二、处于阻塞状态的进程P2可以在另一个进程P1处于运行状态时进行转换E。 三、 操作系统使用抢占式调度。 四、 操作系统使用非抢占式调度。 以上哪项陈述是正确的? (A) 一和二 (B) I和III (C) 二、三 (D) 二、四
答复(C) 我错了。如果一个进程进行转换D,它将导致另一个进程进行转换B,而不是a。 这是真的。当I/O完成时,无论其他进程是否处于运行状态,进程都可以移动到就绪状态。 III是正确的,因为存在从运行状态到就绪状态的转换。 IV为假,因为操作系统使用抢占式调度。
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问题的解决方案是无死锁的 二、解决办法是不挨饿。 三、 进程以FIFO顺序输入CS。 IV多个进程可以同时进入CS。 以上哪项陈述是正确的? (A) 我只是 (B) 一和二 (C) 二、三 (D) 仅限IV
答复(A) 上述解决方案是一个简单的解决方案 测试和设置 解决方案,确保死锁不会发生,但它不使用任何队列来避免饥饿或具有FIFO顺序。
3) 在将虚拟地址转换为物理地址时,与单级页表相比,多级页表是首选的,因为 (A) 它减少了读取或写入内存位置的内存访问时间。 (B) 它有助于减少实现进程虚拟地址空间所需的页表大小。 (C) 它是翻译查找缓冲区所必需的。 (D) 它有助于减少页面替换算法中的页面错误数。
答复(B) 页面表格的大小可能会变得太大(请参见 这 )适应于连续的空间。这就是为什么页面表通常被划分为不同的级别。
请看 门角 所有上一年的论文/解决方案/解释、教学大纲、重要日期、笔记等。
如果您发现任何答案/解释不正确,或者您想分享有关上述主题的更多信息,请发表评论。