免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3281 | 回复: 7
打印 上一主题 下一主题

关于几种情况的TLB映射关系,帮看下理解是否正确 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-05-29 18:16 |只看该作者 |倒序浏览
1. 用户进程调用系统调用切换到内核空间后,系统调用的代码可以直接访问该进程的数据,原因是TLB映射关系没有变化还是进程的。
2.内核线程和用户进程运行时,都是各自的TLB映射关系(mmu中),尽快内核空间权限高,但由于内核线程没有用户进程的TLB映射关系,也无法直接访问用户数据。

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:09
2 [报告]
发表于 2011-05-29 21:14 |只看该作者
回复 1# longzexd

个人感觉理解有点问题,能不能访问用户地址空间和TLB根本就没有直接关系,TLB映射关系是否变化主要取决于是否被刷新,而被刷新的条件就是CR3是否发生变化或内核强制要求刷新,当系统调用进入内核后,并没有发生进程的切换,CR3没有变化,所以TLB的映射关系也没有变化,但是并不能认为是因为TLB没有变化才导致的能访问用户关系,二者根本没有关系。

另外,内核线程是不能访问用户空间是由于os的安全性检查限定的,通常内核线程的mm_struct=NULL,所以不会访问用户空间,如果OS允许的情况下,把active_mm赋值为内核线程借用的 它抢占的那个进程的mm_struct, 只要没有操作系统的安全性检查,完全可以访问用户空间。

论坛徽章:
0
3 [报告]
发表于 2011-05-30 10:10 |只看该作者
这块我也有些想不明白。用户进程呼叫系统调用后,系统进入内核态,此时并没有进程切换所以cr3寄存器没有变化,当前页表没有变化(TLB也没被刷新),这就是所谓的“内核态,运行于进程上下文”吧。

这时系统调用运行的应该是内核的代码,这个线性地址是怎么转成物理地址的?是像用户程序一样通过MMU和页表一级一级转换的吗(因为所有页表的最高1GB都是一样的),还是因为内核的线性地址和物理地址有线性对应关系直接减去偏移得来的?

论坛徽章:
2
CU十二周年纪念徽章
日期:2013-10-24 15:41:34处女座
日期:2013-12-27 22:22:41
4 [报告]
发表于 2011-05-30 10:52 |只看该作者
用户进程呼叫系统调用后
liwangli1983 发表于 2011-05-30 10:10


这个翻译很另类啊。。。。


你是怎么会有这个疑问的,只要开启了分页,不管什么时候都是依页表转换地址。

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:09
5 [报告]
发表于 2011-05-30 11:51 |只看该作者
回复 3# liwangli1983


    在开启了分页机制后,无论内核态还是用户态,从CPU的角度,即硬件的角度,都是经过也页表进行计算的,因为MMU就是这么设计的。但是从编程者的角度来说,比方说驱动编程,内核编程就可以直接通过-3G来得到物理地址。

不知道我说明白没有?

论坛徽章:
0
6 [报告]
发表于 2011-05-30 11:58 |只看该作者
用户通过系统调用进入内核空间,可以理解为还是这个进程在运行,只不过由于这部份工作比较特别需要特别的权限来执行而已。实际上每个进程的的内存映射表包括其用户空间和内核空间两个部分(32位机器上分别是3G和1G),只不过所有用户进程在内核空间部分的映射关系都是一样的而已,

论坛徽章:
0
7 [报告]
发表于 2011-05-30 12:01 |只看该作者
嗯,我也觉得分页开启后,好像就应该全部用页表计算了。
但觉得这样内核虚拟地址和物理地址的线性对应关系好像没起什么作用。。。
我以为能配置MMU对3G以上地址特殊处理,毕竟用偏移比索引页表应该快很多。

大体上是理解了,细节还得再研究。。。谢谢楼上各位

论坛徽章:
0
8 [报告]
发表于 2011-05-30 12:07 |只看该作者
直接减去偏移是内核计算虚拟地址和物理地址转换关系方便是使用的,对所有地址的访问在硬件上是通过mmu来控制的,只要开了mmu,肯定是要页表来映射到物理地址的.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP