操作系统课程设计时间片轮转_第1页
操作系统课程设计时间片轮转_第2页
操作系统课程设计时间片轮转_第3页
操作系统课程设计时间片轮转_第4页
操作系统课程设计时间片轮转_第5页
已阅读5页,还剩15页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目 录一、设计目的1二、设计内容1三、设计原理1四、算法实现1五、流程图1六、源程序2七、运行示例及结果分析2八、心得体会2九、参考资料2时间片轮转法进行CPU调度一、 设计目的 处理机调度是操作系统中非常重要的部分。为深入理解进程管理部分的功能,设计调度算法,模拟实现处理机的调度。本课程设计是用时间片轮转算法模拟单处理机调度。二、设计内容(1)创建进程,每个进程包括三组数据:进程名,进程到达时间,服务时间。(2)自定义模拟的进程数目。在进程数目之内,手动输入进程(进程名、到达时间和服务时间)。自定义时间片大小。(3)定义一个时间轴,为参考。(4)初始化时间轴,根据先到先服务的原则,将已到达的

2、进程插入到执行队列。(5)分配给执行队列的队首一个时间片,开始运行时间片减1,时间轴则向前推进1,。时间轴每推进一秒,检索是否有新的进程到达,若有则将到达的进程插入到执行队列的队尾。(6)进程每运行1秒,服务时间减1,同时判断该进程是否运行完(服务时间是否为零)。运行完则退出执行队列。若没有则等待下一次运行。(7)当一个时间片用完时,判断所有进程是否都运行完,若有,该模拟实验结束。(8)当一个时间片用完时,判断该队首是否运行过一个完整的时间片,没有则保持该执行队列顺序不变。有,则将该进程插入到队尾。分配新的时间片给队首。三、设计原理系统将所有的就绪进程按先来先服务的原则排成一个队列,每次调度时

3、,把CPU分配给队首进程,并令其执行一个时间片。时间片的大小从几ms到几百ms。当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾:然后,再把处理机分配给就绪队列中的队首进程,同时也让它执行一个时间片。这样就可以保证就绪队列中的所有进程在一给定的时间内获得一时间片的处理机执行时间。换言之,系统能在给定的时间内响应所有用户的请求。四、算法实现(1)创建进程;使用单链表的方法,单链表中的每个结点相当于一个进程。typedef structchar name5;int arrtime;int worktime;DataType;type

4、def struct nodeDataType data;struct node *next;ListNode;进程名:name,到达时间:arrtime,服务时间:worktime。(2)自定义所需进程数目int flag;cin>>flag。(3)创建一个进程单链表,作为进程队列,LinkList head;p=(ListNode*)malloc(sizeof(ListNode);head=p;p->next=NULL;在进程数目之内,手动输入进程,p=(ListNode*)malloc(sizeof(ListNode);。每输入一个进程都插进进程队列,并按arrtime

5、从小到大排序。(4)自定义时间片大小,int RR;cin>>RR。(5)创建执行队列,LinkList H;ListNode *rear;p=(ListNode*)malloc(sizeof(ListNode); p=NULL; H=p。并且定义一个参考变量flag2!=flag。(6)定义时间轴,初始化时间轴和执行队列。H=head->next; head->next=head->next->next; rear=H; rear->next=NULL;rr=RR。(7)当flag2!=0时,分配给执行队列队首一个时间片rr。(8)当rr!=0时;r

6、r=rr-1; time=time+1。进程队列的队首进程是否到达,若到达,将其插入到执行队列的队尾。rear->next=head->next; head->next=head->next->next; rear=rear->next;rear->next=NULL。执行队列不为空时,执行队列的队首进程的worktime=worktime-1,判断是否执行完。执行完,flag2=flag2-1,该进程退出执行队列。(9)执行队列队首是否得到过一个完整的时间片,若有则该进程插入到执行队列的队尾。q=H; H=H->next; rear->n

7、ext=q; rear=rear->next; rear->next=NULL。(10)执行队列不为空时,转到第(7)步。当执行队列和进程队列都为空时,转到第(6)步。当两队列都为空时,所有进程运行完,模拟结束。五、流程图YNYNYY退 出输入进程数输入进程进程是否输入完输入时间片分配给执行队列队首时间片时间片-1时间片+1时间片是否用完是否所有进程都完成将为完成的插入队尾NY结 束将新到进程插入队尾是否完成服务时间-1N开 始是否有新进程到达N六、源程序#include<stdio.h>#include<stdlib.h>#include<iostr

8、eam.h>#include <conio.h> typedef structchar name5;int arrtime;int worktime;DataType;typedef struct nodeDataType data;struct node *next;ListNode; typedef ListNode *LinkList;LinkList head;void create_insert_LinkList(int flag1)/创建进程队列ListNode *p,*p1,*p2;p=(ListNode*)malloc(sizeof(ListNode);hea

9、d=p;p->next=NULL;while(flag1>0)p=(ListNode*)malloc(sizeof(ListNode);/新建结点cout<<"进程名:" cin>>p->; cout<<"到达时间:" cin>>p->data.arrtime; cout<<"运行时间:" cin>>p->data.worktime; cout<<"*"<<endl;p-&

10、gt;next=NULL; p1=head;p2=p1->next;while(p2!=NULL&&p2->data.arrtime<p->data.arrtime)/对新建结点排序(按arrtime从大到小)p1=p2;p2=p2->next;p1->next=p;p->next=p2;flag1=flag1-1;void pcb_LinkList(int flag2)/进行CPU调度 LinkList H;ListNode *rear,*p,*q;int RR,rr,time,m,n;p=(ListNode*)malloc(size

11、of(ListNode);p=NULL;H=p;/创建执行队列cout<<"定义时间片的大小:"cin>>RR; cout<<"*"<<endl;rr=RR;H=head->next; head->next=head->next->next;rear=H; rear->next=NULL;time=H->data.arrtime;while(flag2!=0)n=0; while(rr!=0) rr=rr-1; time=time+1; if(head->next!

12、=NULL)if(head->next->data.arrtime<=time)/检测是否有新的进程到达if(H=NULL)H=head->next; head->next=head->next->next; rear=H; rear->next=NULL;elserear->next=head->next; head->next=head->next->next; rear=rear->next; rear->next=NULL; if(H!=NULL) H->data.worktime=H-&g

13、t;data.worktime-1; m=1;/该进程有被执行 n=n+1;/该进程(队首)在这时间片中所有时间 if(H->data.worktime=0)/该进程服务完,从执行队列中删除 cout<<"在第"<<time-n<<"s"<<endl; cout<<"进程"<<H-><<" 运行"<<n<<"s"<<" 状态:C &quo

14、t;<<"完成时间:"<<time<<endl;cout<<endl;H=H->next;flag2=flag2-1;m=0;/新的队首未被执行; n=0; if(m=1)cout<<"在第"<<time-n<<"s"<<endl;cout<<"进程"<<H-><<" 运行"<<n<<"s"&

15、lt;<" 状态:R "<<endl;cout<<endl;if(H=NULL) if(head->next!=NULL)time=head->next->data.arrtime;elseif(H->next!=NULL&&m=1&&n=RR)/把未完成的进程插入到执行队列的队末q=H;H=H->next;rear->next=q;rear=rear->next;rear->next=NULL;rr=RR;void main()cout<<"

16、 时间片轮转法模拟"<<endl; cout<<endl; int flag;cout<<"输入进程数目:"cin>>flag;cout<<"*"<<endl; create_insert_LinkList(flag); system("cls"); /清屏 pcb_LinkList(flag);cout<<"运行结束"七、运行示例及结果分析八、心得体会九、参考资料- 欢迎下载资料,下面是附带送个人简历资料用不了的话可以自

17、己编辑删除,谢谢!下面黄颜色背景资料下载后可以编辑删除X X X 个 人 简 历个人资料姓 名:xxxx婚姻状况:未婚照片出 生:1987-06-24政治面貌:团员性 别:男民 族:汉学 位:本科移动 :专 业:英语电子邮件:地 址: 教育背景吉林工程技术师范学院-外国语言文学系主修课程本科阶段主修大学英语精读,大学英语泛读,英语口语,英语听力,英语写作,英语口译,翻译学,词汇学,语法学,英美概况,英国文学,美国文学,语言学,日语,中外名胜。特长及兴趣爱好除了有专业的英语方面知识外,我在校生活部工作一年, 在系宣传部和秘书处各工作一年。为全面发展,大三上学期,我加入系文学社,参于了我系心韵杂志

18、的创刊和编辑工作。在这些活动中锻炼了我的领导和团队协作能力,学会了更好的与人相处,这些在我以后的工作中一定会有很大的帮助。计算机能力能熟悉使用Office工具以及Photoshop、Flash等软件。获国家计算机二级等级资格证书。外语水平通过英语专业四级考试,能熟练进行听说读写译。奖励情况:2007-2008 优秀学生会干部 200807 师生合唱比赛一等奖普通话水平测试等级证书英语专业四级证书自我评价X X X 个 人 简 历个人资料姓 名: 婚姻状况:未婚出 生: 政治面貌:团员性 别: 民 族:汉学 位: 移动 :专 业: 电子邮件:地 址:教育背景2006.9-2010.6吉林工程技术

19、师范学院-外国语言文学系主修课程大学英语精读,大学英语泛读,英语口语,英语听力,英语写作,英语口译,翻译学,词汇学,语法学,英美概况,英国文学,美国文学,语言学,日语,中外名胜。能力及特长这要写你明你有什么样的能力及经验,最重要就是告诉用人单位,你会做什么?计算机能力能熟悉使用Office工具以及Photoshop、Flash等软件。获国家计算机二级等级资格证书。外语水平通过英语专业四级考试,能熟练进行听说读写译。奖励情况2007-2008 优秀学生会干部 200807 师生合唱比赛一等奖普通话水平测试等级证书英语专业四级证书实习经验(或实践经验或兼职经验)这里写上你的实习经验或实践经验或兼职

20、经验等信息吧,标题自己起一个贴切的。自我评价本人性格开朗、稳重、有活力,待人热情、真诚。工作认真负责,积极主动,能吃苦耐劳。有较强的组织能力、实际动手能力和团体协作精神,能迅速的适应各种环境,并融入其中。我不是最优秀的,但我是最用功的;我不是太显眼,但我很踏实;希望我的努力可以让您满意。这里不要照抄哦,不会写自我评价的朋友,你可以访问 这里有很多自我评价范文可以参考。(按住键盘的CTRL键,再用鼠标点链接就可以直接打开网站,不用复制到浏览器的。)本人性格热情开朗、待人真诚,善于沟通,应变能力较强。懂得珍惜拥有的一切。B内张型鼓式制动器C湿式多片制动器D浮钳盘式制动器289.零配件市场上的主要价

21、格形式(ABC)A厂家指导价B市场零售价C配件厂价格290.油漆出险桔皮皱,即表面不光滑,可能的原因( D )A涂装间通风国强B稀释剂干燥速度过快C稀释剂干燥速度过快慢D一次喷涂过厚291.汽车的动力性能包括(ACD)A最高车速B平均车速C加速时间D能爬上的最大坡度292.车险定损核价运作规范规定事故车辆修复费用包括(ABCD)A事故损失部分维修工时B事故损失部分需更换的配件费C残值D税费293.车辆全损或推定全损案件, 在确定损失前,应该了解(ABD)汽车信息A了解车辆购置时间、价格B取得车辆的购置发票或其他证明C了解车辆的购置渠道D了解车辆的所有人294.机动车电器故障引起火灾的主要原因有

22、(BC)A电瓶故障B线路故障C电器元件故障D日光聚集295. 车险定损核价运作规范规定对残值处理的原则(AB)BA所有残值归被保险人所有,保险人在维修费中扣除B事故车辆更换的配件由保险人收回后不计入残值之内C所有配件必须折旧卖给被保险人D所有配件必须折旧卖给维修厂或废品收购站296.从火灾原因调查的角度,汽车火灾的原因分(ABCD)A机械故障类(如发动机过热)B电器类(线路老化短路)C人为类(纵火)D交通事故类(碰撞、倾覆、货物引起)297.对汽车整车进行测量非常重要的平面(D)?A基本面B中心面C零平面D下平面298.机械配件的基本维修原则(ABCD)A超过配合尺寸,通过加工也无法得到装配技

23、术要求B变形通过矫正无法保证使用性能和安全技术要求C断裂无法焊接或焊接后无法保证使用性能和安全技术要求D转向等涉及到安全的所有发生变形的配件299.被保险人可依据哪些有效证明作为领取赔款的凭证(A)ACA居民身份证B有效驾驶本C户口薄300.驾驶员未取得驾驶资格包括哪些情况(ABCD)ABCA无驾驶证B驾驶车辆与准驾车型不符C公安交关部门规定的其他属于非有效驾驶的情况D驾驶证丢失301.车险网上理赔系统录入的要求有哪些(ABCDE)A查勘时间照片最佳大小为60-80kB扫描仪设置方档最佳大小100-150kC索赔申请书应当由当事驾驶员在第一时间亲笔填写D车损照片的拍摄必须符合车险定损核价运作规

24、范的相关规定E驾驶证,行驶证应尽量在查勘环节第一时间采取原件拍摄 判断题 1. 185/65R14,其中R代表Radial:表达轮胎纹络为放射状的又称“子午线”() 2. 检查安全气囊系统故障时,必须先拆下蓄电池负极,再使用仪器读出故障代码。(×) 3. 路面附着性能越好,汽车抗热衰退性能越好。() 4. 废气再循环的作用是减少HC、CO和NOX的排放量(×) 5. 机动车辆保险条款(2005版)中,保险车辆发生事故,应当由第三者负责赔偿但确实无法找到第三者的,赔偿处理时实行30%绝对免赔率(×) 6. 受害人无固定收入的,按照其最近二年的平均收入计算;(

25、5;) 7. 营运机动车在规定检验期限内经安全技术检验合格的,不再重复进行安全技术检验() 8. 本公司与被保险人就赔款金额协商确定并赔偿结案后,受害人又就同一事故向被保险人提出赔偿请求的,本公司可二次追加赔付(×) 9. 维修车辆竣工结帐后,驾驶员驾驶车辆从修理厂开出时与一辆车辆相撞,因碰撞地点还在修理厂内,我司不负赔偿责任.(×) 10. 机动车辆保险条款(2005版)基本险有四个独立险种(×)11用于支付公安交管部门逃逸案件处理费用的特殊案件可视金额参照本机构核赔权限进行审核()12.四冲程发动机的做工冲程中,曲轴带动活塞从上支点向下至点运动,此时进气门关闭

26、()13.当汽车在一般条件下行使时,应选用双速主减速器中的高速档,而在行使条件较差时,则采用低速档()14.评价汽车制动性的指标制动效能、制动效能的恒定值、制动时的方向稳定性(×)15.热塑性材料件损伤以修复为主,热固性塑性件损伤需更换()16.投保人对投保标的具有保险利益,不具有保险利益的,保险合同无效()17. 道路交通安全法实施条例有关高速公路应当标明车道行使速度,最高120公里小时,最低70公里小时(×)18.暴风指风速米/以上的大风()19.刚性万向节是靠零件的铰链式联结来传递动力的,而挠性万向节则是靠弹性零件来传递动力的()20.查勘案件查勘完毕后,只能点击发送按钮发送案件,不能通过 点击申请核价或申请核损按钮直接到达目的平台(×)21.双片离合器中间压盘的前

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论