- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统先来先服务算法FCFS(C语言)
实 验 报 告
题目
名称
C语言实现调度算法程序设计实验报告-先来先服务FCFS
院系
a
班级
完成时间
指导老师
本次实验成绩
主
要
原
理
及
所
参
考
的
资
料
算法原理:
设计程序模拟进程的先来先服务FCFS过程。假设有n个进程分别在T1, … ,Tn时刻到达系统,它们需要的服务时间分别为S1, … ,Sn。分别采用先来先服务FCFS调度算法进行调度,计算每个进程的完成时间,周转时间和带权周转时间,并且统计n个进程的平均周转时间和平均带权周转时间。
程序要求如下:
1)进程个数n;每个进程的到达时间T1, … ,Tn和服务时间S1, … ,Sn。
2)要求采用先来先服务FCFS调度进程运行,计算每个进程的周转时间,带权周转时间,并且计算所有进程的平均周转时间,带权平均周转时间;
3)输出:要求模拟整个调度过程,输出每个时刻的进程运行状态,如“时刻3:进程B开始运行”等等;
4)输出:要求输出计算出来的每个进程的周转时间,带权周转时间,所有进程的平均周转时间,带权平均周转时间。
主要参考书:
计算机操作系统第三版 西安电子科技大学出版社 汤小丹主编
主
要
算
法
具
体
实
验
步
骤
实现提示:
用C语言实现提示:
1)程序中进程调度时间变量描述如下:
static int MaxNum=100;
int ArrivalTime[MaxNum];
int ServiceTime[MaxNum];
int FinishTime[MaxNum];
int WholeTime[MaxNum];
double WeightWholeTime[MaxNum];
double AverageWT_FCFS;
double AverageWWT_FCFS;
2)进程调度的实现过程如下:
变量初始化;
接收用户输入n,T1, … ,Tn,S1, … ,Sn;
按照选择算法进行进程调度,计算进程的完成时间、周转时间和带权周转时间;
计算所有进程的平均周转时间和平均带权周转时间;
按格式输出调度结果。
实
验
要
求
程序流程图
程序源代码
#includestdio.h
#includestdlib.h
typedef struct PCB //定义进程控制块
{ char name[10]; //进程名
char state; //运行状态
int ArriveTime; //到达时间
int StartTime; //进程开始时间
int FinishTime; //进程结束时间
int ServiceTime; //服务时间
float WholeTime;//周转时间
float WeightWholeTime;//带权周转时间
double AverageWT_FCFS; //平均周转时间
double AverageWWT_FCFS;//带权平均周转时间
struct PCB *next; //指向下个进程
}pcb;
double x=0,y=0;
int i;
int time; //计时器
int n; //进程个数
pcb *head=NULL,*p,*q; //进程链表指针
void run_FCFS(pcb *p1) //运行未完成的进程
{
time = p1-ArriveTime time? p1-ArriveTime:time;
p1-StartTime=time;
printf(\n时刻:%d, 当前开始运行作业%s\n\n,time,p1-name);
time+=p1-ServiceTime;
p1-state=T;
p1-FinishTime=time;
p1-WholeTime=p1-FinishTime-p1-ArriveTime;
p1-WeightWholeTime=p1-WholeTime/p1-ServiceTime;
x+=p1-WholeTime;
y+=p1-WeightWholeTime;
p1-AverageWT_FCFS=p1-WholeTime/n;
p1-AverageWWT_FCFS=p1-WeightWholeTime/n;
printf( 到达时间 开始时间 服务时间 完成时间 周转时间 带权周转时间 \n);
printf(%6d %10d %10d %8d %10.1f %10.2f \n ,p1-ArriveTime,p1-StartTime, p1-Serv
您可能关注的文档
- 成都某楼房经典拓客方式(事半功倍).doc
- 我们的学习需要改造.doc
- 我们站在了真理的边缘-浅谈超光速的可能性.docx
- 我国云计算发展及运用趋势.docx
- 我们今天怎样看教育.doc
- 我国利率市场化状况及存在的问题.doc
- 我国和世界主要城市轨道交通接触网结构形式.doc
- 成本管理会计期末试题(西南财经会计学院).docx
- 我国国家标准概况.doc
- 意见我国农村义务教育均衡发展的经费保障机制探讨.doc
- [专精特新]金华永和氟化工有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]重庆升光电力印务有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]无锡巨力重工股份有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]江西凯安新材料集团股份有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]浙江永昌电气股份有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]苏州中创铝业有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]杭州汽轮铸锻有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]浙江美声智能系统有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]汕头市虹桥包装实业有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]江西亚中电子科技股份有限公司行业竞争力评级分析报告(2023版).pdf
文档评论(0)