关于内核线程 用户线程 以及内核态的问题

fly44 2006-09-13 11:58:50
对于unix多线程的概念总有一些问题
系统提出使用多线程的时候发现了 用户态多线程 自行管理..而且不使用什么内核资源..产生调度快..资源消耗少.. 但是也有因为缺乏os帮助导致很多调度上的问题
而内核态的线程 调度ok 但是效率和资源耗费上有缺点
所以为有些系统采用了 内核态 和 用户态线程 对应的方法..实行管理

但是在这里我就迷茫了...也没有查到什么资料解释
内核态线程和用户态线程大概是怎么关联起来..
关联起来以后..怎么实现用户态线程的调度的



然后资料上写的 关于 内核资源 内核态.. 内核...这些我始终表示很确定他们的定义和含义

希望高人指点...提高理解和见识
...全文
476 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fly44 2006-09-15
  • 打赏
  • 举报
回复
恩...这些我了解...
但是不明白的是 混合态的时候 怎么样具体克服原来的问题的


还有就是关于通常说的 关于 内核资源 内核态.. 内核...这些我始终表示很确定他们的定义和含义
superwiles 2006-09-15
  • 打赏
  • 举报
回复
简单得一个策略是线程阻塞得时候放到核心态,非阻塞得时候放到用户态. 实际实现复杂得多,需要一个线程池
superwiles 2006-09-14
  • 打赏
  • 举报
回复
os的线程模型有3种 用户态, 核心态 混合态 ,
用户态就是 纯粹的用户级线程,对于内核是透明的,这样的好处是上下文切换的时候很快.
但是不好的就是一个线程阻塞会阻塞整个进程.

核心态也就是所谓的轻量级进程.单个线程阻塞不会阻塞整个进程.是基本的调度单位.

混合态有2种 1:1 比如linux种使用的native thread . solaris ,freebsd 的 是M;N的
基本的想法就是一个进程里面有核心态线程也有用户态线程, 线程还可以在两种状态下切换.
不过这个需要在内存管理,进程管理方面坐更多的考虑. solaris的比较成熟可以参考

4,441

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧