操作系统【OS】线程的分类

  • 线程的实现分为两类 = 用户级线程(User-Level Thread, ULT) + 内核级线程(Kernel-Level Thread, KLT)

|----|-----------------------------------------------------------------------------------------------|----------------------------------------------------------|-----------|
| | ULT | KLT | 组合模式 |
| 定义 | 由用户级线程库函数来完成整个线程的管理和调度【库函数负责】 | 线程对应的TCB放在OS里,线程的管理和调度由OS负责【OS负责】 | 内核支持的用户线程 |
| 模型 | **++多对一++**模型(多个用户对应一个线程) | **++一对一++**模型(一个用户对应一个线程) | 多对多模型 |
| 优点 | * TCB由用户级线程库函数维护,可用于不支持线程技术的OS * 无需用户态和内核态的切换,速度特别快 | * 某个内核线程发起系统调用被阻塞,不会影响到其他内核线程的运行 * 内核能同时调度同一进程中的多个线程并行执行 | |
| 缺点 | * 一个线程发起了系统调用而阻塞,那进程所包含的用户线程都不能执行了 * 在多线程执行时,每个线程得到的时间片少,执行慢 * 📢线程与线程之间不用内核切换,但是跨进程的话就需要内核参与 | * 同一进程的线程切换,需要从用户态转到核心态,系统开销大 | |

相关推荐
小李独爱秋3 小时前
模拟面试:用自己的话解释一下lvs的工作原理
linux·运维·面试·职场和发展·操作系统·lvs
ppppppatrick10 小时前
【深度学习基础篇】手算卷积神经网络:13道经典题全解析(考研/面试必备)
深度学习·考研·cnn
锅包一切14 小时前
二、几种安装类型
linux·运维·后端·操作系统
_OP_CHEN15 小时前
【Linux系统编程】(三十七)信号捕捉全链路拆解|从内核态切换到 sigaction 实战
linux·运维·操作系统·进程·c/c++·信号·信号捕捉
元亓亓亓16 小时前
考研408--数据结构--day14--B树&B+树&散列表
数据结构·b树·散列表·b+树·408
阿昭L1 天前
内存交换空间
操作系统·分页机制
charliejohn1 天前
计算机考研 408 数据结构 中缀转后缀
数据结构·考研·算法
阿昭L2 天前
Windows内存管理中的交换空间
windows·操作系统·分页机制
_OP_CHEN2 天前
【Linux系统编程】(三十六)深挖信号保存机制:未决、阻塞与信号集的底层实现全解析
linux·运维·操作系统·进程·c/c++·信号·信号保存
小李独爱秋2 天前
模拟面试:lvs常见的工作模式有哪些?各有什么特点?
linux·运维·面试·职场和发展·操作系统·职场发展·lvs