- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验三:作业调度
实验示例 常用的打开文件方法: if((fp = fopen(fname, r)) == NULL) { printf(error, open file failed, please check filename:\n); } else {…} fclose(fp); 实验示例 void FCFS() { int time = 0; //当前时间 printf(\nFCFS算法作业流\n); while (cur_count 0) { int loc = 0; if (time jobs[loc].reach_time) time = jobs[loc].reach_time; jobs[loc].start_time = time; jobs[loc].wait_time = time - jobs[loc].reach_time; printf(time:%-4d job:%-4d 开始运行 等待时间:%-4d\n, time, jobs[loc].number, jobs[loc].wait_time); time += jobs[loc].need_time; jobs[loc].tr_time = time - jobs[loc].reach_time; jobs[loc].wtr_time = (double)jobs[loc].tr_time / jobs[loc].need_time; printf(time:%-4d job:%-4d 结束运行 周转时间;%-4d 服务时间:%-4d 带权周转时间:%-5.2f\n, time, jobs[loc].number, jobs[loc].tr_time, jobs[loc].need_time, jobs[loc].wtr_time); total_wtime += jobs[loc].wait_time; total_trtime += jobs[loc].tr_time; total_wtrtime += jobs[loc].wtr_time; remove_job(loc); } printf(\n平均等待时间:%.2f\n, total_wtime / count); printf(平均周转时间:%.2f\n, total_trtime / count); printf(平均带权周转时间:%.2f\n, total_wtrtime / count); } 实验示例 FCFS 作业要求 实现短作业优先调度算法(SJF非抢占); 实现高响应比调度算法(HRRF非抢占); 对每种算法要求打印平均周转时间、平均带权周转时间、平均等待时间; 每次作业切换时打印作业相关信息(提示开始运行,结束运行\暂停运行;一个作业完成打印其等待时间、周转时间、带权周转时间)。 学号末2位模5所得结果+1为该生所需测试数据文件尾编号如:所得结果为3则测试数据为job3.txt ; 实验示例 定义队列 typedef struct { job job_queue[MAX_QUEUE_SIZE]; int head; int tail; int size; } queue; 实验示例 初始化队列 void init_queue(queue *q) { q-head = 0; q-tail = 0; q-size = 0; } 实验示例 判断队列是否为空/已满 int is_empty_queue(queue *q) { return q-size == 0; } int is_full_queue(queue *q) { return q-size == MAX_QUEUE_SIZE; } 实验示例 其他基本队列操作 //进入队列 void enqueue(queue *q, job j){} //出队 job dequeue(queue *q){} //打印队列内容 void print_queue(queue *q){} 作业要求 根据以上提示信息实现时间片轮转调度算法(RR) 对每种算法要求打印平均周转时间、平均带权周转时间、平均等待时间; 每次作业切换时打印作业相关信息(提示开始运行,结束运行\暂停运行;一个作业完成打印其等待时间、周转时间、带权周转
文档评论(0)