|
知识路径: > 嵌入式系统软件基础知识 > 嵌入式操作系统基础知识 > 存储管理 > 虚拟存储技术(程序局部性原理、虚拟页式存储管理、页面置换算法等) > 虚拟存储管理 >
|
相关知识点:9个
|
|
|
|
工作集模型是计算机科学家Denning在20世纪60年代提出来的,它描述的是一个程序在运行过程中的行为规律。所谓的工作集,就是指任务当前正在使用的逻辑页面的集合。它可以用一个二元函数W(t,△)来表示,其中t指的是当前的执行时刻,△称为工作集窗口,也就是一个定长的页面访问窗口。W(t,△)就等于在t时刻之前的△窗口当中,所有页面所组成的集合。显然,随着当前时刻t的不断变化,任务的工作集也在不断地变化。
|
|
|
在一个任务的运行过程中,它的工作集是在不断变化的。一般来说,当一个任务刚刚启动时,它会不断地去访问一些新的页面,然后逐步地建立一个比较稳定的工作集。当内存访问的局部性区域的位置大致稳定时,工作集的大小也就大致地稳定下来。然后,当内存访问的局部性区域的位置发生改变时,工作集就会快速地扩张和收缩,并且过渡到下一个稳定值。在这些稳定阶段,任务在运行的时候,只会去访问一些固定的页面,而其他的页面一般是不会去访问的,这就是程序的局部性原理的具体表现。所以当一个任务在运行的时候,并不需要把它的整个程序都装入到内存,只要把它的工作集装入到内存就可以了。
|
|
|
与工作集相关的另一个概念是驻留集。所谓的驻留集,就是在当前时刻,任务实际驻留在内存当中的页面集合。驻留集与工作集既有区别,也有联系。工作集是任务在运行过程中所固有的性质,而驻留集则取决于系统分配给任务的物理页面个数,以及所采用的页面置换算法。当一个任务在运行时,如果它的整个工作集都在内存当中,也就是说,它的工作集是驻留集的一个子集,那么这个任务将会很顺利地运行,不会造成太多的缺页中断。反之,如果分配给一个任务的物理页面数太少,不能包含整个的工作集,也就是说,驻留集是工作集的一个真子集。在这种情形下,任务将会造成很多的缺页中断,需要频繁地进行页面置换,从而使任务的运行速度变得非常慢,这种现象称为“抖动”(thrashing)。
|
|
|