操作系统——线程

在这里插入图片描述

一. 什么是线程,为什么要引入线程?

1. 为什么要引入线程

在20世纪80年代中期,人们又提出了比进程更小的基本单位——线程,视图用它来提高程序并发执行的程度,以进一步改善系统的服务质量

在没有引入进程之前,系统中的各个程序只能串行执行

不能够同时使用QQ和听音乐

引入进程之后

可以同时听音乐和使用QQ

但是如果你想使用QQ进行视频聊天,同时又进行文字聊天,而且还传输文件,
这些功能,在传统的进程上是不能同时进行的,因为传统的进程是程序的一次顺序执行,只能串行的执行一系列程序。
在这里插入图片描述
人们希望每个进程还能够同时的做很多事情,而传统的进程只能串行的执行一系列程序,所以,人们又引入了线程,来增加并度。
在这里插入图片描述

2. 什么是线程

在这里插入图片描述

二. 线程有哪些特性呢?

1. 线程的基本特性

  • 与传统进程一样,线程之间也存在共享资源和相互合作有的制约关系,这就导致线程也有中断性。进而线程在运行时就会出现以下三种状态
  1. 执行状态:线程已获得处理机而正在运行
  2. 就绪状态:线程以具备各种执行条件,等待CPU继续执行
  3. 阻塞状态:线程在执行中因某事件受阻而处于暂停状态
  • 线程状态之间切换与进程也是一样的
  • 线程也有控制块(TCB)
    里面存储线程的信息记录来用于控制和管理线程

2. 传统的进程和线程进行比较

  1. 调度的基本单位

     传统OS中,进程是作为独立调度和分派的基本单位,所以进程是独立运行的基本单位
     缺点:每次调度,都需要上下文切换,开销大
    
     引入进程的OS中,把线程作为调度和分派的基本单位,所以线程是独立运行的基本单位
     优点:线程切换,开销小,也不会引起进程的切换
    
  2. 并发性

     进程可以并发执行
    
     引入线程的OS中,线程也可以并发执行,一个进程中的所有线程都能并发执行
    
  3. 拥有资源

     进程可以拥有资源,作为系统中拥有资源的一个基本单位
    
     线程本身不能拥有系统资源,线程只具备一点资源(控制线程的线程控制块TCB、用于指示被执行指令序列的程序计数器、一组寄存器、堆栈)
     多个线程允许共享该进程所拥有的资源(原因是:属于同一进程的所有线程都具有相同的地址空间)
    
  4. 独立性

     每个进程拥有一个独立的地址空间和其他资源,除了共享全局变量外,不允许其他进程的访问
    
     同一个进程中的不同线程之间的独立性比不同进程之间的独立性低。
     原因是:同一个进程之间的线程可以相互合作,共享进程的内存地址空间和资源
    
  5. 系统开销

     创建和撤销进程的开销大
     进程的上下文切换开销大
     
     创建和撤销线程的开销小
     线程之间同步和通信简单,无需OS内核干预
    
  6. 支持多处理机系统

     在多处理机系统中,传统的进程,即单线程进程,不管有多少个处理机,该进程只能运行在一个处理机上
    
     多线程进程,可以将一个进程中多个线程分配到多个处理机上,使他们并行执行
    

3. 引入线程机制后,产生的变化

在这里插入图片描述

4. 多线程操作系统的特点

进程已不再是可执行的实体,在多线程OS中,把线程作为独立运行(调度)的基本单位

虽然是这样,但进程任然具有与执行相关的状态

如:进程处于执行状态,实际上是指进程中的某线程正在执行
    对进程施加的与进程状态有关的操作也对其线程起作用(挂起进程,就是把进程中的所有线程都挂起了)

5. 通过以上总结线程的属性

在这里插入图片描述

三. 线程的实现方式

线程已在许多系统中实现,但各系统的实现方式并不完全相同。
在有的系统中,特别是一些数据库管理系统,实现的是用户级线程

如infomix

另外一些系统实现的是内核支持线程

如Macintosh和OS/2操作系统

还有些系统则同时实现这两种类型的线程

如Solaris操作系统

1. 用户级线程

在这里插入图片描述

2. 内核级线程

在这里插入图片描述

3. 同时支持用户级线程和内核级线程

在这里插入图片描述

在同时支持用户级线程和内核级线程的系统中,由于几个用户级线程映射到几个内核级线程的问题引出了“多线程模型”问题
  1. 多对一模型
    在这里插入图片描述

  2. 一对一模型
    在这里插入图片描述

  3. 多对多模型
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值