zoukankan      html  css  js  c++  java
  • 操作系统之进程调度算法笔记

    先了解一下概念:

    1、对于单处理器系统,每一个时段只能有一个进程执行;当其中一个进程运行时,其他进程必须等待,直到当前执行的进程完成为止。

    2、进程的执行周期总体可以看作CPU执行时间和IO执行时间相互交替。

    3、进程调度有抢占调度和非抢占调度。抢占调度:进程由运行态切换为就绪态(中断),运行态切换为等待状态(等待I/O),等待状态切换为就绪态(I/O完成);非抢占调度:当一个进程在执行时,必须等待这个进程结束退出内存才能调度下一个进程。

    4、调度程序:①上下文切换:将进程1切换到进程2  ②、将操作系统从内核态切换到用户态  ③、找到当前进程用户态的程序的运行地址,从这里开始运行  (相当于游戏里面的读档和存档)

    调度算法:

    1、FCFS算法:先进入就绪队列的先执行

    2、SJF算法:执行时间最短的进程先执行,这个方法可以保证所有进程等待时间最短,但是可能造成执行时间过长的进程一直无法执行;而且需要精确预测进程执行时间,使用过去预测未来的方法.

    3、优先级高的先执行算法:将每一个进程分配一个优先级,然后从高到低依次执行,当就绪队列中来了一个高优先级的进程,则将这个进程移到就绪队列的首部。这个算法也会导致优先级低的进程始终无法执行,可以采用反馈机制,设定一个反馈时间,每隔一个反馈时间,没有执行的进程就会提升一个优先级

    4、轮询调度:为就绪队列中的每一个进程分配一个时间片(进程每次执行时间不能超过时间片),然后轮询就绪队列,保证每一个进程都能执行

    5、多级优先级队列:将优先级不同的进程分配成多个队列(按照一定范围):然后每个队列采用不同的调度算法,并且将各个队列分配不同的时间片。

    6、单调速率调度:为 每一个进程分配自己的周期,截止时间,运行时间。

    7、最早截止期限优先调度:(动态优先级)

  • 相关阅读:
    python 慕名函数
    python 不定长参数
    python 关键字参数
    python 传递参数
    python 函数的返回值
    python 函数的参数
    python 最简单的函数(无参无返回值)
    python 迭代器
    python 迭代器案例
    在 android 上运行 python 的方法
  • 原文地址:https://www.cnblogs.com/guosai1500581464/p/13157196.html
Copyright © 2011-2022 走看看