免费注册 查看新帖 |

Chinaunix

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

有关TSS的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-06-01 22:44 |只看该作者 |倒序浏览
本帖最后由 tomkedy 于 2011-06-01 23:04 编辑

在看ULK3(中文)里“进程“一章。开始感觉TSS应该是所有进程共享一个TSS,但到后面发现似乎跟我之前的理解不太一样。尤其是:第109页,第4段里的“......因为Linux为每个处理器而不是为每个进程使用TSS”。

各位,在Linux里,TSS的使用到底是怎样的?可以的话,举个简单的进程切换例子说明一下..........

论坛徽章:
0
2 [报告]
发表于 2011-06-01 23:00 |只看该作者
回复 1# tomkedy

论坛徽章:
2
CU十二周年纪念徽章
日期:2013-10-24 15:41:34处女座
日期:2013-12-27 22:22:41
3 [报告]
发表于 2011-06-01 23:31 |只看该作者
每个处理器一个TSS段,切换进程时把TSS里的esp0改成新进程的内核栈底所处的位置。

论坛徽章:
0
4 [报告]
发表于 2011-06-02 13:15 |只看该作者
每个处理器一个TSS段,切换进程时把TSS里的esp0改成新进程的内核栈底所处的位置。
tempname2 发表于 2011-06-01 23:31



楼上,你的意思是在linux里,所有进程都共享同一个TSS段,但在切换进程时,该共享的TSS的内容会被修改成“即将运行的进程“的相关内容(比如:esp0的修改)。是这样吗?

论坛徽章:
2
CU十二周年纪念徽章
日期:2013-10-24 15:41:34处女座
日期:2013-12-27 22:22:41
5 [报告]
发表于 2011-06-02 13:22 |只看该作者
回复 4# tomkedy

应该是一个核心用一个TSS,每个核心都有一个tr寄存器。TSS段里还有表IO权限的信息,进程切换时也有可能会修改这些。

论坛徽章:
0
6 [报告]
发表于 2011-06-02 13:39 |只看该作者
本帖最后由 tomkedy 于 2011-06-02 13:40 编辑
回复  tomkedy

应该是一个核心用一个TSS,每个核心都有一个tr寄存器。TSS段里还有表IO权限的信息,进程 ...
tempname2 发表于 2011-06-02 13:22


楼上,不太明白你说的“一个核心用一个TSS,每个核心都有一个tr寄存器“......

我的理解是比如在i386里,有一个专门装载TSS的寄存器tr,它跟gdtr,ldtr是一样的,是用于装载TSS结构体的。这个tr理所当然的是共享的,因为整个CPU只有这一个tr寄存器。但TSS段是否是所有进程共享的呢?我不太清楚。

因此我想搞清楚,“在linux里,所有进程都共享同一个TSS段,但在切换进程时,该共享的TSS的内容会被修改成“即将运行的进程“的相关内容(比如:esp0的修改)“,是不是这样的?

论坛徽章:
2
CU十二周年纪念徽章
日期:2013-10-24 15:41:34处女座
日期:2013-12-27 22:22:41
7 [报告]
发表于 2011-06-02 13:44 |只看该作者
回复 6# tomkedy

多核CPU时,每个核心都有这些寄存器。在一个核心上运行的进程共用一个TSS段。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP