免费注册 查看新帖 |

Chinaunix

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

[进程管理] 内核中为什么将进程线程统称为thread? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-09 11:12 |只看该作者 |倒序浏览
进程线程在内核中统一用task_struct表示,在名字上都被称作“thread”,我有些疑问,为何不统一叫process而是要thread?

是因为thread这个词更能体现内核中执行体的特性么?

论坛徽章:
0
2 [报告]
发表于 2012-05-09 14:30 |只看该作者
一个命名的问题,个人理解跟你最后一句一样

论坛徽章:
0
3 [报告]
发表于 2012-05-10 11:21 |只看该作者
内核中的 process 是 轻量级进程, LWP (light weight process), 内核里的 thread 也是同一个东西。

主要是因为, 内核进程 不需要独立 地址空间, 整个内核共享一个地址空间, 一个GPT(global page table), 文件、socket等等也是共享的。 LWP 主要记住自己的  pc, stack, CPU registers就够了。

用户进程需要记住 自己的 地址空间 (memory mapping), 切换的时候, page table 也换掉, context switch 比较 expensive. 用户 thread 切换就不用。

论坛徽章:
0
4 [报告]
发表于 2012-05-10 13:51 |只看该作者
线程进程都是一个结构体。。。不像win

论坛徽章:
0
5 [报告]
发表于 2012-05-10 23:12 |只看该作者
回复 4# 25641463


    线程不是用thread么。为何内核中将线程进程这两个执行体统称为thread。。特别是在许多注释中。。

论坛徽章:
0
6 [报告]
发表于 2012-05-11 09:42 |只看该作者
线程,那是用户空间才有的概念,内核中只有进程,虽然它的名字里有thread

论坛徽章:
0
7 [报告]
发表于 2012-05-12 11:11 |只看该作者
我的想法是
内核中用thread这个名字更能体现 thread是操作系统task调度的基本单位 这个传统的操作系统概念。

论坛徽章:
1
拜羊年徽章
日期:2015-03-03 16:15:43
8 [报告]
发表于 2012-05-13 01:59 |只看该作者
回复 7# onlyxuyang
赞同!内核中用thread比process更贴切!

   

论坛徽章:
0
9 [报告]
发表于 2012-05-14 13:57 |只看该作者
回复 7# onlyxuyang


    能否举几个场景的例子来说明?

论坛徽章:
0
10 [报告]
发表于 2012-05-14 22:10 |只看该作者
回复 9# edsionte

只是一种感觉啦,以前读书的时候书上总是说,process是资源申请的单位,thread是cpu调度的单位

对应实际系统来理解的话,linux进行schedule的时候实际进行调度的实体对应的就是thread,所以就称呼是“thread”

只是个名字而已,不用太深究,呵呵。


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP