scheduler BWPm = { states = { RUNNING running : process; READY ready : select queue; READY yield : process; BLOCKED period_yield : queue; BLOCKED blocked : queue; TERMINATED terminated; } modules {CommonRTM (running, ready, yield, blocked, terminated), GTimerRTM (running, ready, period_yield), Edf2RTM(), AbsoluteDeadline(), Bwp (period_yield) } process { Bwp.end_period reads GTimerRTM.end_period, Edf2RTM.absolute_deadline reads AbsoluteDeadline.absolute_deadline, Edf2RTM.wcet reads GTimerRTM.wcet, Edf2RTM.period reads GTimerRTM.period, AbsoluteDeadline.end_period reads GTimerRTM.end_period } ordering_criteria {Bwp,Edf2RTM} admission {GTimerRTM, Bwp, Edf2RTM, AbsoluteDeadline} handler { unblock.timer.end_period : AbsoluteDeadline, Bwp, GTimerRTM; } interface { attach : AbsoluteDeadline, GTimerRTM, Bwp, CommonRTM; } }