时间片轮转调度和实时抢占调度的理解

ucos2只支持实时抢占,据说ucos3同时支持时间片轮询调度。

在没有使用操作系统的时候:

a,一般是把任务放在while循环里面循环执行,通过加一个延时函数来控制时间间隔

b,高级一点就是为每个任务规定一个执行周期,在while循环里面检查执行周期是否已经到来,如果到了就执行,如果没到就继续等待,好处是编程简单,每个任务基本可以保证按照规定的周期执行,坏处是一旦某个任务执行超时了,后面的任务执行也要跟着推迟到下一个周期。

在使用了操作系统以后:

c,ucos这种抢占式的调度,他允许高优先级的任务随时抢占低优先级的任务,这样就可以使得关键的代码可以按时得到执行,带来的问题就是需要引入操作系统,资源的消耗调试的难度都有所增加

d,时间片轮转调度,这种是为每个任务分配一个时间片,容易混淆b方法,如果时间片没用完任务就执行完了,那就立即切换到下一个任务,不用等待,如果时间片用完了任务还没执行完,那就会被就绪表中最高优先级的任务抢占,自己挂起到末端去排队等下一次调度。这种方式无法保障系统的实时性,因为任务的执行周期不一定,高优先级的任务无法随时抢占低优先级任务,需要等低优先级任务时间片用完了才能抢占。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值