【正确答案】常见的内存管理方式有块式管理、页式管理、段式管理和段页式管理。最常用的是段页式管理。
(1)块式管理把主存分为一大块一大块的,当所需的程序片断不在主存时就分配一块主存空间,把程序片段载入主存,就算所需的程序片段只有几个字节也只能把这一块分配给它。这样会造成很大的浪费,平均浪费了50%的内存空间,但优点是易于管理。
(2)页式管理用户程序的地址空间被划分成若干个固定大小的区域,这个区域被称为“页”,相应地,内存空间也被划分为若干个物理块,页和块的大小相等。可将用户程序的任一页放在内存的任一块中,从而实现了离散分配。这种方式的优点是页的大小是固定的,因此便于管理;缺点是页长与程序的逻辑大小没有任何关系。这就导致在某个时刻一个程序可能只有一部分在主存中,而另一部分则在辅存中。这不利于编程时的独立性,并给换入换出处理、存储保护和存储共享等操作造成麻烦。
(3)段式管理段是按照程序的自然分界划分的并且长度可以动态改变的区域。使用这种方式,程序员可以把子程序、操作数和不同类型的数据和函数划分到不同的段中。这种方式将用户程序地址空间分成若干个大小不等的段,每段可以定义一组相对完整的逻辑信息。存储分配时,以段为单位,段与段在内存中可以不相邻接,也实现了离散分配。
分页对程序员而言是不可见的,而分段通常对程序员而言是可见的,因而分段为组织程序和数据提供了方便,但是对程序员的要求也比较高。
分段存储主要有如下优点:
1)段的逻辑独立性不仅使其易于编译、管理、修改和保护,也便于多道程序共享。
2)段长可以根据需要动态改变,允许自由调度,以便有效利用主存空间。
3)方便分段共享,分段保护,动态链接,动态增长。
分段存储的缺点为:
1)由于段的大小不固定,因此存储管理比较麻烦。
2)会生成段内碎片,这会造成存储空间利用率降低。而且段式存储管理比页式存储管理方式需要更多的硬件支持。
正是由于页式管理和段式管理都有各种各样的缺点,因此,为了把这两种存储方式的优点结合起来,才引入了段页式管理。
(4)段页式管理段页式存储组织是分段式和分页式结合的存储组织方法,这样可充分利用分段管理和分页管理的优点。
1)用分段方法来分配和管理虚拟存储器。程序的地址空间按逻辑单位分成基本独立的段,而每一段有自己的段名,再把每段分成固定大小的若干页。
2)用分页方法来分配和管理内存。即把整个主存分成与上述页大小相等的存储块,可装入作业的任何一页。程序对内存的调入或调出是按页进行的,但它又可按段实现共享和保护。
【答案解析】