APUE-内存管理-内存隔离-分段-分页

内存隔离

  • 程序是运行在内存中,不同程序之间需要做地址隔离,不然恶意程序会修改其他程序的数据,不好的程序会越界修改变量。
  • 因此,内存需要对进程进行隔离,让每个进程拥有独立的虚拟空间

分段

内存映射

  • 根据程序所需空间大小,在虚拟内存空间划分出一定的区域大小
  • 然后在实际物理内存中相应的划分同样的大小的内存空间
  • 最后通过地址映射,连接虚拟内存地址和实际物理地址

分页

分页

  • 但是分段并没有解决内存使用效率的问题
  • 如果存在大段程序,会造成频繁的磁盘访问操作,影响速度
  • 因此,考虑到程序运行的颗粒度和局部性,提出分页的思想

内容

  • 分页是把内存地址分成固定大小的页,大部分为4KB,是由硬件决定
  • 把进程数据安页划分后,将常用的数据和代码页加载到内存中,
  • 不常用的保存在磁盘中,等用到的时候再去加载出来

不同页的名字

  • 虚拟内存的页,叫做虚拟页
  • 实际物理内存的页,叫做物理页
  • 磁盘的页,叫做磁盘页
  • 以上,通过内存映射实现内存共享

MMU内存管理-页保护

  • 分页还有一个好处就是内存数据的保护,
  • 每个页都有其权限,当越界时,系统会发出警告
  • 每个系统都会有一个额MMU内存管理单元来进行页映射和管理
posted @ 2023-09-07 08:42  starc再起航  阅读(75)  评论(0编辑  收藏  举报