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级队列的优先级最低。

  • 相关阅读:
    职业发展拷问——非科班出身如何才能成为一名合格程序员
    记一个神奇的Bug
    Python多维数组切片
    如何查看数组指针指向数组的所有元素
    RoboMongo命令(版本:Robo 3T 1.1.1)
    Git命令(Git版本:Linux 2.14.3)
    逐点收敛与一致收敛
    廖雪峰Python教程疑问
    The Non-Inverting Amplifier Output Resistance by Adrian S. Nastase [转载]
    2.4G无线射频通信模块nRF24L01+开发笔记(基于MSP430RF6989与STM32f0308)(1.(2)有错误,详见更正)
  • 原文地址:https://www.cnblogs.com/lihuidashen/p/3458637.html
Copyright © 2011-2022 走看看