📜  操作系统中的线程模型

📅  最后修改于: 2021-09-27 14:41:17             🧑  作者: Mango

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

1. 用户级单线程模型:

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

2. 用户级多线程模型:

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

3.内核级单线程模型:

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

4.内核级多线程模型:

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