本文主要是介绍先到先服务算法_操作系统_c语言实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
PTA题目
注:在PTA上面提交时务必把scanf_s改成scanf,(编译器用的是vs2019).
主函数
int main(void) {int n = 0;scanf_s("%d", &n);struct pcb p[10] = {0};input(p, n);sort(p, n);FCFS(p, n);output(p, n);return 0;
}
核心算法
void FCFS(struct pcb* p, int n) {//计算完成时间for (int i = 0; i < n; i++) {if (i == 0) {p[0].ftime = p[0].atime + p[0].rtime; //如果是第一个则完成=到达+服务}else {if (p[i].atime > p[i - 1].ftime) { //如果到达>上一个的完成,则完成=到达+服务,这个算法考虑了cpu的空闲情况p[i].ftime = p[i].atime + p[i].rtime;}else {p[i].ftime = p[i - 1].ftime + p[i].rtime;//如果到达<=上一个的完成,则完成=上一个完成+服务}}}//周转时间for (int i = 0; i < n; i++) {p[i].ttime = p[i].ftime - p[i].atime;}//带权周转for (int i = 0;
这篇关于先到先服务算法_操作系统_c语言实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!