操作系统内存分页管理

今天看了操作系统相关的教程,里边提到分页式存储管理中,内存管理是将程序PCB中的逻辑内存地址根据地址映射转换成物理地址,我的理解是PCB里边有一个链表存放很多逻辑地址,然后一个个的解析映射得到物理地址。但是看了一下Linux的实现机制,是根据mm_struct里边的vm_area_struct来映射,每个vm_area_struct有vm_start和vm_end表示逻辑地址区间,这个我就搞蒙了,用区间的话具体是怎么实现的,还是说Linux实现的内存管理跟理论上的有差别呢?
clipboard.png

clipboard.png
请大神解惑

阅读 988
评论
    1 个回答
    • 1.6k

    内存管理分为物理内存空间管理和虚拟内存空间管理。

    vm_area_struct 这个是用来管理进程的虚拟内存空间的。

    分成一个一个个区间的原因是虚拟地址空间是空间不连续的(比如代码段和数据段)和访问权限不同。

    PS 我觉得下面那副图已经比较清晰了

      撰写回答

      登录后参与交流、获取后续更新提醒

      相似问题
      推荐文章