分页存储管理是如何运作的?
分页存储管理是一种操作系统中用于内存管理的关键技术,它通过将进程的逻辑地址空间和物理内存空间划分为固定大小的块(称为“页”和“页框”),并使用页表来映射这些块,从而实现虚拟内存的管理,以下是对分页存储管理原理的详细阐述:
一、实现原理
1、地址空间划分:
逻辑地址空间被划分为若干个大小相等的区域,每个区域称为页或页面。
相应地,内存物理地址空间也被划分为与页大小相同的区域,每个区域称为物理块或页框。
2、地址转换:
程序中的逻辑地址被转换为页号和页内地址,这个转换工作在程序执行时由系统硬件自动完成,整个过程对用户透明。
一维逻辑地址空间经过系统硬件自动分页后,形成「页号 + 页内地址」的地址结构。
3、页表:
为了实现从逻辑地址到物理地址的转换,操作系统为每个进程建立了一张页表(Page Table),用来存储页号及其对应的内存物理块号。
最简单的页表由页号及其映射的物理块号组成,由于页表的长度由程序所拥有页的个数决定,故每个程序的页表长度通常不同。
4、内存分配表:
为了正确地将一个页装入到内存的某一物理块中,就必须知道内存中所有物理块的使用情况,系统建立一张内存分配表来记录内存中物理块的分配情况。
最简单的办法是用一张位示图(Bitmap)来构成内存分配表,位示图中的每一位与内存中的一个物理块相对应,当取值为0时表示对应的物理块空闲;当取值为1时表示对应的物理块已分配。
二、地址保护
1、基本地址转换:
在分页存储管理中,系统为每个程序建立了一张页表并存放于内存中,当程序被装入内存但尚未运行时,页表始址和页表长度等信息被保存到为该程序创建的PCB(进程控制块)中。
一旦进程调度程序调度该进程运行时,其PCB中保存的页表始址和页表长度信息便被装入到页表控制寄存器中。
2、具有快表的地址转换:
为了提高地址转换的速度,一种行之有效的方法是在地址转换机构中增加一个具备并行查找能力的高速缓冲寄存器,又称联想存储器(Associative Memory)来构成一张快表。
快表中保存着当前运行进程最常用的页号及其映射的物理块号,具有快表的地址转换过程是:在快表中查找和在内存中查找同时进行,只不过在内存页表中查找的速度要慢一些。
3、页的保护:
页的保护分为两个方面:一是在逻辑地址转换成物理地址时的保护,通过页号与页表长度的比较防止地址越界。
二是在实现信息共享时对共享信息的保护,通常是在页表中增加一些标志位来设置存取控制字段。
相关问题与解答
问题1:分页存储管理中的页面大小是如何确定的?
答:分页系统中页面的大小取决于机器的地址结构,一般设置为2的整数幂,通常为512B~8KB,这是因为页面大小如果过大或过小都会影响系统性能:页面过小会增加页表的大小和内存管理的复杂性;页面过大则会导致页内碎片增大。
问题2:分页存储管理中的快表是如何工作的?
答:快表是一种特殊的高速缓冲存储器,它存放了当前运行进程的部分或全部页表项,当CPU需要访问某个逻辑地址时,它会首先在快表中查找相应的页表项,如果找到,则直接使用快表中的物理块号进行地址转换;如果在快表中找不到,则需要访问内存中的页表来获取物理块号,并将该页表项存入快表中以备下次使用,快表的存在大大提高了地址转换的速度,从而提高了系统的整体性能。
到此,以上就是小编对于“分页存储管理的原理”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。
暂无评论,1人围观