Skip to content

线程(内核级与用户级)

考情分析

线程是进程管理的重要概念,408 真题中常以选择题形式考查线程与进程的区别、ULT 与 KLT 的特性。属于 🔥🔥 中高频考点。

一个浏览器需要同时渲染页面、下载文件、响应用户点击。如果每个任务都开一个进程,进程间通信和切换的成本太高了——线程就是为了在同一个进程内实现更轻量的并发。

为什么引入线程

进程的创建、撤销和切换都涉及资源的分配与回收,开销很大。为了减小并发执行的开销,引入了线程(Thread)——一种更轻量的执行单元。

引入线程后的分工:

概念职责
进程资源分配的基本单位(内存、文件等)
线程CPU 调度的基本单位

一个进程可以包含多个线程,这些线程共享进程的地址空间和资源,但各自有独立的栈、PC 和寄存器。

线程 vs 进程

比较维度进程线程
调度单位传统OS中是调度单位引入线程后,线程是调度单位
资源拥有拥有独立的地址空间和资源共享所属进程的资源
并发性进程间可并发同一进程内的线程也可并发
创建/切换开销大(涉及资源分配)小(共享地址空间)
通信需要 IPC 机制可直接读写共享变量
独立性相互独立同进程的线程共享资源,独立性弱

线程的属性

每个线程拥有的独立资源:

  • 线程 ID
  • 程序计数器 PC
  • 寄存器集合
  • (每个线程有自己的栈空间)

线程共享所属进程的资源:

  • 代码段
  • 数据段
  • 打开的文件
  • 堆内存
  • 全局变量

用户级线程 ULT

用户级线程(User-Level Thread)由用户空间的线程库管理,内核对线程的存在一无所知。就像公司内部的小组分工——HR 系统里只有一个"部门",部门内部谁干什么活,HR 不知道也不管。

优点缺点
线程切换不需要进入内核态,速度快一个线程阻塞 → 整个进程阻塞
可以在不支持线程的OS上实现无法利用多核CPU(内核只调度进程)
调度算法可由应用自定义

内核级线程 KLT

内核级线程(Kernel-Level Thread)由操作系统内核直接管理和调度。

优点缺点
一个线程阻塞不会导致整个进程阻塞线程切换需要进入内核态,开销较大
可以利用多核CPU并行执行创建和管理线程开销大于 ULT

内核级线程才是处理机调度的单位

只有内核级线程才能被操作系统调度到 CPU 上执行。用户级线程必须映射到内核级线程才能获得 CPU 时间。

多线程模型

模型映射关系特点
多对一多个 ULT → 1 个 KLT线程管理在用户空间,效率高;但一个阻塞全部阻塞
一对一1 个 ULT → 1 个 KLT并发性好,可利用多核;但创建线程开销大
多对多m 个 ULT → n 个 KLT(m≥n)兼顾两者优点,实现复杂

考研高频考点

  • 🔥🔥🔥 线程是 CPU 调度的基本单位,进程是资源分配的基本单位
  • 🔥🔥🔥 ULT vs KLT 的特性对比(尤其阻塞行为)
  • 🔥🔥 三种多线程模型的区别
  • 🔥🔥 线程共享哪些资源、独占哪些资源
  • 🔥 ULT 中一个线程阻塞导致整个进程阻塞的原因

有了进程和线程的概念,接下来看操作系统是如何通过原语来实际控制进程的创建、撤销和状态转换的。

真题练习

相关真题(19题)

2026Q25选择题2分

线程共享:同进程线程共享堆,各有独立栈

进程与线程基本概念
2025Q46综合题8分

### (1)PCB 位置 + scanf 时进程状态

进程与线程基本概念
2024Q24选择题2分

OS初始化:中断向量表在操作系统初始化时创建

进程与线程基本概念
2024Q28选择题2分

进程状态转换:读文件、申请外设、wait()都可能导致阻塞

进程与线程基本概念
2021Q24选择题2分

共享文件:系统打开文件表中只有一个F的属性表项

进程与线程基本概念
2021Q27选择题2分

MLFQ设计:需考虑队列数量、优先级、各队列算法和迁移条件

进程与线程基本概念CPU 调度基本概念
2020Q29选择题2分

二级页表:计算页目录表的表项个数

进程与线程基本概念
2019Q23选择题2分

用户级线程:线程控制块由线程库维护,操作系统不感知

进程与线程基本概念线程实现
2019Q24选择题2分

进程唤醒:I/O结束和退出临界区可唤醒等待进程

进程与线程基本概念进程状态与转换
2018Q25选择题2分

并发执行:两个线程各执行3条指令对x加1,分析x=2的序列

进程与线程基本概念同步与互斥基本概念
2016Q25选择题2分

死锁最少进程数:3个进程形成循环等待即可死锁

进程与线程基本概念死锁
2016Q30选择题2分

互斥执行:同一进程内共享变量x的写操作需互斥

进程与线程基本概念同步与互斥基本概念
2016Q46综合题6分

综合题:动态优先级调度的饥饿问题分析与优先数计算设计

进程与线程基本概念CPU 调度基本概念CPU 调度算法
2015Q25选择题2分

状态转换:被抢占从执行态→就绪态,其他选项是→阻塞态

进程与线程基本概念进程状态与转换CPU 调度基本概念
2014Q26选择题2分

I/O完成后:将进程从阻塞态改为就绪态

进程与线程基本概念进程状态与转换
2012Q31选择题2分

进程与线程:进程始终是资源分配单位,引入线程后线程是调度单位

进程与线程基本概念
2011Q25选择题2分

线程资源:代码段、文件、全局变量共享,栈指针各线程独有

进程与线程基本概念
2010Q24选择题2分

单CPU并行:处理机与设备、处理机与通道、设备与设备可并行,进程只能并发

进程与线程基本概念
2009Q25选择题2分

信号量值:S=1>0表示有1个资源可用,无等待进程

进程与线程基本概念死锁