当要交换进程时,寻呼机会在再次交换进程之前猜测将使用哪些页面。因此,寻呼机只会交换所需的页面。但是,寻呼机如何高级猜测这些特定页面是否必需?
答案 0 :(得分:1)
它没有猜到。如果存在需求分页,则意味着:如果需要,它将进入内存(==进程想要读取它)。
虽然可以在需求之前使用某种类型的启发式方法来实现它,但实际上它并没有发生,因为这种类型的内存也可以有更好的用法:它可以用来缓存最后读/写磁盘块。
您还使用了一个术语:"在"中交换过程。在现代操作系统中,整个过程不会被换入/换出,只有他们的页面。在较旧的时候,流程被整体换入/换出,因为当时的分页无法处理。
答案 1 :(得分:1)
我最近有机会为小型实时操作系统实现请求分页管理器(DPM)。我无法代表大型和花哨的操作系统所做的事情,但在我工作的RTOS中,它没有做任何预测/猜测。它唯一的“猜测”是试图找出它应该逐出哪个页面以便为新页面腾出空间。
我需要一个通用的DPM - 可以在任何情况下使用的DPM。我采取了纯粹的反应方式;这是页面将被页面调用以响应某些要求它们存在的事件(例如页面错误)。我的DPM没有采取积极的方法(猜测提前需要哪些页面)。我这样做是为了避免招致以下处罚/费用:
此外,主动方法仍然需要反应组件(及其成本)来处理预测缺失。采取被动方法更具成本效益。
答案 2 :(得分:1)
在为CPU分配进程之前,Pager不会猜测任何内容。一旦进程进入运行状态,它的一些页面将被加载到主存储器中,然后请求分页将出现在页面中,页面将根据进程的需求被换出/换出。