预调页和页的大小的设置依据

如果按需调页系统的一个显著特性是当一个进程开始时会出现大量页错误,当重启一个换出进程时,由于其所有页都在磁盘上,所以每个页都必须通过自己的页错误而调入到内存中。预调页就是试图阻止这种大量的初始调页,这种策略就是同时将所需要的所有页一起调入到内存中。比如说Solaris就对小的文件采用预调页的方法

如果对于采用工作集合的系统,可以为每个进程保留一个位于其工作集合内的页的列表,如果我们必须要去暂停一个进程(由于I/O等待或者是缺少空闲帧),那么就要记住进程的工作集合,当该进程需要重启的时候(I/O完成或有足够多的空闲帧),在重启进程之前会自动调入位于其工作集合内的所有页

其实工作集合是程序局部的近似,有工作集合策略的好处就是在可以大概的确定其进程需要多少帧,然后方便操作系统进行分配,在工作集合当中的页,不会被轻易换出,几个进程依次访问页面,对于每一个进程,每次将要访问的页存入工作集,同时将不再访问的页从工作集中移除,这样工作集中的页就是要调入到内存中的页

现有机器的操作系统的设计人员在页的大小方面很少有选择,在设计新机器的时候必须对最佳页大小做出决定,对于页大小的设计的依据如下所示

  • 页表大小:增加页的大小–降低页表大小
  • 内存利用:小页产生更少的碎片,因为进程不可能刚好在页边界处结束,但最后页的一部分必须分配,可能使用了一部分,但是更多的是没有使用的
  • I/O开销:寻道和延迟时间远大于传输时间的话,那么就需要大页来保存多的数据,这样页的读写花费的时间就可以减少
  • 局部:较小页允许每个页更精确的匹配程序局部,采用较小的页,总的I/O就会降低,也就是说会导致更少的I/O和更少的总的分配内存
  • 页错误:如果我们采取的页太小的话,那么就会产生很多个页,那么如果都是缺页的话,那么就会产生页错误,每个页错误会产生大量的额外开销以及处理中断、保存寄存器、置换页、排队等待调页设备和更新表
  • 关于程序结构的设置其实也需要考虑进去,因为如果我们程序设置的不好的话,很有可能导致做相同的事情会耗费更多的时间,比如说页每一行的大小我们应该怎么去设置,让我们程序设置出来的效率更高,这都要考虑进去的
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值