📜  操作系统中的线程模型

📅  最后修改于: 2021-08-24 04:38:30             🧑  作者: Mango

线程是一种轻量级进程,类似于每个进程可以具有一个或多个线程的进程。每个线程包含一个堆栈和一个线程控制块。有四种基本线程模型:

1.用户级别单线程模型:

  • 每个进程包含一个线程。
  • 单进程本身就是一个线程。
  • 进程表包含通过维护其PCB的每个进程的条目。

2.用户级多线程模型:

  • 每个进程包含多个线程。
  • 进程的所有线程由线程库在用户级别安排。
  • 线程切换可以比进程切换更快地完成。
  • 线程切换独立于操作系统,可以通过一个进程来完成。
  • 阻塞一个线程会阻塞整个进程。
  • 线程表维护进程的每个线程的线程控制块。
  • 线程调度发生在进程内,内核不知道。

3.内核级单线程模型:

  • 每个进程包含一个线程。
  • 这里使用的线程是内核级线程。
  • 进程表用作线程表。

4.内核级多线程模型:

  • 线程调度是在内核级别完成的。
  • 细粒度调度是在线程基础上完成的。
  • 如果一个线程阻塞,则可以调度另一个线程而不会阻塞整个过程。
  • 与用户级线程调度相比,内核进程中的线程调度要慢。
  • 线程切换涉及切换。