- 1、本文档共160页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
N计算机操作系统教程第四章(B)讲述
对换技术(Swapping) 用于解决内存不足的问题; 通过外存缓冲,以进程为单位“滚进滚出” 。一个作业的所有进程不必同时位于内存中; 对换的时机:创建新进程而内存不足时。 实存扩充技术 实存扩充技术 覆盖技术(Overlay) 一个作业的若干程序段(或数据段)间,或几个作业的某些部分间共享主存空间。 覆盖区——覆盖段:覆盖描述语言(ODL) 操作系统的“非常驻内存”部分,常采用此技术运行。 分页系统的地址变换机构 地址变换机构 * * * * * * * * * * * * * * * * * * * * * 请求分页策略 何时调入页面的问题 预调页策略:首次调入内存时 请求调页策略:运行中的发生缺页现象时 从何处调入页面的问题 “文件区” 与“对换区”: 页面的调入过程 响应中断、保存CPU环境、查找页表(快表),得到该页在外存中的块号,启动磁盘IO读入;如果内存已满,先置换,在调入;最后修改页表(快表)对应项的内容。 第七节??页面置换算法 先进先出 最佳置换算法 最近最久未使用(LRU)置换算法 Clock置换算法 最少使用(LFU)置换算法 页面缓冲置换算法 先进先出 选择最先进入系统的页淘汰出去 Belady现象 分配的页架增加,缺页中断也增加 特点: 实现简单 与进程实际的运行不相适应 最佳置换算法 选择以后永远(相比之下,最长时间)不会被使用的页淘汰出去。 特点: 理论上,性能最佳; 实际上,无法实现; 通常只用在研究其它算法时,做参考评价。 最近最久未使用(LRU)置换算法 选择最近最久未被使用(访问)的页淘汰出去。 特点: 性能较好, 实现复杂,需要硬件支持(每页配置一个寄存器、栈),增加系统负担。 Clock置换算法 每页设置一位访问位,内存中的所有页链接成一个循环队列; 循环检查各页面的使用情况,访问位为“0”,选择该页淘汰;访问位为“1”,复位访问位为“0”,查询指针前进一步。 又称为“最近未使用”置换算法(NRU) 改进: 访问位A,修改位M共同表是一个页面的状态 四种状态:00 01 10 11 三轮扫描:第一轮:查找00页面,未找到,下一步;第二轮:查找01页面,A位复位为“0”,未找到,下一步;第三轮:查找10页面,未找到,重复第一步。 最少使用(LFU)置换算法 选择在最近时期使用最少的页面淘汰。 需要为内存中的每个页架设置一个移位寄存器,用来记录该页面被访问的频率。 每次访问某页时,便将该移位寄存器的最高位置1,此后每隔一定时间自动右移一位。 页面缓冲置换算法 消除频繁的磁盘I/O 空闲页面链表,不需写回磁盘,装入新页面时,在该表中选择一个页架。 已修改页面链表,该链表中的页面数达到一定数目时,才集中写回到磁盘上。 请求分段存储管理方式 以基本分段内存管理为基础,程序运行前,只需先调入部分分段,便启动执行。其它分段在需要时,通过缺段中断处理程序临时调入。 请求分段中的硬件支持 请求分段中的分段共享 请求分段中的分段保护 请求分段中的硬件支持 段表机制 段号(名)、段长、段的基址、外存始址 存取方式、访问字段A、修改位M、存在位P、增补位 缺段中断机构 以信息分段为单位操作。由于分段不定长,处理较缺页中断复杂。 地址变换机构 在基本分段系统地址变换机构的基础上形成,增加了分段不在内存时的缺段中断请求。 请求分段中的分段共享 共享段表 共享段的段名/号、段长、内存始址、存在位、共享进程计数器 共享此分段的各进程信息:进程名/号、段号、存取控制 共享段的分配与回收 填写共享段表 仅当共享进程数Count=0时,才回收 请求分段中的分段保护 越界检查 段表寄存器:段表始址、段表长度 段号——段表长度、段长——段内地址 存取控制检查 存取控制字段(用户级别) 只读、只执行、读/写 环保护机构 可以访问驻留在相同环或较低特权环中的数据; 可以调用驻留在相同环或较高特权环中的服务。 Linux中的内存管理技术采用的是段页式虚存技术 4.6 Linux内存管理 每段有一个8字节的段描述符,指出该段的起始地址、长度和属性等信息,这些段描述符的集合构成段描述符表,通过一个寄存器指出该表的起始位置 进程地址空间是大小为4G的线性虚拟空间 4.6.1 进程的地址空间 0到3GB的虚址是用户空间,进程可以直接访问 用户空间 内核空间 3G到4GB的虚址是内核空间,存放内核代码和数据,进程不能直接访问。 所有进程从3GB到4GB的虚拟空间均一样, Linux以此方式使内核态进程共享代码段和数据段 进程的虚拟内存 1. Linux的分段机制 4.6.2 Linux的分段和分页机制 将线性地址空间分段,存储代码和数据 Linux工作在保护模式下 80386虚地址空间可达
文档评论(0)