内存管理方式:页存储、段存储、段页存储

时间:2025-01-19 08:02:05

                 内存管理方式:页存储、段存储、段页存储

非连续分配管理方式允许一个程序分散地装入到不相邻的内存分区,根据分区的大小是否固定分为分页式存储管理方式分段式存储管理方式。分页存储管理方式中,又根据运行作业时是否要把作业的所有页面都装入内存才能运行分为基本分页式存储管理方式请求分页式存储管理方式。

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

把主存空间划分为大小相等且固定的块,块相对较小,作为主存的基本单位。每个进程也以块为单位进行划分,进程在执行时,以块为单位逐个申请主存中的块空间。这样,进程只会在为最后一个不完整的块申请一个主存块空间时,才会产生主存碎片。所以尽管会产生内部,但是这种碎片相对进程来说也是很小的,每个进程平均只产生半个块大小的内部碎片。

分页存储的几个基本概念。进程中的块称为,内存中的块称为页框,,进程在执行时,以块为单位逐个申请主存中的块空间。就是要为每个页面分配主存中的可用页框,这样就产生了页面和页框的一一对应。

为了方便地址转换,页面大小应该是2的整数幂,同时页面大小应该适中,如果页面太小,这样页表就过长,占用大量内存,而且也会增加硬件地址转换的开销,降低页面换入/换出的效率;页面过大又会使页面内碎片增大,降低内存的利用率。考虑空间效率和时间效率的权衡,页面大小应该适中。

逻辑地址结构:页号+地址偏移量。页表:为了便于在内存中找到进程的每个页面所对应的物理块,系统为每个进程建立一张页表,记录页面在内存中对应的物理块号,页表一般放在内存中。在配置了页表后,进程执行时,通过查找该表,即可找到每页在内存中的物理块号。可见,页表的作用是实现从页号到物理块号的地址映射。

2)       基本分段存储管理方式

段式管理方式按照用户进程中的自然段划分逻辑空间。列如,用户进程由主程序,两个子程序,栈和一段数据组成,于是可以把这个用户进程划分为5个段,每段从0开始编址,并分配一段连续的地址空间(段内要求连续,段间不要求连续)。逻辑地址由段号+段内偏移量组成

3)       段页式管理方式

分页式存储管理可以有效的提高内存利用率,而分段存储管理能反应程序的逻辑结构并有利于段的共享。把这两种方式结合起来,就是段页式存储管理方式。

在段页式系统中,作业的地址空间首先被分成若干逻辑段,每段都有自己的段号,然后再将每一段划分成若干大小固定的页。对内存空间的管理仍然和分页存储管理一样,将其分成若干和页面大小相同的存储块,对内存的分配以存储块为单位。

在段页式系统中,作业的逻辑地址分为3个部分:段号,页号和页面偏移量。为了实现地址变换,系统为每个进程建立一张段表,而每个分段有一张页表。段表中包括段号、页表长度和页表起始地址。页表中包括页号和块号。此外,系统中还有一个段表寄存器,指出作业的段表起始地址和段表长度。

在进行地址变换时,首先通过段表查到页表起始地址,然后通过页表查到页框号,最后形成物理地址。