计算机操作系统-存储器管理.ppt

  1. 1、本文档共173页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在分页系统中,允许进程的每一页离散地存储在内存的任一存储块中,为方便查找,系统为每一进程建立一张页面映像表,简称页表。页表实现了从页号到物理块号的地址映射。 在页表表项中常设置一存取控制字段,对存储块内容加以保护。 在分段式存储管理系统中,系统为每个分段分配一个连续的分区,而进程中的各个段可以离散地移入内存中不同的分区中。 程序执行时,除了少部分的转移和过程调用指令外,在大多数情况下仍是顺序执行的。 过程调用将会使程序的执行轨迹由一部分区域转至另一部分区域,但研究表明,过程调用的深度在大多数情况下不超过5。 程序中存在许多循环结构,由少数指令构成,但会多次执行。 程序中对许多数据结构的处理,往往都局限于很小的范围内 基于局部性原理,应用程序在运行前,没有必要全部装入内存,仅将当前要运行的部分页面或段先装入内存即可运行,其余部分暂留在外存上。程序运行时,如果要访问的页(段)已调入内存,便可继续执行;如果尚未调入内存(称为缺页或缺段),此时程序应利用OS所提供的请求调页(段)功能,将它们调入内存,使程序继续执行。如果内存已满,无法再装入新的页(段),还必须利用页(段)的置换功能,将内存中暂时不用的页(段)调至外存,腾出足够的内存空间后,再将要访问的页(段)调入内存,使程序继续执行。 UNIX方式:与进程有关的文件放在文件区,故未运行的页面应从文件区调入。曾经运行但又被换出的页面被放在对换区,下次调入应从对换区调入。进程请求的共享页面可能已被其他进程调入,无需再从对换区调入。 1.抖动产生的原因 见右图 2.预防方法 局部置换策略 引入工作集算法 L=S准则 调整多道程序度,使产生缺页的平均时间(L)等于系统处理缺页的平均时间(S) 挂起若干进程等 4.8.3 抖动产生的原因和预防方法 CPU利用率 多道程序度 第四章 存储器管理 4.1 程序的装入和链接 4.2 连续分配方式 4.3 基本分页存储管理方式 4.4 基本分段存储管理方式 4.5 虚拟存储器的基本概念 4.6 请求分页存储管理方式 4.7 页面置换算法 4.8 请求分段存储管理方式 4.8 请求分段存储管理方式 4.8.2 分段的共享和保护 4.8.1 请求分段中的硬件支持 4.8.1 请求分段中的硬件支持 1. 段表机制 在请求分段系统中所需要的主要数据结构是段表。由于在应用程序的许多段中,只有部分段装入内存,其余的一些段仍留在外存上,故需在段表中增加若干项,以供程序在调进、调出时参考。 请求分段系统中的段表项: (1) 存取方式:用于标识本分段的存取属性。 (2) 访问字段A:用于记录本段被访问的频繁程度。 (3) 修改位M:表示该段在调入内存后是否被修改过。 (6) 外存地址:用于指出该段在外存上的起始地址(盘块号)。 段名 段长 段的基址 存取方式 访问字段A 修改位M 存在位P 增补位 外存始址 (4) 存在位P:指示该段是否已调入内存。 (5) 增补位:用于表示该段在运行中是否做过动态增长。 4.8 请求分段存储管理方式 4.8.1 请求分段中的硬件支持 2. 缺段中断机构 在请求分段系统中,每当发现运行进程所要访问的段尚未调入内存时,便由缺段中断机构产生一缺段中断信号,进入OS后由缺段中断处理程序将所需的段调入内存。缺段中断同样需要在一条指令的执行期间,产生和处理中断,以及在一条指令执行期间,可能产生多次缺段中断。但不会出现一条指令被分割在两个分段中或一组信息被分割在两个分段中的情况。 请求分段系统中的中断处理过程 3. 地址变换机构 请求分段系统中的地址变换机构,是在分段系统地址变换机构的基础上形成的。因为被访问的段并非全在内存,因而在地址变换时,若发现要访问的段不在内存,必须先将所缺的段调入内存,并修改段表,然后才能利用段表进行地址变换。在地址变换机构中需增加缺段中断的处理及请求等功能。 请求分段系统的地址变换过程 4.8.2 分段的共享和保护 1. 共享段表 为了实现共享,可在内存中配置一张共享段表,所有各共享段都在共享段表中占有一表项。 (1) 共享计数count:共享段为多个进程所需要,当某进程不再需要它而释放它时,系统并不回收该段所占内存区,仅当所有共享该段的进程全都不再需要它时,才由系统回收该段所占内存区。设置count用于记录有多少个进程需要共享该分段。 (2) 存取控制字段:对于一个共享段,应给不同的进程以不同的存取权限。 (3) 段号:对于一个共享段,不同的进程可以各用不同的段号去共享该段。 … 外存始址 状态 内存始址 段长 段名 存取控制 段号 进程号 进程名 状态 … … … … … 共享

文档评论(0)

151****0104 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档