Chapter 2 进程与线程(上)

Chapter 2 进程与线程(上)

1.什么是进程

进程是程序的一次执行过程;是一个程序及其数据在处理机上顺序执行时发生的活动,是系统进行资源分配和调度的一个独立单位

程序段、数据段、PCB三部分组成了进程实体,即进程。PCB是进程存在的唯一标志

进程控制块(PCB)是指系统为每个运行的程序配置一个数据结构,操作系统通过PCB来管理进程,它包含操作系统对其进行管理所需的各种信息

程序段:存放程序代码

数据段:存放程序运行时使用、产生的运算数据(全局变量、局部变量、宏定义的常量)

2.进程的组织方式

在这里插入图片描述

3.进程的特性

在这里插入图片描述

4.进程的状态

  • 创建态:进程正在被创建,操作系统为进程分配资源、初始化PCB
  • 就绪态:进程已经拥有了除了CPU之外所需要的资源,一旦获得CPU,即可立即进入运行态开始运行
  • 运行态:占有CPU并在CPU上运行。单核CPU环境下,同一时刻最多只有一个进程处于运行态,多核则多个进程运行
  • 阻塞态:等待操作系统分配所需的其他资源
  • 终止态:进程正在从系统中撤销,操作系统会回收进程拥有的资源、撤销PCB

5.进程状态的转换

在这里插入图片描述

6.进程控制

进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能

6.1 如何实现进程控制

通过原语实现进程控制。原语的特点是执行期间不允许中断,一气呵成。

原语通过关中断指令开中断指令实现,这对指令权限非常大,是只允许在核心态下执行的特权指令

6.2 进程控制相关的原语

原语所做的无非三件事:

  • 更新PCB中的信息
    • 所有进程控制原语一定都会修改进程状态标志
    • 剥夺当前运行进程的CPU使用权必然需要保存其运行环境
    • 某进程开始运行前必然要恢复其运行环境
  • 将PCB插入合适的队列
  • 分配/回收资源

(1)进程创建

在这里插入图片描述

(2)进程终止

在这里插入图片描述

(3)进程的阻塞和唤醒

在这里插入图片描述

(4)进程切换

在这里插入图片描述

7.进程通信

在这里插入图片描述

8.什么是线程

线程是一个基本的CPU执行单元,也是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

  • 引入线程机制的变化

在这里插入图片描述

在这里插入图片描述

9.线程的实现方式

9.1 用户级线程

用户级线程由应用程序通过线程库实现。所有的线程管理工作都由应用程序负责(包括线程切换),线程切换可以在用户态下完成,无需操作系统干预

对于用户来说,是有多个线程;但对于操作系统内核来看,意识不到线程的存在

在这里插入图片描述

9.2 内核级线程

内核级线程的管理工作由操作系统内核完成。线程调度、切换等工作都有内核负责,因此内核级线程的切换必然需要在核心态下才能完成

在这里插入图片描述

9.3 二者组合

在同时支持用户级线程和内核级线程的系统中,可采用二者组合的方式:将n个用户级线程映射到m个内核级线程上(n >= m)

只有内核级线程才算是CPU分配的单位

在这里插入图片描述

10.多线程模型

10.1 多对一模型

多个用户级线程映射到一个内核级线程。每个用户线程只对应一个内核级线程

优点:用户级线程的切换在用户态下即可完成,不需要切换核心态,线程管理的系统开销小,效率高

缺点:当一个用户级线程被阻塞后,整个进程都会被阻塞,并发度不高,多个线程不可在多核CPU上并行运行

在这里插入图片描述

10.2 一对一模型

一个用户及线程映射到一个内核级线程。每个用户进程有与用户级线程同数量的内核级线程

优点:当一个线程被阻塞后,别的线程还可以继续运行,并发能力强。多线程可以在多核CPU上执行

缺点:一个用户线程占用多个内核级线程,线程切换需要切换到核心态,由操作系统内核完成,因此线程管理的成本高,开销大

在这里插入图片描述

10.3 多对多模型

n个用户级线程映射到m个内核级线程(n >= m)。每个用户进程对应m个内核级线程

优点:克服了多对一模型并发度不高的缺点,又克服了一对一模型中一个用户线程占用太多内核级线程,开销太大的缺点

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值