zoukankan      html  css  js  c++  java
  • 关于操作系统的进程调度问题

      进程调度分为高级、中级、低级调度:

      高级调度通常也称作业调度,用于决定把外存上处于后备队列中的哪些作业调入内存,准备执行;

      中级调度大多针对于分时系统,是按一定的算法在内存和外存之间进行进程对换,目的在于缓和内存的紧张;

      低级调度用于将内存中就绪队列中的作业分配处理机,使其执行。 

      进程调度通常有以下两种方式:

    (1)非剥夺方式:分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生某事件而阻塞时,才把处理机分配给另一个进程。

    (2)剥夺方式:当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理机,将之分配给其它进程。剥夺原则有:优先权原则、短进程优先原则、时间片原则。

      进程调度分功能:

    (1)记录系统中所有进程的执行情况;

    (2)选择占有处理机的进程;

    (3)进行进程上下文切换。

      

      那么什么时候会需要进行进程调度呢?

    1.时间片到,即每个进程所分配的时间片用完后,要跳转到调度程序;

    2.占用CPU的当前运行进程提出I/O操作,发起对内核的系统调用时,在系统调用结束后,跳转到调度程序;

    3.当前运行进程对所有内核系统调用的结束时都要跳转到调度程序,根据当前的调度信息来决定下一个可以占用CPU的进程.

      进程调度算法:

    1.先来先服务调度算法:选择一个最先进入队列的进程,把处理机分配给它,让它进入执行状态。

    2.短进程优先调度算法:从就绪队列中选择一个CPU执行时间预期最短的进程,将处理器分配给它是指对执行时间短的进程优先调度的算法。

    3.高优先级优先调度算法:分配给就绪进程队列中优先级最高的进程。

    4.时间片轮转法:将CPU的处理时间分成固定大小的时间片让每个进程在就绪队列中的等待时间与享受服务的时间成比例。

    5.多级反馈队列调度算法:系统按优先级设置N个就绪进程队列,第一级队列的优先级最高,其余队列的优先级逐个降低,第N级队列的优先级最低。

  • 相关阅读:
    javaweb消息中间件——rabbitmq入门
    virtual box 桥接模式(bridge adapter)下无法获取ip(determine ip failed)的解决方法
    Apache Kylin本地启动
    git操作
    Java学习总结
    Java中同步的几种实现方式
    hibernate exception nested transactions not supported 解决方法
    vue 中解决移动端使用 js sdk 在ios 上一直报invalid signature 的问题解决
    cookie 的使用
    vue 专门为了解决修改微信标题而生的项目
  • 原文地址:https://www.cnblogs.com/lihuidashen/p/3458637.html
Copyright © 2011-2022 走看看