微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

3G / 1G虚拟分区的优势是什么? 32位的linux内核

虚拟内存I:问​​题[LWN.net] http://lwn.net/Articles/75174/

特别是硬件的地址转换缓冲区可以在内核和用户空间之间共享。

我完全困惑。 为什么他们可以在虚拟机分离时共享TLB? 我知道有一些cpu页面全局位

指示TLB条目对于不同的过程是共同的,并且不需要被刷新。

通过sudo来识别当前用户的最可靠的方法

运行linux命令之前如何睡眠10秒?

Linux组合了多个文件

C / C ++dynamic加载未知原型的函数

找出YUM组中的内容

TLB和vm split 3G / 1G之间有什么关系? 请详细评论。 提前致谢。

更新:为什么不使用页全局位来指示TLB条目被操作系统(内核空间)使用? 如果是这样,为什么仍然需要拆分虚拟空间? 例如:TLB中的两个入口(vm线程地址相同),但其中一个全局位置1。 ? 当上下文切换时,只需刷新全局位未设置的条目即可。 这可能吗?

Update2:我检查了intel-ia-32架构软件开发人员手册,发现在TLB条目中没有全局位(存在于PDE和PTE中)。 但是当上下文切换时,cpu如何确定TLB条目是全局位还是未设置?

CMake(Android工具链) – 运行链接命令错误:没有这样的文件或目录

使用gtk剪贴板将文本粘贴到GNOME中的xterm

如何实现日志?

在qt应用程序中执行一个qt应用程序

将空间parameter passing给linux服务

TLB还包含一个管理员标志,用于指示映射是否可以被常规进程使用,或者只有当进程正在运行且具有超级用户标志设置时才可用 – 即当进程在内核上下文中执行时。

这个超级用户标志允许TLB对于这个进程都是有用的(它不会自动获得内核千兆字节数据的特权), 并允许内核在内核模式下执行时可以完全访问所有进程的内存。

这意味着一个进程可以进入和退出内核模式而不会导致TLB冲刷惩罚。

如果内存没有被拆分(比如4:4补丁给用户空间4GB,内核空间4GB),那么TLB必须在每个内核进出口上刷新,以映射特权空间或者用户空间所有被复制进入和离开内核的数据必须经历繁琐的重新映射机制。

地址空间在用户空间和内核空间之间分割。 内核地址空间总是相同的,并使用文章所讨论的全局标志。 它非常需要它。

另一方面,其他3GB保留给用户进程: 每个进程有不同的地址空间(注:每个进程,线程通过clone(CLONE_VM)共享相同的地址空间clone(CLONE_VM) )。 这意味着,当进程上下文切换发生时,MMU只需要替换与用户地址空间有关的TLB条目,而不是内核的TLB条目。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐