zoukankan      html  css  js  c++  java
  • 处理机调度,用于解决单核CPU怎么运行多个进程的问题

    1.基本概念

    按照一定算法选择一个进程将处理机分配给它。

    2.三个层次

    高级调度(作业调度):按照某种规则,从后备队列中选择合适的作业将其调入内存,并为其创建进程。

    中级调度(内存调度):按照某种规则,从挂起队列中选择合适的进程将其数据调回内存。

    低级调度(进程调度):按照某种规则,从就绪队列中选择一个进程为其分配处理机。

    3.三层调度的联系、对比

    高级调度:从外存到内存,是面向作业的。发生频率最低。

    中级调度:从外存到内存,是面向进程的。发生频率中等。

    低级调度:从内存到CPU,发生频率最高。

     4.进程调度的时机

    需要进程调度时机:1)主动放弃,包括进程正常终止,进程发生异常而终止,主动阻塞;2)被动放弃,包括分配给进程的时间片用完,有更紧急的事情需要处理如(I/O中断),有更高优先级的进程进入就绪队列。

    不能进行进程调度的时机:1)在处理中断过程中;2)进程在操作系统内核临界区中;3)在原子操作过程中。

    5.进程的调度、切换是有代价的,并不是调度越频繁,并发度就越高。

    6.进程调度的方式

    非剥夺方式(非抢占式):只能由当前运行的进程主动放弃CPU。

    剥夺方式(抢占式):当前运行的进程被动放弃CPU。

     7.调度算法的评价指标

    CPU利用率 = 忙碌的时间 / 总时间

    系统的吞吐量 = 总共完成了多少道作业 / 总共花了多少时间

    周转时间 = 作业完成时间 - 作业提交时间

    平均周转时间 = 各作业周转时间之和 / 作业数

    带权周转时间 = 作业周转时间 / 作业实际运行的时间

    平均带权周转时间 = 各作业带权周转时间之和 / 作业数

    等待时间 = 进程 / 作业

    响应时间:用户提交请求到首次产生响应所用的时间。

     8.适用于早期批处理系统的调度算法

    先来先服务(FCFS):排队买东西,先来先买;不会导致饥饿;非抢占式

    短作业优先(SJF):已经到达的人,谁买东西用的时间最短谁先买。分为非抢占式和抢占式

    高响应比优先(HRRN):综合考虑了作业/进程的等待时间和要求服务的时间。

     9.适用于交互式系统的调度算法

    时间片轮转(RR):抢占式,不会导致饥饿

    优先级调度:有抢占式的,也有非抢占式的,会导致饥饿

    多级反馈队列:抢占式的,会导致饥饿

  • 相关阅读:
    redis 使用
    VS----id为xxxx的进程当前未运行 问题
    bootstrap--------bootstrap table显示行号
    js--------js获取当前时间,返回日期yyyy-MM-dd
    CLR via C#--------CLR的执行模式
    Python链表成对调换
    Python去除列表中的重复元素
    MySQL索引背后的数据结构及算法原理
    Python 垃圾回收机制
    Python 里的拷贝
  • 原文地址:https://www.cnblogs.com/mengjuanjuan/p/9940734.html
Copyright © 2011-2022 走看看