时间片轮转课程设计分析解析_第1页
时间片轮转课程设计分析解析_第2页
时间片轮转课程设计分析解析_第3页
时间片轮转课程设计分析解析_第4页
时间片轮转课程设计分析解析_第5页
免费预览已结束,剩余15页可下载查看

付费下载

下载本文档

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

文档简介

1、武汉理工大学华夏学院课程设计报告书课程名称:操作系统原理题目:时间片轮转调度算法系名:信息工程系专业班级:姓名:学号:指导教师:司晓梅2015年6月26日武汉理工大学华夏学院信息工程系课程设计任务书课程名称:操作系统原理课程设计指导教师:司晓梅班级名称:计算机1131-2开课系、教研室:自动化与计算机一、课程设计目的与任务操作系统课程设计是操作系统原理课程的后续实践课程,旨在通过一周的实践训练,加深学生对理论课程中操作系统概念,原理和方法的理解,加强学生综合运用操作系统原理、Linux系统、C语言程序设计技术进行实际问题处理的能力,进一步提高学生进行分析问题和解决问题的能力,包含系统分析、系统

2、设计、系统实现和系统测试的能力。学生将在指导老师的指导下,完成从需求分析,系统设计,编码到测试的全过程。二、课程设计的内容与基本要求1、课程设计题目时间片轮转进程调度模拟算法的实现2、课程设计内容用C/C+语言实现时间片轮转的进程调度模拟算法。要求:1 .至少要有5个以上进程2 .进程被调度占有CPU后,打印出该进程正在运行的相关信息提示:时间片轮转调度算法中,进程调度程序总是选择就绪队列中的第一个进程,也就是说按照先来先服务原则调度,但一旦进程占用处理机则仅使用一个时间片。在使用完一个时间片后,进程还没有完成其运行,它必须释放出处理机给下一个就绪的进程,而被抢占的进程返回到就绪队列的末尾重新

3、排队等待再次运行。1)进程运行时,只打印出相关提示信息,同时将它已经运行的时间片加1就可以了。2)为进程设计出PCB结构。PCB结构所包含的内容,有进程名、进程所需运行时间、已运行时间和进程的状态以及指针的信息等。3、设计报告撰写格式要求:1设计题目与要求2设计思想3系统结构4数据结构的说明和模块的算法流程图5使用说明书(即用户手册):内容包含如何登录、退出、读、写等操作说明6运行结果和结果分析(其中包括实验的检查结果、程序的运行情况)7自我评价与总结8附录:程序清单,注意加注释(包括关键字、方法、变量等),在每个模块前加注释;三、课程设计步骤及时间进度和场地安排本课程设计将安排在第17周,现

4、代教育技术中心。具体安排如下:时间设计内容下发任务书,学生查阅资料第二天系统设计和原型开发第三天-第四天系统功能实现第五天系统调试、测试、打包和验收课程设计集中时间安排:周次、星期一星期二星期三星期四星期五第17周第2-3节第2-3节第2-3节第2-3节第3-6节地点现教现教现教现教现教四、课程设计考核及评分标准课程设计考核将综合考虑学生的系统设计方案、运行结果、课程设计报告书的质量、态度、考勤、答辩情况等各因素。具体评分标准如下:(1)设计方案止确,具有可行性、创新性;30分(2)系统开发效果较好;20分(3)设计报告规范、课程设计报告质量高、参考文献充分20分(4)课程设计答辩时,问题回答

5、正确;20分(5)态度认真、刻苦钻研、遵守纪律;10分按上述五项分别记分后求和,总分按五级制记载最后成绩。优秀(10090分),良好(8089分),中等(7079分),及格(6069分),不及格(059分)1、 实验概叙1.1 实验目的弄明白时间片轮转的工作流程和原理,通过实验让自己更明白切身体会的深!时间片轮转主要是解决处理机调度进程时的优化!正确理解提高处理机的利用率及改善系统性能在很大程度上取决于处理机调度性能的好坏,在操作系统中调度的实质是一种资源分配,调度算法是指根据系统的资源分配策略规定的资源分配算法,对不同的系统和系统目标,应采用不的调度算法。在多道程序或多任务系统中,系统同时处

6、于就绪状态的进程有若干个。也就是说能运行的进程数远远大于处理机个数。为了使系统中的各进程能有条不紊地运行,必须选择某种调度策略,以选择一进程占用处理机。通过本实验,加深对处理机调度的理解。弄明白时间片轮转的工作流程和原理,通过实验让自己更明白切身体会的深!1.2 实验原理基于时间片轮转调度算法思想用c语言编程实现1.3 实验环境(使用的软件)VisualC+6.02、实验思想及内容2.1 设计思想按照时间片工作原理:时间片轮转的原则是系统将所有的就绪进程按照先来先服务的原则排成一个队列,每次调度时,把CPg配对手进程,并令其执行一个时间片,当执行完时,有一个计时器发出时钟中断请求,该进程停止,

7、并被送到就绪队列的末尾,然后再把处理机分配就绪队列的队列进程,同时也让它执行一个时间片!2.2 实验原理基于时间片轮转调度算法思想用c语言编程实现2.3 系统结构设计时间片大小固定,由用户输入。进程个数由用户输入。每个进程用一个PCB表示。PCB包括进程名,到达时间,运行时间,剩余时间,进程状态,链接指针。其中,进程名,到达时间和运行时间由用户输入,剩余时间的初值等于运行时间。为简单起见,进程状态设为三种:就绪,运行和完成。链接指针指向下一个进程的PCB按照进程到达的先后顺序排成一个队列。设置一个队头指针指向队列中第一个进程,并设置一个队尾指针指向队列中的最后一个进程;执行调度时,先选择队首的

8、第一个进程运行。另外设置一个指向当前运行进程的指针;由于本实验是模拟实验,所以对选中进程并不实际启动运行,而只是执行:被选中进程的状态置为运行态;被选中进程的剩余时间减去时间片大小;按照队列的顺序依次输出每个进程的进程名,到达时间,运行时间,剩余时间,进程状态。用这三个操作来模拟进程的一次运行;进程运行一次后,以后的调度则将当前指针依次下移一个位置,指向下一个进程,即调整当前运行指针,以指示应运行进程。同时还应判断该进程的剩余时间是否为0。如果不为0,则等待下一轮的运行;如果该进程的剩余时间为0,则将该进程的状态置为完成态,并退出队列;若处于就绪态的进程不为空,则重复第d步和第e步直到所有进程

9、都运行完为止。2.4 算法流程图初始化PCB,输入进程信各进程按优先数从高到低排列就绪队列为结束空?就绪队列首进程投入运行时间片到,运行进程已占用CUP时间+1运行进程已占用CPU时间达到所需运行时间使运行进程优先数-1,把运行进程插入优先队列。2.5 实验过程(实验步骤、记录、数据、分析)测试用例1:屏幕显示:Pleaseinputtheprocessname,arrivetimeandruntime输入:1 21<enter>2 31<enter>3 22<enter>4 12<enter>5 11<enter>测试数据2:1 1

10、2<enter>2 32<enter>3 12<enter>4 31<enter>5 11<enter>测试数据3:1 11<enter>2 22<enter>3 21<enter>4 12<enter>5 11<enter>3、结论(结果)3.1 测试数据1的运行结果(截图):Idine*rrivcruti02211processnane,ai'Piuetineandruntxre:21leflseinputtheslice:1211the12iseinputexa

11、nplt-112frhppt*ncf>«f5inumh*F5PAS*iunuti222211runninq2ready1ready1readyc:0ocn比口七互uidSeltinsVkdiBini5tratoij§iVDebiiI.e口KMMMMWKKMMMMKMKMMM:MMMMKMMfiLdterunningfeadyPeadyreadyreadynameaviiuerunpeststate4121rea.dy3221running1211ready2311readyanerriuerunreststate1ready1ready0running1ready3.

12、2 测试数据2的运行结果(截图):c*C:VDocTUBentsand5©1>“1185人小:113,£了81.。1*桌面1)1>1181.。8Pleaseinputthepvore««ntmhpv:?>Pleaseinputtheprocessnane.arrivetineandruntine:Forexample:121112232312431511Pleaseinputtheslice:1XMM*MXMMXMXMXMXMXMXM武MMMMMM*MMM*namearriverunreststate5110running3122rea

13、dy1122ready4311t*eadp2322readyx“><namearriverunreststate3121running1122ready4311i*oady2322readyKKKKK人KKKKK人人人K人JI人KK只人KKKKKKK人人KK人KKK,namearriverunreststate3121ready1121running4311ready2322readynamearriveruni*eststate3.3测试数据3的运行结果(截图):cMC:kDocwtentsandSettiagsmistrator1-exc*也.Pleaseinputthepro

14、cessnunber:5Pleaseinputtheprocessnanearrivetineandruntine:Forexample:121ill222321412511Pleaseinputtheslice:1nanearriuerunreststate511。>*unning4122ready1111rftarty3211ready2222readynanearriuerunreststate4121running1111ready3211ready2222readynanearriverunreststate4121ready1110running3211ready2222re

15、adyMMXMMKMMMMMMMMMMMMMMMMMMMXMMXMMMMMMMMXnanearriuerunreststate4121ready4、源程序代码:#include"stdio.h"#include"stdlib.h"structstud(intname;intarrive;intrun;intrest;char*state;structstud*next;/*pcb结构体*/structstud*create()(inta,i;structstud*head,*rear,*p,*q,*t;/*定义各个指针*/head=rear=NULL;p

16、rintf("Pleaseinputtheprocessnumber:");scanf("%d",&a);printf("nPleaseinputtheprocessname,arrivetimeandruntime:nForexample:121n");for(i=0;i<a;i+)p=(structstud*)malloc(sizeof(structstud);scanf("%d%d%d&p->name,&p->arrive,&p->run);p->rest=

17、p->run;p->state="ready"if(rear=NULL)/*只有一个进程*/head=p;p->next=NULL;rear=p;elset=NULL;q=head;while(q&&q->arrive<p->arrive)t=q;q=q->next;if(q=head)/*指向头进程的下一个进程*/p->next=head;head=p;elseif(t=rear)/*运行到最后一个进程*/rear->next=p;p->next=NULL;rear=p;elset->nex

18、t=p;p->next=q;returnhead;voidoutput(structstud*head)structstud*p,*t,*r;intslice;printf("Pleaseinputtheslice:");scanf("%d",&slice);while(head!=NULL)(r=p=head;while(p!=NULL)t=head;p->rest=p->rest-slice;/*剩余时间减去时间片*/p->state="running"if(p->rest<0)/*剩余

19、的时间用完了*/p->rest=0;printf(printf("n*nametarrivetruntresttstaten"*n"););while(t!=NULL)printf("%dt%dt%dt%dt%sn",t->name,t->arrive,t->run,t->rest,t->state);t=t->next;if(p->rest=0)/*判断是否删除结点*/if(p=head)head=p->next;free(p);p=head;/*删除头结点*/elser->next

20、=p->next;p=r->next;r=p;elser=p;p->state="ready"/*如果不删除头结点指针指向下一个,状态变为准备*/p=p->next;voidmain()structstud*head;head=create();output(head);5、小结5.1 实验中产生的错误及原因分析:5.1.1 程序运行不下去:错误分析:链表初始化排序过程中:指针p=Null时,不能执行q->arrive等命令;错误解决方法:将while(q->arrive<p->arrive&&q)t=q;q=q->next;改为:while(q&&q->ar

温馨提示

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

评论

0/150

提交评论