• 处理机调度


    处理机调度有三个层次:作业调度(高级调度)、中级调度、进程调度(低级调度)

    作业调度:从外存上将处于后备状态的作业中选一个(或多个)作业,给他们分配内存、输入/输出设备等必要的资源,并建立相应的进程,使他们获得竞争处理机的权利(放到就绪队列中等候)。每个作业只会被调入一次,调出一次。

    中级调度:将内存中暂时不能运行的进程调出到外存上暂存(又称“挂起”),等他们具有再次运行的条件的时候再次调回内存的就绪队列中。

    进程调度:按照某种方式和策略从就绪队列中选一个进程并将处理机分配给它。这是最基本的不可或缺的调度策略。

    在以下情况下不能发生进程的调度和切换:

    • 在处理中断的过程中。中断是系统工作的一部分,逻辑上不属于某一进程,不应被剥夺处理机资源。
    • 进程在操作系统内核程序临界区中。进入临界区后必须加锁,独占式访问共享资源,在解锁前不允许其他任何进程访问。
    • 需要完全屏蔽中断的原子性操作时

    进程的调度和切换分两类:剥夺式调度(抢占式)和非剥夺式调度

    进程调度的几种方法:

    1、先来先服务 FCFS

    不可剥夺,对长作业有利,不利于I/O繁忙的作业,用于批处理可还行,不适合分时和实时系统。

    2、短作业优先 SJF

    对短作业有利,但是可能造成长作业饥饿(很长时间得不到调度)。
    完全没有考虑作业的紧迫程度
    作业的长短是根据用户预估的,不一定准确,用户总喜欢缩短自己的预估时间长度,因此不一定能真的短作业优先
    另外,SJF的平均等待时间、平均周转时间最短。

    3、优先级调度

    可以有剥夺式的,也可以有非剥夺式的。
    根据进程创建后优先级是否可以改变分为静态优先级和动态优先级。

    4、高响应比优先调度

    响应比=(等待时间+要求服务时间)/ 要求服务时间
    

    这方法比较好,长作业和短作业都能够得到调度,不至于产生饥饿,且短作业的优先级相对较高。

    5、时间片轮转

    常用于分时系统,时间片的大小对系统性能影响很大

    6、多级反馈队列调度算法

    结合了前几个算法的优点
    抢占式的
    设置了很多级别的就绪队列,每一级就绪队列内部采用时间片轮转,且第二级队列的时间片比第一级队列的时间片长1倍

    对终端型作业用户:短作业优先
    短批处理作业用户:周转时间较短
    长批处理作业用户:不会长期得不到执行,在前几个队列中可以得到部分执行

  • 相关阅读:
    2021暑假模拟赛6
    2021暑假模拟赛5
    2021暑假模拟赛4
    2021暑假模拟赛3
    2021暑假模拟赛2
    umi提速方案之 mfsu
    Nginx (可为容器)配置 BasicAuth 与访问
    Mango 漫画管理器体验
    blivechat 在 OBS 中使用 BasicAuth URL 登录
    Electron 实现最小化到托盘
  • 原文地址:https://www.cnblogs.com/yinyoupoet/p/13287418.html
Copyright © 2020-2023  润新知