操作系统(2) 进程与线程

进程与线程

一、进程的概念

  1. 程序:是静态的,是可执行文件,是一系列的指令集合

  2. 进程:是动态的,是程序的一次执行过程

二、进程的组成

  1. 操作系统需要对各个并发执行的进程进行管理,管理时所需要的进程自己的信息,都会被保存在 各个进程自己的PCB中 (Process Control Block,进程控制块)

  2. 进程存在的唯一标志是PCB,当进程被创建时,操作系统为其创建PCB,进程结束时,操作系统 会回收其PCB

  3. 程序段、数据段、PCB三部分组成了进程实体
    在这里插入图片描述

  4. 进程的新定义:进程是进程实体的运行过程,是系统进行资源分配的一个基本单位

  5. 知识回顾
    在这里插入图片描述

三、进程的组织

  1. 操作系统中有许多的PCB,为了对这些PCB进行有效的管理,应当使用适当的方式将其组织起来

  2. 进程的组成讨论的是一个进程内部的构成问题,进程的组织讨论的是多个进程之间的组织方式问题
    在这里插入图片描述

  3. 链接方式
    在这里插入图片描述

  4. 索引方式
    在这里插入图片描述

四、进程的状态与转换

1. 进程的三种基本状态

在这里插入图片描述

2. 进程的其他两种状态

在这里插入图片描述

3. 进程状态的转换

在这里插入图片描述

  1. 知识回顾
    在这里插入图片描述

五、进程控制

  1. 进程控制就是要实现进程状态的转换

  2. 使用原语实现进程控制,原语具有原子性,原语的执行是一气呵成的,比如:将一个进程从阻塞 队列添加到就绪队列时,修改阻塞队列中此进程的状态为就绪态之后,应当将其从阻塞队列移 至就绪队列,如果不是一气呵成,可能出现状态为就绪态,但仍处于阻塞队列的情况

  3. 原语是通过关中断指令和开中断指令实现的,如图:
    在这里插入图片描述

  4. 进程控制相关的原语

无论哪种原语实现进程控制,所要做的事情有三类:

(1) 更新PCB中的信息
① 修改进程状态标志
② 剥夺进程的CPU使用权之前保存其运行环境
③ 某进程开始运行前恢复其之前的运行环境

(2) 将PCB插入到合适的队列

(3) 分配/回收资源

  1. 知识回顾
    在这里插入图片描述

六、进程通信

  1. 进程通信指的是进程之间的信息交换

  2. 各进程的内存地址空间相互独立,一个进程不能直接访问另一个进程的地址空间,操作系统提供 了进程之间信息交换的一些方法
    在这里插入图片描述

  3. 共享存储
    在这里插入图片描述

(1) 基于数据结构的共享
如共享数组,此种共享方式速度慢,限制多,是一种低级通信方式

(2) 基于存储区的共享
此种方式共享速度快,是一种高级通信方式

  1. 管道通信
    在这里插入图片描述
    (1) 管道其实就是一个缓冲区
    (2) 管道只能采用半双工通信,如果要实现双向同时通信,必须设置两个管道
    (3) 各进程要互斥的访问管道
    (4) 管道写满时,写进程将被阻塞,等待读进程将数据读走,管道被读空后,读进程将被阻塞
    (5) 管道为空,才允许写,管道为满,才允许读
    (6) 数据一旦被读出,数据就从管道中被抛弃,说明读进程最多只能有一个

  2. 消息传递
    进程之间的数据交换以格式化的消息为单位,通过发送消息/接收消息两个原语进行数据交换

(1) 直接通信方式
消息直接挂在接收进程的消息缓冲队列上
在这里插入图片描述

(2) 间接通信方式
消息先发送到中间实体(信箱)中
在这里插入图片描述
6. 知识回顾
在这里插入图片描述

七、线程的概念

  1. 一个进程有多个线程,从属于同一进程的各个线程共享进程的资源

  2. 进程是资源分配的基本单位,线程是CPU调度的基本单位
    在这里插入图片描述

  3. 进程切换开销大,线程切换开销小

  4. 线程也有运行态、就绪态、阻塞态

  5. 线程几乎不拥有资源,只有极少量的资源(TCB(线程控制块)、寄存器信息等)

  6. 为什么要引入线程?
    (1) 进程可以并发执行的基础上,进程内部的线程也可以并发执行,提升了系统的并发度
    (2) 如图所示:
    在这里插入图片描述

八、线程的实现方式

1. 用户级线程

用户级线程是从用户角度能看到的线程,操作系统看不到线程的存在,只可以看到进程,线程 切换在用户态下即可完成,无需操作系统干预,如图:
在这里插入图片描述

2. 内核级线程

内核级线程是从操作系统内核能看到的线程,线程的切换必须在核心态下才能完成
在这里插入图片描述

3. 两种实现方式的结合

在这里插入图片描述

九、多线程模型

1. 多对一模型

在这里插入图片描述

2. 一对一模型

在这里插入图片描述

3. 多对多模型

在这里插入图片描述

  1. 知识回顾
    在这里插入图片描述
  • 15
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Nice2cu_Code

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

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

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

打赏作者

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

抵扣说明:

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

余额充值