已读93%
预计阅读本页时间:-
预计阅读本页时间:-
13.4.6 利用局部性
进程和程序的行为并不是随机的,它们在时间上和空间上展现出相当程度的局部性,并且可以以各种方式利用该信息来改进性能。空间局部性的一个常见例子是这样的事实:进程并不是在其地址空间内部随机地到处跳转的。在一个给定的时间间隔内,它们倾向于使用数目比较少的页面。进程正在有效地使用的页面可以被标记为它的工作集,并且操作系统能够确保当进程被允许运行时,它的工作集在内存中,这样就减少了缺页的次数。
局部化原理对于文件也是成立的。当一个进程选择了一个特定的工作目录时,很可能将来许多文件引用将指向该目录中的文件。通过在磁盘上将每个目录的所有i节点和文件就近放在一起,可能会获得性能的改善。这一原理正是Berkeley快速文件系统的基础(McKusick等人,1984)。
局部性起作用的另一个领域是多处理器系统中的线程调度。正如我们在第8章中看到的,在多处理器上一种调度线程的方法是试图在最后一次用过的CPU上运行每个线程,期望它的某些内存块依然还在内存的高速缓存中。