• 北大青鸟学士后 大学生的专属课程

大学生就业培训,尽在北大青鸟华工校区

资讯中心

联系我们

当前位置:您现在的位置: 北大青鸟学士后 >> 青鸟知识库 >> Android技术 >> 正文    >

操作系统——进程调度之短进程优先

  1、什么是进程调度  无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。

  2、处理机调度分类

  高级、中级和低级调度作业从提交开始直到完成,往往要经历下述三级调度:

  高级调度:(High-Level Scheduling)又称为作业调度,它决定把后备进程调入内存运行;

  低级调度:(Low-Level Scheduling)又称为进程调度,它决定把就绪队列的某进程获得CPU;

  中级调度:(Intermediate-Level Scheduling)又称为在虚拟存储器中引入,在内、外存对换区进行进程对换。

  3、短进程优先最短CPU运行期优先调度算法

  (SCBF--Shortest CPU Burst First)

  该算法从就绪队列中选出下一个“CPU执行期最短”的进程,为之分配处理机。

  例如,在就绪队列中有四个进程P1、P2、P3和P4,它们的下一个执行

  期分别是16、12、4和3个单位时间,执行情况如下图:

  P1、P2、P3和P4的周转时间分别为35、19、7、3,平均周转时间为16。

  该算法虽可获得较好的调度性能,但难以准确地知道下一个CPU执行期,而只能根据每一个进程的执行历史来预测。

  4、C语言模式实现

  1》、常量声明和数据结构定义

  #include "stdio.h"

  #include

  #include "string.h"

  #define NULL 0

  typedef struct pcb

  {

  char name[10]; //进程名称

  int ArrivalTime; //到达时间

  int StartTime; //开始运行时间

  int FinishTime; //结束运行时间

  int WholeTime; //运行所需时间

  struct pcb *link; //下一个指针

  }pcb;

  int N; //运行的进程数量

  void input();

  pcb *ready=NULL,*p=NULL,*finish = NULL;

  //ready 是初始时的状态,finish 是结束时状态

  int M;


友情提示:如果您对北大青鸟学士后课程以及学费、开班、就业有疑问,可以点击此处留言,或拨打电话:4000-020-998,我们会有专业课程顾问细心为你解答问题,免费为你定身做前景分析和职业规划!

  • 上一篇知识库:
  •   
  • 下一篇知识库:
  • 二维码