采用静态优先权优先算法的进程调度程序.doc
《采用静态优先权优先算法的进程调度程序.doc》由会员分享,可在线阅读,更多相关《采用静态优先权优先算法的进程调度程序.doc(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、, 采用静态优先权优先算法的进程调度程序 学 号: 姓 名: 专 业: 指导教师: 日 期: 目录第1部分 课设简介31.1 课程设计题目31.2 课程设计目的31.3 课程设计内容31.4 时间安排3第2部分 实验原理分析32.1问题描述32.2解决方法4第3部分 主要的功能模块53.1主要的函数53.2 测试用例及运行结果7第4部分 源代码9第5部分 总结及参考文献165.1 总结165.2 参考文献17 第1部分 课设简介1.1 课程设计题目 采用静态优先权优先算法的进程调度程序1.2 课程设计目的 操作系统课程设计是计算机专业重要的教学环节,它为学生提供了一个既动手又动脑,将课本上的理
2、论知识和实际有机的结合起来,独立分析和解决实际问题的机会。 1)进一步巩固和复习操作系统的基础知识。 2)培养学生结构化程序、模块化程序设计的方法和能力。 3)提高学生调试程序的技巧和软件设计的能力。 4)提高学生分析问题、解决问题以及综合利用C语言进行程序设计的能力。1.3 课程设计内容设计并实现一个采用静态优先权算法的进程调度演示程序1.4 时间安排 1)分析设计贮备阶段 (1 天) 2)编程调试阶段 (7 天) 3)写课程设计报告、考核(2 天) 第2部分 实验原理分析2.1问题描述(1)每一个进程有一个PCB,其内容可以根据具体情况设定。 (2)进程数、进入内存时间、要求服务时间、优先
3、级等均可以在界面上设定 (3)可读取样例数据(要求存放在外部文件中)进行进程数、进入内存时间、时间片长度、作业大小、进程优先级的初始化 (4)可以在运行中显示各进程的状态:就绪、执行 (由于不要求设置互斥资源与进程间的同步关系,故只有两种状态) (5)采用可视化界面,可在进程调度过程中随时暂停调度,查看当前进程的状态以及相应的阻塞队列 (6)有性能比较功能,可比较同一组数据在不同调度算法下的平均周转时间 (7)具有一定的数据容错性2.2程序设计流程图2.3解决方法 通过数组容纳所有数据,根据冒泡排序把数据按从小到大顺序排列,在分析a0和其他数据的大小,如果a0的完成时间大于其他数据就按照冒泡的
4、排列顺序,如果小,就比较其他数据的优先级,按优先级大小排序。 第3部分 主要的功能模块3.1主要的函数void fcfs()int i,j,n,min,px;float sum1,sum2;printf(t请输入有n个进程(0n50|n=0)printf(nt请重新输入: );scanf(%d,&n);printf(nn);struct Gzuoint id; /进程名字int dt; /到达时刻int st; /服务时间int wct; /完成时刻float zt; /周转时间float dczt; /带权周转时间;Gzuo aN;for(i=0;i=0;j-) for(i=0;iai+1.
5、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;a0.dczt=a0.zt/a0.st;for(i=1;iai-1.wct)ai.wct=ai.dt+ai.st;ai.zt=(float)ai.st;ai.dczt=ai.zt/ai.st;elseai.wct=ai-1.wct+ai.st;ai.zt=(float)(ai.wct-ai.dt
6、);ai.dczt=ai.zt/ai.st; 3.2 测试用例及运行结果 第4部分 源代码#includestdio.h#define N 50void main() void fcfs();void yxj();int a;while(true)printf(nn);printf(tt/*/);printf(ntt/* 1、先到先服务 调 度 */);printf(ntt/* 2、优先级优先 调 度 */);printf(ntt/* 0、 退 出 */n);printf(tt/*/);printf(nnt请选择菜单项:t);scanf(%d,&a);printf(n);switch(a)ca
7、se 1: fcfs();break;case 2: yxj();break;default: break;if(a2) break;void fcfs()int i,j,n,min,px;float sum1,sum2;printf(t请输入有n个进程(0n50|n=0)printf(nt请重新输入: );scanf(%d,&n);printf(nn);struct Gzuoint id; /进程名字int dt; /到达时刻int st; /服务时间int wct; /完成时刻float zt; /周转时间float dczt; /带权周转时间;Gzuo aN;for(i=0;i=0;j-
8、) for(i=0;iai+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;a0.dczt=a0.zt/a0.st;for(i=1;iai-1.wct)ai.wct=ai.dt+ai.st;ai.zt=(float)ai.st;ai.dczt=ai.zt/ai.st;elseai.wct=ai-1.wct+ai.st;ai.zt=(flo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 采用 静态 优先权 优先 算法 进程 调度 程序
限制150内