内存经典著作《The Working Set Model for Program Behavior》

在现代计算机系统中,缺乏对资源分配的一般处理的最基本的原因可能是缺乏一个程序行为的适当模型,基于此该文提出了一种新的模型“工作集模型”。目的在于开发一个统一的方法来处理进程调度和内存管理

在多程序环境中,根据系统需求对进程整个过程行为建模 【系统需求-一个进程对统一资源(在本文中,仅指处理器和内存)的需求】,而且仅基于其动态资源需求进行建模。此文假设有两层内存:主内存和无限容量的辅助内存,内存管理的目标是最小化主内存和辅助内存之间的流量  在此之前普遍采用的策略:随机,FIFO, LRU, ATLAS循环检测等方法 

WS(工作集)的必须满足的要求:为了有效地执行程序,内存中必须包含的最小的信息集合。WS视图(在系统中包含的内容):最近引用的页面的集合,工作集W(t, t):在W(t, t)过程中被进程引用的页面集合,其中,w(t, t): w(t, t)的大小,

工作集运行的原理:主存要比辅助内存运行的速度快,空间较小,因此系统设计师把常用的数据存储到主存里,提供给内核频繁调用,相当于主存就是起到缓冲的作用,其比较小,不足以放下很多的数据,一个进程在其执行的最后几秒钟内引用的信息构成了它的工作集:如下图,

内存经典著作《The Working Set Model for Program Behavior》

工作集W(t,r)有四个重要的属性,而这些属性也是基于下面四个假设的:1.W(t,r)中的页面连续在内存中;2.除页面错误外,过程永远不会中断;3.页面离开W的那一刻即从内存中删除。四个属性:size and t ;prediction:[当a < t时,W(t, t)是W(t + a, t)的良好预测因子];Reentry Rate(再入速度);r-Sensitivity(t敏感度:l(t)对t变化的敏感度)

检测W (t, t),使用一种特殊的硬件是不可行的,但是可以使用软件的方案,比如,use referenced bit(使用参考位),periodically shift the reference bit(周期性的移动参考位),

工作集实现所需的属性,进程调度和内存管理必须密切相关,必须能够提供每个进程的w(t, t)和处理器时间消耗,与用户进程一起安排检查进程。因此,checker将定期检查,利用上述软件方案,踢出不属于W(t, t)的页面,减少w(t, t)的页数踢出,页面错误处理程序在将页面导入内存后w(t, t)增加1,维护进程虚拟时间(=处理器使用情况)

资源分配可以表述为平衡处理器和内存需求的问题,内存需求:进程想要使用的内存的一部分,处理器的需求,进程在阻塞前预期使用的标准间隔的分数=进程预期使用的突发的长度