操作系统知识盘点(五)(内存管理方式以及其他)

25、非连续分配管理方式

(1)基本分页存储管理方式

在分区存储管理中,要把作业放在一个连续的存储区中,因而会产生碎片问题(外部碎片)。尽管通过拼接方式可以解决碎片问题,但代价较高。如果允许将一个作业存放到许多不相邻接的分区中,那么就可以避免拼接,,从而有效解决外部碎片问题。基于这一思想引入了分页存储管理(或称页式存储管理)技术

1)分页管理

在分页存储管理中,用户作业的地址空间被划分称若干个大小相等的区域,称为页或页面。相应地,将主存的存储空间也分成与页面大小相等的区域,称为块或物理块。在为作业分配存储空间时,总是以块为单位来分配,可以将作业中的任意一页放入主存的任意一块中。

在调度作业运行时,必须将他的所有页面一次调入主存,若选择的页面较小,可使页内碎片较小并减少内存碎片的总空间,有利于提高内存利用率;但也会使每个进程要求较多的页面,从而导致页表过长,占用较多内存,还会降低页面换进换出的效率。若选择的页面较大,虽然可以减少页表长度,提高页面换进换出的效率,但又使页内碎片增大

因此,页面的大侠应选择适中,通常为2的整数幂,方便地址变换,一般为512B~4KB之间

2)页表

为了将逻辑地址上连续的页号映射到物理内存中后称为离散分布的多个物理块,需要将每个页面和每个物理块一一对应,这种映射关系就体现在页表上。页表中每个页表项都由页号和块号组成,根据页表项就可以找到每个也好所对应物理内存中物理块的块号。页表通常存放在内存中

3)基本地址变换机构

整个变换过程都是由硬件自动完成的

4)具有快表的地址变换机构

若页表全部放在主存中,则存取一个数据或一条指令至少要访问两次主存,一次是访问页表,确定所存取的数据或指令的物理地址,第二次才根据所得到的物理地址存取数据或指令。显然,这种方法比通常执行指令的速度慢了一半

为了提高地址变换的速度,可以在地址变换机构中增设一个具有并行查找能力的高度缓冲存储器(又称联想存储器的快表),部分页表项放在这个高速缓冲存储器中。快表(TLB)一般是由半导体存储器实现的,其工作周期与CPU的周期大致相同,但造价较高。为了降低成本,通常是在快表中存放正在运行作业当前访问的那些页表项,页表的其余部分仍然存放在内存中

增加快表后地址变换过程为:

a)根据逻辑地址得出页号与页内位移

b)先将页号与快表中的所有页号进行对比,如果有匹配的页号,则直接读出对应的块号,与页内位移拼接得到物理地址,若没有匹配的页号,则还需要访问内存中的页表,从页表中取出物理块号,与页内位移拼接得到物理地址,并将此次的页表项存入快表中

c)用得到的物理地址访问内存

由于快表是寄存器,所以存储空间有限,往往放不了几个页表单元,所以在快表中不一定总能找到所需的页号对应的块号。每次查找页表之前都先查找快表,如果找到所需的页号,就直接读出块号,然后只需访问内存一次:如果没有找到所需的页号,那么只能再从页表中找块号,这样就需要访问内存两次,而且比没有快表时增加了访问快表所需的时间。所以要尽量保证快表中放常用的页号和对应的块号,这样才能真正的做到减少访问时间

5)两级页表和多级页表

a)页表大小计算 在基础分页系统中,页表长度M是由页号的位数决定的,而页表的大小可以理解为一个矩形的面积,这个矩形的长度就是页表的长度M,宽度是每个页表项的大小,及块号的位数。关于页表的计算通常第一步就是分析地址结构

b)两级页表 从页表的大小计算公式可知,页表的大小和页表长度成正比,而页表长度又随着页号的位数的增长而呈指数式增长。所以,如果系统的逻辑地址的位数较多,页表会非常大,而整张页表都需要连续的存放在内存中,这是件很困难的事。本来内存就不大,而且还要找个连续的空间来存放,于是就有了两级页表来解决这个难题

而两层页表机制下,无论是外层页号位数还是外层页内地址的位数都比一级页表机制少了很多,这样页表的长度就可以减少很多,相应的页表的大小也大大减小了

c)多级页表 对于32位机器(逻辑地址的位数是32位),采用两级页表结构是合适的,但对于64位的系统,两级页表机构会使页表的大小变得不可接受,所以可以通过继续增加页表的级数来减小页表的大小,不过会使页表的数量大大增加,多级页表最主要的缺点是要多次访问内存

6)页的共享和保护

在多道程序系统中,数据的共享是很重要的,在分页存储管理系统中,实现共享的方法是使共享用户地址空间中的页指向相同的物理块

在分页存储管理系统中实现共享比在分段系统中要困难。这是因为,分页存储管理系统中将作业的地址空间划分为页面的做法是对用户透明的,同时作业的地址空间是线性连续的,当系统将作业的地址空间分成大小相同的页面时,被共享的部分不一定被包含在夜歌完整的页面中,这样不应共享的数据也被共享了,不利于保密,另外,共享部分的起始地址在各作业的地址空间划分成页的过程中,在各自页面中的页内位移可能不同,这样也使得共享比较难

分页存储系统可以为内存提供两种保护方式。以是地址越界保护,即通过比较地址变化机构中的页表长度和所要访问的逻辑地址中的页号完成;另一种是通过页表中的访问控制信息对内存信息提供保护。例如,在页表中设置一个存储控制字段,根据页面使用情况将该字段定义为读、写、执行等权限,在进行地址变换·时,不仅要从页表的相应表目中得到该页对应的块号,同时还要检查本次操作与存取控制字段允许的操作是否相符,若不相符,则有硬件捕获并发出保护性中断

7)基本分页存储管理方式

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值