电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

先来先服务调度算法模拟实验程序源代码(C语言)

7页
  • 卖家[上传人]:jiups****uk12
  • 文档编号:90757207
  • 上传时间:2019-06-16
  • 文档格式:DOC
  • 文档大小:1.86MB
  • / 7 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、兰大信息学院计算机系综合性实验报告操作系统课程综合性实验报告 开课实验室: 2011 年 05 月 17 日实验题目进程调度算法程序设计一、实验目的 通过对进程调度算法的模拟,进一步理解进程的基本概念,加深对进程运行状态和进程调度过程、调度算法的理解。二、设备与环境 1. 硬件设备:PC机一台2. 软件环境:安装Windows操作系统或者Linux操作系统,并安装相关的程序开发环境,如C C+Java 等编程语言环境。三、实验内容 (1)用C语言(或其它语言,如Java)实现对N个进程采用某种进程调度算法(如动态优先权调度)的调度。(2)每个用来标识进程的进程控制块PCB可用结构来描述,包括以下字段: 进程标识数ID。 进程优先数PRIORITY,并规定优先数越大的进程,其优先权越高。 进程已占用CPU时间CPUTIME。 进程还需占用的CPU时间ALLTIME。当进程运行完毕时,ALLTIME变为0。 进程的阻塞时间STARTBLOCK,表示当进程再运行STARTBLOCK个时间片后,进程将进入阻塞状态。 进程被阻塞的时间BLOCKTIME,表示已阻塞的进程再等待BLOCKTIME个

      2、时间片后,将转换成就绪状态。 进程状态STATE。 队列指针NEXT,用来将PCB排成队列。(3)优先数改变的原则: 进程在就绪队列中呆一个时间片,优先数增加1。 进程每运行一个时间片,优先数减3。(4)为了清楚地观察每个进程的调度过程,程序应将每个时间片内的进程的情况显示出来,包括正在运行的进程,处于就绪队列中的进程和处于阻塞队列中的进程。(5)分析程序运行的结果,谈一下自己的认识。四、实验结果及分析1.实验设计说明本次实验采用C语言模拟对N个进程采用先来先服务进程调度算法调度。每个用来标识进程的进程控制块PCB用结构来描述,包括以下字段:进程标识数ID3、进程名name10、进程状态state、进程到达时间arrivetime、进程开始执行时间starttime、进程执行结束时间finishtime、服务时间servicetime、周转时间turnaroundtime、带权周转时间weightedturnaroundtime、队列指针next用来将PCB排成队列。主要程序流程图(进程的执行过程):P=HEAD ; i=0P=Q;P=P-NEXT;P=P-NEXT;Q-STARTTI

      3、ME=TIMEQ-STATE=T 开始i+;输出执行进程信息结束P-STATE=F?Q-ARRIVETIME TIME?i STARTTIME=ARRIVETIMEQ-STATE=T YNYNNY 2.实验代码#includestdio.h#includestdlib.htypedef struct PCB /定义进程控制块 char ID3; /进程号 char name10; /进程名 char state; /运行状态 int arrivetime; /到达时间 int starttime; /进程开始时间 int finishtime; /进程结束时间 int servicetime; /服务时间 float turnaroundtime;/周转时间 float weightedturnaroundtime;/带权周转时间 struct PCB *next; /指向下个进程pcb;int time; /计时器int n; /进程个数 pcb *head=NULL,*p,*q; /进程链表指针void run_fcfs(pcb *p1) /运行未完成的进程 time = p1-a

      4、rrivetime time? p1-arrivetime:time; p1-starttime=time; printf(n现在时间是%d,开始运行作业%sn,time,p1-name); time+=p1-servicetime; p1-state=T; p1-finishtime=time; p1-turnaroundtime=p1-finishtime-p1-arrivetime; p1-weightedturnaroundtime=p1-turnaroundtime/p1-servicetime; printf(ID 到达时间 开始时间 服务时间 完成时间 周转时间 带权周转时间 n); printf(%s%6d%10d%10d%8d%10.1f%10.2fn, p1-ID,p1-arrivetime,p1-starttime,p1-servicetime,p1-finishtime, p1-turnaroundtime,p1-weightedturnaroundtime);void fcfs() /找到当前未完成的进程 int i,j; p=head; for(i=0;is

      5、tate=F) q=p; /标记当前未完成的进程 run_fcfs(q); p=p-next; void getInfo() /获得进程信息并创建进程 int num; printf(n作业个数:); scanf(%d,&n); for(num=0;numID,&p-name,&p-arrivetime,&p-servicetime); if(head=NULL) head=p;q=p;time=p-arrivetime; if(p-arrivetime arrivetime; q-next=p; p-starttime=0; p-finishtime=0; p-turnaroundtime=0; p-weightedturnaroundtime=0; p-next=NULL; p-state=F; q=p; void main() printf(先来先服务算法模拟); getInfo(); p=head; fcfs();3.实验结果测试用例 进程名到达时间服务时间A01B1100C21D31004.实验结果分析 先来先服务算法顾名思义先到的先参与调度,本利中按照A、B、C、D的顺序。因为只有非抢占方式,所以先到的进程必须执行完来才能执行下一个进程,下一个进程的开始时间也就取决于到达时间和上一个进程的结束时间中较晚的一个,如C进程的到达时间是2,但是B进程的完成时间是101,所以C进程的开始时间为101。 由实验结果可以看出,短作业C的带权周转时间竟高达100,而长作业D的带权周转时间仅为1.99,据此可知,FCFS算法有利于CPU繁忙的作业,而不利于I/O繁忙型的作业(进程)。5.实验心得 本次实验设应用链表结构进行存储并排序,条理清晰,易于理解,程序编写完成以后,实现类预期对结果。界面设计比较清晰明了,易于阅读。 本程序中灵活地设计调用函数和函数嵌套来简化程序,例如在查找未执行进程和对未执行进程执行时分别设计了void fcfs()和void run_fcfs(),多个进程运行时均要调用这两个函数,简化了代码。 另外,在编写程序之前,由于先画来流程图,对应流程图的顺序来实现程序,能对程序有个全局的把握,提高了编写速度,减少了错误。第 6 页

      《先来先服务调度算法模拟实验程序源代码(C语言)》由会员jiups****uk12分享,可在线阅读,更多相关《先来先服务调度算法模拟实验程序源代码(C语言)》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.