免费注册 查看新帖 |

Chinaunix

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

[进程管理] x86-linux task switch疑问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-03-15 19:44 |只看该作者 |倒序浏览
现在的linux版本里面,都没有使用x86处理器的硬件task switch功能,而是使用软件task switch,每个cpu核心管理一个TSS,而且TSS里面只用到了ss0:esp0和IO map两个域,主要是为了平台移植方便。

我的疑问是:
如果真是这样简单的使用TSS的话,那么在interrupt到来时,cpu必然会填充被打断的代码(处于ring 0或者ring 3)的TSS并切换到IDT设定的ISR里面,通常中断是无法软件实现的,比如时间片中断那么的频繁,既然cpu响应中断时填充好了TSS,难道linux kernel不使用TSS里面的其他域?如果使用的话是不是与前面说的只使用TSS里面的两个域相冲突了吗?

论坛徽章:
4
丑牛
日期:2014-01-11 15:11:12亥猪
日期:2014-12-15 22:19:092015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之约旦
日期:2015-03-13 19:45:11
2 [报告]
发表于 2013-03-15 20:36 |只看该作者
TSS中的其他域也是会用到的,在任务发生切换的时候会把各种寄存器的值存入TSS中

论坛徽章:
0
3 [报告]
发表于 2013-03-16 11:41 |只看该作者
回复 2# 魔鬼的惊叹


    解释应该是:中断,异常之类的处理过程不一定会导致TSS备份与恢复过程,很多情况下更像是system call。

论坛徽章:
4
丑牛
日期:2014-01-11 15:11:12亥猪
日期:2014-12-15 22:19:092015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之约旦
日期:2015-03-13 19:45:11
4 [报告]
发表于 2013-03-16 12:12 |只看该作者
系统调用本来就是一种中断
我也没有说中断异常会导致TSS的备份与恢复

论坛徽章:
0
5 [报告]
发表于 2013-03-16 13:26 |只看该作者
回复 4# 魔鬼的惊叹


    IDT里面对应项填入任务门就能实现。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP