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

进程调度实验

10页
  • 卖家[上传人]:ni****g
  • 文档编号:468195090
  • 上传时间:2023-10-13
  • 文档格式:DOCX
  • 文档大小:112.32KB
  • / 10 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、实验二 进程调度算法模拟姓名:海日汗学号:20092106091 概述:进程调度算法有FIFO,优先数调度算法,时间片轮转调度算 法,分级调度算法。2 实验目的:模拟FIFO,时间片调度算法和优先数调度算法。更深入的了 解进程调度算法。3 实验要求输入:每个进程包括四个数据项: 进程名 进程状态(1 等待 2 就绪 3 运行) 所需时间 优先数(0 级最高) 。 输出: 进程执行流 和等待时间 平均等待时间。#include #include using namespace std;const int block_time=10; /定义时间片的长度为 10 秒 const int MAXPCB=100;/定义最大进程数int aMAXPCB;/保存各个进程几次时间偏上运行/定义进程结构体 typedef struct nodechar name20; int state;int rtime;int privilege; int wait_time;/进程名字/进程状态/进程运行时间 /进程优先级/进程等待时间pcb;/进程个数pcb pcbsMAXPCB; int quantity;

      2、/初始化函数 void initial()int i; for(i=0;ifname; if(fp=fopen(fname,r)=NULL)coutvv错误,文件打不开,请检査文件名vvendl;else while(!feof(fp)fscanf(fp,%s %d %d %d,pcbsquantity.name,&pcbsquantity.state,&pcbsquantity .rtime,&pcbsquantity.privilege);quantity+;/输出所读入的数据coutvv输出所读入的数据vvendl;coutvv进程名进程状态所需时间优先数vvendl;for(i=0;ivquantity;i+)coutvv vvpcbsi.namevv tvvpcbsi.statevv tvvpcbsi.rtimevv tvvpcbsi.privilegevvendl;return(1);return(0);/重置数据,以供另一个算法使用 void init()int i; for(i=0;iquantity;i+) pcbsi.wait_time=0;/先进先出算法void

      3、FIFO()int i,j;double total;输出FIFO算法执行流coutendlendl;coutvvFIFO 算法执行流:vvendl;coutvv进程名等待时间vvendl;for(i=0;ivquantity;i+)coutvv vvpcbsi.namevv vvpcbsi.wait_timevvendl;for(j=i+1;jvquantity;j+) pcbsj.wait_time+=pcbsi.rtime;total=0.0;for(i=0;ivquantity;i+) total+=pcbsi.wait_time;coutvv总等待时间:vvtotalvv平均等待时间:vv10*(total/quantity)vvendl;/优先数调度算法 void privilege()int i,j;double total;for(i=0;iquantity;i+) pcb zhizhen;for(j=i+1;jquantity;j+)if(pcbsi.statepcbsj.privilege)zhizhen=pcbsi;pcbsi=pcbsj;pcbsj=zhizhe

      4、n;if(pcbsi.state=pcbsj.state&pcbsi.privilege=pcbsj.privilege) /状态和 优先级都相等的情况,运行时间短的先运行if(pcbsi.rtimepcbsj.rtime) zhizhen=pcbsi; pcbsi=pcbsj; pcbsj=zhizhen;elsecontinue;for(i=0;iquantity;i+)for(j=i+1;jquantity;j+)pcbsj.wait_time+=pcbsi.rtime;/输出优先数调度执行流coutendlpcbsjprivilege) /状 态 相 等情况要考虑优先级zhizhen=pcbsi; pcbsi=pcbsj;pcbsj=zhizhen;if(pcbsistate=pcbsjstate&pcbsiprivilege=pcbsjprivilege) /状态和 优先级都相等的情况,运行时间短的先运行if(pcbsirtimepcbsjrtime)zhizhen=pcbsi;pcbsi=pcbsj;pcbsj=zhizhen; elsecontinue;int flag=

      5、0;/标记运行几次时间片int number=0;/时间片个数for(i=0;iflag) flag=ai;elseai=pcbsi.rtime/block_time+1; if(aiflag)flag=ai;vvendl;coutendl=number)coutvvpcbsj.namevvendl;return 0;/主函数 void main()int flag;coutendlendl;cout cout cout cout cout cout coutI1 vvendl;I进程调度模拟系统I vvendl;|1 vvendl;I海日汗I vvendl;I2009210609I vvendl;II vvendl;11 vvendl;coutvvendlvvendl; initial();flag=readData(); if(flag=1)FIFO();init();privilege();init();BLOCK_TIME(); 5运行结果:Jcb.txt的内容是:job11881job23560job31501job42792job52890job621103job71904进程调度模拟系统海日汗程右逬程状态所需时间优先数1312221jobi job2 job3 job4 job5 job6 job?885650?989110902034oob2b381844ob4194joob5b623?6320jobl472job?总導待吋间= 1533平均等待吋间:219优先数调度#遁呈名W辱待job20job556job4145job6224job3334jobl384job?4?2流:总等待时间:违15平均等待时间:230.?146.心得和思路:通过本次实验,我更深入的了解了进程调度算法!实现了先来先服务算法,优先级调度算法,时间片轮转算法!主要思想如下:(1)先来先服务算法的时候,状态和优先级都没考虑,看成队 列的顺序就是进程的顺序,所以很简单了!(2)优先级调度算法:考虑三种情况,第一:状态的大小来排 序,因为我的代码里运行态是 3 就

      《进程调度实验》由会员ni****g分享,可在线阅读,更多相关《进程调度实验》请在金锄头文库上搜索。

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