模拟处理机调度的间片轮转法.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
模拟处理机调度的间片轮转法

实验一 模拟处理机调度的时间片轮转法 14级4班 吴高明 20144206178 一、实验目的:用c/++模拟时间片轮转法 二、实验内容:输入进程的个数,每个进程的名称及每个进程需要在CPU上的运行时间,本实验中假定对CPU时间片设置为1个时间单位。首先输入进程的个数,然后输入进程名称,最后输入进程所需要的处理时间。然后通过模拟程序,显示以下信息: 1)处理机对进程的调度过程。 2)计算每个进程的周转时间(假设N个进程在0时刻几乎同时达到,处理机对进程的调度顺序和输入进程的顺序一致)。 三、代码、 #include stdio.h #include stdlib.h struct status{ char name[10]; int run; int req; char status; int run_time;//周转时间 }cpu_run[100];//进程组最大个数 int main() { int i,n,time=0,j,k,t=0;//n为进程个数,time为所有程序总完成时间,j为正在运行程序名,t为周转时间 printf(请输入进程数:); scanf(%d,n); printf(请输入进程名字和时间:\n); for(i=0;in;i++){ scanf(%s%d,cpu_run[i].name,cpu_run[i].run); cpu_run[i].req=0; cpu_run[i].status=R;//R即运行状态,E为结束状态 time+=cpu_run[i].run; } for(i=0;itime;i++){ printf(CPU时刻:%d\n,i+1); j=i%n;//i是运行到第几次,n是进程数,j是运行到第几个(0是第一个。。。) for(k=0;kn;k++){ if(cpu_run[j].reqcpu_run[j].run) { cpu_run[j].req+=1; t++; if(cpu_run[j].reqcpu_run[j].run) cpu_run[j].status=R; else { cpu_run[j].status=E; cpu_run[j].run_time=t; } break; } else{ cpu_run[j].status=E; j+=1;//下一个进程 } } printf(正在运行的进程:%c\n,cpu_run[j]); printf(Name run req status\n); for(k=0;kn;k++){ printf(%s %d %d %c\n,cpu_run[k].name,cpu_run[k].req,cpu_run[k].run,cpu_run[k].status); } printf(周转时间:\n); for(k=0;kn;k++){ printf(%s %d\n,cpu_run[k].name,cpu_run[k].run_time); } } } 四、运行示例: 运行过程的截图

文档评论(0)

vtangojia + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档