操作系统虚拟内存的问题

请教大家一个问题,操作系统书上写程序使用的都是虚拟地址,通过页表转换成真实的物理地址,每一个进程都有自己的页表。
Q1:每个进程都有自己的页表,操作系统是如何避免不同的进程映射的物理地址是相同的?(就是不同的虚拟地址,如何确保最终映射的物理地址不是相同的)
Q2:每个进程的页表大小是固定的还是动态变化的?(如果是大小固定的,那页表里面的内容是动态的么?比如某个页开始没有使用,后来需要使用的时候,找一块空闲的物理页映射到当前页的虚拟地址)
谢谢
全部评论
1. 两个页表中映射到同一个物理地址就行了。 2. 都是动态变化的。
点赞 回复 分享
发布于 2019-06-12 19:02
页表是动态分配的,物理内存内核应该会有一个位图来管理物理内存。 我的观点是申请内存的步骤是:1.申请虚拟内存2.申请物理内存3.页表中映射
点赞 回复 分享
发布于 2019-06-12 14:17
页表是多级页表,不会一开始就把你4G空间都映射出来
点赞 回复 分享
发布于 2019-06-11 20:20
1.进程的虚拟空间有起始空间,起始空间不一样,不会映射到一样的物理内存的
点赞 回复 分享
发布于 2019-06-11 20:19
我的看法:
点赞 回复 分享
发布于 2019-06-11 20:18

相关推荐

不愿透露姓名的神秘牛友
07-11 11:29
点赞 评论 收藏
分享
07-07 17:06
已编辑
深圳技术大学 golang
点赞 评论 收藏
分享
程序员小白条:这比例牛逼,750:1
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务