进程调度

进程调度

文章目录

  • 进程调度
    • 调度
    • 调度算法
      • 先来先服务(FCFS)
      • 短作业优先(SJ(Job)F/SPF)
      • 题目
      • 高优先权优先调度算法(FPF)
      • 高响应比优先算法
      • 时间片轮转调度算法(RR)
      • 多级反馈队列调度算法
      • 实时调度
        • 最早截至时间优先调度(EDF)
        • 最低松弛优先调度算法(LLF)
      • 优先级倒置问题
      • 优先级倒置问题

调度

计算题要考,核心概念*

  • 平均周转时间
    T = 1 n ∑ i = i n T i T=\frac{1}{n} \sum_{i=i}^{n}T_{i} T=n1i=inTi

  • 平均带权周转时间

T = 1 n ∑ i = i n T i T s i T=\frac{1}{n} \sum_{i=i}^{n}\frac{T_{i}}{T_{si}} T=n1i=inTsiTi

周转时间: T i T_{i} Ti

运行时间:就是进程运行需要的时间,是直接给的
T s i T_{si} Tsi

调度算法

先来先服务(FCFS)

字面意思选择一个最先进入队列的进程

短作业优先(SJ(Job)F/SPF)

字面意思选择一个要求服务时间(执行时间)最短的作业

题目

分别求先来先服务和短作业优先的平均周转时间平均带权周转时间

画图法

进程调度_第1张图片
进程调度_第2张图片
进程调度_第3张图片

先排序,然后在数轴上连起来

然后比对着图算。

FCFS:直接可以排好

SJF那里有坑:就是第一个进程,人家已经来了,那肯定先上,选短作业是在等待队列里选,是在等待队列里选,人家第一来的,都没人排队,直接就上了。

高优先权优先调度算法(FPF)

这指的是一类算法,而不是某个算法
那么之后围绕优先权展开各种调度算法

分两类

  • 抢占式
  • 非抢占式

优先权

  • 静态
  • 动态

高响应比优先算法

优先权 = 1 + 等待时间/要求服务时间

既照顾了短作业,又考虑了作业到达的先后顺序

需要做响应比计算,会增加系统开销

时间片轮转调度算法(RR)

多级反馈队列调度算法

非常优秀

算法概述
 对新创建进程,首先将它放入第1队列队列末尾,按FCFS原则排队等待调度。
 当轮到该进程执行时,如它能在该时间片内完成,则结束; 如果未完成,调
度程序便将该进程转入第2队列的末尾,再同样按FCFS原则等待调度执行;
 如果它在第2队列中运行1个时间片后仍未完成,再依次将它放入第3队列…。
如此下去,当1个长作业(进程)从第1队列依次降到第n队列后,在第n队列队列
中便采取按时间片轮转的方式运行。

实时调度

最早截至时间优先调度(EDF)

最低松弛优先调度算法(LLF)

题目
松弛度计算

优先级倒置问题

优先级倒置的解决方法

优先权继承:当低优先级进程阻塞高优先级进程,将低优先级进程的优先
级提高到被它被阻塞进程的最高优先级进程的优先级。

题目
松弛度计算

优先级倒置问题

优先级倒置的解决方法

优先权继承:当低优先级进程阻塞高优先级进程,将低优先级进程的优先
级提高到被它被阻塞进程的最高优先级进程的优先级。

你可能感兴趣的:(操作系统,OS)