文章目录
分段
如图,地址空间(左)的堆和栈之间,有一块每一使用的内部碎片,但是,如果要将整个地址空间加载到内存,内部碎片也会被加载。在比较极端的情况下,有一个很大的地址空间,而地址空间的大部分是没有被使用的内部碎片,在加载到内存时,很可能因为没有足够大的连续空间而加载失败;即使加载成功,大量的内部碎片会造成内存极度的浪费。
在更多的情况下,地址空间的大小远远大于实际的物理内存,但是地址空间中使用到的空间却不多,这样的地址空间称为sparse address space(稀疏地址空间),因此,通过加载整个内存空间从而构建虚拟内存系统很不完善。
内部碎片不可避免,要解决内存浪费的问题,就是不加载内部碎片。因此,不能将整个内存空间直接加载到内存中,而是需要分段
分段:泛化的基址/界限
分段,就是要将地址空间的逻辑段加载到内存,而不是将整个地址空间加载到内存。所以,内部碎片不会被加载。
在之前不分段时,