正在加载图片...
2.偷页进程 在UNIX系统的核心中,专门设置了一个偷页进程( page stealer),其主要任务有 每隔一定时间增加内存中所有有效页的年龄:当有效页的年龄达到规定值后便将它换出。 (1)增加有效页年龄:一个页可计数的最大年龄取决于它的硬件设施。若只设置了两位 作为年龄域,其有效页的年龄只能取值0、1、2和3。当该页的年龄为0、1、2时,该页处于 不可换出状态;而当其年龄达到3时,便可将它换出内存。每当内存中的空闲页面数低于某规 定的低限时,核心便唤醒偷页进程,由偷页进程去检查内存中的每一个活动的非上锁区,对所 有有效页的年龄字段加1。对于那些年龄字段已增至3的页便不再加1,而是将它们换出。每 当有进程访问了某个页面时,便将该页的年龄置0 (2)对换出页的几种处理方法:当偷页进程从内存中的有效页中找到可被换出的页后, 可采取下面三种方法对它们进行处理 ①若在对换设备上己有被换出页的拷贝,且被换出页的内容未被修改,则此时核心不必将 该页重写回对换设备上,而只需将该页的页表项的有效位清零,并将页面数据表项中的引用数 减1,最后将该页表项放入空闲页链表中。 ②若在对换设备上没有被换出页的拷贝,则应将该页写到对换设备上。但为了提高对换效 率,偷页进程并不是有一个页面换出一个页面,而是先将所有要换出的页链接到一个换出页链 表上,然后再查看是否还有其他有效页要换出。当换出页面链上的页数达到某一规定值时,比 如64页,核心才真正将这些页面写入对换区 ③在对换设备上已有换出页的副本,但该页内容已被修改过。此时核心将释放该页在对换 设备上占有的空间,再重新将该页拷贝到对换设备上 (3)将换出页面写到对换设备上 当换出页面链上的页数达到规定值时,核心应将它们换出。为此,应首先为这些页面分配 连续的对换空间,以便将它们一起换出:但如果对换设备上没有足够大的连续空间,而其空 闲存储空间的总和又大于64K时,核心可采取每次换出一页的方式将它们换出。每当核心向对 换设备上写一个页面时,须首先清除该页表项的有效位,并将页面数据表项中的引用数减1。 若引用计数为0,表明已无其他进程引用该页,核心便将其页面数据表项链入空闲页链表的尾 部。若引用计数不为0,表明仍有进程共享该页,但如果该页长期未被访问,则也须将该页换 出。最后,核心将分配给该页的对换空间地址填入相应的磁盘块描述项中,并将对换使用表中 的计数加1。 请求调页 当一个进程试图存取一个其有效位为0的页面时,将产生一有效性错。此时由核心调用有 效性错处理程序加以处理。可能有下列两种情况: 种情况是如果在磁盘块描述项中找不到所缺的页,则表明此次内存访问非法,核心 将向该违例进程发出一"段违例"软中断信号;另一种情况是如果找到了所缺的页,表明此次内 存访问合法:但因该页尚未调入内存,则核心为该页分配一个页面的内存,将所缺的页调入内 存 至于如何将所缺的页调入内存,则与所缺页面从何处调入有关,可分成以下三种情况: (1)缺页在可执行文件中 如果缺页对应的磁盘块描述项中的类型是File,表示该页尚未运行过,其拷贝是在可执 文件中。因此,核心应从可执行文件中将缺页调入内存。其具体的调入过程为;根据该文件 所对应的系统区表项中的索引节点指针,找到该文件的索引节点,再把从磁盘块描述项中得到 的该页的逻辑块号作为偏移量,査找索引节点中的磁盘块号衰,便可找到该页的磁盘块号,于 是即可将该页调入内存。 (2)缺页在对换设备上2.偷页进程 在 UNIX 系统的核心中,专门设置了一个偷页进程〈page stealer〉,其主要任务有二: 每隔一定时间增加内存中所有有效页的年龄:当有效页的年龄达到规定值后便将它换出。 (1)增加有效页年龄:一个页可计数的最大年龄取决于它的硬件设施。若只设置了两位 作为年龄域,其有效页的年龄只能取值 0、1、2 和 3。当该页的年龄为 0、1、2 时,该页处于 不可换出状态;而当其年龄达到 3 时,便可将它换出内存。每当内存中的空闲页面数低于某规 定的低限时,核心便唤醒偷页进程,由偷页进程去检查内存中的每一个活动的非上锁区,对所 有有效页的年龄字段加 1。对于那些年龄字段已增至 3 的页便不再加 1,而是将它们换出。每 当有进程访问了某个页面时,便将该页的年龄置 0。 (2)对换出页的几种处理方法:当偷页进程从内存中的有效页中找到可被换出的页后, 可采取下面三种方法对它们进行处理: ①若在对换设备上已有被换出页的拷贝,且被换出页的内容未被修改,则此时核心不必将 该页重写回对换设备上,而只需将该页的页表项的有效位清零,并将页面数据表项中的引用数 减 1,最后将该页表项放入空闲页链表中。 ②若在对换设备上没有被换出页的拷贝,则应将该页写到对换设备上。但为了提高对换效 率,偷页进程并不是有一个页面换出一个页面,而是先将所有要换出的页链接到一个换出页链 表上,然后再查看是否还有其他有效页要换出。当换出页面链上的页数达到某一规定值时,比 如 64 页,核心才真正将这些页面写入对换区. ③在对换设备上已有换出页的副本,但该页内容已被修改过。此时核心将释放该页在对换 设备上占有的空间,再重新将该页拷贝到对换设备上。 (3)将换出页面写到对换设备上 当换出页面链上的页数达到规定值时,核心应将它们换出。为此,应首先为这些页面分配 一连续的对换空间,以便将它们一起换出:但如果对换设备上没有足够大的连续空间,而其空 闲存储空间的总和又大于 64K 时,核心可采取每次换出一页的方式将它们换出。每当核心向对 换设备上写一个页面时,须首先清除该页表项的有效位,并将页面数据表项中的引用数减 1。 若引用计数为 0,表明已无其他进程引用该页,核心便将其页面数据表项链入空闲页链表的尾 部。若引用计数不为 0,表明仍有进程共享该页,但如果该页长期未被访问,则也须将该页换 出。最后,核心将分配给该页的对换空间地址填入相应的磁盘块描述项中,并将对换使用表中 的计数加 1。 3.请求调页 当一个进程试图存取一个其有效位为 0 的页面时,将产生一有效性错。此时由核心调用有 效性错处理程序加以处理。可能有下列两种情况: 一种情况是如果在磁盘块描述项中找不到所缺的页,则表明此次内存访问非法,核心 将向该违例进程发出一"段违例"软中断信号;另一种情况是如果找到了所缺的页,表明此次内 存访问合法:但因该页尚未调入内存,则核心为该页分配一个页面的内存,将所缺的页调入内 存。 至于如何将所缺的页调入内存,则与所缺页面从何处调入有关,可分成以下三种情况: (1)缺页在可执行文件中 如果缺页对应的磁盘块描述项中的类型是 File,表示该页尚未运行过,其拷贝是在可执 行文件中。因此,核心应从可执行文件中将缺页调入内存。其具体的调入过程为;根据该文件 所对应的系统区表项中的索引节点指针,找到该文件的索引节点,再把从磁盘块描述项中得到 的该页的逻辑块号作为偏移量,查找索引节点中的磁盘块号衰,便可找到该页的磁盘块号,于 是即可将该页调入内存。 (2)缺页在对换设备上
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有