欢迎来到天天文库
浏览记录
ID:6231575
大小:166.50 KB
页数:7页
时间:2018-01-07
《操作系统实验报告-进程调度算法的实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、南昌大学实验报告---(4)进程调度算法的实现学生姓名:张虹学号:6100409033专业班级:电Ⅲ091班实验类型:□验证■综合□设计□创新实验日期:实验成绩:一、实验目的通过实验加强对进程调度算法的理解和掌握。二、实验内容编写程序实现进程调度算法,具体可以编写程序实现先来先服务算法或优先度高者调度算法。三、实验要求1、需写出设计说明;2、设计实现代码及说明3、运行结果;四、主要实验步骤1、分析实验内容,画出算法流程图;2、根据流程图写出实验代码;3、编译代码,验证结果正确与否;4、对程序进行修改,得到最后结果。流程图如下:五、实验数据及处
2、理结果六、实验体会或对改进实验的建议在做这个实验的时候,一开始以为很简单,只要做简单的加减乘除就行了,但是仔细做过以后发现需要考虑很多情况。比如说输入进程到达时间的时候,要是乱序的该怎么办?还有到达时间和服务时间等等定义的都是整型变量,但是带权周转时间确会得到小数,此时就需要用到强制转换。在做系统产生随机数的时候也要考虑随机数的范围,如到达时间可以为0,但是服务时间却不能为0,否则带权周转时间的计算会出错。七、参考资料《计算机操作系统》《计算机操作系统实验指导书》《C程序设计》《C语言程序设计_现代方法》八、实验代码#include3、o.h>#include#include#defineN5//进程个数,可改变intrt[N];//到达时间intst[N];//服务时间intct[N];//完成时间intcyt[N];//周转时间floatrct[N];//带权周转时间floatav[2];intn,m;voidline()//美化程序,使程序运行时更加明朗美观{printf("------------------------------------------------------------------");}voidstar4、t()//表示FCFS算法开始{line();printf("FCFS算法开始");printf("——DesignedbyZhangHong");line();}voidend()//表示FCFS算法结束{line();printf("FCFS算法结束,谢谢使用");line();}voidinput(){printf("请输入%d个进程的到达时间:",N);for(n=0;n5、"%d",&st[n]);}voidrandom(){srand((unsigned)time(NULL));for(n=0;n6、nttemp;for(n=0;n=rt[n])//考虑当前一个进程完成而后一个进程还没有到达的情况ct[n]=ct[n-1]+st[n]7、;elsect[n]=rt[n]+st[n];}for(n=0;n8、n
3、o.h>#include#include#defineN5//进程个数,可改变intrt[N];//到达时间intst[N];//服务时间intct[N];//完成时间intcyt[N];//周转时间floatrct[N];//带权周转时间floatav[2];intn,m;voidline()//美化程序,使程序运行时更加明朗美观{printf("------------------------------------------------------------------");}voidstar
4、t()//表示FCFS算法开始{line();printf("FCFS算法开始");printf("——DesignedbyZhangHong");line();}voidend()//表示FCFS算法结束{line();printf("FCFS算法结束,谢谢使用");line();}voidinput(){printf("请输入%d个进程的到达时间:",N);for(n=0;n5、"%d",&st[n]);}voidrandom(){srand((unsigned)time(NULL));for(n=0;n6、nttemp;for(n=0;n=rt[n])//考虑当前一个进程完成而后一个进程还没有到达的情况ct[n]=ct[n-1]+st[n]7、;elsect[n]=rt[n]+st[n];}for(n=0;n8、n
5、"%d",&st[n]);}voidrandom(){srand((unsigned)time(NULL));for(n=0;n6、nttemp;for(n=0;n=rt[n])//考虑当前一个进程完成而后一个进程还没有到达的情况ct[n]=ct[n-1]+st[n]7、;elsect[n]=rt[n]+st[n];}for(n=0;n8、n
6、nttemp;for(n=0;n=rt[n])//考虑当前一个进程完成而后一个进程还没有到达的情况ct[n]=ct[n-1]+st[n]
7、;elsect[n]=rt[n]+st[n];}for(n=0;n8、n
8、n
此文档下载收益归作者所有