文章目录
- 前言
- 知识总览
- 一、什么是进程控制?
- 二、如何实现进程控制
- 三、进程控制相关的原语
- 知识回顾与重要考点
前言 此篇文章是我在B站学习时所做的笔记,大部分图片都是课件老师的PPT,方便复习用。此篇文章仅供学习参考。
提示:以下是本篇文章正文内容
知识总览
文章图片
一、什么是进程控制?
进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。
简化理解:反正进程控制就是要实现进程状态转换
文章图片
二、如何实现进程控制 操作系统会把各个处于不同状态的进程对应的PCB挂到相应的一系列队列当中,用这种方式来管理组织进程的PCB
文章图片
文章图片
文章图片
三、进程控制相关的原语 学习技巧:进程控制会导致进程状态的转换。
无论哪个原语,要做的无非
三类事情
:- 更新PCB中的信息(如修改进程状态标志、将运行环境保存到PCB、从PCB恢复运行环境)
a.所有的进程控制原语一定都会修改进程状态标志
b.剥夺当前运行进程的CPU使用权必然需要保存其运行环境
c.某进程开始运行前必然要恢复期运行环境 - 将PCB插入合适的队列
- 分配/回收资源
文章图片
另外,如果一个进程处于就绪态或阻塞态,此时如果有外界干预(如:用户主动请求撤销这个进程,如:windows下任务管理器直接杀进程正在操作),那操作系统也会使用撤销原语,来使这个进程直接从就绪态火族阻塞态直接转变为终止态,然后完成一系列工作之后,最后结束进程。
文章图片
对下图的解释:操作系统还提供了进程的阻塞和进程的唤醒相关的原语就是阻塞原语和唤醒原语。阻塞原语和唤醒原语所做的这一系列的工作,其实也是处理PCB的一些内容,或者把它插入到合适的队列,这样的一系列的工作,那么如果一个正在运行的进程,它需要等待系统分配某种资源,或者说需要等待某个事件的发生,操作系统就会使用阻塞原语把这个进程进行阻塞,由此这个进程会由运行态转变为阻塞态,那么当这个进程等待的事件发生之后,操作系统又会使用唤醒原语来把刚才阻塞的那个进程从阻塞态要转变为就绪态,那么需要注意的是,进程的唤醒,这个事件其实就是进程被阻塞的时候所等待的那个事件。因此,阻塞原语和唤醒原语应该是成对使用的,进程因为什么事件被阻塞,那么就应该因为什么事件被唤醒。
文章图片
对下图的解释:另外呢,操作系统还提供了进程切换相关的原语。进程切换相关的原语,其实实现的也是一些PCB相关的一系列的操作。那么像当前正在运行的进程时间片到或者有更高的进程到达,然后抢占了CPU,或者说当前正在执行的进程,主动的申请阻塞,或者说当前进程终止,这些都有可能导致进程的切换。这个切换原语,会让当前处于运行态的进程变为阻塞态或者就绪态,另外,又会让处于一个处于就绪态的进程进入到运行态,所以这是切换原语的作用
文章图片
知识回顾与重要考点
就一句话:使用不可中断的原语操作来进行进程状态的切换
文章图片
激活原语是一种原语。把刚创建还未执行的进程状态置为就绪,使其可以被调度。
重点!!!
1、进程控制中哪些原语的执行,进程会变换为就绪状态?
- 创建原语
- 唤醒原语
- 激活原语
3、进程主要的三个状态是:就绪、运行、等待
4、 能对进程动态特征的集中反映是 进程控制块
推荐阅读
- 操作系统进程切换的一些理解
- ROS学习笔记|ROS学习笔记(十六) 统一机器人描述格式URDF
- 运维|CPU与内存的那些事(2)
- Web开发|Linux 必会的高频操作
- Linux命令工作实践|001 研发同学必学哪些 Linux 命令()
- Linux|Linux 常用高频基础命令
- Linux之last命令
- 数据库|教你用 docker 搞个网站
- 戏说|不管鸡肋与否还是要学习linux系统原生的调优模板