段式管理
段式管理是指将程序按照内容或函数关系分成多个段,每个段有自己的名字。一个用户作业或者进程包含一个二维虚拟存储器。段式管理程序以段为单位分配内存,然后通过地址映射机制把段式虚拟地址转换为实际物理内存地址。

段式管理的优点在于可以对各个段分别编写和编译,不同的段互不影响。同时可以通过动态链接进行代码共享。
段式管理的优点在于可以很方便对信息的共享和保护。
段式管理的缺点在于如果段过长,为其分配连续空间会很不方便,会产生外部碎片。
如何处理段式管理的缺点,有以下两种策略:
- 将内存整理规整,合并不连续的内存:段表各个段互补关联,而且有的段长有的段短,整理内存比较耗时;
- 将不常用的内存段换到磁盘上:内存和磁盘的交换速率为几何倍数,如果交换的段比较大,会非常消耗时间,效率也很低。
页式管理
页式管理类似于段式管理,不过页式管理将各个进程的虚拟内存空间划分为若干个长度相等的页。把内存空间按页大小划分为片或者页面,然后把页式虚拟地址与内存地址建立——对应的页表。页式管理采用请求调页和预调页技术实现内外存存储器的统一管理。

页式管理优点在于各个页大小是相等的(常规为4K),大小更小的页交换起来速度就比较快了,完美解决了磁盘和内存交换速率慢的问题。同时固定大小的内存页解决了外部碎片的问题,但出现了内部碎片问题(比如一个页4K,我只使用其中1K)。
页式管理的缺点也很明显,它不方便按照逻辑模块实现信息的共享和保护。
段页式管理
段页式管理集中了段式管理和页式管理的优点,基本思想为用户程序按照段式划分(段式划分指按照段的逻辑划分),方便用户对各个段管理。对于系统而言,按照页划分每一段,系统按照页式划分更方便进行空闲页交换,性能更高。

段页式管理的逻辑地址由段号和段内地址组成,段内地址又由页号和页内偏移量组成。

同时每个段对应一个段表项,每个段表项由段号、页表长度、页表存放号(页表起始地址)组成。每个段表项长度相等,段号是隐含的。