给定n个进程的突发时间和到达时间,任务是使用调度算法,如FCFS,Round Robin,Shortest剩余…找到平均等待时间和平均周转时间……
首先,创建一个数据结构,以包含关于每个进程的“实践中不可能知道”的信息(开始时间,突发时间等),添加“进程状态”字段(以跟踪“未启动,启动或停止”) ),并在结构中添加一个“下一个”字段;然后创建这些结构的数组并填写信息。
接下来创建一个通用函数来查找具有最早开始时间的“未启动”进程。
对于循环赛;找到具有最早开始时间的“未启动”进程,设置“当前时间=第一个进程开始时间”,并将进程“下一个”字段设置为指向自身,以便您拥有一个条目的循环链接列表,并将进程的状态从“未启动”更改为“已启动”。然后找出接下来发生的事件(另一个进程是否会在任务切换发生之前开始并添加到循环链表中?)并处理该事件(同时提前“当前时间”)。
对于FCFS,它类似于循环法,除非您在当前正在运行的任务停止之前不打扰任务切换(并且可以使用非循环列表而不是循环列表)。
对于最短的剩余时间,它与FCFS相同,只是在启动进程时使用“剩余时间”来确定将其插入列表的位置。