- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
哈工程考研课件-第4章虚拟存储器
4.7.3 页面调入策略 4.7.4 页面置换算法 课后题 P142 16、17、18、19 4.8.2 分段的共享与保护 4.8.3 段的动态链接 4.10 CPU高速缓冲 1. 工作原理 2.高速缓冲的分级 3.CPU高速缓冲的重要性 4.8 请求分段存储管理方式 4.8.1 硬件支持及工作过程 1、段表内容 增加:存在位(在/不在内存, 是否可共享), 存取权限位(只执行,只读, 可读写),访问位(被访问的情况),修改位(是否修改过, 能否移动), 增补位(是否做过动态增长), 外存始址。 2、越界中断处理 进程在执行过程中, 有时需要扩大分段, 如数据段; 由于要访问的地址超出原有的段长, 发出越界中断; 操作系统处理中断时, 首先判断该段的扩充位,如可扩充, 则增加段的长度; 否则按出错处理。 缺段中断处理过程 从外存读入段S 修改段表及空闲链 唤醒请求进程 进行紧凑 形成合适空区 阻塞请求进程 空闲和能满足? 有合适空闲区? 返回 虚段S不在内存 淘汰实段 形成合适空区 N Y N Y 3、缺段中断处理 检查内存中是否有足够的空闲空间 ① 若有, 则装入该段, 修改有关数据结构, 中断返回 ② 若没有, 检查内存中空闲区的总和是否满足要求,是则应采用紧缩技术, 转a; 否则, 淘汰一些段, 转① 4、地址变换 请求分段系统的地址变换机构, 是在分段系统的地址变换机构基础上, 增加缺段中断的请求和处理等功能,当发现要访问的段不再内存时, 必须将该段调入内存并修改段表, 然后才能用段表进行地址变换。 分段存储管理方式便于实现分段的共享与保护, 只需在每个进程的段表中用相应的表项指向共享段在内存的起始地址。为了管理好共享段, 系统配置相应的数据结构作为共享段表。 共享段表 共享段的分配和回收 分段保护 1. 共享段表 系统为所有共享段配置一张共享段表, 每个共享段在该表中占一个表项, 其中记录了段号、段长、内存始址、存在位等信息, 同时还记录了共享进程计数和共享此分段的每个进程的情况。 段号 段长 内存始址 存在位 外存始址 共享进程计数count 状态 进程名 进程号 段号 存取控制 … … 共享段表 共享段表项 2. 共享段的分配和回收 共享段的分配 对第一个请求使用该共享段的进程, 系统为该共享段分配一物理区并把共享段调入该区, 同时把该区的始址填入该进程的段表中, 还需在共享段表中增加一表项, 填写有关信息, 把count置为1。 当又有其它进程要访问该共享段时, 只需在访问进程的段表中增加一表项, 填入该共享段的物理地址; 并在共享段表的对应表项中, 填写调用进程名和存取控制等, 再执行count:= count+1 操作。 共享段的回收 取消该进程的段表中共享段所对应的表项,并执行count:= count-1, 结果为0则回收共享段的内存并取消该进程在共享段表中对应的表项; 否则仅取消该进程在共享段表中对应的纪录。 3. 分级保护 各分段在逻辑上是独立的, 容易实现信息保护 越界检查 在分段系统的地址变换机构中, 段表寄存器和段表项都有段长度信息, 越界时会发出越界中断。 存取控制检查 段表项中设置了存取控制字段, 其访问方式有: 只读、只执行、允许读写 环保护机构 它是一种优先权保护机制, 规定低编号的环具有高优先权, OS核心处于0环内, OS服务在中间环, 一般的应用程序安排在外环上。调用和访问遵循: 程序可访问驻留在相同环或较低优先权环中的数据 程序可调用驻留在相同环或较高优先权环中的服务 为了程序能正确执行, 程序的各段必须由连接装配程序把它们链接成一个可运行的目标程序, 有两种方法: 静态链接: 在程序运行前都链接好并装入内存。 问题:花费时间,浪费空间 动态链接: 程序边链接边运行 优点:节省时间和空间, 可在较小的内存上运行较大的程序, 用不到的段不用链接页不用调入内存。尤其是对于大型程序优点更突出。 1. 段的动态链接 由于一些熟知的事实: 大型程序一般分为多个程序段和多个数据段 进程的某些程序段在进程运行期间可能根本不用 互斥执行的程序段没有必要同时驻留内存 有些程序段执行一次后不再用到 所以, 没有必要在在程序运行前都链接好, 程序开始运行时, 只将主程序段装配好并调入内存, 其它各段的装配是在运行过程中逐步完成的。每当需要调用
文档评论(0)