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

        

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

 

ULT

KLT

组合模式

定义

由用户级线程库函数来完成整个线程的管理和调度【库函数负责】

线程对应的TCB放在OS里,线程的管理和调度由OS负责【OS负责】

内核支持的用户线程

模型

多对一模型(多个用户对应一个线程)

一对一模型(一个用户对应一个线程)

多对多模型

优点

  • TCB由用户级线程库函数维护,可用于不支持线程技术的OS
  • 无需用户态和内核态的切换,速度特别快
  • 某个内核线程发起系统调用被阻塞,不会影响到其他内核线程的运行
  • 内核能同时调度同一进程中的多个线程并行执行

 

缺点

  • 一个线程发起了系统调用而阻塞,那进程所包含的用户线程都不能执行了
  • 在多线程执行时,每个线程得到的时间片少,执行慢
  • 线程与线程之间不用内核切换,但是跨进程的话就需要内核参与
  • 同一进程的线程切换,需要从用户态转到核心态,系统开销大

 

你可能感兴趣的:(操作系统,考研,操作系统,408)