CPU 调度算法

版权声明:QQ: 1063385677 Copyright ©2019 CielleeX 本文地址: https://blog.csdn.net/Ciellee/article/details/88783635
  1. 先来先服务调度(First Come First Serve)
    效率不高,只考虑等候时间,而没考虑作业的长短,不利于短作业情况。

  2. 短作业优先调度 (Short Job First)
    参考运行时间,选取运行时间最短的作业投入运行
    效率不高,忽视了作业等待时间,容易出现长作业长时间得不到调度,出现资源 “饥饿” 现象

  3. 响应比高者优先调度算法
    兼顾响应时间和等待时间,计算作业的响应时间和运行时间的比值,选择比值最高的作业运行。
    响应比 = 响应时间/运行时间 = (等待时间 + 运行时间)/ 运行时间 = 1 + 等待时间 / 运行时间

  4. 优先数调度算法
    根据进程优先数,把CPU 分为最高的进程
    进程优先数 = 静态优先数(进程创建时建立的,不可更改) + 动态优先数(在运行期间可以改变)

    静态优先数的确定:
    基于进程所需的资源多少、基于程序运行时间的长短、基于进程的类型(IO/CPU,前台/后台,核心/用户)

    动态优先数的确定:
    当使用CPU超过一定时长时、当进行I/O操作后、当进程等待时间超过一定时长时

  5. 循环轮转调度法(Round-Robin)
    把所有就绪的进程按先进先出的原则排成队列,进程以时间片q位单位轮流使用CPU,进程循环轮转使用CPU。

    优点:
    公平性:每个就绪进程有平等机会获得CPU
    交互性:每个进程等待(N-1)*q 的时间就可以重新获得CPU

    时间 q 的大小:如果q太大,则交互性差,设置退化位FCFS调度方法;如果q太小,进程切换频繁,系统开销增加。

猜你喜欢

转载自blog.csdn.net/Ciellee/article/details/88783635