置换算法的描述.ppt

置换算法的描述.ppt

2. 动态重定位的实现 动态装入方式中,内存中的作业仍是相对地址,在程序执行时,才转换为绝对地址 为加快转换速度,增设重定位寄存器,用于存放起始地址 在小分区“拼凑”时,不需对程序作任何修改 快表也叫“联想寄存器”,IBM系统中也称“TLB” CPU给出有效地址,先查快表,若找到则直接读物理块,若没找到则找内存中的页表,并把表项送到快表中,若快表满则找不再需要的页表项换出。 两级页表采用离散分配空间的方法,但并没有减少页表所占空间。 故采用只将当前需要的页表调入内存,以后再根据需要陆续调入。 在外层页表中增设一个状态位S,若为0表示页表不在内存,若为1表示在内存。 2. 段表 为每一个段分配一个连续分区 各个段离散地放在内存中不同的分区中 建立一段表,用于从逻辑段到物理内存区的映射 段表中的表项存放段的基址和段的长度 段表通常放在内存中 4.3.3 两级和多级页表 一般计算机系统逻辑地址空间(232~264),页表就变得非常大,要占很大内存空间。 如,一个32位逻辑地址空间的分页系统,页面大小为4 KB即212 B,则每个进程页表中的页表项可达1兆个。每个页表项占一个字节, 其页表就要占用1MB的内存空间,而且还要求是连续的。 可以采用这样两个方法来解决这一问题: ① 采用离散分配方式来解决难以找到一块连续的大内存空间的问题: ② 只将当前需要的部分页表项调入内存, 其余的页表项仍驻留在磁盘上,需要时再调入。 1. 两级页表(Two-Level Page Table) 逻辑地址结构可描述如下: 图 4-14 两级页表结构 图 4-15 具有两级页表的地址变换机构 2. 多级页表 对于64位的机器,如果页面大小仍采用4 KB,此时在外层页表中可能有4096 G个页表项, 要占用16384 GB的连续内存空间。 必须采用多级页表,将外层页表再进行分页。 对于64位的计算机,如果要求它能支持264(=1844744 TB)规模的物理存储空间,则即使是采用三级页表结构也是难以办到的;而在当前的实际应用中也无此必要。 4.4 基本分段存储管理方式 4.4.1 分段存储管理方式的引入 引入分段存储管理方式, 主要是为了满足用户和程序员的下述一系列需要: 1) 方便编程  (按逻辑关系分段) 2) 信息共享  (以段为逻辑单位,便于共享,如函数) 3) 信息保护 4) 动态增长 (便于段(数据段)的增长) 5) 动态链接  (目标程序)段动态链接 4.4.2 分段系统的基本原理 1. 分段 分段地址中的地址具有如下结构: 段内地址 段号 31 16 15 0 按主程序,子程序,数据,栈等分段 每段从0开始编号,段长不定 图 4-16 利用段表实现地址映射 图 4-17 分段系统的地址变换过程 3. 地址变换机构 4. 分页和分段的主要区别 (1) 页是信息的物理单位,分页是为实现离散分配方式,分页仅仅是由于系统管理的需要而不是用户的需要。   段则是信息的逻辑单位,它含有一组其意义相对完整的信息。 分段的目的是为了能更好地满足用户的需要。 (2) 页的大小固定且由系统决定,由系统把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的;   而段的长度却不固定,通常由编译程序在对源程序进行编译时,根据信息的性质来划分。 (3) 分页的作业地址空间是一维的,即单一的线性地址空间,程序员只需利用一个记忆符,即可表示一个地址;   而分段的作业地址空间则是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。 4.4.3 信息共享 图 4-18 分页系统中共享editor的示意图 图 4-19 分段系统中共享editor的示意图 4.4.4 段页式存储管理方式 1. 基本原理 图 4-20 作业地址空间和地址结构 图 4-21 利用段表和页表实现地址映射 2. 地址变换过程 图 4-22 段页式系统中的地址变换机构 4.5 虚拟存储器的基本概念 4.5.1 虚拟存储器的引入 1. 常规存储器管理方式的特征 一次性。(全部装入,但浪费空间) (2) 驻留性。 (长期驻留,直到结束) 2. 局部性原理 早在1968年, Denning.P就曾指出: (1) 程序执行时,除了少部分的转移和过程调用指令外, 在大多数情况下仍是顺序执行的。

文档评论(0)

1亿VIP精品文档

相关文档