2.9 地址翻译的示例 程序编写的局部化程度越高,执行时的缺页率就越低。例如,若数组采用按行存储,则访问 时应尽量按行顺序进行,避免按列访问破坏空间局部性,从而导致缺页率异常升高。 对于已修改的页面(脏页),换出时必须写回磁盘。若采用“每换出一页即写回”的策略, 则会频繁触发磁盘 I/O, 效率极低。为此,系统引入已修改换出页面链表:当脏页被换出时, 暂不写回磁盘,而是挂入该链表;待积累足够数量后,再批量写回磁盘,从而显著减少磁盘 I/O 次数,降低页面换出开销。此外,若某进程在这些页面尚未写回磁盘前再次访问它们,则 可直接从链表中复用,无须重新从外存调入,进一步减少页面换入频率与I/O 开销。 好的页面置换算法能有效降低运行过程中的缺页率。例如,LRU 、CLOCK 等算法通过预测 未来访问行为,优先保留可能被再次访问的页面,从而提升内存命中率,加快页面访问速度。 分配给进程的物理块数越多,缺页率通常越低。然而,当物理块数量超过某一阈值后,继续增 加块数对缺页率的改善趋于平缓。因为此时进程的活跃页面已基本常驻内存,缺页主要由非活跃页 面引发,而这些页面本就无须长期驻留。若再分配更多物理块,则不仅收益甚微,反而造成内存资 源浪费。因此,只需确保活跃页面常驻内存,即可将缺页率有效控制在可接受范围内。 根据局部性原理,页面较大时,单次装入可覆盖更多局部访问区域,从而降低缺页率;而 页面较小时,缺页率则相对较高。较小的页面虽能减少页内碎片、提高内存利用率,但会导致每 个进程所需页面数量增多,导致页表过长,占用大量内存。较大的页面虽可缩短页表长度,却会 增大页内碎片。因此,页面大小的设计需在碎片控制与页表开销之间取得合理平衡。 缺页率是影响虚拟存储器性能的核心因素,而缺页率又受页面大小、分配给进程的物理块 数、页面置换算法、写回磁盘的频率以及程序的局部化程度等多方面影响。 考点追踪▶请求分页系统性能的影响因素分析(2020、2022)
[tag_link]
正确答案:B