欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    主存扩充虚拟内存.ppt

    • 资源ID:2712075       资源大小:1.30MB        全文页数:71页
    • 资源格式: PPT        下载积分:8
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要8
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    主存扩充虚拟内存.ppt

    2019/5/7,第四章 存储管理,4.5 主存扩充(虚拟内存),为了使程序员在编程时不受内存的结构和容量的限制,系统为用户构造一种存储器,其结构可能与内存结构不同,容量可能远远超过内存的实际容量。 这种面向编程的存储器称为虚拟存储器。 由虚存构成的存储空间称为虚存空间,或称虚地址空间。,2019/5/7,第四章 存储管理,程序局部性原理,时间局部性 一条指令被执行了,则在不久的将来它可能再被执行 空间局部性 若某一存储单元被使用,则在一定时间内,与该存储单元相邻的单元也可能被使用,2019/5/7,第四章 存储管理,实现虚拟内存的基本原理,将程序正在使用的部分内容放在内存,暂时不用的部分放在外存,在需要时由系统调入内存,并将不需要(或暂不需要)的部分调出内存。 由操作系统结合相关硬件来完成上述工作 计算机好象为用户提供了一个容量远大于内存的存储器,这个存储器称为虚拟存储器。,2019/5/7,第四章 存储管理,4.6虚拟页式存储管理,1、基本思想 在进程开始运行之前,不是装入全部页面,而是装入几个或零个页面,之后根据进程运行的需要,动态装入其它页面; 当内存空间已满,而又需要装入新的页面时,则根据某种算法淘汰某个页面,以便装入新的页面,2019/5/7,第四章 存储管理,虚地址空间,物理地址空间, 虚页,页框,2019/5/7,第四章 存储管理,2、页表表项,页号、内存块号、驻留位、外存地址、访问位、修改位 驻留位:表示该页是在内存还是在外存 访问位:根据访问位来决定淘汰哪页(由不同的算法决定) 修改位:查看此页是否在内存中被修改过,2019/5/7,第四章 存储管理,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,000,0,000,0,000,0,000,0,111,1,000,0,101,1,000,0,000,0,000,0,011,1,100,1,000,1,110,1,001,1,010,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,110,在/不在内存,页表,虚地址 8196,物理地址 24580,2019/5/7,第四章 存储管理,3、缺页中断(Page Fault)处理,在地址映射过程中,在页表中发现所要访问的页不在内存,则产生缺页中断。 操作系统接到此中断信号后,就调出缺页中断处理程序,根据页表中给出的外存地址,准备将该页调入内存 此时应将缺页的进程挂起(调页完成再唤醒),2019/5/7,第四章 存储管理,缺页中断与一般中断都是中断 相同点: 保护现场 中断处理 恢复现场 不同点: 一般中断是一条指令完成后中断,缺页中断是一条指令执行时中断 一条指令执行时可能产生多个缺页中断。如指令可能访问多个内存地址,这些地址在不同的页中。,2019/5/7,第四章 存储管理,4.6.2 页面分配策略和算法,为进程分配物理块要解决三个问题: 第一,确定最少物理块数; 第二,分配的物理块数目是否可变; 第三,不同的进程所分配的物理块数是否相同,2019/5/7,第四章 存储管理,1、最小物理块数,最少物理块数是指能保证进程正常运行所需的最少物理块数。若少于此值时,进程将无法运行。 进程应获得的最少物理块数与计算机的硬件结构有关,取决于指令的格式、功能和寻址方式,2019/5/7,第四章 存储管理,2、页面分配和置换策略,两种分配策略:固定分配 和 可变分配。 两种置换策略:全局置换 和 局部置换。 组合后有三种方式: 固定分配局部置换 可变分配全局置换 可变分配局部置换,2019/5/7,第四章 存储管理,固定分配局部置换,(1)基于进程的类型或根据程序员的要求,为每个进程分配一定数目的内存空间,如M个页框,在整个运行期间都不再改变。 (2)发现缺页时从该进程在内存的M个页面中选出一页换出。 存在问题:一定数目的内存空间难以确定, 太少,会频繁地出现缺页中断; 太多,使内存中驻留的进程数目减少。,2019/5/7,第四章 存储管理,可变分配全局置换,(1)OS保持一个空闲物理块队列,先为每个进程分配一定数目的物理块。 (2)发现缺页时,由系统从空闲物理块队列中,取出一物理块分配给该进程,并将欲调入的缺页装入其中。 (3)当空闲物理块队列中的物理块用完时,才从内存中选择一页调出,该页可能是系统中任一进程的页。 是最易于实现的一种策略。,2019/5/7,第四章 存储管理,可变分配局部置换,先根据进程的类型或程序员的要求,为每个进程分配一定数目的物理块; 发生缺页时,只从该进程在内存的页面中选出一页换出。 如果频繁地发生缺页中断,则再为之分配若干物理块,直至缺页率减低到适当程度为止;反之,若缺页率特别低,则适当减少物理块。,2019/5/7,第四章 存储管理,3、物理块分配算法,平均分配算法 按比例分配算法 考虑优先权的分配算法,2019/5/7,第四章 存储管理,平均分配算法,将可供分配的物理块,平均分配给各个进程。 这种方式未考虑到各进程本身的大小,表面公平造成实际不公平。,2019/5/7,第四章 存储管理,按比例分配算法,根据进程的大小按比例分配物理块。 n个进程,每个进程的页面数是Si,则系统中页面总数为:,物理块 的总数为m,进程i所能分到的物理块数,注意:应该取整,且必须大于最小物理块数。,2019/5/7,第四章 存储管理,考虑优先权的分配算法,为优先权高的分配较多的内存空间。 通常把内存中可供分配的物理块分成两部分: 一部分按比例地分配给各进程; 一部分则根据各进程的优先权应适当增加的物理块数,分配给各进程。,2019/5/7,第四章 存储管理,4.6.3 页面调入策略,1、何时调入页面 2、从何处调入页面 3、页面调入过程,2019/5/7,第四章 存储管理,1、何时调入页面,预调页 和 请求调页 (1)预调页策略 预调页策略以预测为基础,将那些预计在不久之后便会被访问的程序或数据所在的页面预先调入内存,如一次调入若干个相邻的页。 但预测很难准确,所以预调页的成功率仅约一半。这种策略主要用于进程的首次调入时,由程序员指出应该先调入哪些页。,2019/5/7,第四章 存储管理,(2)请求调页策赂 即进程在运行中发现所要访问的页面不在内存时,立即提出请求,由系统将其所需页面调入内存。 请求调页策略易于实现,在目前的虚拟存储器中,大多采用此策略。 缺点:因为每次请求只调入一页,增加了磁盘IO的启动频率,系统开销大。,2019/5/7,第四章 存储管理,2、从何处调入页面,请求分页系统中,外存分为文件区和对换区。 分三种情况: (1)系统有足够的对换区空间,在进程运行前,将与该进程有关的文件,从文件区拷贝到对换区,全部从对换区调入所需页面,调页速度快。,2019/5/7,第四章 存储管理,(2)系统缺少足够的对换区空间 不会被修改的文件,直接从文件区调入,换出时不写回,再调入时仍从文件区直接调入; 对可能被修改的部分,换出时换到对换区,再调入时从对换区调入。 (3)UNIX方式 未运行过的页面,都从文件区调入; 曾经运行过而又被换出的页面被放在对换区,再次调入时从对换区调入。 允许页面共享,某进程请求的页面有可能已被其它进程调入内存,不用再从对换区调入,2019/5/7,第四章 存储管理,3、页面调入过程,程序所要访问的页面未在内存时, 向CPU发出缺页中断, 由中断处理程序首先保留CPU环境,分析中断原因, 转入缺页中断处理程序。,2019/5/7,第四章 存储管理,4.7页面淘汰算法,理想淘汰算法最佳页面算法(OPT) 最近最久未使用页面淘汰算法(LRU) 先进先出页面淘汰算法(FIFO),2019/5/7,第四章 存储管理,1、最佳置换算法,最佳置换算法是一种理想化的理论算法,具有最好的性能,但在实际上却难于实现。 它选择永不使用的,或者是在最长时间内不再被访问的页面作为淘汰页面。但这是无法预知的,因而该算法无法实现。 它在固定分配页面方式中可保证获得最低的缺页率。 主要用于评价其他算法,2019/5/7,第四章 存储管理,2、先进先出页面置换算法,该算法总是淘汰最先调入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。 该算法实现时把一个进程已调入内存的页面按先后次序链接成一个队列,并设置一个替换指针,指向最老页面。 实现简单、性能差,2019/5/7,第四章 存储管理,3最近最久未使用(LRU),选择最后一次访问时间距离当前时间最长的一页并淘汰之 即淘汰最长时间没有使用的页 性能较好,实现代价很高 软件方法或硬件方法,2019/5/7,第四章 存储管理,LRU的硬件实现:,系统为每页设置一个寄存器R, 每当访问这一页时,将该页对应的寄存器R高位置1, 以后每个时间间隔将所有的R右移一位, R值越小,对应的页未被使用的时间越长。 当淘汰一页时就选择R值最小的页。 所以淘汰的是最久未使用的页。 R的位数越多越精确,但系统硬件成本也就越高。,2019/5/7,第四章 存储管理,LRU软件实现:,设置一个页号栈, 当一个页面被访问时,就立即将它的页号压入页号栈,并检查页号栈中是否有与刚压入栈顶的相同的页号,若有,则从页号栈中抽出原有的,以保证页号栈中无相同的页号。 当系统要淘汰一页时,总是从页号栈底取出一个页号淘汰,即淘汰的页是最久未使用的。,2019/5/7,第四章 存储管理,LRU软件实现:,2019/5/7,第四章 存储管理,某程序在内存中分配三个块,访问页的顺序为4,3,2,1,4,3,5,4,3,2,1,5,按FIFO、 LRU、OPT算法分别计算缺页次数 假设开始时所有页均不在内存,例1,2019/5/7,第四章 存储管理,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,2019/5/7,第四章 存储管理,访问顺序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 5 4 3 2 1 4 3 2 1 4 3 5 4 3 2 x x x x x x x x x x 共缺页中断10次,LRU,2019/5/7,第四章 存储管理,OPT 4 3 2 1 4 3 5 4 3 2 1 5 4 3 2 1 1 1 5 5 5 2 1 1 4 3 3 3 3 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4 4 x x x x x x x 共缺页中断7次,OPT,2019/5/7,第四章 存储管理,练习,某程序在内存中分配四个块,访问页的走向为4,3,2,1,4,3,5,4,3,2,1,5,按LRU、OPT算法分别计算缺页次数 假设开始时所有页均不在内存,2019/5/7,第四章 存储管理,LRU,4 3 2 1 4 3 5 4 3 2 1 5 页1 4 3 2 1 4 3 5 4 3 2 1 5 页2 4 3 2 1 4 3 5 4 3 2 1 页3 4 3 2 1 4 3 5 4 3 2 页4 4 3 2 1 1 1 5 4 3 x x x x x x x x 共缺页中断8次,2019/5/7,第四章 存储管理,OPT,4 3 2 1 4 3 5 4 3 2 1 5 页1 4 3 2 1 1 1 5 5 5 5 1 1 页2 4 3 2 2 2 2 2 2 2 5 5 页3 4 3 3 3 3 3 3 3 3 3 页4 4 4 4 4 4 4 4 4 4 x x x x x x 共缺页中断6次,2019/5/7,第四章 存储管理,LRU近似算法:Clock算法,在页表中增加一访问位, 每当访问一页时,将该页的访问位由硬件置1, 软件周期(T)性地将所有访问位置0。 在时间T内,访问过的页访问位为1,反之为0, 淘汰为0 的页。 缺点:T难定。 太小,访问位为0的页相当多,所选的不一定是最久未用的。 太大,所有页的引用位可能都为1,找不到合适的淘汰页。,2019/5/7,第四章 存储管理,2019/5/7,第四章 存储管理,改进型Clock置换算法,由访问位A和修改位M可以组合成下面四种类型的页面: 1类(A=0, M=0): 表示该页最近既未被访问, 又未被修改, 是最佳淘汰页。 2类(A=0, M=1): 表示该页最近未被访问, 但已被修改, 并不是很好的淘汰页。 3类(A=1, M=0): 最近已被访问, 但未被修改, 该页有可能再被访问。 4类(A=1, M=1): 最近已被访问且被修改, 该页可能再被访问。,2019/5/7,第四章 存储管理,最不经常使用(LFU),选择访问次数最少的页面淘汰之 与LRU的硬件解法类似。,2019/5/7,第四章 存储管理,页面缓冲算法(PBA: Page Buffering Algorithm ),页面缓冲算法中,被淘汰的页存放在两个链表(队列): 页面未修改的淘汰页空闲页链表(实质:空闲物理块链表) 页面已修改的淘汰页已修改页面链表。,2019/5/7,第四章 存储管理,当需要读入一个页面时,便利用空闲物理块链表中的第一个物理块来装入。 当有一个未被修改的页要换出时,并不将它换出内存,而是直接把它所在的物理块挂在空闲页链表的末尾。 换出一个已修改的页面时,则将其所在的物理块挂在修改页面链表的末尾。 注:换出页面时,页面在内存并不做物理上的移动,只是将页表中的表项移到上述两个链表之一中。,2019/5/7,第四章 存储管理,优点:可使已被修改的页面和未被修改的页面,都仍留在内存中。当进程以后再次访问这些页面时,就有可能只须花费较小的开销。 只有当被修改页面达到一定数量,例如64个页面时,再将它们一起写回到磁盘,从而显著地减少了磁盘IO的操作次数。,2019/5/7,第四章 存储管理,(1) 分配给进程的物理块数 (2) 页本身的大小 (3) 程序的编制方法(练习) (4) 页淘汰算法,影响缺页次数的因素,2019/5/7,第四章 存储管理,思考:分配给进程的物理块数增加缺页次数一定能够减少? 例2 有一虚拟存储系统,采用先进先出的页面淘汰算法。在内存中为每个进程分配3块。进程执行时使用页号的顺序为 4 3 2 1 4 3 5 4 3 2 1 5 (1) 该进程运行时总共出现几次缺页。 (2) 若每个进程在内存有4块,又将产生几次缺页。 (3) 如何解释所出现的现象。,2019/5/7,第四章 存储管理,FIFO 4 3 2 1 4 3 5 4 3 2 1 5 页1 4 3 2 1 4 3 5 5 5 2 1 1 页2 4 3 2 1 4 3 3 3 5 2 2 页3 4 3 2 1 4 4 4 3 5 5 x x x x x x x x x 共缺页中断9次,m=3,2019/5/7,第四章 存储管理,FIFO 4 3 2 1 4 3 5 4 3 2 1 5 页1 4 3 2 1 1 1 5 4 3 2 1 5 页2 4 3 2 2 2 1 5 4 3 2 1 页3 4 3 3 3 2 1 5 4 3 2 页4 4 4 4 3 2 1 5 4 3 x x x x x x x x x x 共缺页中断10次,m=4,2019/5/7,第四章 存储管理,m=3时,缺页中断9次, 缺页率9/12=75% m=4时,缺页中断10次, 缺页率10/12=83% FIFO页面淘汰算法会产生异常现象(称为Belady现象),即:当分配给进程的物理页面数增加时,缺页次数反而增加,2019/5/7,第四章 存储管理,练习:程序对缺页的影响,程序编制方法1: for j:=1 to 128 for i:=1 to 128 Ai,j:=0;,程序编制方法2: for i:=1 to 128 for j:=1 to 128 Ai,j:=0;,内存分配一页,初始时矩阵数据均不在内存; 页面大小为128个整数;矩阵A128X128按行存放。 这两个程序执行时分别会产生多少次缺页中断?,2019/5/7,第四章 存储管理,解,程序编制方法1: for j:=1 to 128 for i:=1 to 128 Ai,j:=0;,程序编制方法2: for i:=1 to 128 for j:=1 to 128 Ai,j:=0;,128*128,128,2019/5/7,第四章 存储管理,在虚存中,页面在内存与外存之间频繁调度,以至于调度页面所需时间比进程实际运行的时间还多,此时系统效率急剧下降,甚至导致系统崩溃。这种现象称为颠簸或抖动 原因: 页面淘汰算法不合理 分配给进程的物理页面数太少,颠簸(抖动),2019/5/7,第四章 存储管理,解决,基本思想:根据程序局部性原理,一般进程在一段时间内总是集中访问一些页面,这些页面称为活跃页面,如果分配给一个进程的物理页面数太少了,使该进程所需的活跃页面不能全部装入内存,则进程在运行过程中将频繁发生中断 如果能为进程提供与活跃页面数相等的物理页面数,则可减少缺页中断次数 对于给定的访问序列选取定长的区间,称为工作集窗口,落在工作集窗口中的页面集合称为工作集,2019/5/7,第四章 存储管理,例如,工作集 某段时间内进程使用过的页面的集合。N=10 5554777511623415341555343433312323444 控制缺页率范围,Ws(t1)=1,4,5,7 t1,Ws(t1)=3,4,5 t2,2019/5/7,第四章 存储管理,1、基本机制 2、分段共享 3、分段保护,4.8 虚拟段式存储管理,2019/5/7,第四章 存储管理,1、段表内容 增加: 存取方式:标识段的存取属性是只执行、只读或允许读写。 访问字段A:记录该段被访问的频繁程度。 修改位M:表示该段进入内存后,是否已被修改过。 存在位:指示是否已调入内存。 增补位:指示本段在运行过程中,是否进行过动态增长。 外存始址:指示本段在外存中的起始地址,即起始盘块号。,基本机制,2019/5/7,第四章 存储管理,2、缺段中断处理 检查内存中是否有足够的空闲空间 若有,则装入该段,修改有关数据结构,中断返回 若没有,内存中空闲区的总和是否满足要求?是,采用紧缩技术,转 ; 否,淘汰一(些)段,转 P139 图4-31 3、地址变换 P140 图4-32,基本机制,2019/5/7,第四章 存储管理,2019/5/7,第四章 存储管理,2、分段共享与保护,共享段表: 在系统中配置一张共享段表, 所有共享段都在共享段表中占有一表项, 表项中记录了共享段的段号和段长、内存始址、存在位等信息,并记录了共享此分段的每个进程的情况。 P140 图 4-33,2019/5/7,第四章 存储管理,(1)共享进程计数count 整型变量,记录共享该分段的进程数。 共享段只有当所有共享该段的进程全都不再需要它时,才由系统回收该段所占内存区。 (2)存取控制字段 不同的进程对同一共享段有不同的存取权限。 (3)段号 不同的进程可以使用不同的段号去共享该段。,共享段表项,2019/5/7,第四章 存储管理,例子,2019/5/7,第四章 存储管理,对第一个请求使用该共享段的进程, 由系统为该段分配一物理区,把共享段调入该区,将该区的始址填入该进程段表相应项中, 再在共享段表中增加一表项,填写有关数据,将count置为1; 其它进程再调用该共享段时, 在调用进程的段表中增加一表项,填入该共享段的物理地址, 在共享段的段表填上调用进程名、存取控制等,令count加1。,(1)共享段的分配,2019/5/7,第四章 存储管理,(2)共享段的回收,某个进程不再需要共享段时, 取消在该进程段表中共享段所对应的表项, 对共享段表中对应count执行-1操作。 若减1后不为0,则仅取消调用者进程在共享段表中的有关记录。 若减1后为0,则由系统回收该共享段的物理内存,取消该段在共享段表中所对应的表项;,2019/5/7,第四章 存储管理,3、分段保护,分段系统中常采用以下三种措施来确保信息的安全。 (1)越界检查 (2)存取控制检查 (3)环保护机构,2019/5/7,第四章 存储管理,(1)越界检查 段表寄存器存放段表长度信息; 段表中每个段表项记录有段长。 在进行存储访问时,若逻辑地址空间的段号等于或大于段表长度,段内地址等于或大于段长,都将产生地址越界中断信号。,2019/5/7,第四章 存储管理,(2)存取控制检查 “存取控制”字段规定的常用访问方式: 1)只读,只允许进行读访问; 2)只执行,只允许调用该段去执行 3)读/写,允许对该段进行读写访问。 共享段对不同的进程,赋予不同的读写权限。,2019/5/7,第四章 存储管理,(3)环保护机构 这是一种功能较完善的保护机制, 规定: 低编号的环具有高优先权,OS处于0环内: 重要的实用程序和操作系统服务在中间环; 一般的应用程序在外环。 程序可以访问驻留在相同环或较低特权环中的数据,可以调用驻留在相同环或较高特权环中的服务。,2019/5/7,第四章 存储管理,2019/5/7,第四章 存储管理,请求分页存储管理地址变换流程,

    注意事项

    本文(主存扩充虚拟内存.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开