模拟操作系统的调度算法以进行流程,例如优先级调度,多级调度,...


在这里暴露的这个存储库实际上是课程operating system的大学项目
并用Java语言实现。
此处显示了类的层次结构显示:
---- cpuscheduler
------------ |
------------- SRC
---------------------- |
---------------------过程//每个过程的数据,例如开始时间,突发时间,...
--------------------- CPU // CPU用于模拟时间表
----------------------调度程序//原始方法和字段的抽象类
---------------------- sch_fcfs //首先出现
------------------------ sch_sjf //最短的作业第一个调度程序(可以先发)
------------------------------ sch_priority //优先调度程序(可以先发)
---------------------------------------------------------------------------------------------------------
---------------------- sch_lottery //彩票调度程序
----------------------- sch_multilevel //多级调度程序(可以先发)
--------------------- fxmldocumentController //主GUI的控制器
---------------------模拟Controller //用于仿真GUI的控制器
----//
流程:要么处理这两个状态的过程正在执行或等待这两个状态:
中央处理器:
调度程序:
笔记
请注意,仿真时间单元为0.1,因此突发时间或延迟时间必须为0.1的多个
请注意,每行的顺序指定过程到达顺序
请注意,输入格式对于每行都是这样的(突发时间,延迟时间,优先级,级别)
请注意,此模拟中上下文开关的最小持续时间为0.4
请注意,此模拟中循环调度程序的最小量子持续时间为0.2,因为时间单位为0.1,量子不能小于时间单位
输入表:
| 过程名称 | 到达时间 | 执行时间 | 等级 |
|---|---|---|---|
| 1 | 0 | 5 | 1 |
| 2 | 1 | 8 | 2 |
| 3 | 3 | 7 | 2 |
| 4 | 4 | 3 | 1 |
| 5 | 5 | 3 | 1 |
| 6 | 8 | 11 | 2 |
| 7 | 15 | 3 | 1 |
| 8 | 25 | 4 | 1 |
例如,我们是在多级非抢先的(L1:FCF,L2 FCFS)中的计划过程(input.txt文件)

首先,我们输入过程信息,然后选择调度算法,然后按Run按钮

等待模拟结束

现在您可以看到结果

该项目是根据MIT许可证获得许可的 - 有关详细信息,请参见许可证文件