linux-两个不同进程的两个相同的线性地址?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux-两个不同进程的两个相同的线性地址?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含961字,纯文字阅读大概需要2分钟。
内容图文
![linux-两个不同进程的两个相同的线性地址?](/upload/InfoBanner/zyjiaocheng/946/dd370b633e194ff289e237e95575fa06.jpg)
大家好,
我是Linux内核的新手,我现在指的是《了解Linux内核》一书.我读到了有关内存管理的知识,其中关于分页和分段的所有知识都很好,但我的问题尚未得到解答.
如果两个不同的进程具有相同的线性地址,那么它们在物理地址中是否可以位于不同的位置,因为每个CPU只有一个全局页面目录,通过观察32位的线性地址将其再次映射到物理地址,但是两个进程如何记忆体最大为4GB.请解释.
解决方法:
是的,两个不同的进程都可以使用相同的线性指针,但是可以取消引用物理内存中的两个不同的位置.这是因为每个进程都有自己的页表,并且当从一个进程切换到另一个进程时,CPU的页表寄存器也被切换为指向新进程的页表.
您是否已经克隆了自己的Linux源代码本地副本?如果没有,请立即执行.阅读本书时,您需要参考它.
现在克隆了吗?好.转到克隆的工作目录,然后打开arch / x86 / include / asm / mm_context.h.转到第51行,您会发现静态内联无效switch_mm.此功能可将CPU从一个进程的虚拟内存空间切换到另一个进程. (假设您对x86最感兴趣.)现在向下看第64行:load_cr3(next-> pgd).那就是神奇的地方:页面表被切换,现在CPU将使用新进程的页面表解释所有指针.
内容总结
以上是互联网集市为您收集整理的linux-两个不同进程的两个相同的线性地址?全部内容,希望文章能够帮你解决linux-两个不同进程的两个相同的线性地址?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。