1、3.2 测试用例及运行结果 7第4部分 源代码 9第5部分 总结及参考文献 165.1 总结 165.2 参考文献 17 第1部分 课设简介1.1 课程设计题目1.2 课程设计目的 操作系统课程设计是计算机专业重要的教学环节,它为学生提供了一个既动手又动脑,将课本上的理论知识和实际有机的结合起来,独立分析和解决实际问题的机会。 1)进一步巩固和复习操作系统的基础知识。 2)培养学生结构化程序、模块化程序设计的方法和能力。 3)提高学生调试程序的技巧和软件设计的能力。 4)提高学生分析问题、解决问题以及综合利用C语言进行程序设计的能力。1.3 课程设计内容设计并实现一个采用静态优先权算法的进程调
2、度演示程序1.4 时间安排 1)分析设计贮备阶段 (1 天) 2)编程调试阶段 (7 天) 3)写课程设计报告、考核(2 天) 第2部分 实验原理分析2.1问题描述(1)每一个进程有一个PCB,其内容可以根据具体情况设定。(2)进程数、进入内存时间、要求服务时间、优先级等均可以在界面上设定 (3)可读取样例数据(要求存放在外部文件中)进行进程数、进入内存时间、时间片长度、作业大小、进程优先级的初始化 (4)可以在运行中显示各进程的状态:就绪、执行 (由于不要求设置互斥资源与进程间的同步关系,故只有两种状态) (5)采用可视化界面,可在进程调度过程中随时暂停调度,查看当前进程的状态以及相应的阻塞
3、队列 (6)有性能比较功能,可比较同一组数据在不同调度算法下的平均周转时间 (7)具有一定的数据容错性2.2程序设计流程图2.3解决方法通过数组容纳所有数据,根据冒泡排序把数据按从小到大顺序排列,在分析a0和其他数据的大小,如果a0的完成时间大于其他数据就按照冒泡的排列顺序,如果小,就比较其他数据的优先级,按优先级大小排序。 第3部分 主要的功能模块3.1主要的函数void fcfs() int i,j,n,min,px; float sum1,sum2; printf(t请输入有n个进程(0n50|n=0) printf(nt请重新输入: scanf( nn struct Gzuo int
4、id; /进程名字 int dt; /到达时刻 int st; /服务时间 int wct; /完成时刻 float zt; /周转时间 float dczt; /带权周转时间 ; Gzuo aN; for(i=0;i=0;j-) for(i=0;j; if(ai.dtai+1.dt) min=ai.dt; ai.dt=ai+1.dt; ai+1.dt=min; min=ai.st; ai.st=ai+1.st; ai+1.st=min; min=ai.id; ai.id=ai+1.id; ai+1.id=min; a0.wct=a0.st+a0.dt; a0.zt=(float)a0.st;
5、 a0.dczt=a0.zt/a0.st; for(i=1; if(ai.dtai-1.wct) ai.wct=ai.dt+ai.st; ai.zt=(float)ai.st; ai.dczt=ai.zt/ai.st; else ai.wct=ai-1.wct+ai.st; ai.zt=(float)(ai.wct-ai.dt); 3.2 测试用例及运行结果第4部分 源代码#includestdio.h#define N 50void main() void fcfs();void yxj();int a;while(true)tt/*/ntt/* 1、先到先服务 调 度 */ntt/* 2、
6、优先级优先 调 度 */ntt/* 0、 退 出 */nnnt请选择菜单项:a); switch(a) case 1: fcfs();break; case 2: yxj(); default: break; if(a2) break;t1、按id号依次输出nt2、按完成顺序依次输出nnt请选择输出顺序:px);nid:到达时间t服务时间t完成时间t周转时间t带权周转时间n sum1=0; sum2=0; switch(px) for(i=0; printf(%d: %dtt%dtt%dtt%.0ftt%.2fn,ai.id,ai.dt,ai.st,ai.wct,ai.zt,ai.dczt); sum1+=ai.zt; sum2+=ai.dczt; printf(n平均周转时间:%.2fn,sum1/n);n平均带权周转时间:%.2fnn,sum2/n); break; for(j=0;jj+) for(i=0; if(ai.id=j+1) printf( sum1+=ai.zt; sum2+=ai.dczt; void yxj() int b=0,z;nt
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1