基本分页存储管理方式

连续分配存储管理方式产生的问题

分区存储管理中,要求把进程放在一个连续的存储区中,因而会产生许多碎片。

碎片问题的解决方法

1)拼接/紧凑技术----代价较高

2)离散分配方式---允许将作业/进程离散放到多个不相邻接的分区中,就可以避免拼接

离散分配方式

分页式存储管理:离散分配的基本单位是页

分段式存储管理:离散分配的基本单位是段

段页式存储管理:离散分配的基本单位是段、页

什么是页

将一个用户进程的地址空间(逻辑)划分成若干个大小相等的区域,称为页或页面,页面大小由地址结构(逻辑)决定 ,并为各页从0开始编号。

什么是块

内存空间也分成若干个与页大小相等的区域,称为(存储、物理)块或页框frame),同样从0开始编号。

内存分配

在为进程分配内存时,以块为单位,将进程中若干页装入到多个不相邻的块中,最后一页常装不满一块而出现页内碎片

页表的出现

在分页系统中,允许将进程的各个页离散地存储在内存的任一物理块中,为保证进程仍然能够正确地运行,即能在内存中找到每个页面所对应的物理块,系统又为每个进程建立了一张页面映像表,简称页表。一个页表中包含若干个表目,1.表目的自然序号对应于用户程序中的页号。2.表目中的块号是该页对应的物理块号。

内存地址的获取

页号查页表,得到对应页装入内存的块号。即可求出:内存地址=物理块号×页大小+页内地址。

:在采用页式存储管理的系统中,某作业J的逻辑地址空间为4(每页2048字节),且已知该作业的页面映像表如下:

页号 块号
0 2
1 4
2 6
3 8

借助地址变换图求出有效逻辑地址4865所对应的物理地址.

:页号  4865/2048=2   页内位移   4865%2048=769,过程如下:

从上面我们可以看出:CPU要想获取一个数据时,必须两次访问内存:

1、从内存中的页表中,寻找对应的物理块号,将物理块号与页内地址组合成物理地址。

2、根据组合成的物理地址,来获取数据。

为了提高效率呢,就引进了块表,什么是快表呢?

在地址变换机构中,增设一个具有并行查寻能力的特殊高速缓冲寄存器,称为“联想存储器”或“快表”。

在引入快表的分页存储管理方式中,通过快表查询,可以直接得到逻辑页所对应的物理块号,由此拼接形成实际物理地址,减少了一次内存访问,缩短了进程访问内存的有效时间。但是,由于快表的容量限制,不可能将一个进程的整个页表全部装入快表,所以在快表中查找到所需表项存在着命中率的问题,。总体上来说,还是减少了访问内存的时间。

猜你喜欢

转载自blog.csdn.net/qq_36795474/article/details/81226341
今日推荐