王道操作系统笔记,视频链接:2.1.6.3 线程的状态与切换
本节为2022大纲新增考点。

知识总览

线程:

  • 状态与转换
  • 组织与控制
    PS:线程的状态与转换和进程的状态与转换几乎是一模一样的。

线程的状态与转换

如图所示:
线程的三个主要状态的转换
线程的三个主要状态,即就绪态、运行态、阻塞态的转换与进程完全一致。

线程的组织与控制

  1. PCB 为进程控制块,而 TCB 为线程控制块。
  2. TCB的结构包含信息如下:
    • 线程标识符(TID,与PID类似)
    • 线程切换时要保存/恢复的部分:
      • 程序计数器PC(线程目前执行到哪里)
      • 其它寄存器(线程运行的中间结果)
      • 堆栈指针(堆栈保存函数调用信息、局部变量等)
        堆栈指针通常恢复到 SP,即堆栈寄存器中
    • 线程运行状态(运行/就绪/阻塞)
    • 优先级(线程调度、资源分配的参考)
  3. 线程表:
  • 多个 TCB 组织成一张线程表
  • 可以每个进程一个线程表,可以系统中所有线程组成线程表,也可以根据状态不同组织线程表,不同系统可以采取不同的策略。
  1. 图示:
    线程控制块与线程表
  2. 线程的控制:前面的1,2,3,4都是线程的组织,线程的控制指的是让线程在不同状态中的来回切换,依然与进程类似。
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐