我需要一些帮助来找到一种有效的数据存储方法。我正在编写一个使用优先级队列的调度算法,其中包括尚未提交、就绪、运行、阻塞和完成。所有进程都以尚未提交状态开始。我的信息来自标准输入。
下面每一行(分别)解释:
第一行 = 系统中的 CPU(1 到 4)、进程数量(1 到 25)以及量子大小(1 或更大)。 第二/第三 = 进程 ID(1 到 999)、进程优先级(1 到 10)、 提交时间(非负),所需的总CPU时间(1到1000), 需要输入/输出之前的计算时间(1 到 100), 以及每个计算 I/O 周期的输入/输出时间(1 到 1000)。
Sample Input
1 2 10
1 1 0 10 5 10
2 2 3 10 5 10
第二行和第三行是独立的进程,最多可以有 25 个进程。最初我想将每个进程存储到自己的数组中,这样我就可以轻松地将数组从一个队列移动到另一个队列,但创建 25 个不同的数组,然后可能不使用它们,效率非常低。有没有一种更简单的方法来存储我的“进程”,以便我可以在状态之间移动它们(由队列表示)?
最佳答案
我将创建一个 Process 类,其中包含上面第二/第三行表示的状态。像这样的东西:
class Process {
private int pid;
private int priority;
private int submissionTime;
private int totalCpuTime;
}
并将该类的实例存储在队列中。没有理由不为等待进程建立队列。然后根据需要将实例移动到其他队列。
关于java - 调度算法存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9668740/