操作系统-----线程

线程



其实线程是打算与上一章的进程写在一起的,但是一天事情太多,写得太晚了。就只好把线程单独分一章出来。

本章重点
1、线程的概念
2、线程与进程的关系
3、线程的状态
4、进程与线程的比较
5、线程的分类
6、线程的组合
7、多线程问题
8、 Windows 2000的线程

(一) 线程的概念

线程

  • 指系统独立调度和cpu分配的最小单位
  • 线程是进程的以一个实体,它除了拥有运行中必不可少的资源(程序计数器、寄存器、栈)外,不用其他系统的资源,故而称为轻量级进程

引入线程可以减少程序并发执行时所付出的时间和空间开销,极大的提高了系统效率


(二) 线程与进程的关系

线程与进程的关系

关系解释
划分尺度线程粒度更小,它是进程的一个执行单元,进程内可调度实体
资源分配进程是资源分配的基本单位,线程不拥有I/O设备等系统资源,此外,同一进程有多个线程可共享该进程的资源
地址空间进程拥有独立的空间地址,同一进程有多个线程可共享该进程的地址空间
CPU调度线程是CPU调度的基本单位
并发执行一个进程可以有多个线程,但是一个线程只属于一个进程,所以线程的并发程度更高。

(三) 线程的状态

在这里插入图片描述

进程是资源的拥有者,线程不拥有资源,只有TCB及堆栈。

(四) 线程与进程的比较

线程与进程的比较

关系解释
调度线程调度快,需要空间小;进程因为拥有资源,调度时会因此而过慢
并发性在引入线程的操作系统当中,进程、同进程中的多个线程都可以并发执行
拥有资源进程是资源的拥有者
系统开销进程切换的开销>线程切换的开销,线程的切换省去了资源的回收

(五)线程的分类

线程的分类

  • 用户级线程:线程的创建、撤销和切换,都不利用调度系统来实现。线程与内核无关,内核也不知道线程的存在。

    特点:
    1、线程的切换开销小;
    2、管理控制方便;
    3、健壮、实用性强;
    4、当某个线程被阻塞时,其所属进程中的其他线程也会被阻塞,导致系统效率较低;
    5、相同进程中多个线程不能真正运行。

  • 内核级线程:依赖于内核、线程的创建、撤销和切换都由内核实现。在内核中有线程控制块(TCB),内核根据TCB感知线程的存在,并对线程进行控制。


特点:
1、相同进程内多个线程可以并行执行
2、内核线程具有很小的数据结构和堆栈,且切换速度块,从而提高了操作系统的性能和效率
3、多处理机环境中,一个进程的多个线程可以分配到多个CPU执行
4、一个进程中线程的切换会引起从用户态到系统态,从系统太到用户态之间转换,会增加系统内核的开销和负担。

用户级和内核级线程的比较

12
调度与切换速度用户级>内核
系统调用内核>用户级 (y用户级在被系统调用是,系统会看成是进程行为,但是内核线程的就不会。)
线程执行时间内核>用户级

(六) 线程的组合

线程的组合

组合的方法:一个进程可以有一个或多个轻量级线程,每一个轻量级线程由一个单独的内核线程来支持。

(七) 多线程问题

多线程问题

  • 线程的取消:指线程完成任务前终止。
    立即取消:线程不需要马上取消
    延迟取消:以一种有序的方式终止

  • 信号处理:单线程的信号处理比较直接,多线程的比较复杂

  • 线程池:主要思想是在进程开始时创建一定数量的线程
    在这里插入图片描述

(八) Windows 2000的线程

Windows 2000的线程

  • 是内核支持线程
  • 系统调度以线程为单位。
  • 线程包括(线程控制块、核心栈、用户栈)
  • 在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值