- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.3页面置换1.页面置换的发生时机如果增加多道程序运行,就会过度.doc
6.3页面置换
1. 页面置换的发生时机
如果增加多道程序运行,就会过度分配(over-allocating)内存。例如运行6个进程,且每个进程有10页大小但事实上只使用其中的5页,那么就获得了更高的CPU利用率和吞吐量,且有10帧可作备用。然而,每个进程有可能会突然试图使用其所有的10页,从而产生共60帧的总需求,而实际物理内存只有40帧可用。
再者,还需要考虑到内存不是仅用于保存程序的页面。I/O 缓存也需使用大量的内存。 这种使用会增加内存分配算法的压力。在I/O缓存和程序页面之间平衡内存的分配是个棘手问题。有的系统为I/O 缓存分配了一定比例的内存,而另一些系统则允许用户进程和I/O 与系统竞争使用所有系统内存。
内存的过度分配会导致以下问题:当一个用户进程执行时,发生一个缺页中断。此时操作系统会确定所需页在磁盘上的位置,但是却发现空闲帧列表上并没有空闲帧,所有内存都正在使用(见图6.8) 。
图6.8 需要页置换的情况
这时操作系统会有若干选择。它可以终止用户进程。然而,按需调页是操作系统试图改善计算机系统的使用率和吞吐量的技术。用户并不关心其进程是否运行在调页系统上:调页对用户而言应是透明的。因此,这种选项并不是最佳选择。
操作系统也可以交换出一个进程,以释放其所有帧,并降低多道程序的级别。这种选择在有些环境下是好的,但更为常用的解决方法是页面置换(page replacement)。
在进程运行过程中,如果发生缺页,而此时内存中又无空闲块时,为了保证进程能正常运行,需要从内存中调出一页程序或数据送到磁盘的对换区。这个操作叫做页面置换。
决定将哪个页面调出必须根据页面置换算法(replacement policy)来确定。目标一般是将那些以后不再被访问或在较长时间内不会再被访问的页调出。置换算法通常会在局部性原理指导下依据历史统计数据进行预测。
2. 基本页置换
页置换采用如下方法。如果没有空闲帧,那么就查找当前未使用的帧,并将其释放。可采用这样的方式来释放一个帧:将其内容写到交换空间,并改变页表(和所有其他表)以表示该页不在内存中(见图6.9) 。接着可使用该空闲帧来保存进程的缺页。同时还需在缺页处理程序中添加页置换操作:
(1) 查找所需页在磁盘上的位置。
(2) 查找一个空闲帧:
a. 如果有空闲帧,那么就使用它。
b. 如果没有空闲帧,那么就使用页置换算法以选择一个牺牲帧(victim frame) 。
c. 将牺牲帧的内容写到磁盘上,改变页表和帧表。
(3) 将所需页读入(新)空闲帧,改变页表和帧表。
(4) 重启用户进程。
图6.9页置换
注意,如果没有帧空闲,那么需要进行两次页传输(一个换出,一个换入)。这种情况实际上把缺页处理时间加倍了,且也相应增加了有效访问时间。
上述过程可以通过使用修改位(modify bit)或脏位(dirty bit)以降低部分页置换的开销。每页或帧可以有一个修改位,通过硬件与之相关联。每当页内的任何字或字节被写入时,硬件就会设置该页的修改位以表示该页己修改。如果修改位己设置,那么就可以知道自从磁盘读入后该页已发生了修改。在这种情况下,如果该页被选择为替换页,就必须要把该页写到磁盘上去。然而,如果修改位没有设置,那么也就知道自从磁盘读入后该页并没有发生修改。因此,磁盘上页的副本的内容没有必要(例如用其他页)重写,因此就避免了将内存页写回磁盘上:它已经在那里了。这种技术也适用于只读页(例如,二进制代码的页)。这种页不能被修改。因此,如需要,可以放弃这些页。这种方案可显著地降低用于处理缺页所需要的时间,因为如果页没有修改它,可以降低一半的I/O时间。
页置换是按需调页的基础。它分开了逻辑内存与物理内存。采用这种机制,小的物理内存能为程序员提供巨大的虚拟内存。对于非按需调页,用户地址被映射到物理地址,所以这两地址可以不同。然而,所有进程的页必须在物理内存中。对于按需调页,逻辑地址空间的大小不再受物理内存所限制。例如一个具有 20 页的用户进程,可通过按需调页先用 10 个帧来执行它,如果有必要可以用置换算法来查找空闲帧。如果已修改的页需要被置换,那么其内容会复制到磁盘上。后来对该页的引用会产生缺页。这时,该页可以再调回内存,这时有可能会置换进程的其他页。
按需调页需要实现两个重要的算法,即帧分配算法(frame-allocation algorithm) 和页置换算法(replacement algorithm) 。如果在内存中有多个进程,那么必须决定为每个进程各分配多少帧。而且,当需要页置换时,必须选择要置换的帧。因为磁盘 I/O 非常费时,所以设计合适的算法对系统性能起到至关重要的作用。即使请求页面调度方面的很小改进也会对系统性能产生显著的改善。
现有的系统有许多不同的
您可能关注的文档
最近下载
- 《爆炸和火灾危险场所防雷装置检测技术规范GB/T 32937-2016》知识培训.pptx VIP
- 3.1 波的形成 课件-高二上学期物理人教版(2019)选择性必修第一册.pptx VIP
- 《应用密码学》配套教学课件.ppt VIP
- 演讲台风训练.ppt VIP
- 演讲比赛培训方案.pptx VIP
- 演讲台风适用于演讲训练培训.ppt VIP
- 运输企业安全教育培训制度.docx VIP
- JC-T 2027-2010 高纯石英中杂质含量的测定方法—电感耦合等离子体原子发射光谱法.pdf VIP
- 注册安全工程师考试《管理笔记》.docx VIP
- 宁夏平罗县几种典型土壤修正系数的确定.pdf VIP
文档评论(0)