为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

实验 短作业优先进程调度算法模拟

2019-02-16 10页 doc 29KB 111阅读

用户头像

is_014457

暂无简介

举报
实验 短作业优先进程调度算法模拟实验  短作业优先SJF进程调度算法模拟 一、实验目的 模拟单处理器系统的进程调度,采用短作业优先的进程调度算法作为进程设计算法,以加深对进程的概念及进程调度算法的理解. 二、实验内容 #include #include #include #include #define  N  5 struct  PCB { char name[8];              //进程名称 int  arrive_time;          //到达时间 int  run_time;            //运行时间 ...
实验   短作业优先进程调度算法模拟
实验  短作业优先SJF进程调度算法模拟 一、实验目的 模拟单处理器系统的进程调度,采用短作业优先的进程调度算法作为进程设计算法,以加深对进程的概念及进程调度算法的理解. 二、实验内容 #include #include #include #include #define  N  5 struct  PCB { char name[8];              //进程名称 int  arrive_time;          //到达时间 int  run_time;            //运行时间 int  finish_time;          //完成时间 int  zhouzhuan_time;        //周转时间 float  daiquan_time;        //带权周转时间 bool  finished;            //是否运行完成 }; //进程初始化 struct  PCB  pcb[N]= {{"AAA",0,4},{"BBB",1,3},{"CCC",2,5},{"DDD",3,2},{"EEE",4,4}}; //进程输出函数 void  output() {  printf("----------------------------------------------------------------------------------------------\n"); printf("进程名  到达时间  运行时间  完成时间  周转时间  带权周转时间\n"); printf("----------------------------------------------------------------------------------------------\n"); for(int  i=0;ipcb[j].run_time&&pcb[j].finished==false) { min_time=pcb[j].run_time; index=j; } } //运行找到的最短进程  得到它的完成时间、周转时间等,并设置为已访问 pcb[index].finish_time=pcb[last_finishedPCB_index].finish_time+pcb[index].run_time; pcb[index].zhouzhuan_time=pcb[index].finish_time-pcb[index].arrive_time; pcb[index].finished =true; last_finishedPCB_index=index; }    output(); } 要求: 1. 认真阅读并理解上述程序,在实验中说明短作业优先调度算法中计算各进程的完成时间、周转时间思路。 2. 上面程序没有求每个进程的带权周转时间、平均周转时间,平均带权周转时间,能否加上,结果输出的格式按类似P904-2 输出。 3. 上面程序没有考虑某进程的运行时间最短,但它还没有到达的情况,请改写程序,将这种情况考虑进去,使程序正确。如进程信息如下: struct  PCB  pcb[N]= {{"AAA",0,4},{"BBB",1,3},{"CCC",2,5},{"DDD",15,2},{"EEE",4,4}}; 进程名 到达时间 运行时间 完成时间 周转时间 A 0 4 4 4 B 1 3 7 6 C 2 5 16 14 D 20 2 22 3 E 4 4 11 7           4. 附加: 将该程序和先来先服务程序合成一个程序,并提供菜单选择执行短作业优先或先来先服务?(提示: 进程的初始化、进程的输出、进程的排序等只要定义一个,将FCFS 、SJF 的计算完成时间、周转时间、带权周转时间等的功能做成两个函数,函数名建议为FCFS、SJF。在主函数中建立菜单进行调用。 实验报告书写 1. 写出你对给出的程序的理解,可以包括学到了那些程序设计的语法或,以及算法的设计思想。 2. 写出实验指导中要求部分是如何实现的, 3. 上述部分不能只是抄写代码,要有说明。 附录:  先来先服务进程调度模拟程序 #include #include #include #include #define  N  5 struct  PCB { char name[8]; int  arrive_time; int  run_time; int finish_time; int  zhouzhuan_time; }; int  total=0; struct  PCB  pcb[N],temp; void  output() {  printf("----------------------------------------------------------------------------------------------\n"); printf("进程名  到达时间  运行时间  完成时间  周转时间  \n"); printf("----------------------------------------------------------------------------------------------\n"); for(int  i=0;i
/
本文档为【实验 短作业优先进程调度算法模拟】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索