Java算法|Java 实现OS调度算法之先来先服务算法(FCFS)

先来先服务调度:
算法描述:按照进程进入的先后次序来分配处理器。先进入就绪队列的进程优先被挑选,运行进程一旦占有处理器将一直运行下去,直到运行结束或被阻塞,这是非抢占式调度。 思维导图 Java算法|Java 实现OS调度算法之先来先服务算法(FCFS)
文章图片

例题: 对如下进程 使用FCFS算法 进行排序和结果回显
Java算法|Java 实现OS调度算法之先来先服务算法(FCFS)
文章图片

正确结果

施行FCFS调度算法: 平均进程周转时间T = (20+30+30+35)/4 = 28.75 平均带权进程周转时间W = (20/20+30/15+30/5+35/10)/4 = 3.13

Java实现:
package com.dhl.beyond.os_fscs; import java.util.Scanner; public class FCFS { String name; double arrivetime; //进程到达时间 double servicetime; // 进程执行时间长度(服务时间) double starttime; //进程开始执行时间 double finishtime; //进程执行完成时间 double zztime; //周转时间 double dqzztime; //带权周转时间 public FCFS(){ } public FCFS(String name, double arrivetime, double servicetime) { this.name = name; this.arrivetime = arrivetime; this.servicetime = servicetime; }//主方法 public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("===============先来先服务调度算法========================"); System.out.println("输入进程数目: "); int num = scanner.nextInt(); //创建进程数组对象 FCFS[] p = new FCFS[num]; System.out.println("请创建进程对象, 输入进程名称 到达时间 服务时间 <例如: p1 0 20>"); for (int i= 0; ip[j].arrivetime){ FCFS temp; temp = p[i]; p[i] = p[j]; p[j]= temp; } } } }//进程执行 private static void run(FCFS[] p) { for(int k=0; k"+p[k].name); } System.out.println(""); System.out.println("具体的调度信息: "); System.out.println("进程名到达时间服务时间开始时间结束时间周转时间带权周转时间"); for(int k =0; k

结果测试 【Java算法|Java 实现OS调度算法之先来先服务算法(FCFS)】

    推荐阅读