操作系统内存管理中的分段、分页简单理解
作者:codinghuang 链接:https://www.zhihu.com/question/50796850/answer/522734117 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 要理解分段和分页,那么得理解为什么会出现分段和分页的技术 首先,这两个技术都是 为了利用和管理好计算机的资源--内存 。 在分段这个技术还没有出现之前,程序运行是需要从内存中分配出足够多的 连续的 内存,然后把 整个 程序装载进去。举个例子,某个程序大小是10M,然后,就需要有 连续的 10M内存空间才能把这个程序装载到内存里面。如果无法找到连续的10M内存,就无法把这个程序装载进内存里面,程序也就无法得到运行。 上面这种直接把整个程序装载进内存的方式是有一定的问题的。例如: 1、地址空间不隔离 如何理解地址空间不隔离? 举个例子,假设我有两个程序,一个是程序A,一个是程序B。程序A在内存中的地址 假设 是0x00000000~0x00000099,程序B在内存中的地址 假设 是0x00000100~x00000199。那么假设你在程序A中,本来想操作地址0x00000050,不小心 手残 操作了地址0x00000150,那么,不好的事情或许会发生。你影响了程序A也就罢了,你把程序B也搞了一顿。 2、程序运行时候的地址不确定