操作系统虚拟内存的问题

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

相关推荐

点赞 2 评论
分享
牛客网
牛客企业服务