美文网首页源码与文档分享
基于JAVA的进程调度算法

基于JAVA的进程调度算法

作者: UlricaLee | 来源:发表于2019-08-03 18:15 被阅读1次

一、需求分析

在Java开发环境下,模拟进程调度算法,其中该算法所需要的具体功能为:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法(将用户作业和就绪进程按提交顺序或变为就绪状态的先后排成队列,并按照先来先服务的方式进行调度处理)。

算法的具体描述为:每个进程有一个进程控制块( PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。进程的优先数、需要的运行时间及到达时间可以事先人为地指定(也可以由随机数产生)。进程的运行时间以时间片为单位进行计算。每个进程的状态可以是就绪 W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。就绪进程获得 CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。 如果运行一个时间片后,进程的已占用 CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的 PCB,以便进行检查。 重复以上过程,直到所要进程都完成为止。

二、概要设计

为了符合题目需求,该工程主要有三个实现类:

Process(进程类),主要用来实例化各个不同的进程

ProcessBlock(进程控制块类),用来为每个进程分配PCB,该类实例化后为进程类的类成员变量

ProcessControl(进程控制类),为主类,用来调度进程。

其中,在进程调度中,声明了三个队列,分别为待插入进程队列(按到达时间从小到大排序),就绪队列(按优先级从大到小排序,按照到达时间先后进行排序),完成队列。都ArrayList<Process>类型变量。

调度算法描述:

程序开始时随机为初始化5个进程(程序太多不容易观察运行结果)

声明时间变量t,while循环下调度程序一直运行,每运行一次,t++

然后循环判断待插入队列队首进程是否到达,若到达,则将该进程插入到就绪队列中,并从待插入队列删除该进程;若没有到达,则从该循环中跳出

然后从就绪队列中取出队首进程并分配时间片。当该进程时间片用完后,判断该进程是否已经完成,若完成,则将该进程插入到完成队列;若没有完成,则将该进程的优先级减一并重新插入到就绪队列中

一直重复该循环,一直到待插入队列和就绪队列都为空为止

点击下载源码

相关文章

  • 基于JAVA的进程调度算法

    一、需求分析 在Java开发环境下,模拟进程调度算法,其中该算法所需要的具体功能为:采用最高优先数优先的调度算法(...

  • 先来先服务算法

    该算法算是最简单的一种调度算法,它既可用于作业调度,也可以用于进程调度。在进程调度中采用 FCFS 算法时,将选择...

  • 理解进程调度时机跟踪分析进程调度与进程切换的过程

    一.进程调度 现代的操作系统是多道的,这必然涉及到进程的调度,调度需要许多的调度算法。1.需要多种调度算法的理由:...

  • 操作系统:C++实现SJF(短作业优先调度算法)

    算法描述: 短作业(进程)优先调度算法(SJF),是指对短作业或短进程优先调度的算法。它们可以分 别用于作业调度和...

  • 优先级调度算法

    该算法也是一种既可用于作业调度,也可用于进程调度的算法。在用于进程调度时,系统根据进程的紧迫程度赋予每个进程一个优...

  • Linux - 进程调度

    介绍 进程调度算法也称 CPU 调度算法,毕竟进程是由 CPU 调度的。 当 CPU 空闲时,操作系统就选择内存中...

  • 第三章 处理机调度与死锁

    3.2 作业与作业调度 3.2.3 先来先服务(FCFS)和短作业优先(SJF)调度算法 进程调度 进程调度方式:...

  • java实现SP00LING假脱机输入输出技术模拟

    Basic Framework 进程调度算法 进程调度采用随机算法,这与进程输出信息的随机性相一致。两个请求输出的...

  • Nuttx Task Schedule

    调度概念 进程调度 按照某种调度算法从就绪队列中选取进程分配CPU,主要是协调对CPU等的资源使用。进程调度目标是...

  • 进程是如何调度的?

    本文是操作系统系列第四篇文章,介绍处理机调度进程相关算法。进程调度的算法和调度框架(Kubernetes)类似,可...

网友评论

    本文标题:基于JAVA的进程调度算法

    本文链接:https://www.haomeiwen.com/subject/elqsdctx.html