Response Time Analysis
RealTimeScheduling supports calculating response time and tardiness bounds for task systems under global earliest deadline first (GEDF) scheduling. Multiple algorithms are supported, as shown below.
julia> T = TaskSystem([PeriodicImplicitTask(3, 2), PeriodicImplicitTask(3, 2), PeriodicImplicitTask(6, 4)]);
julia> tardiness_gedf(T, 2, GEDFDeviAnderson)
3-element Vector{Float64}:
3.0
3.0
5.0
julia> tardiness_gedf(T, 2, GEDFCompliantVector)
3-element Vector{Float64}:
3.0
3.0
4.0
Intuitively, increasing the number of processors results in lower response time bounds for the same task system.
julia> tardiness_gedf(T, 3, GEDFDeviAnderson)
3-element Vector{Float64}:
2.6666666666666665
2.6666666666666665
4.666666666666667
julia> tardiness_gedf(T, 3, GEDFCompliantVector)
3-element Vector{Float64}:
2.6666666666666665
2.6666666666666665
4.0
RealTimeScheduling.tardiness_gedf
— Functiontardiness_gedf(T, m, ::GEDFDeviAndersonAlg)
Compute tardiness bounds for each task in the TaskSystem
T
under GEDF scheduling on m
processors, according to the GEDFDeviAnderson
algorithm.
tardiness_gedf(T, m, ::GEDFCompliantVectorAlg)
Compute tardiness bounds for each task in the TaskSystem
T
under GEDF scheduling on m
processors, according to the GEDFCompliantVector
algorithm.
RealTimeScheduling.response_time_gedf
— Functionresponse_time_gedf(T, m, alg)
Compute response time bounds for each task in the TaskSystem
T
under GEDF scheduling on m
processors, according to the specified algorithm.
RealTimeScheduling.GEDFDeviAnderson
— ConstantGEDFDeviAnderson
Indicate that a response time bound should be computed according to Devi and Anderson, "Tardiness Bounds under Global EDF Scheduling on a Multiprocessor." DOI: 10.1007/s11241-007-9042-1
RealTimeScheduling.GEDFCompliantVector
— ConstantGEDFCompliantVector
Indicate that a response time bound should be computed according to Erickson, "Managing Tardiness Bounds and Overload in Soft Real-Time Systems." DOI: 10.17615/fvp3-q039