文档详情

主存扩充虚拟内存.ppt

发布:2017-02-15约8.77千字共71页下载文档
文本预览下载声明
第四章 存储管理 4.5 主存扩充(虚拟内存) 为了使程序员在编程时不受内存的结构和容量的限制,系统为用户构造一种存储器,其结构可能与内存结构不同,容量可能远远超过内存的实际容量。 这种面向编程的存储器称为虚拟存储器。 由虚存构成的存储空间称为虚存空间,或称虚地址空间。 程序局部性原理 时间局部性 一条指令被执行了,则在不久的将来它可能再被执行 空间局部性 若某一存储单元被使用,则在一定时间内,与该存储单元相邻的单元也可能被使用 实现虚拟内存的基本原理 将程序正在使用的部分内容放在内存,暂时不用的部分放在外存,在需要时由系统调入内存,并将不需要(或暂不需要)的部分调出内存。 由操作系统结合相关硬件来完成上述工作 计算机好象为用户提供了一个容量远大于内存的存储器,这个存储器称为虚拟存储器。 4.6虚拟页式存储管理 1、基本思想 在进程开始运行之前,不是装入全部页面,而是装入几个或零个页面,之后根据进程运行的需要,动态装入其它页面; 当内存空间已满,而又需要装入新的页面时,则根据某种算法淘汰某个页面,以便装入新的页面 2、页表表项 页号、内存块号、驻留位、外存地址、访问位、修改位 驻留位:表示该页是在内存还是在外存 访问位:根据访问位来决定淘汰哪页(由不同的算法决定) 修改位:查看此页是否在内存中被修改过 3、缺页中断(Page Fault)处理 在地址映射过程中,在页表中发现所要访问的页不在内存,则产生缺页中断。 操作系统接到此中断信号后,就调出缺页中断处理程序,根据页表中给出的外存地址,准备将该页调入内存 此时应将缺页的进程挂起(调页完成再唤醒) 缺页中断与一般中断都是中断 相同点: 保护现场 中断处理 恢复现场 不同点: 一般中断是一条指令完成后中断,缺页中断是一条指令执行时中断 一条指令执行时可能产生多个缺页中断。如指令可能访问多个内存地址,这些地址在不同的页中。 4.6.2 页面分配策略和算法 为进程分配物理块要解决三个问题: 第一,确定最少物理块数; 第二,分配的物理块数目是否可变; 第三,不同的进程所分配的物理块数是否相同 1、最小物理块数 最少物理块数是指能保证进程正常运行所需的最少物理块数。若少于此值时,进程将无法运行。 进程应获得的最少物理块数与计算机的硬件结构有关,取决于指令的格式、功能和寻址方式 2、页面分配和置换策略 两种分配策略:固定分配 和 可变分配。 两种置换策略:全局置换 和 局部置换。 组合后有三种方式: 固定分配局部置换 可变分配全局置换 可变分配局部置换 固定分配局部置换 (1)基于进程的类型或根据程序员的要求,为每个进程分配一定数目的内存空间,如M个页框,在整个运行期间都不再改变。 (2)发现缺页时从该进程在内存的M个页面中选出一页换出。 存在问题:一定数目的内存空间难以确定, 太少,会频繁地出现缺页中断; 太多,使内存中驻留的进程数目减少。 可变分配全局置换 (1)OS保持一个空闲物理块队列,先为每个进程分配一定数目的物理块。 (2)发现缺页时,由系统从空闲物理块队列中,取出一物理块分配给该进程,并将欲调入的缺页装入其中。 (3)当空闲物理块队列中的物理块用完时,才从内存中选择一页调出,该页可能是系统中任一进程的页。 是最易于实现的一种策略。 可变分配局部置换 先根据进程的类型或程序员的要求,为每个进程分配一定数目的物理块; 发生缺页时,只从该进程在内存的页面中选出一页换出。 如果频繁地发生缺页中断,则再为之分配若干物理块,直至缺页率减低到适当程度为止;反之,若缺页率特别低,则适当减少物理块。 3、物理块分配算法 平均分配算法 按比例分配算法 考虑优先权的分配算法 平均分配算法 将可供分配的物理块,平均分配给各个进程。 这种方式未考虑到各进程本身的大小,表面公平造成实际不公平。 按比例分配算法 根据进程的大小按比例分配物理块。 n个进程,每个进程的页面数是Si,则系统中页面总数为: 考虑优先权的分配算法 为优先权高的分配较多的内存空间。 通常把内存中可供分配的物理块分成两部分: 一部分按比例地分配给各进程; 一部分则根据各进程的优先权应适当增加的物理块数,分配给各进程。 4.6.3 页面调入策略 1、何时调入页面 2、从何处调入页面 3、页面调入过程 1、何时调入页面 预调页 和 请求调页 (1)预调页策略 预调页策略以预测为基础,将那些预计在不久之后便会被访问的程序或数据所在的页面预先调入内存,如一次调入若干个相邻的页。 但预测很难准确,所以预调页的成功率仅约一半。这种策略主要用于进程的首次调入时,由程序员指出应该先调入哪些页。 (2)请求调页策赂 即进程在运行中发现所要访问的页面不在内存时,立即提出请求,由系统
显示全部
相似文档