• 深入理解操作系统——cpu处理机调度详解


    在进行进程切换时,cpu该以什么样的规则从就绪队列中挑选出下一个占用cpu运行的线程,而且调度的时机是什么时候。

    处理机资源的使用模式是在时间片机制下,当当前时间片运行结束后,或者cpu在时间片未执行完之前被抢占时,这时候cpu得去决定去就绪队列里挑选下一个要执行的进程。如何选择下一个进程由调度算法来决定。

    先来先服务算法:类似页面置换算法里的FIFO算法,依据进程进入就绪队列的先后顺序。比较简单,但可能长进程与短进程的先后顺序不确定,使得平均等待时间波动较大。

    短进程优先算法:短进程优先执行,但可能导致饥饿,连续的短进程使得长进程久久不能执行。

    最高响应比优先算法:这加入了预估未来的功能,选择就绪队列中响应比值最高的进程。改进了短进程优先算法。关注进程的等待时间R=(w+s)/s。防止无限期延迟.

    时间片轮转算法:时间片的长度是固定的。无论当前执行的进程执行时间长度大于时间片长度或短于时间片长度,等到时间片时间结束时候,就会切换到下一进程执行,未执行完的进程继续等待排队。增加了额外的上下文切换。时间片的长度选择需要使得上下文开销处于1%以内。

    多级队列调度算法:将就绪队列划分为多个独立的子队列,分别有各自的调度算法。涉及到队列间的调度和队列内的调度。

    多级反馈队列算法:进程不会固定在某一队列中,会因为未执行完或者其他原因在不同队列之间移动。

    公平共享调度:将队列划分成重要的组和不重要的组,然后按比例分配资源,保证不重要的组无法垄断资源。

    实时调度对操作系统提出更高的要求,需要同时兼顾硬时限和软时限。另外当计算机中有多个处理机的时候,每个处理机的调度算法可不相同,但要注意共享资源的访问要进行同步,进程分在哪个处理机上执行有静态和动态两种分配方式。

    每个进程都有自己的优先级大小,有一种高优先级进程长时间等待低优先级进程所占用资源的现象称为优先级反置。

  • 相关阅读:
    [机器学习笔记]K-means聚类——进行广告效果分析
    优思学院|六西格玛改进阶段中选择解决方案的原则和技巧
    Linux环境下Arm端源码编译OpenCV+ncnn目标检测模型实例运行调试完整实践记录
    你用过哪些设计模式(一)?
    尚好房 05_二手房管理
    新发布的Java使用率均超Java8
    离散数学 --- 图论基础 --- 无向图的连通性和有向图的连通性
    【iOS开发】(四)react Native第三方组件五个20240419-20
    【JavaSE】java内存管理
    一文学会Set与Map以及集合类的使用选取,HashMap底层源码解析
  • 原文地址:https://blog.csdn.net/weixin_41186611/article/details/126087423