计算机操作系统(第四版)第四章分页与分段存储管理

上传人:xmg****18 文档编号:112829469 上传时间:2019-11-07 格式:PPT 页数:39 大小:1,003.50KB
返回 下载 相关 举报
计算机操作系统(第四版)第四章分页与分段存储管理_第1页
第1页 / 共39页
计算机操作系统(第四版)第四章分页与分段存储管理_第2页
第2页 / 共39页
计算机操作系统(第四版)第四章分页与分段存储管理_第3页
第3页 / 共39页
计算机操作系统(第四版)第四章分页与分段存储管理_第4页
第4页 / 共39页
计算机操作系统(第四版)第四章分页与分段存储管理_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《计算机操作系统(第四版)第四章分页与分段存储管理》由会员分享,可在线阅读,更多相关《计算机操作系统(第四版)第四章分页与分段存储管理(39页珍藏版)》请在金锄头文库上搜索。

1、复习,逻辑地址 物理地址 单一连续分配 分区分配 固定分区(静态) 动态分区(可变),为了改善连续分配方式中的“碎片”问题,而引入了离散分配方式:允许将一个进程直接分散地装入到许多不相邻接的分区中。 分页存储管理 分段存储管理,基本分页存储管理方式,基本原理 存储空间的分配与去配 页表与地址转换 快表 页的共享与保护,基本原理,分页存储管理是解决存储零头的一种方法。 动态重定位是解决存储器零头问题的一种途径,但要移动大量信息花去不少处理机时间,代价比较高,这是因为这种分配要求把作业必须安置在一连续存储区内的缘故,而分页存储管理正是要避开这种连续性要求。分页存储管理允许将一个进程直接分散地装入到

2、许多不相邻接的分区中,则无须再进行“紧凑”。基于这一思想产生了离散分配方式。 分页式存储管理将主存分成大小相等的许多区,每个区称为一块,与此对应,编制程序的逻辑地址分成页,页的大小与块的大小相等。分页存储器的逻辑地址由两部分组成:页号和页内地址。(物理分区,逻辑分页),作业按页分散存放,分配存储空间时,根据作业的长度确定它的页面数。一个作业有多少页,在它装入主存时就给它分配多少块主存空间。这些主存储块可以是不相邻的。 一个大的作业可以分成很多小块存储空间,充分利用了主存空间,提高了系统效率。,分页式的地址结构(页表),采用分页式存储分配时,逻辑地址是连续的,用户在编制程序时仍只须使用顺序的地址

3、,而不必考虑如何去分页。由地址结构自然就决定了页面的大小,也就决定了主存分块的大小。,图中地址长度为32位,其中011位为页内地址,12 31位为页号,那么块(页)的大小为212=4KB;逻辑地址有220=1M页。,思考题?,若给定一个逻辑地址空间中的地址为A,页面大小为L,则页号P和页内地址W如何计算?,P=INTA/L W=AMOD L,例:系统页面大小为KB,设A2170B,则P=2,W=122,注:通常页面大小是2的幂,且常在512B8KB,3.页表 在将进程的每一页离散地分配到内存的多个物理块中后,系统应能保证能在内存中找到每个页面所对应的物理块。为此,系统为每个进程建立了一张页面映

4、射表,简称页表。每个页在页表中占一个表项,记录该页在内存中对应的物理块号。进程在执行时,通过查找页表,就可以找到每页所对应的物理块号。 可见,页表的作用是实现从页号到物理块号的地址映射。,页表:由页号和块号组成,指出逻辑地址中页号与主存中块号的对应关系。 页号-进程地址空间的页序号 块号-内存空间的页面序号,页 表,页表,图 4-11 页表的作用,地址变换(映射)机构,1 .基本的地址变换机构 基本任务:是利用页表把用户程序中的逻辑地址变换成内存中的物理地址,用户程序中的页号 内存中的物理块号 实现方式:在系统中设置页表寄存器,用来存放页表的始址和页表的长度。在进程未执行时,每个进程对应的页表

5、的始址和长度存放在进程的PCB中,当该进程被调度时,就将它们装入页表寄存器。 在进行地址变换时,系统将页号与页表长度进行比较,如果页号大于或等于页表寄存器中的页表长度,则访问越界,产生越界中断。如未出现越界,则根据页表寄存器中的页表始址和页号计算出该页在页表项中的位置,得到该页的物理块号,将此物理块号装入物理地址寄存器中。与此同时,将有效地址(逻辑地址)寄存器中页内地址直接装入物理地址寄存器的块内地址字段中,这样便完成了从逻辑地址到物理地址的变换。,物理地址(绝对地址),相对地址(有效逻辑地址),页表寄存器,基本的地址变换机构,图 4-12 分页系统的地址变换机构,相对地址,物理地址,8644

6、,1024*8+452=8644,绝对地址=块号块长+页内地址,页表寄存器,页号 页内地址,页表,8,452,例:设块大小为32,利用下面的页表,将逻辑地址140变换为物理地址 1)逻辑地址有效地址 页号INT140/324 页内地址140 MOD 3212 2)查页表得到块号为5 3)物理地址532+12172,例:作业地址空间共有7个页,每页的相对地址为01023,10242047,20483071,61446150。其对应的主存块在页表中已列出。分别为5,7,9,15,13,10,16共7块。假定页表在主存始址为500。若该程序从第0页开始运行,且现程序计数器内容为:,14 . 10 9

7、 0,硬件动态地址转换机构工作如下: 1.把该作业的页表始址(500)和页表长度(7)放入控制寄存器中。 2.将程序计数器内容的页号部分(0)与控制寄存器中的页表长度(7)相比较,若页号页表长度时转3,否则产生地址越界,终止程序运行。 3.将程序计数器中的页号与控制寄存器中的页表始址相加,得到该访问操作所在页号在页表中的入口地址:500+0=500 4. 用该地址去访页表,获得该页所对应的主存块5。 5. 把主存块号5与程序计数器中的页内位移相拼接,从而得到该操作所在主存的物理地址:51024+100=5220 6.根据这个地址5220,完成指定操作。,图 页式地址变换过程,快表,页表可以存放

8、在主存里,这样取一个数据或指令至少要访问主存两次,第一次按页号读出页表中对应的块号,第二次按计算出来的物理地址进行读/写,这样降低了存取速度。 为了提高存取速度,通常都设置一个专用的高速缓冲寄存器,用来存放页表的一部分。存放在高速存储器中的页表称为快表,这种高速存储器称联想寄存器(associative memory)。 它的存取时间是小于主存的,但造价高,一般都是小容量的。,当进程访问一页时,系统将页号与快表中的所有项进行并行比较。若访问的页在快表中,即可立即进行地址转换。 当被访问的页不在快表中时,就要将由慢表找到的内存块号与虚页号填入快表中,若快表已满,则置换其中访问位为0的一项。,具有

9、快表的地址变换机构,页 号 页内地址,页表始址 页表长度,2 4 5,块号 块内地址,输入寄存器,+,012,页表寄存器,越界中断,逻辑地址,页号 块号,页号 块号,0 2 4 2 5,页表(慢表),快表,物理地址,两级页表,一个具有32位逻辑地址空间的分页系统,规定页面大小为4KB(即212B ),则页表项达1M个,每个页表项占用1B,故进程的页表占用1MB内存空间,还要求是连续的,显然这是不现实的。 1.用离散分配方式来解决难以找到一块连续的大内存空间的问题; 2.只将当前需要的部分页表项调入内存,其余的页表项仍驻留在磁盘上,需要时再调入。,1.两级页表机制,基本方法:是将页表进行分页,每

10、个页面的大小与内存物理块的大小相同,并为它们进行编号,可以离散地将各个页面分别存放在不同的物理块中,为此再建立一张页表,称为外层页表:在每个表项中记录了页表页面的物理块号,即每个表目是存放某个页表的物理地址。 第二级才是页表:其中的每个表目所存放的才是页的物理块号。,两级页表系统将32位逻辑地址空间的地址分成三段:其中,页表目录号(外层页号p1)和页号(外层页内地址p2)两项各占10位,偏移量(页内地址d)占12位。每页的大小为4KB。由于物理块号和页表的物理地址都占4个字节,而每页中包含1024个页表项,所以页表目录和页表的大小也都是4KB,即一页。设置了一个外层页表寄存器(CR3),用于存

11、放页表目录的基址。 31 22 21 12 11 0 外层页表 页表 物理地址,外层页号p1 外层页内地址p2 页内地址d,外层页表寄存器,+,+,b d,第0页页表(物理块号10) 内 存 0 1 0 1 1023 2 第1页页表(物理块号25) 0 1 1023 第N页页表(物理块号120) 0 1 外层页表 1023,例:设有一页式存储管理系统,向用户提供的逻辑地址空间最大为16页,每页2048字节,内存总共8个存储块,试问逻辑地址至少应为多少位?内存空间有多大?,例2:设有一页式存储管理系统,已知页面大小为1024字节,试将逻辑地址1011转化为相应的物理地址。,1)逻辑地址有效地址

12、页号INT1011/10240 页内地址1011 MOD 10241011 2)查页表得到块号为2 3)物理地址21024+10113059,分段存储管理,(1)分段存储管理方式的引入 1.便于编程 通常用户常常把自己的作业按照逻辑关系划分成若干个段,每个段都有自己的名字,且都从零开始编址,这样,用户程序再执行中可用段名和段内地址进行访问。例如:LOAD 1,A | 这条指令的含义是将分段A中的D单元内的值读入寄存器1。 2.信息共享 在实现程序和数据的共享时,常常以信息的逻辑单位为基础,而分页系统中的每一页只是存放信息的物理单位,其本身没有完整的意义,因而不便于实现信息的共享,而段却是信息的

13、逻辑单位,有利于信息的共享。,3.信息保护 信息保护是对相对完整意义的逻辑单位(段)进行保护。 4.动态链接 通常一个源程序经过编译后所形成的若干个目标程序,还需再经过链接,形成可执行代码后才能运行,这种在装入时进行的链接称为静态链接。动态链接是指在作业运行之前,并不把几个目标程序段都链接起来,而是先将主程序对应的目标程序装入内存并启动运行,当运行过程中又需要调用某段时,再将该段(目标程序)调入内存并链接起来。所以,动态链接是以段为基础的。 5.动态增长 在实际系统中,往往有些数据段会不断地增长,而事先却无法知道数据段会增长到多大,分段存储管理方式可以较好地解决这个问题。,(2)分段系统的基本

14、原理,1.分段 在分段存储管理方式中,作业的地址空间被划分为若干个段,每个段是一组完整的逻辑信息,如有主程序段、子程序段、数据段及堆栈段等,每个段都有自己的名字,都是从零开始编址的一段连续的地址空间,各段长度是不等的。分段系统的地址结构如下图所示: 31 16 15 0,逻辑地址由段号(名)和段内地址两部分组成。在该地址结构中,允许一个作业最多有64 K个段,每个段的最大长度为64 KB。,作业的分段结构,以段为单位进行主存分配,每一个段在主存中占有连续的空间,但各个段之间可以离散的存放在主存不同区域中。,2段表 在分段式存储管理系统中,为每个段分配一个连续的分区,而进程中的各个段可以离散地分

15、配到内存中不同的分区中。在系统中为每个进程建立一张段映射表,简称为“段表”。每个段在表中占有一表项,在其中记录了该段在内存中的起始地址(又称为“基址”)和段的长度,如下图所示。进程在执行中,通过查段表来找到每个段所对应的内存区。可见,段表实现了从逻辑段到物理内存区的映射。,内存空间 0 40k: 80k: 120k: 150k:,(MAIN)=0 15K (X)=1, 7K (D)=2, 8K (S)=3, 10K,作业空间 段 表 (MAIN)=0 0 15K 段号 段长 基址 (X)=1 0 0 1 7K (D)=2 2 0 8K 3 (S)=3 0 10K,15K 40K 7K 80K 8K 120K 10K 150K,3地址变换机构,段表寄存器 越界中断 逻辑地址 段号 段长SL 基址 0 1 2 3,段表始址 段表长度 TL,段号S 位移量w 1 100,15K 40K 7K 80K 8K 120K 10K 150K,物理地址 80k+100,物理地址:段的基址+段内地址(位移量),为了实现从逻辑地

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

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