操作系统-先来先服务算法FCFS(C语言).doc

上传人:sk****8 文档编号:2246110 上传时间:2019-05-02 格式:DOC 页数:5 大小:114KB
下载 相关 举报
操作系统-先来先服务算法FCFS(C语言).doc_第1页
第1页 / 共5页
操作系统-先来先服务算法FCFS(C语言).doc_第2页
第2页 / 共5页
操作系统-先来先服务算法FCFS(C语言).doc_第3页
第3页 / 共5页
操作系统-先来先服务算法FCFS(C语言).doc_第4页
第4页 / 共5页
操作系统-先来先服务算法FCFS(C语言).doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、实 验 报 告题目名称C 语言实现调度算法程序设计实验报告-先来先服务 FCFS院系 a 班级 完成时间 指导老师 本次实验成绩主要原理及所参考的资料算法原理:设计程序模拟进程的先来先服务 FCFS 过程。假设有 n 个进程分别在 T1, ,Tn时刻到达系统,它们需要的服务时间分别为 S1, ,Sn。分别采用先来先服务 FCFS 调度算法进行调度,计算每个进程的完成时间,周转时间和带权周转时间,并且统计 n 个进程的平均周转时间和平均带权周转时间。程序要求如下:1)进程个数 n;每个进程的到达时间 T1, ,Tn和服务时间 S1, ,Sn。2)要求采用先来先服务 FCFS 调度进程运行,计算每

2、个进程的周转时间,带权周转时间,并且计算所有进程的平均周转时间,带权平均周转时间;3)输出:要求模拟整个调度过程,输出每个时刻的进程运行状态,如“时刻 3:进程 B 开始运行”等等;4)输出:要求输出计算出来的每个进程的周转时间,带权周转时间,所有进程的平均周转时间,带权平均周转时间。主要参考书:计算机操作系统第三版 西安电子科技大学出版社 汤小丹主编主要算法具体实验实现提示:用 C 语言实现提示:1)程序中进程调度时间变量描述如下:static int MaxNum=100;int ArrivalTimeMaxNum;int ServiceTimeMaxNum;int FinishTimeM

3、axNum;int WholeTimeMaxNum;double WeightWholeTimeMaxNum;double AverageWT_FCFS; 调度算法程序设计实验报告步骤double AverageWWT_FCFS;2)进程调度的实现过程如下: 变量初始化; 接收用户输入 n,T 1, ,Tn,S 1, ,Sn; 按照选择算法进行进程调度,计算进程的完成时间、周转时间和带权周转时间; 计算所有进程的平均周转时间和平均带权周转时间; 按格式输出调度结果。实验要求1. 程序流程图P=HEAD ; i=0P=Q;P=P-NEXT; P=P-NEXT;Q-STARTTIME=TIMEQ-

4、STATE=T 开始i+;输出执行进程信息结束P-STATE=F?Q-ARRIVETIME TIME?i STARTTIME=ARRIVETIMEQ-STATE=T Y NY NN Y2. 程序源代码调度算法程序设计实验报告#include“stdio.h“#include“stdlib.h“typedef struct PCB /定义进程控制块 char name10; /进程名char state; /运行状态int ArriveTime; /到达时间int StartTime; /进程开始时间int FinishTime; /进程结束时间int ServiceTime; /服务时间flo

5、at 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-Start

6、Time=time;printf(“n 时刻:%d, 当前开始运行作业%snn“,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-WeightWholeTi

7、me/n;printf(“ 到达时间 开始时间 服务时间 完成时间 周转时间 带权周转时间 n“);printf(“%6d %10d %10d %8d %10.1f %10.2f n “,p1-ArriveTime,p1-StartTime, p1-ServiceTime,p1-FinishTime,p1-WholeTime,p1-WeightWholeTime);printf(“n 平均周转时间 平均带权周转时间 n“);printf(“ %10.2f %10.2fn “,p1-AverageWT_FCFS,p1-AverageWWT_FCFS);void FCFS() /找到当前未完成的进

8、程调度算法程序设计实验报告int i;p=head;for(i=0;istate=F)q=p; /标记当前未完成的进程run_FCFS(q);p=p-next;void getInfo() /获得进程信息并创建进程int num;printf(“n 进程个数:“);scanf(“%d“,for(num=0;numname,if(head=NULL) head=p;q=p;time=p-ArriveTime;if(p-ArriveTime ArriveTime;q-next=p;p-StartTime=0;p-FinishTime=0;p-WholeTime=0;p-WeightWholeTime=0;p-next=NULL;p-state=F;q=p; void main() printf(“先来先服务 FCFS 算法模拟n“);getInfo();p=head;FCFS();调度算法程序设计实验报告3. 程序运行调试结果实验心得这是第一次操作系统的实验是对先来先服务 FCFS 过程进行调度算法的描述,先来先服务调度算法就是每次调度是从就绪队列中选择一个最先进入该队列的进程进行处理。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 课程笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。