收藏 分享(赏)

最早截止时间优先算法.doc

上传人:hskm5268 文档编号:6546042 上传时间:2019-04-16 格式:DOC 页数:4 大小:98.50KB
下载 相关 举报
最早截止时间优先算法.doc_第1页
第1页 / 共4页
最早截止时间优先算法.doc_第2页
第2页 / 共4页
最早截止时间优先算法.doc_第3页
第3页 / 共4页
最早截止时间优先算法.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、实时调度最早截止时间优先算法一、 设计思路最早截止时间算法是根据任务的开始截止时间来确定任务的优先级,截止时间愈早,其优先级愈高,我以书上的抢占式调度方式用于周期实时任务的例子来编写程序,在该例中有两个周期性任务,我设计的可以输入这两个的周期时间和服务时间,然后比较它们的截止时间,哪个截止时间早就谁先执行,在单处理机情况下,必须满足CiPiint main()int A,B; /标记进程 A,进程 B 的到达时间int cycA,cycB,serveA,serveB; /进程的周期时间和服务时间float m;int i,j,a=0,b=0,ka=0,kb=0; /ka,kb 为开关,i,j,

2、a,b 为进程下标int numa=0,numb=0; /服务累计时间printf(“输入进程 A 的周期时间,服务时间: “);scanf(“%d%d“,printf(“输入进程 B 的周期时间,服务时间: “);scanf(“%d%d“,m=(float)serveA/cycA+(float)serveB/cycB;for(int T=0;T1e-6)printf(“超出 CPU 的处理能力!n“);return 0;if(numa=serveA) /进程 A 完成numa=serveA+1;printf(“当 T=%d 时“,T);printf(“进程 A%d 结束 n“,a);if(n

3、umbA+cycA) /若进程 B 最早截止时间大于进程 A 的printf(“进程 A%d 执行。 n“,a);ka=1;kb=0;else /若进程 B 最早截止时间小于等于进程 A 的printf(“进程 B%d 继续执行。n“,b);else /进程 B 完成printf(“进程 A%d 执行。 n“,a);ka=1;if(T%cycA!=0printf(“当 T=%d 时“,T);printf(“进程 B%d 产生,“,+b); /不可能与进程 B 竞争处理器numb=0;if(numa=A+cycA) /进程 A 的最早截止时间不小于 Bprintf(“进程 A%d 继续执行。 n“,a);elseprintf(“进程 B%d 执行。n“,b);kb=1;ka=0;else /进程 A 完成printf(“进程 B%d 执行。n“,b);kb=1;if(ka)numa+;if(kb)numb+;return 1;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > 数据结构与算法

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报