0资本建设网站,wordpress 7牛,移动设备网站开发注意点,青岛城乡建设局网站首页一、分页系统的缺点 分页系统存在的一个无法容忍#xff0c;同时也是分页系统无法解决的一个缺点就是#xff1a;一个进程只能占有一个虚拟地址空间。在此种限制下#xff0c;一个程序的大小至多只能和虚拟空间一样大#xff0c;其所有内容都必须从这个共同的虚拟空间内分配…一、分页系统的缺点 分页系统存在的一个无法容忍同时也是分页系统无法解决的一个缺点就是一个进程只能占有一个虚拟地址空间。在此种限制下一个程序的大小至多只能和虚拟空间一样大其所有内容都必须从这个共同的虚拟空间内分配。 二、分段管理系统 2.1 何为分段管理 分段管理就是将一个程序按照逻辑单元分成多个程序段每一个段使用自己单独的虚拟地址空间。例如对于编译器来说我们可以给其5个段占用5个虚拟地址空间如下图所示 如此一个段占用一个虚拟地址空间不会发生空间增长时碰撞到另一个段的问题从而避免因空间不够而造成编译失败的情况。如果某个数据结构对空间的需求超过整个虚拟之地所能够提供的空间则编译仍将失败。不过出现这种可能的概率恐怕不会比太阳从西边出来的概率高出多少。 2.2 分段管理优缺点 优点 1每个逻辑单元可单独占用一个虚拟地址空间这样使得编写程序的空间大为增长。 2由于段式按逻辑关系划分因此共享起来十分方便。 3对于空间稀疏的程序来说分段管理将节省大量的空间。 缺点 1外部碎片和一个段必须全部加载到内存。 那么解决办法是什么呢分页不过这次的分页不是前面提到的直接对程序进程进行分页而是对程序里面的段进行分页于是就形成了所谓的段页式内存管理模式。 三、段页式内存管理 3.1 何为段页式内存管理 段页式管理就是将程序分为多个逻辑段在每个段里面又进行分页即将分段和分页组合起来使用。这样做的目的就是想同时获得分段和分页的好处但又避免了单独分段或单独分页的缺陷。 如果我们将每个段看做一个单独的程序则逻辑分段就相当于同时加载多个程序。 3.2 段页式内存管理的实现 采用多级页表顶级为段表次级为页表。由段号在段表里面获得所应该使用的页表然后在该页表里面查找物理页面号如下图所示 如果需要次级页表又可以再分为两个或者多个层次形成层次更为丰富的段页式层次结构。 四、内存管理的演变 1一开始人们根据直觉将一个程序作为一整段进行管理从而形成了纯粹分段固定加载地址、固定分区、非固定分区、交换管理模式也称为基本内存管理模式这种模式由于直观易实现曾经大为流行。 2但是纯粹分段存在重大缺陷由于此种模式下一个程序只有一段从而导致内存空间增长困难外部碎片、程序不能超过物理内存容量、一个程序必须同时加载到内存才能执行等缺点为了克服这些缺点引入了页式内存管理模式。 3显然页式内存管理克服了纯粹分段的一系列缺点但又存在共享不方便、一个程序只能在一个徐地址空间增长的问题为了解决这个问题引入了逻辑分段。逻辑分段将一个程序按逻辑关系分解为多个段从而扩大了程序可以使用的虚拟地址空间并解决了共享难的问题。 4但是逻辑分段终究还是分段自然又引入了分段的缺点。而要客服这些缺点自然又想到了分页。这样人们又引入了段页式管理模式。 因此内存管理模式经历了从纯粹分段到分页再到逻辑分段再到段内分页的演变过程如下图所示 参考资料 邹恒明《操作系统之哲学原理》机械工业出版社 作者周旭龙 出处http://edisonchou.cnblogs.com 本文版权归作者和博客园共有欢迎转载但未经作者同意必须保留此段声明且在文章页面明显位置给出原文链接。 转载于:https://www.cnblogs.com/edisonchou/p/5115242.html