本文主要是介绍RMS调度详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.RMS调度简介
任务按单调速率优先级分配(RMPA)的调度算法,称为单调速率调度(RMS)。RMPA是指任务的优先级按任务周期T来分配。它根据任务的执行周期的长短来决定调度优先级,那些具有小的执行周期的任务具有较高的优先级,周期长的任务优先级低。
2.RMS调度实现介绍
SylixOS目前关于RMS调度分为创建、删除、调度三个部分组成。创建和删除就不予介绍。重点关注下调度算法的实现。调度有两个去完成,一是计算调度前用掉的时间etime,二是睡眠剩余调度的时间temp,如程序清单 2‑1所示。
程序清单2-1 RMS实现源码
/********************************************************************************************
** 函数名称: sched_rms_period
** 功能描述: RMS 调度器
** 输 入 : prms RMS 调度器
** period RMS 周期
** 输 出 : 0 表示正确
** error == EINTR 表示被信号激活.
** 全局变量:
** 调用模块: API 函数
********************************************************************************************/
LW_API
int sched_rms_period (sched_rms_t *prms, const struct timespec *period)
{struct timespec temp;struct timespec etime;if (!prms || !peri
这篇关于RMS调度详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!