【发布时间】:2018-09-09 04:52:26
【问题描述】:
在请求分页中,页面在进程需要时从磁盘读取到内存中。 这会导致磁盘 I/O 开销并使进程等待。
现在,我读到了一行(来自 Galvin 的“操作系统概念”一书的“虚拟内存”一章),指出需求分页可以提高吞吐量,而不会增加响应时间或周转时间。
我同意按需分页会增加吞吐量,但如果涉及磁盘 I/O,如何在不增加周转时间的情况下实现呢?
示例 考虑在时间 0 提交给系统的进程。 还要考虑该进程可能必须在设备队列中等待可变的时间。 流程由 3 页组成。 将页面从磁盘读取到内存所需的时间是 2ms。 执行该过程所需的总时间为 10 毫秒。
假设长期计划决定在时间 5 将进程添加到内存中。
无请求分页:
在内存中加载 3 页进程需要 2*3=6ms。 然后进程执行10ms。
在作业队列 5 中等待 内存中的加载过程 6 执行 10 因此TAT=5+6+10=21ms
需要分页:
首页在 2 毫秒内加载到内存中。 然后进程执行 4ms 并需要内存中的下一页。 因此进程被添加到磁盘的等待队列中,它等待 10 毫秒,然后在 2 毫秒内加载第二页。 然后进程执行 3ms 并要求第三页。 再次进程等待磁盘 5 毫秒,然后在 2 毫秒内加载页面。 然后进程执行 3ms 并终止。
在作业队列 5 中等待 加载第一页 2 执行 4 等待磁盘 10 在内存 2 中加载第二页 执行 3 等待磁盘 5 在内存 2 中加载第三页 执行 3 因此TAT=5+2+4+10+2+3+5+2+3=36ms
【问题讨论】:
-
如有任何疑问,请随时咨询。
标签: operating-system virtual-memory