Job-Class-Level Scheduling
The module RealTimeScheduling.Papers.JobClassLevelScheduling implements the scheduler and schedulability test from the paper "Toward Practical Weakly Hard Real-Time Systems: A Job-Class-Level Scheduling Approach" by Choi, Kim, and Zhu. DOI: 10.1109/JIOT.2021.3058215. The scheduler from this paper divides jobs of each task into job-classes on the basis of the length of the most recent sequence of consecutive deadline hits, and assigns each job-class of each task a fixed priority. This enables the scheduling of weakly hard task systems that are infeasible with any task-level fixed priority scheduler.
RealTimeScheduling.Papers.JobClassLevelScheduling.schedule_jcl — Functionschedule_jcl(T, time, prio)Simulate a job-class-level (JCL) schedule of task system T on 1 processor for the specified time. Job-class priorities are given by prio.
See also schedule_global for more general global scheduling.
RealTimeScheduling.Papers.JobClassLevelScheduling.miss_threshold — Functionmiss_threshold(c::MeetAny)Compute the miss threshold $w_i$ for the given MeetAny constraint.
miss_threshold(τ::PeriodicWeaklyHardTask{<:Real, MeetAny})Compute the miss threshold $w_i$ for the given weakly hard task.
RealTimeScheduling.Papers.JobClassLevelScheduling.low_index_first — Functionlow_index_first(T::AbstractRealTimeTaskSystem)Compute priorities for each job-class of each task in T according to the low-index job-class first with miss thresholds (LIF-w) heuristic.
RealTimeScheduling.Papers.JobClassLevelScheduling.low_index_first_hold — Functionlow_index_first_hold(T::AbstractRealTimeTaskSystem)Compute priorities for each job-class of each task in T according to the low-index job-class first with priority holding mechanism (LIF-h) heuristic.
RealTimeScheduling.Papers.JobClassLevelScheduling.wcrt_jcl — Functionwcrt_jcl(T, prio)Compute worst-case response times (WCRTs) for each job-class in task system T, with the given job-class priorities prio.
RealTimeScheduling.Papers.JobClassLevelScheduling.schedulable_jcl — Functionschedulable_jcl(T, prio)Check if the AbstractRealTimeTaskSystem T is schedulable by job-class-level scheduling with the job-class priorities given by prio.