> 文章列表 > 操作系统基础知识介绍之PFP调度协议

操作系统基础知识介绍之PFP调度协议

操作系统基础知识介绍之PFP调度协议

一、算法思想

PFP算法是一种在RTOS中实现抢占式固定优先级调度的方法。它的基本思想是:

对于每个任务,根据其最坏情况执行时间截止时间,计算其优先级。
在运行时,根据任务的到达时间和优先级,将任务放入一个就绪队列。
每当有一个任务完成或者有一个新的任务到达时,从就绪队列中选择优先级最高的任务执行。
如果有一个新的任务到达,且其优先级高于当前执行的任务,则发生抢占,即暂停当前任务,执行新的任务。

二、优先级分配

对于每个任务,根据其最坏情况执行时间和截止时间,计算其优先级。一般来说,截止时间越短,最坏情况执行时间越长,优先级越高。
这种优先级分配策略称为截止时间单调优先级分配(DMPA),它是一种最优的策略,即如果有一组任务可以被另一种策略调度,那么它也可以被DMPA调度。
DMPA适用于周期性或偶发性的任务,且满足以下条件:所有任务的截止时间小于等于其最小到达间隔(或周期),所有任务的最坏情况执行时间小于等于其截止时间,所有任务是独立的,不会相互阻塞(例如访问互斥的共享资源),没有任务主动挂起自己,存在一个临界时刻,所有任务同时准备执行,调度开销(从一个任务切换到另一个任务)为零,所有任务的释放抖动(从任务到达到准备执行的时间)为零。
如果放松某些条件,例如允许截止时间大于周期,或者允许有释放抖动,那么可以使用其他的算法来找到最优的优先级分配,例如Audsley的最优优先级分配算法。

三、优缺点

PFP算法的优点是:
它可以保证任务的截止时间满足,即如果一组任务是可调度的,那么它一定可以被PFP算法调度。
它可以简单地计算任务的优先级,只需要知道任务的最坏情况执行时间和截止时间。
它可以适用于不同的实时系统模型,如周期性任务模型、偶发任务模型和混合任务模型。
它可以利用分布式计算框架,如Apache Hadoop和Spark,来提高数据挖掘的效率和可扩展性。

PFP算法的缺点是:
它需要事先知道任务的最坏情况执行时间和截止时间,这些参数可能不容易获得或者不准确。
它不能适应任务的动态变化,例如任务的到达时间、执行时间或者截止时间发生变化。
它可能导致优先级反转的问题,即低优先级的任务阻塞了高优先级的任务,从而降低了系统的性能。
它可能导致优先级继承的问题,即高优先级的任务继承了低优先级的任务的资源,从而增加了系统的开销。