操作系统-线程

线程

线程是操作系统进程中能独立执行的实体,是处理器(不一定是CPU也可是张量处理器TPU,图像处理器GPU…)调度和分派的基本单位
项目常用说明线程本质是代表CPU资源,队列本质代表内存资源
目的:减少程序并发执行时所付出的时间开销
程序并发需要系统为其

  • 创建:分进程分配除CPU,内存外的其他所有资源
  • 撤销:先对资源进行回收,再撤销PCB
  • 切换:需要对当前CPU现场保护和设置新选中进程的CPU环境,所需开销大

线程只拥有运行中不可少的资源(eg:程序计数器pc,寄存器,栈等)但可与同一进程的其他线程共享该进程所有资源
线程之间可以并发执行。线程也有执行,就绪,等待经典的三状态
对应进程PCB,线程也有其控制块-TCB
不同进程间的线程是不可见的,同一进程中的线程通过全局变量通信
一个进程中至少会包括各主线程
线程与进程的区别和联系:
1.线程是调度和分配的基本单位,而进程是作为拥有资源的基本单位
2.同一进程内线程切换不会引起进程切换,但是不同进程中的线程切换回引起进程切换
3.多线程并发可使系统具有更好的并发性,能更有效地使用系统资源,提高吞吐量(单位时间完成的进程数)

有的系统中线程切换,同步,通信都不需要操作系统的干预
线程实现的3种方式:

  • 在系统内核实现内核级线程:内核为整个进程及进程中所有的线程维护现场信息,内核建立和维护进程的进程控制块PCB和线程的线程控制块TCB
  • 在用户空间实现用户级线程:优点:应用开发可自主选择调度算法,比较灵活,缺点:一个线程阻塞(补充说明:线程并发时,是中断并将当前执行的线程放回到就绪队列中,而不是阻塞状态。阻塞是因为等待某件事情的发生才会产生阻塞),该进程其他线程也无法再继续工作,且即使有多个CPU进程内的线程也无法实现并行执行
  • 同时支持两种线程(混合式线程)

用户级线程和内核级线程存在三种对应模式:

  • 1对1:每创建一个 用户级线程就创建一个核心级线程与之对应,这样可以实现多个线程并行执行,但是开销比较大,在实现时应该限制系统的线程数
  • 多对1: 将多个用户级进程 映射到一个内核级线程,效率较高,但一个线程阻塞会阻塞整个进程,在现实中线程不能实现真正的并发
  • 多对多:类比混合式线程,结合了1:1和多对1的优点也克服了他们的缺点。
    即可创建多个用户进程又能使于用户级线程对应的内核级线程有很高的并发性,当一个线程阻塞时,操作系统内核能够调度另一线程运行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

看不见的罗辑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值