【操作系统复习】第三章 第二节 线程

操作系统复习

第三章 进程管理

3.2 线程

一、线程的引入
  • 传统进程属性:资源分配单位、CPU调度单位
  • 缺点:时间空间开销大,限制并发度的提高
  • 解决方法:引入线程
    • 线程作为调度的基本单位
    • 进程作为资源分配单位
  • 引入线程后,进程属性:
    • 拥有资源的基本单位
    • 可以拥有多个线程,它们可并发执行
    • 进程不再是可执行的实体
二、进程和线程的比较
  • 调度:线程上下文切换比进程上下文切换快
  • 拥有资源
    • 进程间相互独立
    • 同一进程的各线程间资源共享
  • 系统开销:线程减小并发执行的时间和空间开销
  • 并发性:在系统中建立更多的线程来提高并发性
三、线程的状态、线程控制块、线程的创建与终止
  • 线程的状态
    • 执行
    • 就绪
    • 阻塞
  • 线程控制块:TCB
  • 线程的创建和终止:函数或系统调用
    • 创建
      • 应用程序在启动时,通常仅有一个线程在执行——初始化线程
      • 初始化线程可根据需要再去创建若干个线程
      • 线程创建函数执行完后,将返回一个线程标识符供以后使用
    • 终止
      • 线程完成了自己的工作后自愿退出
      • 线程在运行中出现异常或由于某种原因而被其它线程强行终止
四、OS对线程的实现方式
  • 内核线程KST
    • 概念
      • 创建、阻塞、撤销、切换等操作在内核空间实现
      • 调度以线程为单位进行
      • 操作系统内核给应用程序提供相应的系统调用和应用程序接口API,使用户程序可以创建、执行、撤消线程。
    • 优点
      • 多处理机系统中,内核能够同时调用同一进程中的多个线程并行执行
      • 进程中一个线程被阻塞,该进程中的其它线程还可以运行
      • 线程切换快,开小小
      • 内核本身采用多线程技术,提高系统执行速度和效率
    • 缺点
      • 用户线程切换,需要从用户态转到核心态进行,开销大
  • 用户线程ULT
    • 概念
      • 用户级线程在用户空间实现,无需内核支持
      • 调度以进程为单位进行
    • 优点
      • 线程切换不需要转到核心态
      • 线程调度算法可以由进程专用
      • 用户级线程的实现与OS平台无关
    • 缺点
      • 系统调用的阻塞问题:一个线程被阻塞,该进程中的所有线程被阻塞
      • 不能利用多处理机技术:只将处理机分配给进程
    • 用户级线程的实现
      • 运行时系统:管理和控制线程的函数集合
      • 内核控制线程:轻量级线程,LWP通过系统调用获取内核服务
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值