os之线程(Threads)

0.为何引入线程

由于进程是一个资源的拥有者,因而在创建、撤销、和切换中系统必须为之付出较大的时空开销。这就限制了系统中所设置的进程的数目,而且进程的切换也不宜归于频繁,从而限制了并发程度的进一步提高。为减少进程切换的开销,把进程作为资源分配单位和调度单位这两个属性分开处理,即进程还是作为资源分配的基本单位,但是不作为调度的基本单位(很少调度或切换),把调度执行与切换的责任交给“线程”。这样做的好处不但可以提高系统的并发度,还能适应新的对称多处理机(SMP)环境的运行,充分发挥其性能。

1. 线程的概念

线程是进程一个实体,是被系统独立调度的基本单位,只拥有少量的资源。

2.线程的特点

a.调度的基本单位

引入线程的OS中,线程作为调度和分配的基本单位。线程切换时,仅需保存和设置少量寄存器内容,切换代价远低于进程。

b.并发

一个进程中的多个线程之间可以并发执行,甚至还允许一个进程中的所有线程都可以并发执行。不同进程中线程也可以也能并发执行。

c.资源

1.线程本身不拥有系统资源,而是仅有一点必可不少、能保证系统独立运行的资源。

控制线程运行的线程控制块(TCB)
用于指示被执行的指令序列的程序计数器
保存局部变量、少数状态参数和返回地址等的一组寄存器和堆栈

2.一个进程中的所有线程共享进程所拥有的全部资源,表现在:属于同一进程中的所有线程都具有相同的地址空间。

d.系统开销较小

在创建进程或撤销进程时,系统都要为之分配和回收PCB、分配和回收资源。而线程切换时,仅需保存和设置少量寄存器内容,切换代价远低于进程。

e.支持多处理机系统

在多处理机系统中,对于单线程进程,不管有多少处理机,该进程只能运行一个处理机上。但对于多线程进程,就可以将一个进程中的多个线程分配到多个处理机并行执行。

3.线程的状态

在这里插入图片描述

4. 线程控制块

1 .每个线程有一个唯一的标识符。
2. 线程序控制块中包含寄存器(Pc和堆栈指针)、堆栈、线程运行状态、优先级、线程专有存储器、信号。
3.线程运行状态(有执行态、就绪状态、阻塞状态)。

5.多线程os的进程

1.进程是一个可拥有资源的基本单位。在多线程os中,仍是时系统资源分配的基本单位。
2.多个线程之间可以并发执行。
3.进程已不是可执行的实体。多线程os中,线程作为独立运行或调度的基本单位。

进程与线程的比较
传统操作系统传统操作系统
调度进程线程
并发性进程并发 进程、线程并发
拥有资源
系统开销
二、线程的实现方式
1.内核支持线程
概念

内核支持线程是在内核的支持下运行的,即无论是用户进程中的线程,还是系统进程中线
程,他们的创建、撤消和切换等也是依靠内核。
在这里插入图片描述

优点

1.在多处理机系统中,内核能够同时调度通一进程中多个线程并行执行;
2.一个线程阻塞,该进程中的其它线程不受影响,
3.线程有很小的数据结构和堆栈,切换比较快、开销小,
4.内核本身也可以采用多线程技术,提高系统的执行速度和效率;

不足

对于用户的线程而言,其模式切换开销较大。在同一个进程中,从一个线程切换到另一个线程时,需要从用户态转到核心态进行。这是因为用户进程的线程在用户态运行,而线程调度和管理是在内核实现,系统开销较大。

2.用户级线程
概念2

用户级线程仅存在于用户空间,这种线程的创建、撤消、线程间的同步与通信等功能都无须调用内核的支持。
在这里插入图片描述

优点

1.线程切换不需要转换到内核空间,节省内核的宝贵资源,
2.线程调度算法是进程专用的;
3.用户级线程的实现与操作系统平台无关;

不足

1.调度仍以进程为单位进行,用户线程在进程分配的时间片内执行;
2.系统调用的阻塞问题,一个线程阻塞,则该进程阻塞,其内的其它线程也阻塞;
3.不能利用多处理机进行多重处理的优点,内核每次分配给一个进程仅有一个CPU.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值