操作系统笔记-第3章虚存管理演示

上传人:kms****20 文档编号:39619493 上传时间:2018-05-17 格式:DOC 页数:21 大小:324.50KB
返回 下载 相关 举报
操作系统笔记-第3章虚存管理演示_第1页
第1页 / 共21页
操作系统笔记-第3章虚存管理演示_第2页
第2页 / 共21页
操作系统笔记-第3章虚存管理演示_第3页
第3页 / 共21页
操作系统笔记-第3章虚存管理演示_第4页
第4页 / 共21页
操作系统笔记-第3章虚存管理演示_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《操作系统笔记-第3章虚存管理演示》由会员分享,可在线阅读,更多相关《操作系统笔记-第3章虚存管理演示(21页珍藏版)》请在金锄头文库上搜索。

1、13.5 分分页页存存储储管理管理 Paging(书书 P63)3.5.1 引言引言 同“实存”相对应的另外一类存储管理技术称为“虚拟存储”管理技术。虚拟存储概念的关键在于, 使运行进程的访问地址与主存的可用地址相脱离。 运行进程的访问地址叫做虚地址虚地址。在主存中的可用地址叫做实实地址地址。一个运行进程可以访问的 虚地址的范围叫做进进程的虚地址空程的虚地址空间间。在指定的计算机系统中,可使用的实地址范围叫做计计算机的算机的 实实地址空地址空间间。 用户全部程序和数据所组成的虚拟空间放在哪里呢?通常用一个大容量的外部存储器(磁盘、 磁鼓)来存放每个用户的虚拟空间的全部数据。所以实际上用户的虚拟

2、地址空间并不能增到无限大, 它受到两个条件的制约: 指令中的地址指令中的地址场长场长度的限制度的限制。因为进程访问的虚拟地址应限制在指令中地址场长度所能表 示的范围内; 外部存外部存储储器大小的限制器大小的限制。用户的虚拟空间不能超过外存中的作业存放空间。 综上所述,所谓虚拟存储器是一个地址空间,是进程访问的逻辑地址空间,而不是物理的主存 空间。虽然进程只访问虚地址,但是它们实际上必须在实存里运行。因此当当进进程运行程运行时时虚地址必虚地址必须须 映象成映象成为实为实地址地址。这种映象必须快速完成,否则计算机系统的性能就会降低到不能容忍的水平,从 而抵消了采用虚拟存储器概念而带来的许多好处。

3、决定作业虚拟地址空间中哪部分进入主存,哪能部分放回外存的工作由操作系统负责。具体来 说它包括三方面内容: 将作业的哪部分装入主存; 放在主存什么位置; 主存空间不足时,把哪部分置换出主存。实现虚拟存储的两个最普通的方法是分页和分段,这要在本章详细讨论。3 5 2 分分页页的基本概念的基本概念一、分一、分页页概念概念 1把用把用户户的的逻辑逻辑地址空地址空间间分成相同大小的分成相同大小的块块,每块顺序编号,称为“页”(Page,虚页)。每页中 指令顺序存放,页号为 0,1,2,3, 2等分主存等分主存:把主存也分成与页相同大小的块叫存储块(memory Block),也叫实页。块一旦定 下来就不

4、能改变。编号为 0,1,2,3, 3主存分配原主存分配原则则:分页情况下,每页装在一个存储块里,但连续的页面在内存空间中可以是不 连续的,哪儿有空白区就放在哪儿,所以作业在内存中存放,页与页之间不连续,每页的信息是连续 的。二、二、实现实现原理原理 这就要在主存中设一个页表,或叫页面映象表(Page map table)。为作业的每页设一条表目。2这张页表是当作业装入主存时,由系统根据分配情况建立的,而且是每个作业一张页表。系统 在主存的固定区域内,拨出一些存储区来存放这些页表(系统表),系统有了这张页表后,就可对作 业地址空间中的每一页进行动态重定位。 为了便于分页和简化地址变换过程,通常选

5、择页的大小为 2 的幂。 例如1K=1024=210 2K=2048=211 4K=4096=212 一般为 1K,页的尺寸太大,和可重定位分区分配没什么不同了,页的尺寸太小,页表就得加长, 太碎,调度增加,因此一般为 1-4K。 我们举一例子来说明分页技术下的动态地址变换过程: 假定机器字长为 16 位,其中 15 位为有效地址这样一表示,实际分页系统中用户的逻辑地址是一个有序对(P,W),P 是被访问项的页号,W 是 被访问项在页 P 内的位移量。 如果一条指令在用户地址空间为 100,即第 P=0 页,W=100;分到主存第 2 块(见上图),那么就 是在主存中页表查出,实地址为 204

6、8+100=2148 单元处。 如果指令是LOAD 1,3500 这 3500 的用户地址空间为 3072+428 查页表,3 页分到块 8(实页 8),即 8192 为起始地址,页偏移 428 处,实地址等于 8192+428=8620 处,找到数据 12345。04514页号页内相对地址(位移量)PW3在分页技术下的动态地址变换按如下方式进行:系统将作业的页表在主存的起始地址及页表长 度放到一个控制寄存器内,当执行指令时,访问用户地址(逻辑地址) 在页面映象表中找到页 3 对应实页(存储块 8),将实存地址与 W 相连接而形成。这就是主存的 物理地址 8620 由上述地址变换过程可以知道,

7、程序地址空间的分页是由系统自动完成的,用户不用管。地址 变换过程是通过页表来实现的。因此人们称页表为地址映射表。 总之分页管理技术是 作业分成页,页内连续,页号顺序; 主存分成块(和页大小一样),块顺序编号; 每页分配一块内存,在内存中可以是散放(可不连续放); 物理空间和逻辑空间不一致。 提供页面映射表(page map table),建立页和块之间的函数关系。 相对地址用(页号 P,页内位移量 W)表示。 页内位移量就是页内字节相对于该页第一字节的距离,我们称页内第一字节位移量为 0。 例 1:页大小=1000 字节 (十进制例子实际应是二进制) 105=(0,105) 4178=(4,1

8、78) 例 2:页大小=4K 字节 6000=(1,1904) 访内过程 LOAD 1,3500 先算出页号和页内移量,查 PMT 表,得出该页在内存的存储块号;根据块号算出绝对地址=块 号*块大小+位移量;访问绝对地址。三、三、 关于关于页页表的一些考表的一些考虑虑 1页表大小:这上面已讲过,是大页小表,还是小页大表。 况且要防止“越界”(页表长度页号超过页表长度叫越界) 2页表始址的选择:2n幂,为了快速根据页表始址和页号找到相应表目,如作业页长为 1024 字 节,则页长度为 210,第 i 道作业的页表始址 Pi=Ps+i*210 采用直接映象的分页地址变换:四、采用四、采用联联想存想

9、存储储器加快器加快查查表速度表速度 为了提高查表速度,在地址变换机构中加入一个高速、小容量的联想存储器(associative storage),它的速度比主存快约一个数量级(普通主存按地址查询速度是 1s,联想存储器查询速度 为 0.1s),构成一张所谓快表快表。这个联想存储器具有并行查寻能力。运行的程序访问逻辑地址 V=(P,W),为寻找页面 P联想存储器的每个表目都同时被检索。4它返回与页面 P 对应的块 P,并且 P与 W 连接,形成物理地址 r。注意进入:进入联想映象的 箭头实际上进入映象图的每个地址单元。这表明为与 P 匹配,联想存储器的每个地址单元都同时被 检索。这就是造成联想存

10、储器价格昂贵的原因。 采用联想存储器只要访问一次主存根据数据的绝对地址取数就可以取出指令或存取数据。 但实际上联想存储器价格太昂贵,不可能将页表全部放在联想存储器中实现纯粹联想映象,一 般都采用折中方案。 采用采用联联想映象与直接映象相想映象与直接映象相结结合的分合的分页页保存在这张表中的页面表目仅与最近访问的页相对应,其余放在主存中(也就是执行着的作业, 部分页表在联想存储器中,部分在内存中)。查页表时,先去联想映象(快),查不到再查主存页表。 联想存储器中的表目采用这种方法置换,当要执行下一页时,硬件淘汰一页,再进一页,采用“排队 先进先出”,全部由硬件线路自动完成。 只要设 8 个联想存

11、储器,成功率 85%,12 个93%,16 个97%,大部分都可在存储器中 找到表目(这种程序特性局部性,以后还介绍)5五、分五、分页页存存储储分配算法分配算法 为了实现分页存储器管理,OS 必须建立和管理三种表: 作业 table(JT)整个系统一张,每个作业有一对应表目 Memory Block Table(存储分块分配表 MBT) 整个系统一张,它指出每个存储块的状态,空白块链在一起 页表(Page map table)每个作业一张六六 、分、分页页存存储储管理的管理的优优缺点缺点 优:不需紧缩(拼接)就消除了碎片,提高了存储利用率与 CPU 利用率,提高了多道程度。 可以共享:借助不同

12、进程的页面映象表的表目指向同一实页的方法,则那个实页就可在这些进 程中间共享。共享有效地减少了运行一组进程所需要的主存容量,可能使一个给定的系统去支持更 多的用户。 缺: 增加动态变换机构,成本,速度。 多占内存来放 PMT 表,并花费 CPU 时间建立和管理表格。 在分页系统中,是把主存分成固定尺寸的实页,这些实页应该是多长?分页的页面应该是多长, 各种计算机系统是不同的(教材 P86) 仍有页内碎片,平均浪费半页 静态分页管理仍需把作业全部放入内存,有些无用信息也得存入。3 5 3 请请求求页页式存式存储储管理管理 一、基本思想一、基本思想 在作业运行之前,不限定把作业的整个地址空间全部装

13、入主存,而只要求把当前需要的一部分 装入主存,只要能运行即可。 把一个作业的部分程序装入机器是可以运行的,产生的问题是 遇到要使用的“页”不在内存怎么办? OS 如何知道此“页”不在内存; 此页不在内存,又马上需要,应从外存调入,如此时内存没有空白块,需从内存撤出一页, 腾出空白放新调入的一页,但怎么挑,撤哪一页。会不会发生紧接着要用撤出页的信息的可能?产6生“页页面抖面抖动动”现象? 这是目前最有吸引力的办法(请求页式存储管理技术)。称之为“虚拟存储”技术。 将“请求页式存储管理技术”称为虚拟存储技术是因为把内存和外存当作同一级存储器使用。用 户作业不需要把全部作业放入内存就可以在内存运行仅

14、把当前需要部分放入内存,其余放在次存, 当需要时调入主存,这样多大的作业也可以运行,给用户印象是内存无限大。我们把作业地址空间 称为“虚拟空间”,虚存在作业地址空间划分的页称为“虚页”;相应把主存称为“实存”,把实存中的分 块称为“实页”。二、二、实现实现原理原理 关于作业地址空间分页,实存分块和上一节完全一样,要有 页面映象表(PMT)每个作业一个; 存储分块表(MBT)整个系统一个; 作业表(JT)整个系统一个,每个作业有一对应表目; 增加外页面表(文件映象表 File Map Table)实现请求页式存储管理,要解决两个问题:如作业运行, 访问到某页不在主存中 如何发现; 如何处理(调入

15、)。 第一个问题,用扩充页表的项目解决:页号存储块号中断位辅存地址引用位修改位存取控制中断位(interrupt bit)I=1 表示虚页不在主存,自动触发“缺页中断”(不可屏蔽的中断),CPU 必 须处理中断,到外页面表中去找到此页,然后调入内存。I=0 虚页在主存。 第二个问题,解决比较复杂: 当被访问的页不在主存时,由动态地址变换机构产生一缺页中断信号,OS 进行中断处理后,根 据这页的辅存地址把它从辅存调入主存,然后作业继续运行。由于作业的各页是根据请求而装入主 存,所以叫请求页式存储管理。 可是新调进的页应放在什么地方? 如主存有空白块,可以把它装入任何一个空白块中。随后把此块号填入

16、作业页表相应表目,并 改变它的中断位 I=0,如果此时存储空间已满,则必须先淘汰已在主存中的页。这有个算法问题(下 面还要介绍)。被淘汰的页是直接被新页覆盖了还是重新写回外存(磁盘),这要看这页是否被修改 过。如没修改过,主存的页内容和外存页的内容一样,新页直接覆盖它即可;如修改过,就得写回磁 盘, 为了帮助有关软件作出页面置换决定,在页表中还增加: 引用位引用位如果此块装入主存后被访问过,此位自动为(程序设计认为凡是用过的页下次 可能还用,没用过的可能不用,这叫程序执行的局部特性)。 虚拟存储管理策略的基础是局部性原理局部性原理进程往往会不均匀地高度局部化地访问内存。 (教 材 P84) 局部性表现为时间局部性与空间局部性两种: 时间时间局部性局部性是对于时间的局部性意思最近被访问的存储位置,很可能不久将来还要访问 例如 a)循环 b)子程序 c)栈 d)用于计数和总计的变量

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号