用表情包看懂操作系统中的优先级翻转

Posted velscode

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用表情包看懂操作系统中的优先级翻转相关的知识,希望对你有一定的参考价值。

背景

操作系统中往往有许许多多的进程需要调度,调度方法多种多样,我们往往希望某些重要的进程(程序)能够优先执行,因此有了优先级的概念

举个例子,有3个进程A、B、C,优先级分别是50、40、30

技术图片

理想情况下,我们希望他们的执行顺序是 A --> B --> C

假设,A、B进程需要等待系统中的某一事件T发生才开始执行,因此他们一开始处于挂起状态

技术图片

系统因此开始调度C。C需要占用资源Z。

C占用到资源Z,但还没有释放的时候,系统中发生了事件T,进程A、B转换为就绪状态

技术图片

此时系统按照优先级顺序,开始调度A。

技术图片

但是很不幸,A也需要使用资源Z,但是资源Z是互斥的,只能被一个人占用,其他人都需要等待(比如信号量机制)

技术图片

此时,A只能再次把自己挂起,乖乖的等待C释放资源。

可是由于B的优先级比C高,系统又开始调度B。

技术图片

直到B执行完才开始调度C,C释放完资源后,A才能继续执行

技术图片

造成的后果就是,低优先级的B先于高优先级的A执行。这种现象称作“优先级翻转”

下一文讲解常见的解决优先级翻转的方法(11点半才到家,来不及写了,继续挖坑)

以上是关于用表情包看懂操作系统中的优先级翻转的主要内容,如果未能解决你的问题,请参考以下文章

如何使用css无限期翻转两个表情符号

片段(Java) | 机试题+算法思路+考点+代码解析 2023

动画 | 1分钟看懂广度优先遍历

片段处理屏幕方向与操作栏中的选项卡

一个例子看懂C语言中的++号的用法

看表情包学Linux进程优先级 | 查看系统进程 | 优先级修改 | 进程的切换 | 竞争性与独立性 | 并行并发的概念 | 环境变量