首页 > 编程知识 正文

时间片调度算法用c语言实现,c语言时间片轮转调度代码

时间:2023-05-06 01:24:27 阅读:235086 作者:4934

arrive &&q)

{t=q;

q=q->next;}

改为:while(q&&q->arrivearrive)

{t=q;

q=q->next;}

2、 进程运行时间大于时间片时,程序进入死循环:

当进程所需时间等于时间片时,运行结果正确:

进程运行时间大于时间片时,程序进入死循环:

错误分析:

进程所需剩余时间计算错误;

错误修改:

将while(p!=NULL)

{t=head;

p->rest=p->run-slice;

p->state="running";

修改为:while(p!=NULL)

{t=head;

p->rest=p->rest-slice;

p->state="running";

错误3:

测试数据:

1 2 1

3 1 3

Slice=2

结果为:

即进入死循环。

当进程所需时间小于时间片时,应立即跳出进程就绪对列。

错误修改:

在output()子函数中p->rest=p->rest-slice;

后面加上一个语句:

if(p->rest<0)

p->rest=0;

实验运行结果为:

实验的体会及收获:

通过这次试验,我对处理机的调度算法---基于时间片轮转调度算法思想有了更深的理解;另外使我对链表的知识有了更深的理解,而且锻炼了我的思维能力,使我能更全面地思考问题,以后还需要多做些这方面的练习。

实验还需改进之处:

为考虑进程所需时间小于时间片大小的情况,如:进程运行完一次时间片时间中断后,但下一个进程的提交时间要迟很多,这时候就会浪费很多时间等待,这是该程序还需改进的地方。

另外,本实验中的RR算法的时间片大小固定,所以实际是属于基本轮转法,还有种是时间片长短是变化的,即改进轮转法。在基本轮转法中,时间片大小的设置是关键。时间片设得太短会导致过多的进程切换,降低了CPU效率;而设得太长又可能引起对短的交互请求的响应变差。据悉,通常,时间片的长度为几十毫秒到几百毫秒,而将时间片设为100毫秒通常是一个比较合理的折衷。

指导教师评语及成绩:

评语:

成绩: 指导教师签名:

批阅日期:

实验报告说明

1.实验项目名称:要用最简练的语言反映实验的内容。要求与实验指导书中相一致。

2.实验类型:一般需说明是验证型实验还是设计型实验,是创新型实验还是综合型实验。

3.实验目的与要求:目的要明确,要抓住重点,符合实验指导书中的要求。

4.实验原理:简要说明本实验项目所涉及的理论知识。

5.实验环境:实验用的软硬件环境(配置)。

6.实验方案设计(思路、步骤和方法等):这是实验报告极其重要的内容。概括整个实验过程。

对于操作型实验,要写明依据何种原理、操作方法进行实验,要写明需要经过哪几个步骤来实现其操作。

对于设计型和综合型实验,在上述内容基础上还应该画出流程图、设计思路和设计方法,再配以相应的文字说明。

对于创新型实验,还应注明其创新点、特色。

7.实验过程(实验中涉及的记录、数据、分析):写明具体上述实验方案的具体实施,包括实验过程中的记录、数据和相应的分析。

8.结论(结果):即根据实验过程中所见到的现象和测得的数据,做出结论。

9.小结:对本次实验的心得体会、思考和建议。

10.指导教师评语及成绩:指导教师依据学生的实际报告内容,用简练语言给出本次实验报告的评价和价值。

注意:

· 实验报告将记入实验成绩;

· 每次实验开始时,交上一次的实验报告,否则将扣除此次实验成绩。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。