内存管理方式

来源:互联网 发布:网易popo mac版 编辑:程序博客网 时间:2024/04/30 05:49

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

页式管理:页式管理的基本原理将各进程的虚拟空间划分成若干个长度相等的页(page),页式管理把内存空间按页的大小划分成片或者页面(page frame),然后把页式虚拟地址与内存地址建立一一对应页表,并用相应的硬件地址变换机构,来解决离散地址变换问题。页式管理采用请求调页或预调页技术实现了内外存存储器的统一管理。 其优点是没有外碎片,每个内碎片不超过页大小(空间浪费小)。一个程序不必连续存放。便于改变程序 用空间的大小(主要指随着程序运行而动态生成的数据增多,要求地址空间相应增长,通常由系统调用完成而不是操作系统自动完成)。 缺点程序全部装入内存,要求有相应的硬件支持。例如地址变换机构,缺页中断的产生和选择淘汰页面等都要求有相应的硬件支持。这增 了机器成本。增加了系统开销,例如缺页中断处理机,请求调页的算法如选择不当,有可能产生抖动现象。 虽然消除了碎片,但每个作业或进程的最后一页内总有一部分空间得不到利用,如果页面较大,则这一部分的损失仍然较大。 
  段式管理:基本思想就是把程序按内容或过程(函数)关系分成段,每段有自己的名字。一个用户作业或进程所包含的段对应一个二维线形虚拟空间,也就是一个二维虚拟存储器。段式管理程序以段为单位分配内存,然后通过地址影射机构把段式虚拟地址转换为实际内存物理地址。 程序通过分段(segmentation)划分为多个模块,如代码段、数据段、共享段。其优点是:可以分别编写和编译。 可以针对不同类型的段采取不同的保护(存储保护容易)。 可以按段为单位来进行共享(存储共享容易),包括通过动态链接进行代码共享(能动态连接)。 
  段页式管理(最常用):为了实现段页式管理,系统必须为每个作业或进程建立一个段表以管理内存分配与释放、缺段处理、存储保护及地址变换等。另外,由于一个段又被划分成了若干页,每个段又必须建立一个页表以把段中的虚页变换成内存中的实际页面。显然,与页式管理时相同,页表中也要有相应的实现缺页中断处理和页面保护等功能的表项。另外,由于在段页式管理中,页表不再是属于进程而是属于某个段, 此,段表中应有专项指出该段所对应页表的页表始址和页表长度。  为段页式管理是段式管理的页式管理方案结合而成的,所以具有它们二者的优点。但反过来说,由于管理软件的增 ,复杂性和开销也就随之增 了。另外,需要的硬件以及 用的内存也有所增 。更重要的是,如果不采用联想寄存器的方式提高CPU的访内速度,将会使得执行速度大大下降。
  • 页式存储管理:

            a.内存空间划分 : 内存空间被静态的划分为若干个等长的区域。每个区域被称为一个物理页框。

              b.进程空间划分 : 进程空间也被静态的划分为若干个等长的区域,每个区域称为一个逻辑页面,其长度与页框的长度相等。

             c.进程空间与内存空间的对应关系:当进程运行时,需要将它的各个逻辑页面保存到存储空间的物理页框中,即需要确定逻辑页面与页框的对应关系,进程的逻辑页面是连续的,但是物理页面却不一定是连续的。

             d.特点:允许一个进程占用内存空间中多个连续的区域,而这些区域的长度相等,因而采用静态等长存储分配的方法,不会产生碎片。

  • 段式存储管理:

           a.内存空间划分 : 内存空间被动态的划分为若干个长度各异的区域,每个区域称为一个物理段

             b.进程空间划分 : 进程空间被静态的划分为若干个长度各异的区域,每个区域称为一个逻辑段。一个逻辑段通常对应一个程序段,各个程序断的长度使不等的。

            c.进程空间与内存空间的对应关系:进程的一个逻辑段与内存的一个物理段相对应。一个进程的多个逻辑段可存放在内存的若干个不相连的物理段中。

            d.特点:会产生碎片,但是便于实现共享。

  • 断页式存储管理:

                 a.内存空间划分 : 与页式存储管理相同。

            b.进程空间划分 :与段式存储管理相同。

            c.进程空进与内存空间的对应关系:进程空间的一个逻辑页面对应内存空间的一个页框。同一段内的逻辑地址是连续的,而对应的页框却未必是连续。

            d.特点:既不会产生碎片,又便于共享。

0 0
原创粉丝点击