第4章线程 线程的引入 线程与进程的对比 线程的实现
第4章 线程 • 线程的引入 • 线程与进程的对比 • 线程的实现
1、线程的引入 进程的两个基本属性 资源的拥有者: 给每个进程分配一虚拟地址空间,保存进 程映像,控制一些资源(文件,I/O设 备),有状态、优先级、调度 调度单位: 进程是一个执行轨迹 以上两个属性构成进程并发执行的基础
1、线程的引入 进程的两个基本属性: • 资源的拥有者: 给每个进程分配一虚拟地址空间,保存进 程映像,控制一些资源(文件,I/O设 备),有状态、优先级、调度 • 调度单位: 进程是一个执行轨迹 以上两个属性构成进程并发执行的基础
线程的引入(续) 系统必须完成的操作: 创建进程 ·撤消进程 进程切换 缺点: 时间空间开销大,限制并发度的提高
线程的引入(续) 系统必须完成的操作: • 创建进程 • 撤消进程 • 进程切换 缺点: 时间空间开销大,限制并发度的提高
线程的引入(续) 在操作系统中,进程的引入提高了计算 机资源的利用效率。但在进一步提高进 程的并发性时,人们发现进程切换开销 占的比重越来越大,同时进程间通信的 效率也受到限制 线程的引入正是为了简化进程间的通信 以小的开销来提高进程内的并发程度
线程的引入(续) • 在操作系统中,进程的引入提高了计算 机资源的利用效率。但在进一步提高进 程的并发性时,人们发现进程切换开销 占的比重越来越大,同时进程间通信的 效率也受到限制 • 线程的引入正是为了简化进程间的通信, 以小的开销来提高进程内的并发程度
线程的引入(续) 线程:有时称轻量级进程 进程中的一个运行实体 是一个CPU调度单位 资源的拥有者还是进程或称任务
线程的引入(续) 线程:有时称轻量级进程 进程中的一个运行实体 是一个CPU调度单位 资源的拥有者还是进程或称任务
线程的引入(续) 线程: 有执行状态(状态转换) ·不运行时保存上下文 ·有一个执行栈 有一些局部变量的静态存储 可存取所在进程的内存和其他资源 可以创建、撤消另一个线程
线程的引入(续) 线程: • 有执行状态(状态转换) • 不运行时保存上下文 • 有一个执行栈 • 有一些局部变量的静态存储 • 可存取所在进程的内存和其他资源 • 可以创建、撤消另一个线程
线程和进程: 单进程、单线程 单进程、多线程 多进程、一个进程一个线程 多进程 进程多个线程
线程和进程: 单进程、单线程 单进程、多线程 多进程、一个进程一个线程 多进程、一个进程多个线程
单线程进程模型 PCB 用户栈核心栈 用户地址空间 线程控制块: 包含了寄存器映像,线程优先数和线程状态信息
P C B 用 户 栈 单线程进程模型 用户地址空间 核 心 栈 线程控制块: 包含了寄存器映像,线程优先数和线程状态信息
多线程进程模型 线程 线程 线程 控制块 控制块 控制块 PCB 用 用户栈 用户 地址 空间 栈核心栈 用户栈核心栈 核心栈
P C B 多线程进程模型 用户 地址 空间 用 户 栈 核 心 栈 线程 控制块 用 户 栈 核 心 栈 线程 控制块 用 户 栈 核 心 栈 线程 控制块
引入线程的好处 ·创建一个新线程花费时间少(结束亦如此) 两个线程的切换花费时间少 (如果机器设有“存储[恢复所有寄存器” 指令,则整个切换过程用几条指令即可完 成) 同一进程内的线程共享内存和文件,它们 之间相互通信无须调用内核 适合多处理机系统
引入线程的好处: • 创建一个新线程花费时间少(结束亦如此) • 两个线程的切换花费时间少 (如果机器设有“存储[恢复]所有寄存器” 指令,则整个切换过程用几条指令即可完 成) • 同一进程内的线程共享内存和文件,它们 之间相互通信无须调用内核 • 适合多处理机系统