zoukankan      html  css  js  c++  java
  • 用表情包看懂操作系统中的优先级翻转

    背景

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

    举个例子,有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点半才到家,来不及写了,继续挖坑)

  • 相关阅读:
    八数码难题 (codevs 1225)题解
    小木棍 (codevs 3498)题解
    sliding windows (poj 2823) 题解
    集合删数 (vijos 1545) 题解
    合并果子 (codevs 1063) 题解
    等价表达式 (codevs 1107)题解
    生理周期 (poj 1006) 题解
    区间 (vijos 1439) 题解
    区间覆盖问题 题解
    种树 (codevs 1653) 题解
  • 原文地址:https://www.cnblogs.com/velscode/p/12602392.html
Copyright © 2011-2022 走看看