收藏 分销(赏)

操作系统-作业调度算法模拟.doc

上传人:s4****5z 文档编号:8677024 上传时间:2025-02-25 格式:DOC 页数:6 大小:132.50KB 下载积分:10 金币
下载 相关 举报
操作系统-作业调度算法模拟.doc_第1页
第1页 / 共6页
操作系统-作业调度算法模拟.doc_第2页
第2页 / 共6页


点击查看更多>>
资源描述
福建农林大学计算机与信息学院 (程序设计类课程) 实验报告 课程名称: 操作系统 姓 名: 系: 计算机 专 业: 计算机科学与技术 年 级: 2009 学 号: 指导教师: 职 称: 2011年11月4日 实验项目列表 序号 实验项目名称 成绩 指导教师 1 Linux基本操作与编程  2 作业调度算法模拟 3 Linux文件操作与内存管理算法模拟 4 5 6 7 8 9 10 11 12 福建农林大学计算机与信息学院实验报告 系: 计算机科学与技术 专业: 计算机科学与技术 年级: 2009 姓名: 学号: 实验室号_田514__ 计算机号 39 实验时间: 2011.11.18 指导教师签字: 成绩: 实验二:作业调度算法模拟  一、 实验目的和要求 1) 掌握作业调度的主要功能及算法。 2) 通过模拟作业调度算法的设计加深对作业管理基本原理的理解。 二、 实验内容和原理 (1)编写程序p.c,其功能是从键盘输入两个实数,输出这两个实数的平方和,生成 可执行文件为pow。记录编译的命令和结果。 (2)作业调度算法(FCFS)编程模拟: 编制一段程序,对所输入的若干作业,按FCFS算法模拟调度,观察、记录并分析调度的输出结果情况。 (3)作业调度算法(SJF)编程模拟:编程实现由短作业优先算法对模拟作业的调度,并观察分析运行结果。 三、 实验环境 1. 硬件环境: 计算机设备:P4+256MB内存 2. 软件环境: VM+红旗Linux 4.0 桌面版 Turbo 3.1 for Windows 四、 算法描述及实验步骤 (1)include "math.h" int main() { float x,y; scanf("%f,%f",&x,&y); printf("%6.3f",x*x+y*y); return 0; } (3)#include <stdio.h> #include <stdlib.h> #define SIZE 4 struct Job_type { int no; //作业号 int tb; //作业开始时间(分) int tr; //运行时间(分) } x; Job_type job[]={1,0,70,2,20,20,3,40,40,4,30,5}; //此数据适合FCFS //Job_type job[]={1,0,70,2,0,20,3,0,40,4,0,5}; //此数据适合SJF void load() { int i; //printf("\nEnter the Jobs' datas:\n"); //for(i=0;i<SIZE;i++) //scanf("%d,%d,%d",&job[i].no,&job[i].tb,&job[i].tr); printf("输入作业顺序:\n"); for(i=0;i<SIZE;i++) printf("\t%d\t%d\t%d\n",job[i].no,job[i].tb,job[i].tr); } void fcfs() { int i,j,t=0,tw=0,tt=0; for(i=0;i<SIZE-1;i++) for(j=i+1;j<SIZE;j++) if(job[i].tb>job[j].tb) {x=job[i]; job[i]=job[j]; job[j]=x; } printf("FCFS调度结果:\n"); printf("开始时间 作业号 到达时间 运行时间 完成时间 等待时间 周转时间\n"); for(i=0;i<SIZE;i++) { printf(" %d",t); t=t+job[i].tr; tw=t-job[i].tb-job[i].tr; //作业等待时间 tt=t-job[i].tb; //周转时间 printf("\t%d\t%d\t%d\t%d\t%d\t%d\n",job[i].no,job[i].tb,job[i].tr,t,tw,tt); } } void sjf() //短作业调度函数 { int i,j,t=0,tw=0; for(i=0;i<SIZE-1;i++) for(j=i+1;j<SIZE;j++) if(job[i].tr>job[j].tr) {x=job[i]; job[i]=job[j]; job[j]=x; } printf("短作业优先调度结果:\n"); printf("开始时间 作业号 到达时间 运行时间 总时间 等待时间\n"); for(i=0;i<SIZE;i++) { printf(" %d",t); t=t+job[i].tr; tw=t-job[i].tb-job[i].tr; //作业等待时间 printf("\t%d\t%d\t%d\t%d\t%d\n",job[i].no,job[i].tb,job[i].tr,t,tw); } } void main() { load(); fcfs(); sjf(); } 五、调试过程 调试正确 六、实验结果 (1) (3) 七、总结 通过本次实验基本掌握作业调度的主要功能及算法,经过了对模拟作业调度算法的设计加深对作业管理基本原理的理解。但是也有一些不太了解的地方。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服