• 操作系统中的调度问题


    1、调度时机:创建新的进程后、运行进程退出时、进程因为I/o或其他原因阻塞时、发生I/o中断(完成了i/o的阻塞进程变为了就绪进程)

    2、调度算法应用环境:

      批处理系统,交互式系统,实时系统,

    不同的系统有不同的调度策略

    3、批处理系统:

    先来先服务:非抢占式  当正在运行的进程被阻塞时,队列中的第一个进程就接着运行,在被阻塞的进程变为就绪时,像一个新来的作业一样,拍到队列的末尾。

    优缺点:利于长作业,不利于短作业。造成处理机和I/O设备得不到充分利用。

    最短作业优先:适用于运行时间可以预知的非抢占式批处理调度算法。

    优缺点:有利于短作业,长作业因得不到资源饿死。

    最短剩余时间优先:进程运行时间必须提前掌握,调度程序总是选择剩余运行时间最短的进程运行,抢占式调度算法。但是这种调度策略必须记录进程过去被服务的时间,增加了开销

    优缺点:开销大,不利于长进程。

    4、交互式系统中的调度:

    时间片轮转算法:时间片设置过短,会导致过多的进程切换,降低cpu效率。如果设置太长有可能引起对短的交互请求的响应时间变长。时间片一般设置到20ms-50ms

    优先级调度算法:进程的优先级与进程的紧迫度有关,分为动态优先级和静态优先级,为了防止高优先级无休止的运行下去,调度程序可以在每个时钟中断降低当前进程的优先级。如果这个动作导致该进程的优先级地狱次高优先级的进程,则进程切换。

    多级队列调度算法:把就绪队列分成几个单独的队列根据进程的优先级、类型等固定的把进程加入不同的队列,每个队列有各自的调度算法。例如前台队列利用时间片轮转进程调度、后台进程利用FCFS调度。此外,各队列之间也要进行调度,通常采用固定优先级的抢占式调度。例如,前台进程优先级高于后台优先级,或者各队列分配不同的时间比例,前台80%(RR),后台20%(FCFS)。

    最短进程优先: 交互式系统遵循:等待命令,执行命令,等待命令,执行命令。。。,我们将每条命令当做一个“作业”,根据以往进程行为,对运行时间进行评估。

  • 相关阅读:
    解决ios下iframe不能滑动
    每天一题之js执行顺序
    async函数的返回值
    小程序自定义Tabbar
    windows10配置vue3项目踩坑记录
    vue2+循环链表解决一个历史趣题
    小程序内协议使用的三种方法
    HDFS的java操作
    HDFS工作原理笔记
    win10已经编译好的hadoop2.6.5
  • 原文地址:https://www.cnblogs.com/pengfeiliu/p/4385274.html
Copyright © 2020-2023  润新知