免费注册 查看新帖 |

Chinaunix

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

linux 用户级线程,内核级线程,用户线程和内核线程的关系是什么? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-01-09 15:39 |只看该作者 |倒序浏览
1.用户级线程
  由用户应用程序创建的线程,并且有用户应用程序负责所有这些用户级线程的调度执行和管理工作。
2.内核级线程
  所有线程的创建、调度和管理全部由操作系统内核负责
3.用户线程
  用户线程是完全建立在用户空间的线程库,用户线程的创建,调度,同步和销毁工作全在库函数的用户空间完成,不需要内核的帮助。
4.内核线程
  内核线程只运行在内核太,不受用户上下文的拖累。
5.轻量级进程
  轻量级进程是建立在内核之上并有内核支持的用户线程。它是内核线程的高度抽象,每一个轻量级进程都和一个内核线程关联。内核线程只能有内核管理并像普通进程一样被调度。

  据我所知,linux采用的是1:1的内核级线程,也是采用轻量级的进程。我想问一下,每个轻量级的进程是否都和一个内核线程关联,如果有,是怎样关联的?谢谢高人指点一二。
  

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
2 [报告]
发表于 2012-01-10 08:25 |只看该作者
回复 1# yxjfish
标准linux内核态下确切的说没有线程的概念。标准linux下只有进程的概念。(谁说没有线程的???不要着急,下面还有解释的)
但是标准linux下进程之间共享的东西是可以改变的,而轻量级进程可以理解为进程之间共享内容比较多的进程,而内核线程也是进程。
当然了,你要是非把内核下的轻量级进程或者内核线程称作线程也是可以的,因为它也符合的线程的一些特点。
但是它却不是地道的线程:
按照线程和进程关系,一个进程有多个线程组成,并且每个线程是独立调度的。而标准的linux内核进程和内核线程都是task_struct表示,并且他们之间共同参加调度。
也就是说如果认为标准linux内核下存在线程,那么进程和线程是一一对应的,即一个进程对应一个线程,并且这个所谓的线程与其它进程共同参与调度。

目前linux下用户态线程主要有两种实现机制,一种是纯粹的用户态实现,一种是用户态和内核态实现的。

论坛徽章:
0
3 [报告]
发表于 2012-01-10 10:59 |只看该作者
本帖最后由 juruqiang 于 2012-01-10 11:00 编辑
yxjfish 发表于 2012-01-09 15:39
1.用户级线程
  由用户应用程序创建的线程,并且有用户应用程序负责所有这些用户级线程的调度执行和管理工 ...


用户级线程  和 用户线程 有什么区别???

前者是概念,后者是实体?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP