操作系统内存分页管理
今天看了操作系统相关的教程,里边提到分页式存储管理中,内存管理是将程序PCB中的逻辑内存地址根据地址映射转换成物理地址,我的理解是PCB里边有一个链表存放很多逻辑地址,然后一个个的解析映射得到物理地址。但是看了一下Linux的实现机制,是根据mm_struct里边的vm_area_struct来映射,每个vm_area_struct有vm_start和vm_end表示逻辑地址区间,这个我就搞蒙了,用区间的话具体是怎么实现的,还是说Linux实现的内存管理跟理论上的有差别呢?
请大神解惑
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
内存管理分为物理内存空间管理和虚拟内存空间管理。
vm_area_struct 这个是用来管理进程的虚拟内存空间的。
分成一个一个个区间的原因是虚拟地址空间是空间不连续的(比如代码段和数据段)和访问权限不同。
PS 我觉得下面那副图已经比较清晰了