主存扩充虚拟内存.pptx
《主存扩充虚拟内存.pptx》由会员分享,可在线阅读,更多相关《主存扩充虚拟内存.pptx(71页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023/2/21第四章 存储管理程序局部性原理时间局部性 一条指令被执行了,则在不久的将来它可能再被执行空间局部性 若某一存储单元被使用,则在一定时间内,与该存储单元相邻的单元也可能被使用第1页/共71页2023/2/21第四章 存储管理实现虚拟内存的基本原理将程序正在使用的部分内容放在内存,暂时不用的部分放在外存,在需要时由系统调入内存,并将不需要(或暂不需要)的部分调出内存。由操作系统结合相关硬件来完成上述工作计算机好象为用户提供了一个容量远大于内存的存储器,这个存储器称为虚拟存储器。第2页/共71页2023/2/21第四章 存储管理4.64.6虚拟页式存储管理1、基本思想在进程开始运行
2、之前,不是装入全部页面,而是装入几个或零个页面,之后根据进程运行的需要,动态装入其它页面;当内存空间已满,而又需要装入新的页面时,则根据某种算法淘汰某个页面,以便装入新的页面第3页/共71页2023/2/21第四章 存储管理XXXX7X5XXX340612虚地址空间物理地址空间 虚页页框第4页/共71页2023/2/21第四章 存储管理2、页表表项页号、内存块号、驻留位、外存地址、访问位、修改位驻留位:表示该页是在内存还是在外存访问位:根据访问位来决定淘汰哪页(由不同的算法决定)修改位:查看此页是否在内存中被修改过页号中断位内存块号外存地址访问位修改位第5页/共71页2023/2/21第四章
3、存储管理151413121110 9 8 7 6 5 4 3 2 10000000000000000111100001011000000000000011110010001110100110101 00 0 1 0 0 0 0 0 0 0 0 0 0 1 0 00 1 1 0 0 0 0 0 0 0 0 0 1 0 0110在/不在内存页表虚地址8196物理地址24580第6页/共71页2023/2/21第四章 存储管理3、缺页中断(Page Fault)处理在地址映射过程中,在页表中发现所要访问的页不在内存,则产生缺页中断。操作系统接到此中断信号后,就调出缺页中断处理程序,根据页表中给出的外
4、存地址,准备将该页调入内存此时应将缺页的进程挂起(调页完成再唤醒)第7页/共71页2023/2/21第四章 存储管理缺页中断与一般中断都是中断相同点:保护现场 中断处理 恢复现场不同点:一般中断是一条指令完成后中断,缺页中断是一条指令执行时中断一条指令执行时可能产生多个缺页中断。如指令可能访问多个内存地址,这些地址在不同的页中。第8页/共71页2023/2/21第四章 存储管理4.6.2 4.6.2 页面分配策略和算法页面分配策略和算法为进程分配物理块要解决三个问题:第一,确定最少物理块数;第二,分配的物理块数目是否可变;第三,不同的进程所分配的物理块数是否相同第9页/共71页2023/2/2
5、1第四章 存储管理1 1、最小物理块数、最小物理块数最少物理块数是指能保证进程正常运行所需的最少物理块数。若少于此值时,进程将无法运行。进程应获得的最少物理块数与计算机的硬件结构有关,取决于指令的格式、功能和寻址方式 第10页/共71页2023/2/21第四章 存储管理2 2、页面分配和置换策略、页面分配和置换策略两种分配策略:固定分配 和 可变分配。两种置换策略:全局置换 和 局部置换。组合后有三种方式:固定分配局部置换可变分配全局置换可变分配局部置换第11页/共71页2023/2/21第四章 存储管理固定分配局部置换(1)基于进程的类型或根据程序员的要求,为每个进程分配一定数目的内存空间,
6、如M个页框,在整个运行期间都不再改变。(2)发现缺页时从该进程在内存的M个页面中选出一页换出。存在问题:一定数目的内存空间难以确定,太少,会频繁地出现缺页中断;太多,使内存中驻留的进程数目减少。第12页/共71页2023/2/21第四章 存储管理可变分配全局置换(1)OS保持一个空闲物理块队列,先为每个进程分配一定数目的物理块。(2)发现缺页时,由系统从空闲物理块队列中,取出一物理块分配给该进程,并将欲调入的缺页装入其中。(3)当空闲物理块队列中的物理块用完时,才从内存中选择一页调出,该页可能是系统中任一进程的页。是最易于实现的一种策略。第13页/共71页2023/2/21第四章 存储管理可变
7、分配局部置换 先根据进程的类型或程序员的要求,为每个进程分配一定数目的物理块;发生缺页时,只从该进程在内存的页面中选出一页换出。如果频繁地发生缺页中断,则再为之分配若干物理块,直至缺页率减低到适当程度为止;反之,若缺页率特别低,则适当减少物理块。第14页/共71页2023/2/21第四章 存储管理3 3、物理块分配算法、物理块分配算法平均分配算法按比例分配算法考虑优先权的分配算法第15页/共71页2023/2/21第四章 存储管理平均分配算法将可供分配的物理块,平均分配给各个进程。这种方式未考虑到各进程本身的大小,表面公平造成实际不公平。第16页/共71页2023/2/21第四章 存储管理按比
8、例分配算法 根据进程的大小按比例分配物理块。n个进程,每个进程的页面数是Si,则系统中页面总数为:物理块 的总数为m,进程i所能分到的物理块数注意:应该取整,且必须大于最小物理块数。第17页/共71页2023/2/21第四章 存储管理考虑优先权的分配算法 为优先权高的分配较多的内存空间。通常把内存中可供分配的物理块分成两部分:一部分按比例地分配给各进程;一部分则根据各进程的优先权应适当增加的物理块数,分配给各进程。第18页/共71页2023/2/21第四章 存储管理4.6.3 4.6.3 页面调入策略页面调入策略1 1、何时调入页面、何时调入页面2 2、从何处调入页面、从何处调入页面3 3、页
9、面调入过程、页面调入过程第19页/共71页2023/2/21第四章 存储管理1 1、何时调入页面、何时调入页面预调页预调页 和和 请求调页请求调页(1 1)预调页策略)预调页策略 预调页策略以预测为基础,将那些预计在不久之后便会被访问的程序或数据所在的页面预先调入内存,预调页策略以预测为基础,将那些预计在不久之后便会被访问的程序或数据所在的页面预先调入内存,如一次调入若干个相邻的页。如一次调入若干个相邻的页。但预测很难准确,所以预调页的成功率仅约一半。这种策略主要用于进程的首次调入时,由程序员指出但预测很难准确,所以预调页的成功率仅约一半。这种策略主要用于进程的首次调入时,由程序员指出应该先调
10、入哪些页。应该先调入哪些页。第20页/共71页2023/2/21第四章 存储管理(2)请求调页策赂 即进程在运行中发现所要访问的页面不在内存时,立即提出请求,由系统将其所需页面调入内存。请求调页策略易于实现,在目前的虚拟存储器中,大多采用此策略。缺点:因为每次请求只调入一页,增加了磁盘IO的启动频率,系统开销大。第21页/共71页2023/2/21第四章 存储管理2 2、从何处调入页面、从何处调入页面请求分页系统中,外存分为文件区和对换区。分三种情况:(1)系统有足够的对换区空间,在进程运行前,将与该进程有关的文件,从文件区拷贝到对换区,全部从对换区调入所需页面,调页速度快。第22页/共71页
11、2023/2/21第四章 存储管理(2)系统缺少足够的对换区空间不会被修改的文件,直接从文件区调入,换出时不写回,再调入时仍从文件区直接调入;对可能被修改的部分,换出时换到对换区,再调入时从对换区调入。(3)UNIX方式未运行过的页面,都从文件区调入;曾经运行过而又被换出的页面被放在对换区,再次调入时从对换区调入。允许页面共享,某进程请求的页面有可能已被其它进程调入内存,不用再从对换区调入 第23页/共71页2023/2/21第四章 存储管理3 3、页面调入过程、页面调入过程程序所要访问的页面未在内存时,向CPU发出缺页中断,由中断处理程序首先保留CPU环境,分析中断原因,转入缺页中断处理程序
12、。第24页/共71页2023/2/21第四章 存储管理4.7页面淘汰算法理想淘汰算法最佳页面算法(OPT)最近最久未使用页面淘汰算法(LRU)先进先出页面淘汰算法(FIFO)第25页/共71页2023/2/21第四章 存储管理1、最佳置换算法 最佳置换算法是一种理想化的理论算法,具有最好的性能,但在实际上却难于实现。它选择永不使用的,或者是在最长时间内不再被访问的页面作为淘汰页面。但这是无法预知的,因而该算法无法实现。它在固定分配页面方式中可保证获得最低的缺页率。主要用于评价其他算法 第26页/共71页2023/2/21第四章 存储管理2 2、先进先出页面置换算法、先进先出页面置换算法该算法总
13、是淘汰最先调入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。该算法实现时把一个进程已调入内存的页面按先后次序链接成一个队列,并设置一个替换指针,指向最老页面。实现简单、性能差第27页/共71页2023/2/21第四章 存储管理3最近最久未使用(LRU)选择最后一次访问时间距离当前时间最长的一页并淘汰之 即淘汰最长时间没有使用的页 性能较好,实现代价很高 软件方法或硬件方法第28页/共71页2023/2/21第四章 存储管理LRU的硬件实现:系统为每页设置一个寄存器R,每当访问这一页时,将该页对应的寄存器R高位置1,以后每个时间间隔将所有的R右移一位,R值越小,对应的页未被使用的时间越长
14、。当淘汰一页时就选择R值最小的页。所以淘汰的是最久未使用的页。R的位数越多越精确,但系统硬件成本也就越高。第29页/共71页2023/2/21第四章 存储管理LRULRU软件实现:设置一个页号栈,当一个页面被访问时,就立即将它的页号压入页号栈,并检查页号栈中是否有与刚压入栈顶的相同的页号,若有,则从页号栈中抽出原有的,以保证页号栈中无相同的页号。当系统要淘汰一页时,总是从页号栈底取出一个页号淘汰,即淘汰的页是最久未使用的。第30页/共71页2023/2/21第四章 存储管理LRULRU软件实现:第31页/共71页2023/2/21第四章 存储管理 某程序在内存中分配三个块,访问页的顺序为4,3
15、,2,1,4,3,5,4,3,2,1,5,按FIFO、LRU、OPT算法分别计算缺页次数假设开始时所有页均不在内存例1第32页/共71页2023/2/21第四章 存储管理FIFO 4 3 2 1 4 3 5 4 3 2 1 5 4 3 2 1 4 3 5 5 5 2 1 1 4 3 2 1 4 3 3 3 5 2 2 4 3 2 1 4 4 4 3 5 5 x x x x x x x x x 共缺页中断9次FIFO第33页/共71页2023/2/21第四章 存储管理 访问顺序4 3 2 1 4 3 5 4 3 2 1 5 4 3 2 1 4 3 5 4 3 2 1 5 4 3 2 1 4 3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 主存 扩充 虚拟内存
限制150内