zoukankan      html  css  js  c++  java
  • s5-1 CPU调度


    基本概念

    通过多道程序设计得到 CPU 的最高利用率

    (CPU-- I/O 脉冲周期 - - 进程的执行包括进程在 CPU 上执行和等待 I/O )
    进程的执行以 CPU 脉冲开始,其后跟着 I/O 脉冲.进程的执行就是在这两个状态之间进行转换.


    cpu和I/O burst的交替序列

    image

    cpu-burst

    CPU 脉冲的分布, 在系统中, 存在许多短 CPU 脉冲,只有少量的长 CPU 脉冲
    比如: I/O 型作业具有许多短 CPU 脉冲, 而 CPU 型作业则会有几个长 CPU 脉冲,这个分布规律对 CPU 调度算法的选择是非常重要的.

    image



    CPU Scheduler
    cpu调度

    当CPU空闲时,OS就选择内存中的某个就绪进程,并给其分配CPU


    cpu调度器

    image



    (CPU调度可能发生在以下情况下):
    1.Switches from running to waiting state(从运行转到等待).
    2.Switches from running to ready state(从运行转到就绪).
    3.Switches from waiting to ready(从等待转到就绪).

    4.Terminates(终止运行).
    Scheduling under 1 and 4 is nonpreemptive (发生在1、4两种情况下的调度称为非抢占式调度).
    All other scheduling is preemptive (其他情况下发生的调度称为抢占式调度).


    cpu调度方案
    非抢占方式(nonpreemptive)
    把处理机分配给某进程后,便让其一直执行,直到该进程完成或发生某事件而被阻塞时,才把处理机分配给其它进程,不允许其他进程抢占已经分配出去的处理机。
    优点:实现简单、系统开销小,适用于大多数批处理系统环境
    缺点:难以满足紧急任务的要求,不适用于实时、分时系统要求


    抢占方式(Preemptive mode)
    允许调度程序根据某个原则,去停止某个正在执行的进程,将处理机重新分配给另一个进程。


    抢占的原则

    时间片原则:各进程按时间片运行,当一个时间片用完后,便停止该进程的执行而重新进行调度。这个原则适用于分时系统。

    优先权原则:通常对一些重要的和紧急的进程赋予较高的优先权。当这种进程进入就绪队列时,如果其优先权比正在执行的进程优先权高,便停止正在执行的进程,将处理机分配给优先权高的进程,使之执行

    短作业优先原则:当新到达的作业比正在执行的作业明显短时,将暂停当前长作业的执行,将处理机分配给新到的短作业,使之执行。

  • 相关阅读:
    zoj 3627#模拟#枚举
    Codeforces 432D Prefixes and Suffixes kmp
    hdu 4778 Gems Fight! 状压dp
    CodeForces 379D 暴力 枚举
    HDU 4022 stl multiset
    手动转一下田神的2048
    【ZOJ】3785 What day is that day? ——KMP 暴力打表找规律
    poj 3254 状压dp
    C++中运算符的优先级
    内存中的数据对齐
  • 原文地址:https://www.cnblogs.com/wenyule/p/12214157.html
Copyright © 2011-2022 走看看