scheduler DPHEDF = { 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), AbsoluteDeadline(), Edf2RTM (), DualPrioHigh(period_yield, blocked)} process { Edf2RTM.wcet reads DualPrioHigh.wcet, Edf2RTM.period reads DualPrioHigh.period, Edf2RTM.absolute_deadline reads AbsoluteDeadline.absolute_deadline, AbsoluteDeadline.end_period reads DualPrioHigh.end_period, DualPrioHigh.deadline reads AbsoluteDeadline.deadline } ordering_criteria {Edf2RTM} admission {AbsoluteDeadline, Edf2RTM} handler { unblock.timer.end_period : AbsoluteDeadline, DualPrioHigh; } interface { attach : AbsoluteDeadline, DualPrioHigh, CommonRTM; } }