光了解Page的基本原理还不够,还需要知道如何设计存储才能达到一个更好的性能。
页式存储管理
工作集模型
在虚拟页存储管理中,当一个进程被启动,其所有页面都还在外存。当CPU取第一条指令时,就会引发缺页中断。因此,在程序启动一开始,很容易发生缺页中断,工作一段时间后再维持稳定,如图所示:

这种工作方式被称为demand paging:页面不是预先被装入内存,而是根据需要随时调整。
访存的局部性与工作集
- 访存的局部性(locality):在进程运行的任何阶段,它都只访问它的页面中较小的一部分
- 工作集(working set):一个进程当前使用的页的集合
- 抖动:分配给进程的物理页面数太小,无法包含其工作集,频繁地在内存和外存间换页
- 工作集模型:页式存储管理系统跟踪进程的工作集,并保证在进程运行以前它的工作集就已经在内存中了。在进程运行之前预先装入页面也叫做预先调页(prepaging)。
分配策略
当发生缺页时,页面置换算法作用的范围不同,对应不同的分配策略:
- 局部页面置换算法:在进程所分配的页面范围内选取将被置换的页面
- 每个进程分配固定大小的内存空间
- 全局页面置换算法:在内存中所有的页面范围内选取被置换的页面 <

本文探讨了存储管理中的页式和段式存储,重点在工作集模型和页面分配策略。工作集是进程当前使用的页集合,局部和全局页面置换算法影响缺页率。动态调整内存分配可降低抖动,而页面大小的选择需平衡内碎片和效率。虚拟存储接口实现了页面共享和分布式共享存储器,提供高效的消息传递。段式管理则通过分段实现代码和数据的独立与共享,但引入外碎片问题。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



