以下是使用Java语言编写的FCFS调度算法代码:

import java.util.ArrayList;
import java.util.List;

class Job {
    String name;
    int arrivalTime;
    int burstTime;
    int startTime;
    int endTime;

    Job(String name, int arrivalTime, int burstTime) {
        this.name = name;
        this.arrivalTime = arrivalTime;
        this.burstTime = burstTime;
    }
}

public class FCFS {
    public static void main(String[] args) {
        List<Job> jobList = new ArrayList<>();
        jobList.add(new Job('Job1', 0, 10));
        jobList.add(new Job('Job2', 1, 4));
        jobList.add(new Job('Job3', 2, 8));
        jobList.add(new Job('Job4', 3, 5));

        int currentTime = 0;
        double totalTurnaroundTime = 0;

        System.out.println('作业后备队列中的作业:');
        for (Job job : jobList) {
            System.out.println(job.name);
        }
        System.out.println();

        System.out.println('作业	开始运行时间	结束运行时间');
        for (Job job : jobList) {
            if (job.arrivalTime > currentTime) {
                currentTime = job.arrivalTime;
            }
            job.startTime = currentTime;
            job.endTime = currentTime + job.burstTime;
            currentTime = job.endTime;

            System.out.println(job.name + '	' + job.startTime + '		' + job.endTime);

            totalTurnaroundTime += job.endTime - job.arrivalTime;
        }
        System.out.println();

        double averageTurnaroundTime = totalTurnaroundTime / jobList.size();
        System.out.println('各作业的周转时间:');
        for (Job job : jobList) {
            System.out.println(job.name + ': ' + (job.endTime - job.arrivalTime));
        }
        System.out.println();

        System.out.println('平均周转时间: ' + averageTurnaroundTime);
    }
}

在这个示例中,我们创建了一个Job类来表示作业,并在FCFS类中实现了FCFS调度算法。我们使用一个jobList列表来存储作业,每个作业都有一个名称、到达时间和执行时间。我们通过计算作业的开始时间和结束时间来模拟作业的调度过程,并计算总周转时间和平均周转时间。

运行上述代码,将输出作业后备队列中的作业、正运行作业的作业名、开始运行时间、结束运行时间以及各作业的周转时间和平均周转时间。

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

原文地址: https://www.cveoy.top/t/topic/pc6Y 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录