采用静态优先权优先算法的进程调度程序.docVIP

  • 24
  • 0
  • 约8.86千字
  • 约 19页
  • 2017-01-30 发布于重庆
  • 举报

采用静态优先权优先算法的进程调度程序.doc

采用静态优先权优先算法的进程调度程序

采用静态优先权优先算法的进程调度程序 学 号: 姓 名: 专 业: 指导教师: 日 期: 目录 第1部分 课设简介 3 1.1 课程设计题目 3 1.2 课程设计目的 3 1.3 课程设计内容 3 1.4 时间安排 3 第2部分 实验原理分析 3 2.1问题描述 3 2.2解决方法 4 第3部分 主要的功能模块 5 3.1主要的函数 5 3.2 测试用例及运行结果 7 第4部分 源代码 9 第5部分 总结及参考文献 16 5.1 总结 16 5.2 参考文献 17 第1部分 课设简介 1.1 课程设计题目 采用静态优先权优先算法的进程调度程序 1.2 课程设计目的 操作系统课程设计是计算机专业重要的教学环节,它为学生提供了一个既动手又动脑,将课本上的理论知识和实际有机的结合起来,独立分析和解决实际问题的机会。 1)进一步巩固和复习操作系统的基础知识。 2)培养学生结构化程序、模块化程序设计的方法和能力。 3)提高学生调试程序的技巧和软件设计的能力。 4)提高学生分析问题、解决问题以及综合利用C语言进行程序设计的能力。 1.3 课程设计内容 设计并实现一个采用静态优先权算法的进程调度演示程序 1.4 时间安排 1)分析设计贮备阶段 (1 天) 2)编程调试阶段 (7 天) 3)写课程设计报告、考核(2 天) 第2部分 实验原理分析 2.1问题描述 (1)每一个进程有一个PCB,其内容可以根据具体情况设定。 (2)进程数、进入内存时间、要求服务时间、优先级等均可以在界面上设定 (3)可读取样例数据(要求存放在外部文件中)进行进程数、进入内存时间、时间片长度、作业大小、进程优先级的初始化 (4)可以在运行中显示各进程的状态:就绪、执行 (由于不要求设置互斥资源与进程间的同步关系,故只有两种状态) (5)采用可视化界面,可在进程调度过程中随时暂停调度,查看当前进程的状态以及相应的阻塞队列 (6)有性能比较功能,可比较同一组数据在不同调度算法下的平均周转时间 (7)具有一定的数据容错性 2.2程序设计流程图 2.3解决方法 通过数组容纳所有数据,根据冒泡排序把数据按从小到大顺序排列,在分析a[0]和其他数据的大小,如果a[0]的完成时间大于其他数据就按照冒泡的排列顺序,如果小,就比较其他数据的优先级,按优先级大小排序。 第3部分 主要的功能模块 3.1主要的函数 void fcfs() { int i,j,n,min,px; float sum1,sum2; printf(\t请输入有n个进程(0n=50):\t); scanf(%d,n); while(n50||n=0) { printf(n\t请重新输入: ); scanf(%d,n); } printf(\n\n); struct Gzuo{ int id; //进程名字 int dt; //到达时刻 int st; //服务时间 int wct; //完成时刻 float zt; //周转时间 float dczt; //带权周转时间 }; Gzuo a[N]; for(i=0;in;i++) { a[i].id=i+1; printf(\t到达时间: ); scanf(%d,a[i].dt); printf(\t服务时间: ); scanf(%d,a[i].st); printf(\n); } for(j=n-1;j=0;j--) { for(i=0;ij;i++) { if(a[i].dta[i+1].dt) { min=a[i].dt; a[i].dt=a[i+1].dt; a[i+1].dt=min; min=a[i].st; a[i].st=a[i+1].st; a[i+1].st=min; min=a[i].id; a[i

文档评论(0)

1亿VIP精品文档

相关文档