进程调度算法设计(时间片轮转调度算法RR_新旧都有).docVIP

进程调度算法设计(时间片轮转调度算法RR_新旧都有).doc

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

电 子 科 技 大 学 实 验 报 告 学生姓名:满博 学 号:2823103017 指导教师: 罗惠琼 一、实验室名称:软件实验室A2412 实验项目名称:进程调度算法的设计(时间片轮转调度算法RR) 说明:同时采用了新旧教材的RR算法(两种算法都在实验报告中给出) 实验原理: 在多道程序系统中,一个作业被提交后必须经过处理机调度后,方能获得处理机执行。对调度的处理又都可采用不同的调度方式和调度算法。调度算法是指:根据系统的资源分配策略所规定的资源分配算法。 RR算法:每次调度时,把CPU分配给队首进程,并且令其执行一个时间片,时间片的大小从几个ms到几百ms。当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便依据此信号来停止该进程的执行;并且把它送往就绪队列的队尾;然后,再把处理剂分配给就绪队列中的新队首进程,同时也让它执行一个时间片。这样就可以保证就绪队列中的所有进程在一个给定时间内均能获得一时间片的处理机执行时间。换言之,系统能在给定的时间内相应所有用户的请求。 四、实验目的: 通过对进程调度算法的设计,深入理解进程调度的原理。 五、实验内容: 1. 编写RR算法。 进程通过定义一个进程控制块的数据结构(PCB)来表示; 每个进程需要赋予进程ID、进程到达时间、进程需要运行的总时间的属性; 以1为时间片单位; 2. 调试无误后运行。 3. 输入需要请求调入的页号。 4. 查看执行结果,根据执行结果判断实验是否成功。 六、实验器材(设备、元器件): 1.基本环境要求 ①宽敞整洁专用实验室 ②必备的基本实验工具 2.最低设备要求 ① 计算机CPU不小于800MHZ; ② 计算机内存不小于128M; 3.软硬件要求 ① 实验平台Visual c++ 6.0 七、实验步骤: 1.新教材RR代码: #includestdio.h #define n 5 #define num 5 #define max 65535 typedef struct pro { int PRO_ID; int arrive_time; int sum_time; int flag; }Pro; void RR(int p) { int i,j,c=0; int count=num; int timer=0; Pro seq[n],t; Pro temp_seq[n]; for(i=0;in;i++){ temp_seq[i].PRO_ID=0; temp_seq[i].arrive_time=-1; temp_seq[i].sum_time=0; temp_seq[i].flag=0; } printf(轮转时间片调度算法RR\n); printf(请依次输入%d个进程的进程号、到达时间和执行时间\n,n); printf(成员变量用逗号隔开;进程间用回车隔开\n); for(i=0;in;i++){ scanf(%d,%d,%d,seq[i].PRO_ID,seq[i].arrive_time,seq[i].sum_time); } //第一个初始化 for(i=0;in;i++){ if(timer==seq[i].arrive_time){ temp_seq[0]=seq[i]; temp_seq[0].flag=1; c++; timer++; break; } } //开始循环 while(count){ int flag=0; if(temp_seq[0].flag){ printf(%d,temp_seq[0].PRO_ID); temp_seq[0].sum_time--; if(temp_seq[0].sum_time==0temp_seq[0].flag!=0){ count--; temp_seq[0].flag=0; } for(i=0;i5;i++){ if(timer==seq[i].arrive_time){ t=temp_seq[0]; temp_seq[c]=seq[i]; for(j=0;jc;j++){ temp_seq[j]=temp_seq[j+1]; } temp_seq[c]=t; c++; flag=1; } } } if(flag!=1){

文档评论(0)

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

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

1亿VIP精品文档

相关文档