三、线程
内容来自老师课件,仅供复习和学习
目录
- 进程与线程
- 线程分类
- 多核与多线程
- 对称多处理
- 微内核
- 现代操作系统相关技术
3.1进程与线程
- 进程概念的两个特点
- 资源分配的单位:资源的控制或所有权属于进程。操作系统执行保护功能,以防止进程之间发生不必要的与资源相关的冲突
- 调度、执行的单位:进程沿着一条执行路径(轨迹)执行。可能与其他进程的执行过程交替进行
- 传统操作系统中这两个特点集中地实现于进程机制中
- 两个特点本质上独立,可分开处理:用进程(任务)作为资源所有权单位,用线程作为CPU调度/执行/分派单位
- 为什么需要线程
- 在没有线程概念的系统中,进程是
- 资源分配的单位
- 调度/执行的单位
- 主要问题
- 进程切换开销大:每次切换都要保存和恢复进程所拥有的全部信息(PCB、有关程序段和相应的数据集等)
- 进程占用资源多:多个同类进程需占用多份资源,而一个进程中的多个同类线程则共共享一份资源
- 线程:一个进程内的基本调度单位
- 一个进程可有一个或多个线程
- 在没有线程概念的系统中,进程是
3.1.1多线程
- 多线程:是指OS支持在一个进程中执行多个线程的能力
![image]()
- 多线程环境下的进程和线程
- 进程/任务:资源分配和保护单位
- 拥有用于保存进程映像的虚地址空间
- 受保护地访问处理、其他进程、文件和I/O资源
- 线程:分派的执行单位
- 执行状态(运行,就绪等)
- 线程上下文(非运行时)
- 一个执行栈
- 存储局部变量的静态存储空间
- 对进程的内存和其他资源的访问(同进程其他线程共享)
- 进程/任务:资源分配和保护单位
- 单线程和多线程的进程模型
- 线程的优点(与进程比较)
- 创建速度快(在已有进程内)
- 终止用时少
- 切换时间少(保存和恢复工作量小)
- 通信效率高(在同一进程内,无需调用OS内核,可利用共享的存储空间)
- 线程的应用
- 若应用程序可按功能划分为不同的小段,或可划分成一组相关的执行实体,则用一组线程(比用一组进程)可提高执行效率(尤其是在多处理器和多核系统中)
- 单用户多核/多处理器系统的典型应用
- 服务器中的文件管理或通信控制
- 前台和后台操作(如前台用户交互、后台数据处理)
- 异步处理(如字处理与周期性备份)
- 加速执行(在多核/多处理器中的并行)
- 模块化程序结构(涉及多种活动或多个I/O源和目的地的程序)
3.1.2线程的功能特征(执行特征)
- 线程状态
- 运行
- 就绪
- 阻塞
![image]()
- 线程不拥有资源,且进程与其所有线程共享代码和地址空间
- 线程拥有自己的寄存器上下文和栈空间(用来存储局部变量和调用参数)
- 挂起状态、终止状态是进程级的概念
- 挂起一个进程,则该进程的所有线程也挂起
- 终止一个进程,则该进程的所有线程也终止
- 与线程有关的操作
- 派生(spawn,产卵)————线程可派生新线程
- 阻塞————等待事件发生
- 唤醒/解除阻塞————事件发生后被唤醒,转到就绪态
- 调度————由操作系统将就绪线程调度到处理器(核)中执行
- 结束————释放处理器上下文和栈
- 例1:使用线程的PRC
- 远程过程调用:在不同机器上执行两个程序的技术,它使用过程调用/返回的语法和语义
![image]()
- 远程过程调用:在不同机器上执行两个程序的技术,它使用过程调用/返回的语法和语义
- 例2:单个单核处理器上的多线程
![image]()
- 线程同步
- 同一进程的多个线程共享同一个地址空间和其他资源
- 需要同步各个线程的活动,使它们互不干涉且不破坏数据结构
- 线程同步机制与进程同步机制相同
3.2线程分类
- 用户级线程
- 线程管理均由应用程序完成(线程库)
- 线程库含有创建和销毁线程在线程间传递消息和数据的代码、调度线程和保存恢复线程上下文的代码
- 内核不知道线程的存在
- 优点
- 线程切换不需要模式切换
- 调度算法可应用程序专用
- 用户级别线程不需要内核支持,线程库可在任意操作系统上运行
- 缺点
- 一个线程阻塞会导致整个进程阻塞
- 不能利用多核和多处理器技术
- 内核级线程
- 混合方法/组合途径
![image]()







浙公网安备 33010602011771号