菜鸟备忘-操作系统-用户级线程和内…

用户级线程:

https://img-my.csdn.net/uploads/201104/6/0_1302099846lI6t.gif

从这张图上面可以看出来,用户级线程的管理是由应用程序的进程来完成的,而不关内核的事。在内核看来还是只有进程的概念,所以线程的调度也就可以通过应用程序自己设定,不用核心态的特权。

但是也就是因为这样,在内核中没有线程的概念,如果一个线程进入内核,然后再系统调用的时候阻塞了,那么,核心只会把它作为整个进程阻塞了,也就是说这个进程中的所有线程都被阻塞了。

线程状态和进程状态是独立的(从何说起?不理解)

优点:
  线程切换不调用核心 。
  调度是应用程序特定的,可以选择最好的算法。
  ULT可运行在任何操作系统上(只需要线程库)。

缺点:
  大多数系统调用是阻塞的,因此核心阻塞进程,故进程中所有线程将被阻塞。
  核心只将处理器分配给进程,同一进程中的两个线程不能同时运行于两个处理器上。

内核级线程:

https://img-my.csdn.net/uploads/201104/6/0_1302099847Dc5v.gif

所有线程管理由核心完成。
没有线程库,但对核心线程工具提供API。
核心维护进程和线程的上下文。
线程之间的切换需要核心支持。
以线程为基础进行调度。
例子:Windows

优点:
  对多处理器,核心可以同时调度同一进程的多个线程。
  阻塞是在线程一级完成 。
  核心例程是多线程的。
缺点:
  在同一进程内的线程切换调用内核,导致速度下降。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值