- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章(2) 虚拟存储器(Virtual Memory) 由前面的讲述可知:一个进程运行时,与该进程相关的程序和数据将全部驻留在内存中。结果会出现二个问题: 4.6.1 虚拟存储器的基本概念 出现局部性规律的原因可以归结为以下几点: 程序在执行时,除了少部分的转移和过程调用指令外,大多数仍是顺序执行的。 子程序调用将会使程序的执行由一部分内存区域转至另一部分区域。但在大多数情况下,过程调用的深度都不超过5。 程序中存在许多循环结构,循环体中的指令被多次执行。 程序中还包括许多对数据结构的处理,如对连续的存储空间—数组的访问,往往局限于很小的范围内。 如果此时内存已满,无法再装入新的页(段),则还须再利用页(段)的置换功能,将内存中暂时不用的页(段)调出至磁盘上,腾出足够的内存空间后,再将所要访问的页(段)调入内存,使程序继续执行下去。这样,便可使一个大的用户程序在较小的内存空间中运行;也可使内存中同时装入更多的进程并发执行。从用户角度看,该系统所具有的内存容量,将比实际内存容量大得多,人们把这样的存储器称为虚拟存储器。 4.6.2 虚拟存储器实现方式 1、请求分页系统: 它是在分页系统的基础上,增加了请求调页功能和页面置换功能所形成的页式虚拟存储系统。它允许只装入若干页(而非全部程序)的用户程序和数据,就可以启动运行,以后再通过调页功能和页面置换功能,陆续把将要运行的页面调入内存,同时把暂不运行的页面置换到外存上,置换时以页面为单位。 3、请求段页式系统: 它是在段页式系统的基础上,增加了请求调页和页面置换功能所形成的段页式虚拟存储系统。 4、虚拟存储器的特征 离散性:指在内存分配时采用离散的分配方式,它是虚拟存储器的最基本的特征。 4.7 请求分页存储管理方式 缺页中断在指令执行期间产生和处理中断信号,而一般中断在一条指令执行完后检查和处理中断信号。 缺页中断返回到该指令的开始重新执行该指令,而一般中断返回到该指令的下一条指令执行。 一条指令在执行期间,可能产生多次缺页中断。 4.7.2 页面分配 首先考虑一个问题:系统应当为每个活动进程分配多少个页架(物理块)? 在使用虚拟存储分页技术的系统中,一个进程的驻留集(Resident Set)是指,该进程驻留在内存中的页面所组成的集合。它也叫工作集。 讨论: 分配给每个活动进程的页架数越少,每个活动进程在其运行过程中发生缺页中断的概率就越大。这是缺点。优点是进入内存的进程数多,提高并发度。 分配给每个活动进程的页架数超过一定限度时,多余的页架并不能显著地降低每个活动进程在其运行过程中发生缺页中断的概率。 2、页面的分配和置换策略 在请求分页系统中,可采取两种内存分配策略,即固定和可变分配策略。在进行置换时, 也可采取两种策略,即全局置换和局部置换。 固定分配策略 (Fixed-Allocation Policy) 分配给每个活动进程的页架数在进程的生命周期内是固定不变的。 全局置换策略 (Global Replacement Policy) 当系统欲装入某个进程的某个页面时,如果内存中的所有页架已经全部用完,那么系统将认为当前已经没有空闲页架可以分配给新的页面;此时,系统将从当前驻留在内存中的所有页面中选择一个页面移出内存。 可变分配全局置换策略: 系统为每个进程分配一定数目的物理块,而OS本身也保持一个空闲物理块队列。 当某进程发现缺页时,由系统从空闲物理块队列中,取出一物理块分配给该进程,并将欲调入的缺页装入其中。当空闲物理块队列中的物理块用完时,OS可以从所有页面中选择一页调出。 可变分配局部置换: 系统随时根据性能的需要而增加或减少分配给每个活动进程的页架数;当系统欲把某个进程的某个页面装入内存而分配给该进程的页架数又已全部用完时,系统将在该进程的当前驻留集中选择一 个页面移出内存。 考虑优先权的分配算法: 该方法是把内存中可供分配的所有物理块分成两部分:一部分按比例分配给各进程;另一部分则根据各进程的优先权,适当地增加其相应份额后,分配给各进程。 请求调页策略是指当进程在运行中发生缺页时,就立即提出请求,由 OS 将缺页调入内存。目前的虚拟存储器中,大多采用此策略。但这种策略在调页时须花费较大的系统开销(因为每次只调入一个页面),故需频繁启动磁盘I/O。 2、从何处调入页面 在虚拟存储系统中,外存(硬盘)常常被分成两部分:文件区(用于存放文件)和对换区(用于存放对换页面)。通常,对换区的磁盘I/O速度比文件区要高。 (2)、系统缺少足够的对换区空间,这时凡是不会被修改的文件,都
文档评论(0)