Please enable JavaScript.
Coggle requires JavaScript to display documents.
2.1进程与线程, 线程 (线程控制块TCB, 实现方式, 线程终止后不立即始放资源) - Coggle Diagram
2.1进程与线程
系统开销
线程
创建、撤销小;线程切换小;同步和独立非常容易实现
进程
创建、撤销大;进程切换大,设计上下文切换
通信
线程
直接读写进程数据段(如全局变量)
进程
同步和互斥手段辅助,保证数据一致性
目的
进程
更好地使多道程序并发执行,提高资源利用率和系统吞吐量
线程
减小程序在并发执行时所付出的时空开销,提高操作系统的并发性能
基本单位
线程
调度和分派的基本单位
能独立运行的基本单位,基本的CPU执行单元
程序执行流的最小单元
进程
拥有资源的基本单位
独立性
线程
多个线程共享进程的资源
一个线程的堆栈可以被其他线程读、写甚至完全删除,一个线程打开的文件可以供其他线程读、写
某进程的线程对其他进程不可见
无独立地址空间
进程
仅共享全局变量,不允许其他进程访问
并发
线程
间断性
进程
线程是进程中的一个实体
多处理机系统,一个进程的多个线程同时执行
线程
线程控制块TCB
一组寄存器
程序计数器
状态寄存器
通用寄存器
线程标识符 ID 唯一
堆栈指针
指用户自己的堆栈
用户态
指向核心栈
核心态
线程运行状态
优先级
线程专有存储区
现场保护信息
信号屏蔽
实现方式
组合模式KST/ULT
用户级线程通过时分多路内核级线程实现
多对一
开销小,效率高
多对n
一对一
创建内核进程开销大
用户级线程ULT
优
调度算法进程专有
用户级线程与操作系统无关
线程切换不转核心态
缺
线程阻塞,进程全部阻塞
多处理机系统,一个进程的多个线程无法并行执行
内核意识不到线程存在
内核支持线程KST
优
线程阻塞不影响该进程中其他线程
数据结构和堆栈小,切换快,开销小
多处理机系统,一个进程的多个线程并行执行
内核也是多线程的
线程管路的所有工作由内核完成,应用程序没有实现线程管理的代码,只有到内核级线程的编程接口
缺
用户的线程切换开销大,需转到核心态
线程终止后不立即始放资源