③:短任务优先算法

  短任务即表示运行的时间较短,具体的来说,短任务优先算法中短任务的优先级比长任务高,系统总是会让优先级高的先运行。

  短任务优先算法分为:抢占式和非抢占式。非抢占式短任务优先算法是让已经在CPU上执行的任务先执行完毕,后在候选的选择短执行时间的程序来执行。

  抢占式短任务优先算法是每进来一个新的进程,重新检查谁的运行时间短,检查完毕,则运行短时间的进程。

  在之前的算法当中,这个算法是优化的。但是可能会导致长进程一直无法运行。导致不平等。

  ④:优先级调度算法

  优先级调度算法是给每个进程赋予一个优先级 ,在每次切换优先级的时候,总是给优先级高的先执行。

  短任务优先算法本身是一种优先级调度算法,只不过给时间短的任务赋予高的优先级。

  但是出现的问题是:如果每个进程都赋予高的优先级,则无法保证哪个进程先执行,导致混乱。

  ⑤:混合调度算法

  混合调度算法是将上面几个算法集中,合并他们的优点,摒弃缺点。

  原理是将所有进程分为不同的打雷,每个大类为一个优先级。

  如果每个进程处于不同的大类,则处于高优先级大类的进程优先执行;

  如果两个进程处于同一个大类,则采用时间片轮转来执行。

  5,优先级倒挂是怎么回事?有什么样的危害?

  ①:优先级倒挂的解释:

  所指的是一个低优先级任务持有一个被高优先级认为所需要的共享资源。这样的情况下,

  高优先级的任务因缺乏资源,一直处于受阻状态,直到低优先级任务释放资源为止。

  这样造成优先级的倒挂。

  危害是:低优先级一直不释放资源,则会导致系统故障。

  6,请分析讨论解决优先级倒挂的三种办法,那种优势更加明显?

  ①:使用中断禁止

  这个策略当中有两个优先级,一个是可抢占式优先级和中断禁止优先级。

  可抢占式优先级为一般进程运行时的优先级。

  中断禁止优先级是运行在临界区的进程的优先级。

  因为不存在第三种优先级,所以,优先级无法倒挂。

  ②:优先级上限

  共享的操作系统代码有其自身的高优先级,一个程序如果进入操作系统代码保护的临界区,

  将获得该临界区所具有的高优先级,如果此时其他访问操作系统代码的进程优先级都低于

  操作系统代码的优先级,则优先级倒挂则不会发生。

  ③:优先级继承

  当一个高优先级进程等待一个低优先级进程释放所持有的资源时,低优先级进程将暂时获得

  高优先级进程的优先级别,这样能防止一个中间优先级的进程抢占低优先级进程而延长资源占用的时间。

  在释放共享的资源后,低优先级进程回到原来的优先级别。