Abstract 1 Introduction 2 Preliminaries 3 Lower Bound 4 Upper Bound 5 Scheduling Multi-Criticality Semi-Clairvoyant Jobs Optimally 6 Related Work 7 Conclusions References

Semi-Clairvoyant Scheduling for Jobs with Multiple Criticalities

Kunal Agrawal ORCID Washington University in St. Louis, MO, USA    Tung Duc Thai Washington University in St. Louis, MO, USA    Jinhao Zhao ORCID Washington University in St. Louis, MO, USA
Abstract

This paper considers scheduling jobs semi-clairvoyantly in mixed-criticality systems. In the semi-clairvoyant model, unlike the non-clairvoyant model, we know the WCET mode of the job at job arrival. Prior work has only considered this model for dual criticality jobs. We consider this problem for an arbitrary number of criticalities. We prove that there exist semi-clairvoyant schedulers that guarantee schedulability with speedup 2m−12m−1 for systems with m criticality levels. In addition, we prove that this bound is tight by providing a job set construction that requires this speed for any semi-clairvoyant scheduler. Finally we provide a linear programming formulation that optimally schedules the semi-clairvoyant system of jobs. The number of variables and constraints is polynomial in the number of jobs, but exponential in the number of criticalities.

Keywords and phrases:
mixed-criticality, semi-clairvoyance, schedulers, linear programming
Funding:
Kunal Agrawal: NSF CCF-2106699, CCF-2107280, PPoSS-2216971.
Copyright and License:
[Uncaptioned image] © Kunal Agrawal, Tung Duc Thai, and Jinhao Zhao; licensed under Creative Commons License CC-BY 4.0
2012 ACM Subject Classification:
Computer systems organization → Real-time systems
; Software and its engineering → Real-time schedulability ; Computer systems organization → Embedded and cyber-physical systems ; Mathematics of computing → Linear programming ; Theory of computation → Scheduling algorithms
Editor:
Angeliki Kritikakou

1 Introduction

The idea of mixed-criticality(MC) scheduling was introduced several years ago [23] to improve the performance and utilization of systems in the presence of timing unpredictability. While real-time schedulers rely on worst case execution time (WCET) estimates to achieve safety and predictability, these estimates are often extremely pessimistic. Mixed-criticality models allow the specification of multiple WCET parameters, one for each criticality level, which allows a finer granularity of information to be provided to the scheduler.

In this model, each job is assigned a static criticality level, which indicates the importance of the job. In particular, each job Jq has a static criticality level χ⁢(Jq) between 1 and m as well as χ⁢(Jq) WCETs e1⁢(Jq),e2⁢(Jq),…,eχ⁢(Jq)⁢(Jq) such that ex+1⁢(Jq)≥ex⁢(Jq). If any job Jq’s actual work exceeds its (x−1)th WCET estimate ex−1⁢(Jq), but does not exceed its xth criticality WCET estimate ex⁢(Jq), then we say that the job’s runtime mode is ρ⁢(Jq)=x. If the highest runtime mode of any job is x, then the system criticality Φ is said to be x. In this case, jobs with static criticality smaller than x need not execute, but all deadlines for jobs with static criticality x or greater must meet their deadlines.

In the standard mixed-criticality model, the actual execution time of the job is revealed when the job finishes executing – the only way to know if a job will exceed x-th criticality WCET ex⁢(Jq) is to execute it until it has exceeded this quantity or completed; in other words, the job’s execution criticality is revealed as the job executes. More recently, researchers have considered a slightly different model, called semi-clairvoyant mixed-criticality model [2] . In this model, the job’s runtime mode ρ⁢(Jq) is revealed on arrival. This definition makes sense if the execution time depends on input parameters which may be known at arrival or if the job has several possible implementations one of which is chosen at arrival.

Agrawal et al [2] introduced this model and primarily considered it for 2 criticality levels. They showed a tight speedup bound of 3/2. They also provided a linear programming based algorithm to check for semi-clairvoyant schedulability and show that this algorithm is optimal – if any semi-clairvoyant scheduler guarantees schedulability to a system of jobs, then so can this scheduler. Semi-clairvoyance and its variants have since been considered extensively [10] in the literature. However, theoretical work on semi-clairvoyance seems restricted to 2 criticality levels. In this paper, we completely generalize these results to more than two criticality levels.

  1. 1.

    In Section 3, we show that given jobs with m distinct criticalities, no semi-clairvoyant scheduler can guarantee a speedup of less than (2m−1)/2m−1 – this reduces to 3/2 for two criticality levels.

  2. 2.

    In Section 4, we show that there exist semi-clairvoyant schedulers which can achieve this speedup bound – in other words, the speedup bound of (2m−1)/2m−1 is tight.

  3. 3.

    In Section 5, we provide linear programming formulation which allows us to check the schedulability of semi-clairvoyant job systems exactly. It is important to note that this LP-based scheduling algorithm is an optimal semi-clairvoyant algorithm (not just speedup optimal). In other words, given system of jobs, if any semi-clairvoyant scheduler can schedule this system, then this LP-based algorithm can also schedule it. If it does not find a solution, then we know that the system is not schedulable.

These results starkly indicate the advantage of semi-clairvoyance in mixed-criticality scheduling over the traditional model of non-clairvoyance. There are no tight speedup bounds known for non-clairvoyant systems; and all known bounds scale approximately linearly or slightly sublinearly with the number of criticality levels. On the other hand, semi-clairvoyant systems can be optimally scheduled and require speedup of less than 2 for arbitrary criticality levels.

2 Preliminaries

Mixed-Criticality Jobs.

A problem instance Δ consists of n jobs where every Jq∈Δ has the following parameters: (1) χ⁢(Jq)∈{1,2⁢…,m} denotes the static criticality or importance of the job. (2) a⁢(Jq) denotes the arrival time of the job. (3) d⁢(Jq) denotes the deadline of the job. (4) [e1⁢(Jq),e2⁢(Jq),…,eχ⁢(Jq)⁢(Jq)] denotes the worst case execution times (WCETs) of the job for the different modes.111We use χ⁢(Jq) and χq interchangeably as appropriate – similarly for other parameters. Each job Jq in Δ is released at time a⁢(Jq), has deadline d⁢(Jq) and executes for some duration γ⁢(Jq). If the ex−1⁢(Jq)<γ⁢(Jq)≤ex⁢(Jq), then the runtime mode of Jq is ρ⁢(Jq)=x. We say the system criticality is the highest runtime mode of any job.

Correctness criteria.

A scheduling algorithm is said to schedule Δ correctly iff the following condition is true. All jobs with static criticality at or above the highest system criticality ever reached must meet their deadlines. In particular, if the system criticality Φ is x at some time, but is never x+1, then all jobs with static criticality χq≥x must meet their deadlines. For instance, if no jobs exceed their e1⁢(Jq), then all jobs must meet their deadlines. If some job Jq exceeds ex−1⁢(Jq)<γ⁢(Jq)≤ex⁢(Jq) and no job has γ⁢(Jq)>ex⁢(Jq), then all jobs with (static) criticality x or above must meet their deadlines, but no guarantees are needed for jobs with static criticality smaller than x.

Clairvoyant Schedulability.

Clairvoyant Scheduler is an idealization in MC system that it can know all the exact execution time γ before the arrival of any jobs. A clairvoyant scheduler can ignore all jobs with static criticality lower than j (where j is the highest execution criticality of any job) and run all other jobs using EDF. As a well-known result in EDF, a job set is schedulable iff for all intervals [ti,tj], the total work of jobs with arrival time ≥ti and deadline ≤tj is at most tj−ti. For mixed criticality systems, this means that for all criticality levels x and all intervals [ti,tj], the following holds: Say X is the set of jobs with criticality level at least x with arrival time ≥ti and deadline ≤tj. The sum of ex⁢(Jq) for all Jq∈X is at most tj−ti.

Clairvoyant schedulers are generally used to characterize the performance of other schedulers. In particular, speedup factor is the typical metric that is used to compare different MC scheduling algorithms. Formally, an algorithm A has speedup factor f, if, given any instance that is schedulable on a unit-speed processor by optimal clairvoyant algorithm, A can schedule the same instance on a speed-f processor.

Non-clairvoyant Schedulability.

Most work for scheduling MC systems is done under the non-clairvoyance assumption where γ values for jobs becomes known as the jobs execute. That is, we do not know the exact runtime mode for a job until the job finishes executing. Non-clairvoyant schedulability is known to be NP-complete for both jobs and tasks even for dual criticality systems [1].

Semi-clairvoyant schedulability.

In this paper, we study semi-clairvoyant scheduling for MC systems. A semi-clairvoyant scheduler knows the job’s static parameters (its release time, deadline, static criticality, and worst case execution time for all criticality modes) in advance. However, unlike the clairvoyant scheduler, it does not know the job’s actual execution time and therefore, the job’s or the system’s runtime mode in advance. When a job Jq arrives at time aq, its runtime mode is revealed to the scheduler, but the scheduler still does not know its exact execution time γ. Formally, it knows a mode x such that ex−1⁢(Jq)<γ⁢(Jq)≤ex⁢(Jq).

Therefore, if a job Jq arrives with runtime mode ρ⁢(Jq)=x at time aq and the system criticality Φ is smaller than x at this time , then a semi-clairvoyant scheduler can immediately increase the system criticality Φ to x. An instant at which an online MC system changes (increases) it system mode Φ is called a mode switch time. At this time, the MC scheduler immediately stop executing all jobs Jp with static criticality χ⁢(Jp)<x since the correctness condition no longer requires that it finish these jobs. We denote the time instance for a mode switch to runtime mode α as kα. We know that 0=k1≤k2≤…≤kΦ.

Difference between semi-clairvoyance and non-clairvoyance.

For non-clairvoyant schedulers, a mode switch occurs and the system criticality Φ increases to x when some job Jq executes for more than ex−1⁢(Jq) time since this is the time when the scheduler discovers that runtime mode of this job. Therefore, the mode switch can happen at any time during the schedule. In contrast, mode switches always occur at arrival times for semi-clairvoyant schedulers since the runtime mode of a job is known at arrival. This difference shows up in complexity results. For dual-criticality jobs, semi-clairvoyant schedulability can be checked in polynomial time by using a linear program while non-clairvoyant schedulability is NP-Hard. In addition, the speedup bounds are also different; for dual-criticality jobs, semi-clairvoyant jobs need a speedup of 3/2 relative to clairvoyant schedulability while non-clairvoyant systems require a speedup of about 1.62.

3 Lower Bound

In this section, we will show that given a feasible set of semi-clairvoyant jobs with m criticality levels, no online algorithm can guarantee schedulability with speedup smaller than s=(2m−1)/2m−1. We will argue this by creating a set of jobs which are schedulable by a clairvoyant scheduler, but needs speed s to schedule online by any semi-clairvoyant scheduler.

The set of 2⁢m−1 jobs are shown in Table 1. We can divide these jobs into two groups. The first m jobs J1,J2,…,Jm are called initial jobs – they all arrive at time 0. Here are the characteristics of these initial jobs: job Jq has deadline 2q−1, static criticality q, and work (at all criticality levels) 2q−2 (Except the first job whose work at criticality level 1 is just 1). The second set of m−1 jobs, namely Jm+1⁢…,J2⁢m−1, are the later jobs. These are more interesting. Job Jm+q has arrival time 2q−1, deadline 2q and static criticality q+1. Each of these jobs has work 0 at all criticality levels except at its highest criticality level – that is job Jm+q has e1,…,eq=0 and eq+1=2q−1.

Table 1: The set of jobs that shows that any semi-clairvoyant scheduler needs a speedup of 2−1/2m−1 in order to schedules jobs with m different criticalities.
Jobs χp ap ep1 ep2 ep3 … epm−2 epm−1 epm d
J1 1 0 1 - - … - - - 1
J2 2 0 1 1 - … - - - 2
J3 3 0 2 2 2 … - - - 22
… … … … … … … … … … …
Jm−1 m−1 0 2m−3 2m−3 2m−3 … 2m−3 2m−3 - 2m−2
Jm m 0 2m−2 2m−2 2m−2 … 2m−2 2m−2 2m−2 2m−1
Jm+1 2 1 0 1 - … - - - 2
Jm+2 3 2 0 0 2 … - - - 22
… … … … … … … … … … …
J2⁢m−2 m−1 2m−3 0 0 0 … 0 2m−3 - 2m−2
J2⁢m−1 m 2m−2 0 0 0 … 0 0 2m−2 2m−1

First, we argue that this set of jobs is schedulable by a clairvoyant scheduler.

Lemma 1.

The set of jobs shown in Table 1 can be scheduled by a clairvoyant scheduler.

Proof.

The clairvoyant scheduler knows the criticality level of the system. Therefore, we just have to argue that the total work that the optimal scheduler has to do before every deadline is feasible. Note that the system criticality is determined by the execution time of the later jobs since we can assume that the initial jobs always arrive at criticality level 1. Intuitively, the system of jobs is designed so that at any system criticality , only one of the later jobs takes up any execution time and its work is equal to the work of the lower criticality jobs that need not execute. More concretely, the clairvoyant scheduler works as follows:

  1. 1.

    If the system remains at criticality level 1 – that is, γ⁢(Jm+1)=γ⁢(Jm+2)=…=γ⁢(J2⁢m−1)=0 – then the scheduler has to execute only the initial jobs. Now consider any set of jobs J1,…,Jq – the deadlines of these jobs are all before 2q−1 and the collective work of these jobs is also 2q−1. Therefore, the clairvoyant scheduler can complete this work in time using EDF. Concretely, the system executes job Jq in the interval [2q−1,2q].

  2. 2.

    if the system remains at criticality level 2, it can drop the first job. In addition, γ⁢(Jm+1)=1, but γ⁢(Jm+2)=…=γ⁢(J2⁢m−1)=0. Therefore, it can execute J2 and Jm+1 by time 2 and then follow the same schedule outlined above, scheduling Jq in the interval [2q−1,2q].

  3. 3.

    More generally, if the system is at criticality level j, for j>1, then it need never execute jobs J1,…,Jj−1 as well as jobs Jm+1,…,Jm+j−2. In this case γ⁢(Jm+j−1)=2j−2, but γ⁢(Jm+j)=…=γ⁢(J2⁢m−1)=0. Therefore, the clairvoyant scheduler can execute job Jj by time 2j−2. At this time job Jm+j−1 arrives and can be executed by time 2j−1. The remaining schedule remains the same as above.

◀

Lemma 2.

No semi-clairvoyant scheduler with speed less than s<(2m−1)/2m−1 can schedule this system of jobs under all arrival conditions.

Proof.

Say this set of jobs is executed by a semi-clairvoyant scheduler on a processor of speed s. The initial criticality of the system is 1. Now we consider each interval [0,1) and [2q,2q+1) for every q from 0 to m−1:

  • ■

    Over the interval [0,1), the first m jobs arrive. J1 must receive 1 unit of execution (otherwise it will miss its deadline). The remaining s−1 unit of execution could be used to execute any other initial jobs.

  • ■

    Over the interval [1,2), Jm+1 arrives. Jm+1 with static criticality χm+1=2 (and work γ(Jm+1)=1) increasing the criticality level of the system to 2. Both J2 and Jm+1 both have a deadline of 2; therefore, the semi-clairvoyant scheduler must complete 3 units of work (belonging to J1,J2,Jm+1) by time 2.

  • ■

    At time 2, job Jm+2 arrives with static criticality χm+2=3 and work γ⁢(Jm+2)=2. Again, the system criticality rises to 3 at this time, but both criticality 3 jobs must be completed by time 4 since that is their deadline. Therefore, the semi-clairvoyant scheduler must complete at least 7 units of work by time 4.

  • ■

    More generally, at time 2j−1, the system criticality increases to j due to the arrival of job Jm+j−1 with its runtime mode at the level j. But by this time, all the jobs with lower criticality have already finished executing since they all have earlier deadlines.

Therefore, over the entire interval, up to time 2m−1, the total work that is executed is the sum of the work of all initial jobs as well as the maximum work of the later jobs. The total work of the initial jobs is 1+∑q=0m−22q=2m−1. In addition, the later jobs always arrive at their highest criticality level; therefore, the total work due to the later jobs is ∑q=0m−22q=2m−1−1. Therefore, the semi-clairvoyant scheduler must do the total work of 2m−1 in time 2m−1. This means the speedup required is at least (2m−1)/2m−1. ◀

4 Upper Bound

We will now show that there exist semi-clairvoyant schedulers which provide the speedup bound of s=(2m−1)/2m−1. For the purposes of this proof, we assume that we have a job set Δ which is schedulable by a clairvoyant algorithm OPT on a processor of speed 1. We will define a theoretical semi-clairvoyant scheduler and prove that it can schedule any such job set on a processor of speed s. Since we already showed that there exist instances for which no semi-clairvoyant scheduler can provide a better speedup bound, we can conclude that this bound is tight.

While the scheduler we use in this section does not work when the speedup is <s, in the next section, we will provide a linear programming based semi-clairvoyant algorithm which is an optimal semi-clairvoyant scheduler for any instance and therefore also provides the stated speedup bound.

Proof Intuition

Let us first understand the high-level intuition and overview of how this proof will proceed. The details are in subsequent subsections.

  1. 1.

    We will first define a scheduling algorithm called EDF-Zeno – nominally, this algorithm pretends that a processor of speed s=(2m−1)/2m−1 is split into m processors (called lanes) with where the first lane has speed 1, the second 1/2, and so on; therefore, collectively, these lanes have speed s. Each of these processors run EDF, but (potentially) on different subsets of jobs. This scheduler also uses “flow control” in order to ensure that low criticality jobs do not get too much processing at the cost of higher criticality jobs.

  2. 2.

    We also apply a transformation called zipping on the job set. In particular, given a set of jobs Δ, we transform them into a different set of jobs, say Δzip, and prove that proving the speedup bound on this transformed set of jobs will prove it for the original set of jobs.

  3. 3.

    We now get into the nitty-gritty of the proof. We assume for contradiction that EDF-Zeno cannot correctly schedule some instance and identify the first deadline miss, say for job Jmiss and assume that this happens when the system is in some system criticality Φ.

  4. 4.

    We identify the busy period preceding this deadline miss for all individual lanes. The definition of the busy period is somewhat complicated due to two reasons (1) each lane schedules different subsets of jobs; and (2) the scheduler on each lane is not quite pure-EDF due to flow control.

  5. 5.

    We then identify a subset of “bottleneck” jobs – these are the jobs that can potentially prevent our job Jmiss from completing by its deadline. We then prove that if this set of bottleneck jobs is schedulable, then the original set of jobs is also schedulable. Therefore, we can restrict our attention to just this set of jobs.

  6. 6.

    This allows us to bound the interference that our job Jmiss can experience during the busy period. However, this interference calculation is also complicated due to several factors: (1) some jobs may interfere in some lanes but not others; (2) the flow control mechanism allows us to bound some of the interference; and (3) lower criticality jobs sometimes stop interfering after mode switches.

  7. 7.

    After considering all these factors, we are able to bound the interference on the job and show that the interference is strictly smaller than the total execution capacity of the busy period. This gives us a contradiction due to the definition of the busy period.

Definition of EDF-Zeno

For this proof, we will use a relatively unnatural scheduling algorithm which is designed purely to make the proof tractable. We will assume that this scheduler always runs (semi-clairvoyantly) on a machine with speed s=(2m−1)/2m−1. EDF-Zeno has two aspects: division into lanes and flow control. We will define both here.

Definition 3 (EDF-Zeno’s Lane Policy).

For a machine with s=(2m−1)/2m−1 speedup, EDF-Zeno divides it into m lanes, where lane Li has speed si=1/2i−1 – lane L1 has speed 1 and subsequent speeds decrease geometrically by a factor of 1/2.222In a sense, these lanes are time-sharing the processor and dividing up the speed of the processor among themselves.

A job with criticality β is only eligible to run on lanes L1 through Lβ. In other words, all jobs are eligible to run on L1, but only jobs with criticality level 2 and above can run on L2, and so on. Within each lane EDF-Zeno uses EDF to run jobs that are eligible to run on this lane.333If a job is simultaneously running on multiple lanes, then it is equivalent to running the job at the speed that is the sum of those lanes’ speed.

Here’s the intuition for this policy: Recall that if we only had a 2-criticality system, then the speed of 1.5 is enough. Therefore, EDF-Zeno allows the jobs of the lowest two criticalities to essentially only use a machine with speed 1.5. In general, if we collectively consider the jobs of the lowest β criticalities, they are only using a machine of speed (2β−1)/2β−1.

EDF-Zeno has another policy to restrict the execution of “current” criticality jobs. In particular, after the mode switch to criticality level β, jobs of criticality level β become the lowest criticality jobs. However, they are still allowed to use the first β lanes. Therefore, if a lot of criticality β work arrives after this mode switch, it can overuse the machine and prevent higher criticality jobs from running. Therefore, we restrict the execution provided to these jobs using the a flow control policy.

Definition 4 (EDF-Zeno flow control).

Say that the mode switch to criticality level β happens at time kβ. Consider the set of all jobs X which have static criticality level β and they arrived after time kβ. At any time t>kβ, the total work done by EDF-Zeno on jobs in set X is at most t−kβ.

We make a quick observation about the impact of flow control on various lanes:

Observation 5.

Say, at time t, a set of jobs X of criticality level β are being flow-controlled. At time t, these jobs can run at speed at most 1. Therefore, if one of these jobs is the earliest deadline job, it can still run on lane 1. Therefore, lane 1 still follows EDF on jobs which are still in the system. However, flow-controlled jobs cannot run on any other lane.

Zipping the Job Set

In order to simplify the proof, we will apply a transformation to the job set – this transformation guarantees that each job has at most two “interesting” criticality levels.

Definition 6 (Zipped problem set).

Given a set of jobs Δ, consider each job Jq∈Δ with static criticality χ⁢(Jq)=β and work estimates e1⁢(Jq),e2⁢(Jq),…,eβ⁢(Jq). In Δzip, β−1 jobs, Jq2,Jq3,…,Jqβ (with the same release time and deadline as Jq), are created as follows: For i=2,3,…,β−1, if ei⁢(Jq)−e1⁢(Jq)>0, job Jqi has (static) criticality level i and e1⁢(Jqi)=e2⁢(Jqi)=…=ei−1⁢(Jqi)=0, and ei⁢(Jqi)=ei⁢(Jq)−e1⁢(Jq); if ei⁢(Jq)−e1⁢(Jq)=0, Jqi is skipped. Finally, Jqβ has (static) criticality level β and e1⁢(Jqβ)=e2⁢(Jqβ)=…=eβ−1⁢(Jqβ)=e1⁢(Jq), and eβ⁢(Jqβ)=eβ⁢(Jq).

Essentially, we create jobs such that their execution times for most of the criticality levels are 0. For example, if we are given a job Jq with static criticality β=4 such that its execution times at levels 1,…,4 was a,b,c,d, then we would have 3 jobs: (1) Jq2 with static criticality 2 and work estimate at criticality levels 1 and 2 as 0 and b−a respectively; (2) Jq3 with static criticality 3 and estimate 0,0,c−a respectively; and (3) Jq4 static criticality 4 with estimates a,a,a,d respectively. This transformation simplifies the reasoning in the proof. We will now prove that this transformation is valid.

Lemma 7.

If Δ is feasible, then Δzip is also feasible (on the processor of the same speed).

Proof.

As a stronger conclusion, we prove the equivalence in feasibility. That is, OPT can either schedule both job sets or neither. Consider any single criticality level β. The total work of Jq if it arrives in criticality level β is equal to the work of Jqi’s collectively in criticality level β by construction. Since they all share release times and deadlines, the total load within any interval remains the same for every criticality level. Since the feasibility of clairvoyant schedulers depends only on the workload within each time interval and at every criticality level, feasibility of the two systems is equivalent. ◀

We now consider semi-clairvoyant schedulability. This is less straightforward since semi-clairvoyant schedulability depends on the actual scheduler.

Lemma 8.

If some semi-clairvoyant scheduler can schedule Δzip, then an optimal semi-clairvoyant scheduler can also schedule Δ (on the processor of the same speed). Therefore, if EDF-Zeno can schedule Δzip, then the optimal semi-clairvoyant scheduler can schedule Δ.

Proof.

Say that some semi-clairvoyant schedule, A⁢(Δ), can correctly schedule Δ. We can now simulate the execution of Δzip – call this scheduler B⁢(Δzip). Say job Jq is released in runtime mode k when executing Δ and therefore, has execution requirement ek⁢(Jq). Therefore, in Δzip all Jqis will also be released on mode k which indicates the following: (1) if k=1 or k=χ⁢(Jq)=β, then in Δzip, Jqβ has work ek⁢(Jq) and other Jqi don’t have any work; (2) otherwise, Jqβ has work e1⁢(Jq) and Jqk has work ek⁢(Jq)−e1⁢(Jq). Therefore, the total work is the same. Therefore, any time the scheduler A⁢(Δ) runs Jq, B⁢(Δzip) runs one of the corresponding jobs. Therefore, both schedulers do exactly the same amount of work on Jq for all q. Therefore if A⁢(Δ) meets all the relevant deadlines, then so does B⁢(Δzip). ◀

Note that the above lemma doesn’t say anything about EDF-Zeno; in particular, we have not argued that if EDF-Zeno can schedule Δzip then it can also schedule Δ. As we will argue later, this is sufficient for us to prove the speedup bound we need.444Alternatively, we can also transform arbitrary Δ into Δzip and just run EDF-Zenoon the corresponding Δzip. As we will prove that EDF-Zenocan schedule Δzip, this transformation means that Δ is schedulable. The zipped problem set has the following property which will be helpful for our purposes.

Observation 9.

In Δz⁢i⁢p, a job with static criticality i is released in runtime mode either 1 or i.

For the rest of this section, we will treat Δzip as Δ, our job set under consideration.

Busy Period

We are now ready to define some terms to prove the following theorem:

Theorem 10.

A feasible zipped problem Δzip with m criticality levels is schedulable by EDF-Zeno with m lanes.

Note that the behavior of a semi-clairvoyant scheduler depends on the timing of mode switches – that is, as jobs arrive in different criticality levels, the scheduler responds accordingly. Assume for contradiction that there is some runtime behavior R for which EDF-Zeno misses a deadline – and say Jmiss is the first job in this runtime behavior which misses its deadline. Let the arrival time of Jmiss be a, the deadline of Jmiss be d, and the static criticality of Jmiss is α. Also, assume the system is at system criticality Φ at time d. We know that Φ≤α.

We can now ignore the behavior of the system after the time d.

Therefore, the system has gone through a series of mode switches at times 0=k1≤k2≤…≤kΦ. We can ignore all mode switches after Φ.

We now define the interesting period of execution, namely the busy period before d. Intuitively, the busy period contains jobs which interfered with the execution of job Jmiss – this sort of busy period analysis is common in real-time systems. However, in this proof, this definition is somewhat involved since (1) the busy period can be different for each lane since different subsets of jobs are eligible to run in each lane; and (2) flow control causes scheduling anomalies which make the definition complicated.

Definition 11 (Busy period).

Say Jearly is the set of jobs with deadline ≤d and Jlate are the remaining jobs. For each lane β>1, we look backward from d, and find the latest time instance that is not running Jearly (i.e., running Jlate or idle). Let this time instance be bβ. The busy period for lane β>1 is the interval [bβ,d]. For lane 1, the definition is a bit more complicated. We go backwards from d and find the latest instance when either lane 1 is not running Jearly, or some Jlate was scheduled on some other lane β≥2 while Jearly were eligible for lane 1 (this only happens when job running on lane 1 is subject to flow control on other lanes) (see Observation 5).

Note that b1,b2,…,bm must exist, because time 0 always fits the conditions. We can now observe some structural properties of these busy periods.

Observation 12.

Only jobs with deadline ≤d are executed on a lane within its busy period.

Moreover, the starting points of each busy period are nicely ordered:

Lemma 13.

b1≤b2≤…≤bm.

Proof.

We only need to prove for any β, bβ≤bβ+1. Assume for contradiction that bβ>bβ+1. At any time in interval [bβ+1,bβ], lane β+1 is working on some job in Jearly (Definition 11). But this job is also eligible to run on lane β (Definition 3), and it is not subject to flow control (since it is running on lane β+1); therefore, lane β cannot be idle or working on Jlate since it uses EDF. Hence a contradiction. ◀

Now we are ready to reduce the set of jobs that we must consider – nominally, these are jobs that execute within the busy period and therefore interfere with Jmiss. However, again, the definition is somewhat complex due to the various lanes and due to flow control.

Definition 14 (Bottleneck Jobs).

We will define bottleneck jobs Bβ for each criticality level 1≤β≤m. A job belongs to Bβ if (1) its static criticality level ≥β; and (2) it has a deadline ≤d; and (3) it has not completed by time bβ. In addition, we will truncate both the interval and the work of some of these jobs. If a bottleneck job Jq arrived before b1 (the start of the busy period of lane 1), then its release time is modified to b1. In addition, if this job completed some execution say w before b1, then its execution requirement is reduced by this quantity w. Call the (sub)set of bottleneck jobs that were truncated T. After truncation, we have the property that all bottleneck jobs have arrival time ≥b1 and deadlines ≤d.

A quick observation is that Bm⊆…⊆B2⊆B1. Precisely, Bβ are the jobs that possibly interfere with Jmiss on lane β. When we refer to bottleneck jobs without β, we mean B1. We now show that the truncated jobs are a limited set of jobs.

Lemma 15.

A bottleneck job Jq with criticality β is truncated if all three conditions hold: (1) kβ≤b1≤kβ+1 – i.e., the busy period for lane 1 starts during system’s criticality β; (2) jobs of lane β were subject to flow control immediately before b1; and (3) b1=b2= …=bβ.

Proof.

Say t is the moment right before b1. At time t, Jq has arrived, but not completed. Since lane 1 does pure EDF, it is neither idle nor executing a job in Jlate. Therefore, b1 was defined due to the second condition of Definition 11 – that some lane was subject to flow control. Say this lane was γ; which implies that kγ≤b1≤kγ+1. Since Jq is executing, β≥γ. Therefore, Jq is eligible to execute on lane γ; but it doesn’t. Therefore, Jq must be subject to flow control and γ=β. Finally, since the system is already in criticality level β at time t, lanes 1 through β have the same set of jobs that are eligible to run on them after this time. In addition, this is the last instant in time where b1 is defined due to flow control. Therefore, due to Definition 11 and Lemma 13, we have b1=b2=…=bβ. ◀

We are now ready to prove that we can safely restrict our attention to bottleneck jobs only for the purposes of analysis.

Lemma 16.

If the original set of jobs was feasible, then (constructed) bottleneck jobs B1 are also feasible. That is, if OPT could schedule the original set, it can schedule the bottleneck set B1. In addition, EDF-Zeno still misses the deadline Jm⁢i⁢s⁢s if only the jobs in B1 are released.

Proof.

Say O is OPT’s schedule on the original set of jobs and O′ is OPT’s schedule on the bottleneck jobs. Removal of jobs obviously doesn’t impact feasibility. Now consider the truncated jobs. From Lemma 15, we know that jobs are only truncated when subject to flow control and all truncated jobs belong to the same criticality, say γ. Therefore, these jobs have done (collectively) b1−kγ work at time b1 (that’s why they were flow controlled). Since they were all released after time kγ, O cannot do more than b1−kγ work on these jobs by time b1. O has at least as much work to do on these jobs as O′; therefore, if O can schedule them, then so can O′.

We now show that if EDF-Zeno misses the deadline for Jmiss in the original set of jobs, then it also misses it for the bottleneck jobs. Say S is the original schedule and S′ is the schedule for bottleneck jobs. First we note that we can safely ignore jobs in Jlate since they do not interfere with jobs in B1 on any of the lanes.

Now, if we just look at Jearly, all jobs that are not completed before time b1 are included in the bottleneck jobs B1 (either fully or in a truncated form). Therefore, within interval [b1,d] S and S′ are responsible for the same set of jobs. Also note that jobs are truncated according to their execution in S; therefore, truncated jobs have exactly the same remaining work and the same deadline in S and S′. Therefore, the schedules for S and S′ are identical. ◀

From now, we will implicitly assume that we are just running EDF-Zeno on bottleneck jobs. We first prove a structural property that relates the mode switches with the busy period.

Lemma 17.

For any 2≤β≤Φ, if b1≤kβ, we have bβ≤kβ.

Proof.

Proof by contradiction. If bβ>kβ, consider the time instance just before bβ – we know that no job in Jearly with criticality level at least β is available; otherwise lane β would run it. However, since b1≤kβ, there must be a job in Jearly running on lane 1 at time t and this job has criticality at least β (because the system is in criticality β, the lower jobs are dropped). It is either eligible for lane β (an immediate contradiction), or it triggers the flow control so that it cannot run on lane β. In the second case, since lane β is not running Jearly, bβ also matches the condition of Definition 14, which means b1=bβ>kβ, which also leads to a contradiction. ◀

We now observe another structural property which relates the mode switch times and the busy period. In particular, we need only focus on the worst case for the purposes of our bound and the following lemma implies that b1≤k2 is the worst case. That is, the busy period for lane 1 starts before the mode switch to criticality level 2. Intuitively, this is easy to see – if b1>k2, we functionally only have m−1 criticalities since no (static) criticality level 1 job is part of B1. Therefore, the problem becomes easier.

Lemma 18.

We can assume that b1≤k2 without loss of generality.

Proof.

Say, for contradiction, that b1>k2. Let kβ<b1≤kβ+1. Now B1 does not have a job with criticality <β since all those jobs were already dropped at time kβ. Create a new problem instance N⁢B, which is basically B1, but transforms everyone’s criticality levels so that criticality β−1+i in B1 acts as criticality i in N⁢B. OPT can still schedule N⁢B; however for EDF-Zeno, each job in N⁢B can use fewer lanes than it could when this job was in B1. Hence, no job N⁢B finishes before the corresponding job in B1. Therefore, if N⁢B is at least as hard as B1; more precisely, if N⁢B is schedulable, then so is B1. N⁢B has the property that b1<k2. ◀

Defining Interference

We now are able to specifically measure the interference experienced by Jmiss on each processing lane in terms of these job sets B1,…,Bm. We will define several such parameters. In our proof, these are called utilities since they measure partial work of jobs actually completed by EDF-Zeno on specific lanes during the busy period instead of the entire work of the job.

Definition 19 (Utilities Uxy).

Consider a schedule of EDF-Zeno on a set of bottleneck jobs B1. Consider any γ for 1≤γ≤m. We first define the partial utility Uxy⁢(γ) as the total work done by EDF-Zeno within the busy period on some job J∈Bγ∖Bγ+1 (formally, Bm+1=∅) with static criticality x and runtime criticality (mode) y. The utility Uxy is defined as Ux1=∑β=xαUβ1⁢(x), and Uxx=∑β=xαUxx⁢(β).

Note that for all 1<y<x, we have Uxy=0 since we are only considering Δzip (Observation 9). Consider a job in Bx−Bx+1 but with static criticality β>x. This job must have arrived and completed within the interval [bx,bx+1] (Definition 14). Therefore, we treat it (functionally) as a criticality x job for the purposes of utilities. We can make the following observation:

Observation 20.

When collecting partial utilities Uβ1⁢(x), each partial utility is counted exactly once to Umin⁡{β,x}1. Meanwhile for β≥2, all Uββ⁢(x) trivially count to Uββ (and β<x results in Uββ⁢(x)=0 because before kβ there are no jobs with runtime mode β). Therefore, all the partial utilities are counted exactly once.

Another important note: One might think that the sum of all the utilities is equal to the sum of the work of all the bottleneck jobs during our execution R. However, it turns out that the sum of utilities might be smaller due to three factors:

  • ■

    Some jobs may remain incomplete due to a mode switches – therefore, the total work done by EDF-Zeno is smaller than the work of the job.

  • ■

    More importantly, some jobs may be in B1∖B2 (or more generally, some jobs are in B1,..,Bi, but not in subsequent lanes) even though its static criticality is greater than 1. This means that this job arrived after time b1 but completed before b2, and lane 2 subsequently experienced an idle instant (or worked on Jlate). Therefore, some of this job’s work is included in the busy period of lane 1 and therefore appears in the utilities U11, but any work done by lane 2 doesn’t is not included in any of the utilities.

  • ■

    Finally, recall that Jmiss belongs to Jearly, so the completed part of Jmiss shows up in the utilities. But, since we assume (for contradiction) that Jmiss misses its deadline, therefore, it has some remaining work when we get to time d. Lets call this uncompleted work δ.

Bounding the utilities

We will now provide bounds on these utilities which will allow us to reach a contradiction. The following two lemma generates 2⁢α−1 inequalities due to the different values of β.

Lemma 21.

For 1≤β≤α,

∑γ=βmUγ1⏟Part 1+𝕀⁢(β≠1)⁢Uββ+𝕀⁢(β=α∨ρ⁢(Jm⁢i⁢s⁢s)=1)⁢δ⏟Part 2≤d−bβ.
Proof.

Suppose the system is in criticality β at time d. We know that the clairvoyant algorithm which runs in system criticality β can finish all relevant jobs in Bβ. Lets call this algorithm O⁢P⁢Tβ. Since O⁢P⁢Tβ never runs any jobs with criticality level <β, these jobs have arrival time ≥bβ and deadline ≤d (Definition 14 and Lemma 13). Therefore, the total work of these jobs must be at most d−bβ to make O⁢P⁢Tβ feasible – this is the RHS of the statement.

Now, lets count up the total work of these jobs. First, consider a job with static criticality γ>β. This job never switched to β+1 mode. Since it is a zipped job, it arrived in mode 1. Therefore, the total work of these jobs collectively is at least Uγ1 since EDF-Zeno did this much work on these jobs. This is Part 1 on the LHS, excluding the first term where γ=β. Now, consider jobs with criticality level β. Some of these jobs may arrived in mode 1 (if they arrived before kβ) and some in mode β. Therefore, the work of these jobs is at least Uβ1+Uββ. In addition, if β=α or Jm⁢i⁢s⁢s releases in runtime mode 1, then the total work of these all these jobs also includes δ since Jmiss is part of this set and it has δ work undone at the deadline. This is Part 2 of the LHS (the second term has an If, since we over count when β=1). Summing them all up in the LHS gives us a lower bound on the total work of jobs that must be scheduled by OPT in criticality level β. Since RHS is an upper bound, we get the inequality. ◀

Lemma 22.

For 1≤β<α,

∑γ=1βUγ1⏟Part 1+∑γ=2βUγγ+2β−12β−1⁢∑γ=β+1αUγγ⏟Part 2≤2β−12β−1⁢d−∑γ=1β12γ−1⁢bγ.
Proof.

Consider EDF-Zeno for jobs with criticality γ≤β in the various sets B1,B2,…. Each of these jobs arrives either in runtime criticality 1 or γ. Therefore, the total utility (execution given to these jobs collectively by EDF-Zeno) is ∑γ=1βUγ1+∑γ=2βUγγ. All these jobs will be dropped at kβ+1. Therefore, the total work EDF-Zeno does on these jobs is no more than the possible execution time on the various lanes. The total available execution time is: (kβ+1−b1) on lane 1;0.5×(kβ+1−b2) on lane 2, and so on. (Note that due to Lemmas 17, 18, we can assume that bβ≤kβ+1, so these intervals always exist). This means ∑γ=1βUγ1+∑γ=2βUγγ≤∑γ=1β12γ−1⁢(kβ+1−bγ).

On the other hand, recall that the system is in criticality Φ at time d. For β<γ<Φ, consider Uγγ. This is the work done by EDF-Zeno on jobs released with static criticality γ and runtime mode γ. Therefore, these jobs must be in set Bγ and must be released after kγ.

Due to the flow control policy of EDF-Zeno (Definition 4), we know that Uγγ≤kγ+1−kγ for β<γ<Φ, and UΦΦ≤d−kΦ. Also, for Φ<γ≤α, Uγγ=0.

Multiplying the second inequality by 2β−12β−1, and adding them to the first inequality gives us the lemma. ◀

Finally, using Lemmas 21 and 22, we can complete the proof for Theorem 10.

Proof.

We first define some weights that we will multiply to these inequalities in order to get appropriate coefficients. In particular, we define Aα=12α−1 and for all 1≤β<α, Aβ=2β−12β−1⁢Aβ+1. As an illustration, if Jmiss’s static criticality is 4, then A4=1/8, A3=7/32, A2=21/64, and A1=21/64.

Considering Lemmas 21 and 22, we have a total of α+(α−1)=2⁢α−1 inequalities. For clarity, we put these in Table 2 where the first α rows are for Lemma 21 and the subsequent α−1 rows are for Lemma 22. We also divide the LHS into two parts as marked in the corresponding lemmas: Part 1 corresponds to the work included in Ux1 and Part 2 corresponds to the work included in Uxx. We multiply each row by weights as shown in the table and add them together.

Table 2: The coefficients of each inequality when adding them up.
Weight LHS(Part 1) LHS(Part 2) RHS
A1 U11+U21+…+Um1 d−b1
A2 U21+…+Um1 U22 d−b2
… … … …
Aα−1 Uα−11+Uα1+…+Um1 Uα−1α−1 d−bα−1
Aα Uα1+…+Um1 Uαα d−bα
A2 U11 U22+U33+U44⁢…+Uαα d−b1
A3 U11+U21 U22+32⁢(U33+U44+…+Uαα) d−b1−12⁢b2
A4 U11+U21+U31 U22+U33+74⁢(U44+…+Uαα) d−∑β=1312β−1⁢bβ
… … … …
Aα U11+U21+…+Uα−11 U22+…+Uα−1α−1+2α−1−12α−2⁢Uαα d−∑β=1α12β−1⁢bβ

These coefficients have the following properties (which can be proved through induction):

∑γ=1βAγ=2β−1⁢Aβ,Aβ+12β−1⁢Aβ+1=12β−1

Using these properties, we first show that the coefficients of each term that appears on the LHS is 1 once add up all the inequalities. For Part 1, check Uβ1 for 1≤β≤α: it appears in the first β rows and last α−β rows. (For instance, U11 appears in the first row and the last α−1 rows. Therefore, the coefficients of each Uβ1 is ∑β=1αAβ=2α−1⁢Aα=1. For β>α, these Uβ1s have the same coefficient as Uα1, so the total is still 1.

Part 2 is a bit more involved. We use induction to show that after adding all the rows, the coefficient of each term is 1. The base case is β=2 (the coefficient of U22 is A2+∑β=2αAβ=1). We now show that the difference between the coefficients of Uββ and Uβ+1β+1 is 0.

  1. 1.

    Row β only has Uββ, with weight Aβ;

  2. 2.

    Row β+1 only has Uβ+1β+1, with weight Aβ+1;

  3. 3.

    Row α+β has Uββ+2β−12β−1⁢Uβ+1β+1, with weight Aβ+1.

  4. 4.

    In other rows, the coefficient of Uββ and Uβ+1β+1 are the same.

Therefore, the difference between the coefficient of Uββ and Uβ+1β+1 is:

Aβ−Aβ+1+Aβ+1⁢(1−2β−12β−1)=Aβ−2β−12β−1⁢Aβ+1=0.

Now consider δ (which was not included in the table). If α>Φ, then job Jmiss appears in runtime mode 1; therefore, its coefficient is 1; otherwise, it is released in runtime mode Φ and its coefficient is 1/2α−1. Therefore, in the worst case, it has a coefficient of 1/2α−1.

For RHS, check bβ for 1≤β≤α. bβ appears at the β-th row and the last β−1 rows (with coefficient 12β−1). The total coefficient is:

−Aβ−12β−1⁢∑γ=β+1αAγ=−Aβ−12β−1⁢(1−2β−1⁢Aβ)=−12β−1.

Finally, check d, the coefficient is

∑β=1αAβ+∑β=2αAβ=2−A1=2α−12α−1

Collecting them altogether, the sum of these inequalities results in:

∑β=1αUβ1+∑β=2αUββ+12α−1⁢δ≤2α−12α−1⁢d−∑β=1α12β−1⁢bβ.

Since Jmiss misses its deadline, δ>0, so we have

∑β=1αUβ1+∑β=2αUββ<2α−12α−1⁢d−∑β=1α12β−1⁢bβ.

The LHS is all the work of B1 that was done by EDF-Zeno within the busy period and the RHS is the total execution capacity of the busy period. Therefore, by definition of the busy period, the work done cannot be smaller than the capacity of the processor. Hence a contradiction. ◀

We have now shown that EDF-Zeno provides the optimal speedup bound. However, it is important to note that it is not an optimal scheduler for individual instances. For instance, even if a particular set of jobs is semi-clairvoyantly schedulable on speed 1.1 processors, EDF-Zeno will still (potentially) need speed s=(2m−1)/2m−1 speed processor to schedule it. Alternatively, one can say that, on a speed 1 processor, EDF-Zeno only guarantees schedulability to job sets which are feasible on speed 1/s processor. In the next section, we provide a scheduler which is instance optimal.

5 Scheduling Multi-Criticality Semi-Clairvoyant Jobs Optimally

This section provides a linear programming formulation for checking the schedulability for a system of n semi-clairvoyant jobs with m criticality levels. Solving the linear program also provides a scheduling algorithm that can then be implemented at runtime as the jobs arrive. This scheduler provides a quantitatively different guarantee relative to EDF-Zeno. Given a particular set of jobs, if the linear program fails to provide a schedule, then no semi-clairvoyant scheduler can schedule this set of jobs under all possible runtime conditions (sequence of mode switches).

5.1 Semi-Clairvoyant Scheduling using LP

Basic Ideas and Notation

We will use a linear program to check if the system of such jobs is schedulable. Since we have n jobs, we have 2⁢n key instances on the timeline which represent the arrival times and deadlines of these jobs555For simplicity in exposition and without loss of generality, we assume that all these instances are unique., dividing the timeline into 2⁢n−1 intervals. We will sort these key instances and represent them as ti. For each of these intervals, we will compute how much execution should be done by jobs with each static criticality given the history of criticality switches so far. In particular, the linear program uses the following notation:

  • ■

    The variables for the linear program are ckα,jx⁢(k1,…⁢kα): Amount of x criticality work done from kα to tj. ky is the time instant system criticality increased to y (Note that k1=0). The parameters k1,k2,…,kα can be a set of any size between 1 and m and must all take values smaller than tj since a mode switch after time tj cannot impact the execution time given to any criticality level up to time tj.666For example, c1,j3⁢(0) denotes the execution time allocated to the jobs with static criticality 3 up to time tj. As another example, c4,109⁢(0,t4,t4) denotes the amount of time spent on jobs with static criticality 9 between time t4 and t10 assuming the system criticality increased to 3 (and implicitly to 2) at time t4. These are the quantities the linear program will compute.

  • ■

    Key instances ti: obtained by sorting the release time and deadline of all the jobs. Assume that t0=0.

  • ■

    Si,jx: the set of jobs with static criticality x with arrival time ≥ti and deadline ≤tj. These are the jobs with static criticality x that must be executed between time ti and tj

  • ■

    ∑J∈Si,jxey⁢(J): sum of y criticality work over Si,jx.

Note that the variables ckα,jx⁢(k1,…⁢kα) compute the entire schedule for semi-clairvoyant scheduler under all possible mode-switch conditions and prefixes. There are approximately m⁢nm+2 of these variables since i,j,kd can take n values each and x takes m values. One can store these in a lookup table to be used for runtime scheduling.

LP Constraints

The basic idea behind the linear program is simple. We will consider all pairs i,j such that 0≤i<j and consider the interval between ti and tj. For all possible mode switch conditions, we want to ensure that we can allocate enough time to work for jobs of each static criticality level. In other words, we want to ensure that for all jobs that arrive at or after time ti and have a deadline at or before tj can get “sufficient execution time” to satisfy the correctness condition. Note that not all of these jobs may meet their deadlines since the scheduler may abandon some of these jobs due to mode switches. These variables c represent the reserved time for each static criticality level within each interval.

Consider an instant kα when some job with static criticality α might arrive. We will consider two cases.

Case 1.

We first consider the simple case where ti≥kα. In this case, Inequality 1 represents the fact that all jobs must be able to meet their deadlines – it simply checks that we reserve enough time for each criticality level to complete the work that must be done within that interval. Inequality 2 represents the fact that we cannot execute more work than has arrived so far for any static criticality level. Finally, Inequality 3 represents the fact that the total execution within any interval cannot exceed the total time in that interval.

for x∈{α,…,m}:

ckα,jx⁢(k1,…⁢kα)−ckα,ix⁢(k1,…⁢kα)≥∑J∈Si,jxeα⁢(J) (1)
ckα,jx⁢(k1,…⁢kα)+∑y=1α−1cky,ky+1x⁢(k1,…,ky)≤∑J∈Skα,2⁢n−1xeα⁢(J)−∑J∈Sj,2⁢n−1xeα⁢(J)+∑y=1α−1(∑J∈Sky,2⁢n−1xey⁢(J)−∑J∈Sky+1,2⁢n−1xey⁢(J)) (2)
∑y=αm(ckα,jy⁢(k1,…⁢kα)−ckα,iy⁢(k1,…⁢kα))≤tj−ti (3)
Case 2.

Now consider the case where ti<kα. This is the crucial inequality since this is the only one that is worried about changes in the system criticalities. Say ti is between 2 transition time kβ−1 and kβ. Now, we must ensure that all deadlines between kα and tj are met. Inequality 4 checks this. The first term on the LHS represents the amount of time allocated to the jobs with static criticality x between time kα and tj given the history of criticality switches up to kα. The term ckβ−1,kβx⁢(k1,…,kβ−1)−ckβ−1,ix⁢(k1,…,kβ−1) represents the amount of time allocated to the jobs with static criticality x between ti and kβ and the last term ∑y=β+1αcky−1,kyx⁢(k1,…,ky−1) represents the amount of time allocated to the jobs with static criticality x between kβ and kα. Therefore, collectively, the LHS represents the amount of time allocated to the jobs with static criticality x between ti and tj. The RHS represents the total amount of work that must be done for these jobs. The first term, ∑J∈Skα,jxeα⁢(J) represents the jobs that arrive between time kα and tj – these jobs arrive with ρ=α; so we consider eα⁢(J) for these jobs. The second term, (∑J∈Si,jxeβ−1⁢(J)−∑J∈Skβ,jxeβ−1⁢(J)) represents the jobs that arrived between time ti and kβ – these jobs arrive at ρ=β−1. The last term ∑y=β+1α(∑J∈Sky−1,jxey−1⁢(J)−∑J∈Sky,jxey−1⁢(J)) represents the jobs that arrive between time kβ and kα.

ckα,jx⁢(k1,…⁢kα)+ckβ−1,kβx⁢(k1,…,kβ−1)−ckβ−1,ix⁢(k1,…,kβ−1)+∑y=β+1αcky−1,kyx⁢(k1,…,ky−1)≥∑J∈Skα,jxeα⁢(J)+(∑J∈Si,jxeβ−1⁢(J)−∑J∈Skβ,jxeβ−1⁢(J))+∑y=β+1α(∑J∈Sky−1,jxey−1⁢(J)−∑J∈Sky,jxey−1⁢(J))⁢ for x in α,…,m (4)

The final inequality just checks that these variable values are well-formed since we cannot do more work until time tj than we do until time tj+1.

ckα,jy⁢(k1,…⁢kα)≤ckα,j+1y⁢(k1,…⁢kα). (5)

Without worrying about the actual asymptotic, it should be clear that the number of constraints is polynomial in n and exponential in m.

Runtime scheduling

Let c^k1,ix1⁢(k1),c^k2,ix2⁢(k1,k2),…,c^kd,ixd⁢(k1,…,kd) be the solution of our LP. In particular, the set of solution looks like this: {c^k1,i1(k1),c^k1,i2(k1),…,c^k1,id(k1),c^k2,i2(k1,k2),…c^k2,id(k1,k2),…, c^kd−1,id−1(k1,…,kd−1),c^kd−1,id(k1,…,kd−1),c^kd,id(k1,…,kd)}.

Consider an arbitrary criticality x. During runtime, let say that the system at time ti is currently in α criticality mode. Then the mode switch time k1,k2,…,kα is known. We reserve c^kα,i+1x⁢(k1,…,kα)−c^kα,ix⁢(k1,…,kα) time for x criticality work in the interval [i,i+1)(Jobs with the same criticality level are scheduled by EDF).

5.2 Proof of Correctness

We now prove that this linear program is correct. That is, a system of jobs is semi-clairvoyantly schedulable iff the the linear program is feasible.

Direction 1: LP solution can be used to schedule jobs

We first consider the case when the linear program has a solution and computes the c values. We must argue that the computed values of c are enough to schedule all jobs correctly under any sequence of mode switches.

We first make an observation – without loss of generality, we will assume that the actual execution time γ of the job is always maximum for a given criticality level since that is the worst case for any semi-clairvoyant scheduler. We can formally state this as follows:

Observation 23.

When a job J arrives with runtime ρ, then it always have requires γ⁢(J) execution time. We assume this since this is the worst case for semi-clairvoyant schedulers.

We now show that if linear program has a solution, then every reserved interval is busy.

Lemma 24.

Say the linear program computes a solution and that some mode switches have occurred at times k1,k2,…,kα. Now consider any time tj. ckα,j+1x⁢(k1,…⁢kα)−ckα,jx⁢(k1,…⁢kα) is exactly the amount of x criticality work done in [tj,tj+1) assuming Observation 23 holds.

Proof.

Consider an arbitrary criticality level x and any combination of mode switch k1,k2, …,kα that occur at or before time tj.

We want to use induction to show that ckα,j+1x⁢(k1,…⁢kα)−ckα,jx⁢(k1,…,kα) is exactly the amount of x criticality work done in [j,j+1).

Base case.

j=0, this is true since both reserved time and work available are 0.

Induction step.

Consider any j′<j and say kβ is the time of the last mode switch at or before time tj′. We assume that, ckβ,j′+1x⁢(k1,…⁢kβ) - ckα,j′x⁢(k1,…,kα)is the amount of x work executed in [tj′,tj′+1). We want to show that ckα,j+1x⁢(k1,…,kα)−ckα,jx⁢(k1,…,kα) is exactly the amount of x criticality work done in [tj,tj+1).

Since the maximum amount of work arrives in every interval (Observation 23), the right hand side of (2) represents the total work x criticality work that must be done before time tj+1 under these mode switches. Subtracting ckα,jx⁢(k1,…,kα)−∑y=1α−1cky,ky+1x⁢(k1,…,ky) on both sides of (2), we get:

ckα,j+1x⁢(k1,…,kα)−ckα,jx⁢(k1,…,kα)≤∑J∈Skα,2⁢n−1xeα⁢(J)−∑J∈Sj+1,2⁢n−1xeα⁢(J)+∑y=1α−1(∑J∈Sky,2⁢n−1xey⁢(J)−∑J∈Sky+1,2⁢n−1xey⁢(J))−ckα,jx⁢(k1,…,kα)−∑y=1α−1cky,ky+1x⁢(k1,…,ky) (6)

By induction hypothesis on every small interval between [0,kα), we know that: ∑y=1α−1cky,ky+1x⁢(k1,…,ky) is exactly the amount of x work completed in [0,kα). Similarly, by induction hypothesis, if we consider any interval between [kα,tj), ckα,jx⁢(k1,…,kα) is the amount of work with static criticality x completed in [kα,j).

Therefore, the right hand side of (6) represents the total leftover work with static criticality x that is must be done within the interval [tj,tj+1) under these mode switch conditions. So ckα,j+1x⁢(k1,…,kα)−ckα,jx⁢(k1,…,kα) must be the exact amount of x criticality work done within this interval. ◀

Corollary 25.

The system is never idle – some work is executed during any reserved time.

We can now show that the LP schedule guarantees that all deadlines are met.

Lemma 26.

If the LP has a solution, then the semi-clairvoyant scheduler correctly schedules jobs under all mode switch conditions.

Proof.

As in Section 4, we assume, for contradiction, that job Jmiss with static criticality level χ⁢(Jmiss)=x arrived at ta and misses its deadline at td. In other word, we did not reserve enough time for x criticality work. Now, consider only jobs with criticality x. Let [tb,td) be the busy period for criticality x, i.e., tb is the latest time instant before ta(tb≤ta) such that in the interval [tb,td), only jobs that arrive after tb and have deadline before td are executed within the time reserved for x-criticality work.

From (4) or (1) (if there is at least 1 mode switch between tb and td then use (4), else use (1)), substitute i=b and j=d.

In both cases, the LHS denotes the x criticality work that was executed in the interval [tb,td). However, the RHS is exactly the jobs with criticality x, arrival time ≥tb and deadline ≤td. In addition, note that if the maximum amount of work arrives in every interval, from Corollary 25, none of the reserved time is wasted on idleness. Therefore, this entire interval was used. However we still missed Jmiss deadline at td, which is a contradiction. ◀

Direction 2: If LP fails, then the system of jobs is not semi-clairvoyantly schedulable

Now we argue that the linear program is optimal. In other words, if the linear program does not find a feasible solution, then no online semi-clairvoyant scheduler can schedule this system of jobs under all mode change conditions.

Now consider an optimal online scheduler O⁢P⁢Tα for scheduling a set of jobs. We will now construct S={c^kα,ix⁢(k1,k2,…,kα)} for all i and possible mode switch times k1,k2,…,kα before time ti such that c^kα,ix⁢(k1,k2,…,kα) represents the amount of time O⁢P⁢Tα spends on x-criticality work O⁢P⁢Tα schedules between time kα and ti.

Claim 27.

With O⁢P⁢Tα, we can construct this set S.

Proof.

Since the optimal scheduler O⁢P⁢Tα exists, we can construct S by simulating it under all mode switch conditions. Consider an arbitrary criticality x. If no mode switch happens (system always stay at 1 criticality), we can get c^k1,ix⁢(k1) for any i by calculating the amount of x criticality work executed in the interval [0,i). If instead, the system switch to 2 criticality at some time k2=i′, we can still get c^k1,ix⁢(k1) is still the same for any i≤i′ since O⁢P⁢Tα is an online scheduler and cannot look into the future to know that the mode switch will occur at time ti′. Also, we can get c^k2,ix⁢(k1,k2) for any ti≥k2 by calculating the amount of x criticality work executed in the interval [k2,i). In this manner, we can run the scheduler for all mode switch possibilities and calculate a consistent S. ⊲

It is straightforward to see that the set S could be used to in our runtime schedule. Therefore, we get the following claim.

Claim 28.

If there is no solution to the linear program, then set S from O⁢P⁢Tα must also not satisfy the LP.

We can now argue that this is impossible if O⁢P⁢Tα is a valid scheduler.

Lemma 29.

If set S does not satisfy the linear program, then O⁢P⁢Tα is not a valid semi-clairvoyant scheduler.

Proof.

We can look at each constraint and check what happens if S does not satisfy the constraint. If S does not satisfies an inequality in (4), then there exists j′,l′,α′,x′ such that:

c^kα′,j′x′⁢(k1,…,kα′)+c^kβ−1,kβx′⁢(k1,…,kβ−1)−c^kβ−1,l′x′⁢(k1,…,kβ−1)+∑y=β+1α′c^ky−1,kyx′⁢(k1,…,ky−1)<∑J∈Skα′,j′x′eα′⁢(J)+∑y=β+1α′(∑J∈Sky−1,j′x′ey−1⁢(J)−∑J∈Sky,j′x′ey−1⁢(J))+∑J∈Sl′,j′x′eβ−1⁢(J)−∑J∈Skβ,j′x′eβ−1⁢(J)

On the LHS, c^kβ−1,kβx′⁢(k1,…,kβ−1)−c^kβ−1,l′x′⁢(k1,…,kβ−1) is the amount of x′ work done by O⁢P⁢Tα in [l′,kβ), ∑y=β+1α′c^ky−1,kyx′⁢(k1,…,ky−1) is the amount of x′ work done by O⁢P⁢Tα in [kβ,kα′) and c^kα′,tj′x′⁢(k1,…,kα′) is the amount of x′ work done by O⁢P⁢Tα in [kα′,j′). So, the LHS is the amount of x′ work done by O⁢P⁢Tα in [tl′,tj′). On the RHS, we have: ∑J∈Sl′,j′x′eβ−1⁢(J)−∑J∈Skβ,j′x′eβ−1⁢(J) is the amount of x′ work arrives in [tl′,kβ) that has deadline tj′, ∑y=β+1α′(∑J∈Sy−1,j′x′ey−1⁢(J)−∑J∈Sy,j′x′ey−1⁢(J)) is the amount of x′ work arrives in [kβ,kα′) that has deadline tj′, and ∑J∈Skα′,j′x′eα′⁢(J) is the amount of x′ work arrives in [kα′,tj′) that has deadline tj′. So the RHS is the amount of x′ work arrives after tl′ and has deadline tj′. If L⁢H⁢S<R⁢H⁢S, then O⁢P⁢Tα must miss the deadline of some x′ criticality job that has deadline tj′. Since O⁢P⁢Tα can schedule the system, O⁢P⁢Tα must satisfies (4).

If S does not satisfy an inequality in (1), then there exists j′,l′,α′,x′ such that:

c^kα′,j′x′⁢(k1,…,kα′)−c^kα′,l′x′⁢(k1,…,kα′)<∑J∈Sl′,j′x′eα′⁢(J)

c^kα′,j′x′⁢(k1,…,kα′)−c^kα′,l′x′⁢(k1,…,kα′) is the amount of x′ work done by O⁢P⁢Tα in [l′,j′) while ∑J∈Sl′,j′x′eα′⁢(J) is the amount of x′ work arrives after tl′ and has deadline tj′. If L⁢H⁢S<R⁢H⁢S, then O⁢P⁢Tα must misses the deadline of some x′ criticality job that has deadline tj′. Since O⁢P⁢Tα can schedule the system, O⁢P⁢Tα must satisfies (1).

If S does not satisfies an inequality in (2), then there exists j′,α′,x′ such that:

c^kα′,j′x′⁢(k1,…,kα′)+∑y=1α′−1c^ky,ky+1x′⁢(k1,…,ky)>∑J∈Skα′,2⁢n−1x′eα′⁢(J)−∑J∈Sj′,2⁢n−1x′eα′⁢(J)+∑y=1α′−1(∑J∈Sky,2⁢n−1x′ey⁢(J)−∑J∈Sky+1,2⁢n−1x′ey⁢(J))

On the LHS, ∑y=1α′−1c^ky,ky+1x′⁢(k1,…,ky) is the amount of x′ work done by O⁢P⁢Tα in [0,kα′) and c^kα′,j′x′⁢(k1,…,kα′) is the amount of x′ work done by O⁢P⁢Tα in [kα′,j′). So, the LHS is the amount of x′ work done by O⁢P⁢Tα in [𝟎,j′). On the RHS, ∑y=1α′−1(∑J∈Sky,2⁢n−1x′ey⁢(J)−∑J∈Sky+1,2⁢n−1x′ey⁢(J)) is the amount of x′ work arrives in [0,kα′) and ∑J∈Skα′,2⁢n−1x′eα′⁢(J)−∑J∈Sj′,2⁢n−1x′eα′⁢(J) is the amount of x′ work arrives in [kα′,j′). So, the RHS is the amount of x′ work arrives before tj′. By definition, LHS cannot be larger than RHS. Thus, O⁢P⁢Tα must satisfies (2).

If S does not satisfies an inequality in (3), then there exists i′,j′,α′ such that:

∑y=α′d(c^kα′,j′y⁢(k1,…,kα′)−c^kα′,i′y⁢(k1,…,kα′))>tj′−ti′

LHS is the total amount of work done by O⁢P⁢Tα in [ti′,tj′) while tj′−ti′ is the amount of time available between ti′ and tj′. Since O⁢P⁢Tα can schedule this system, LHS cannot greater than RHS. Thus, O⁢P⁢Tα must satisfies (3).

Therefore, O⁢P⁢Tα must satisfies all constrains of LP, which is a contradiction. Thus, if there is no solution to the LP, the system is unschedulable. ◀

6 Related Work

Since it was first considered, mixed criticality model has been studied extensively [12, 20, 21, 13, 24, 19, 18, 9, 14, 15, 17] (see [10] for a survey). While most of this work is on recurrent tasks, there has also been significant work on jobs.

Most prior work considers the non-clairvoyant model where the system discovers the runtime mode of a job as it executes. Baruah et al. [6] developed Own Criticality Based Priority (OCBP) which provides the optimal speedup bound for jobs in the non-clairvoyant setting. Several runtime mechanisms have also been explored empirically. Baruah and Burns [3] demonstrated that it is practical to implement a MCS with run-time monitoring, which led to the formal introduction of a theoretical framework [4]. Static Mixed Criticality (SMC) and Adaptive Mixed Criticality (AMC) [4] are the continuation of OCBP by allowing run-time monitoring. Most work on mixed criticality systems considers the case where the system mode monotonically increases – as jobs arrive with higher runtime mode, the system criticality increases and lower criticality jobs are discarded, but some systems [22, 7, 8] allow systems to switch back to lower criticality mode.

In 2019, Agrawal et al. [2] introduced the notion of semi-clairvoyance that is used in this paper. Burns and Davis [11] provided an analysis of AMC algorithm in dual-criticality system with semi-clairvoyant behavior. Zhao et al [25] examine the integration of AMC, Preemption Threshold Scheduling(PTS) and semi-clairvoyance. Baruah and Ekberg [5] study graceful degradation (ensure less criticality jobs can be dropped safely during mode switch) for semi-clairvoyant systems. Jiang et al. [16] proposed the notion of quarter-clairvoyance, where execution time is revealed not when a job is released but when it is executed for a certain amount of time.

7 Conclusions

In this paper, we provide tight upper and lower bounds of (2m−1)/2m−1 on the speedup required to schedule feasible mixed criticality jobs in the semi-clairvoyant model. In addition, we provide a linear program which can (instance)-optimally schedule a system of semi-clairvoyant jobs with arbitrary criticality levels. While the running time of the LP is exponential in the number of criticalities, this seems unavoidable and is also potentially not too onerous given that the number of criticalities is typically small. We also provide EDF-Zeno, which (while not instance optimal) provides the optimal speedup bound for semi-clairvoyant jobs. While we use it as an analysis tool, it can also be used as a scheduling algorithm if one does not want to solve the linear program.

This work demonstrates the significant advantage of semi-clairvoyance over non-clairvoyance since there are functionally no nontrivial speedup bounds for non-clairvoyant schedulers for more than 2 criticality levels and solving the scheduling problem is NP-complete even for two criticality levels. This indicates that getting the information about mode switches early and at a predictable time is a significant benefit and any systems which can implement semi-clairvoyance or variants thereof should attempt to do so since it can lead to significant advantages in schedulability. In particular, there is a small marginal cost for adding additional criticality levels, which would allow system designers more flexibility in their design.

There are several open questions. First, could one either design an exact algorithm for semi-clairvoyance which runs in polynomial time in the number of jobs and criticalities or prove that it is impossible. In addition, speedup bounds for semi-clairvoyant tasks (especially non-implicit deadline tasks) has not been studied at all, to the best of our knowledge. Finally, how much can we relax semi-clairvoyance and still get optimal algorithms and good speedup bounds relative to full non-clairvoyance?

References

  • [1] Kunal Agrawal and Sanjoy K. Baruah. Intractability issues in mixed-criticality scheduling. In Sebastian Altmeyer, editor, 30th Euromicro Conference on Real-Time Systems, ECRTS 2018, Barcelona, Spain, July 3-6, 2018, volume 106 of LIPIcs, pages 11:1–11:21. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2018. doi:10.4230/LIPIcs.ECRTS.2018.11.
  • [2] Kunal Agrawal, Sanjoy K. Baruah, and Alan Burns. Semi-clairvoyance in mixed-criticality scheduling. In IEEE Real-Time Systems Symposium, RTSS 2019, Hong Kong, SAR, China, December 3-6, 2019, pages 458–468. IEEE, IEEE, 2019. doi:10.1109/RTSS46320.2019.00047.
  • [3] Sanjoy K. Baruah and Alan Burns. Implementing mixed criticality systems in ada. In Alexander B. Romanovsky and Tullio Vardanega, editors, Reliable Software Technologies - Ada-Europe 2011 - 16th Ada-Europe International Conference on Reliable Software Technologies, Edinburgh, UK, June 20-24, 2011. Proceedings, volume 6652 of Lecture Notes in Computer Science, pages 174–188. Springer, Springer, 2011. doi:10.1007/978-3-642-21338-0_13.
  • [4] Sanjoy K. Baruah, Alan Burns, and Robert I. Davis. Response-time analysis for mixed criticality systems. In Proceedings of the 32nd IEEE Real-Time Systems Symposium, RTSS 2011, Vienna, Austria, November 29 - December 2, 2011, pages 34–43. IEEE, IEEE Computer Society, 2011. doi:10.1109/RTSS.2011.12.
  • [5] Sanjoy K. Baruah and Pontus Ekberg. Graceful degradation in semi-clairvoyant scheduling. In Björn B. Brandenburg, editor, 33rd Euromicro Conference on Real-Time Systems, ECRTS 2021, Virtual Conference, July 5-9, 2021, volume 196 of LIPIcs, pages 9:1–9:21. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2021. doi:10.4230/LIPIcs.ECRTS.2021.9.
  • [6] Sanjoy K. Baruah, Haohan Li, and Leen Stougie. Mixed-criticality scheduling: Improved resource-augmentation results. In Thomas Philips, editor, Proceedings of the ISCA 25th International Conference on Computers and Their Applications, CATA 2010, March 24-26, 2010, Sheraton Waikiki Hotel, Honolulu, Hawaii, USA, pages 217–223. ISCA, 2010.
  • [7] Iain Bate, Alan Burns, and Robert I. Davis. A bailout protocol for mixed criticality systems. In 27th Euromicro Conference on Real-Time Systems, ECRTS 2015, Lund, Sweden, July 8-10, 2015, pages 259–268. IEEE, IEEE Computer Society, 2015. doi:10.1109/ECRTS.2015.30.
  • [8] Iain Bate, Alan Burns, and Robert I. Davis. An enhanced bailout protocol for mixed criticality embedded software. IEEE Trans. Software Eng., 43(4):298–320, 2017. doi:10.1109/TSE.2016.2592907.
  • [9] Alan Burns and Robert Davis. Mixed Criticality Systems - A Review : (13th Edition, February 2022). White Rose Research Online, February 2022.
  • [10] Alan Burns and Robert I. Davis. A survey of research into mixed criticality systems. ACM Comput. Surv., 50(6):82:1–82:37, 2018. doi:10.1145/3131347.
  • [11] Alan Burns and Robert I. Davis. Schedulability analysis for adaptive mixed criticality systems with arbitrary deadlines and semi-clairvoyance. In 41st IEEE Real-Time Systems Symposium, RTSS 2020, Houston, TX, USA, December 1-4, 2020, pages 12–24. IEEE, IEEE, 2020. doi:10.1109/RTSS49844.2020.00013.
  • [12] Lia Cagnizi, Federico Reghenzani, and William Fornaciari. Poster abstract: Run-time dynamic WCET estimation. In Proceedings of the 8th ACM/IEEE Conference on Internet of Things Design and Implementation, IoTDI 2023, San Antonio, TX, USA, May 9-12, 2023, IoTDI ’23, pages 458–460, New York, NY, USA, 2023. ACM. doi:10.1145/3576842.3589168.
  • [13] Akanksha Chaudhari and Sanjoy K. Baruah. Efficient schedulability analysis of semi-clairvoyant sporadic task systems with graceful degradation. In Yasmina Abdeddaïm, Liliana Cucu-Grosjean, Geoffrey Nelissen, and Laurent Pautet, editors, RTNS 2022: The 30th International Conference on Real-Time Networks and Systems, Paris, France, June 7 - 8, 2022, RTNS ’22, pages 116–126, New York, NY, USA, 2022. ACM. doi:10.1145/3534879.3534881.
  • [14] Pontus Ekberg and Wang Yi. Bounding and shaping the demand of generalized mixed-criticality sporadic task systems. Real Time Syst., 50(1):48–86, January 2014. doi:10.1007/s11241-013-9187-z.
  • [15] Zhishan Guo, Luca Santinelli, and Kecheng Yang. EDF schedulability analysis on mixed-criticality systems with permitted failure probability. In 21st IEEE International Conference on Embedded and Real-Time Computing Systems and Applications, RTCSA 2015, Hong Kong, China, August 19-21, 2015, pages 187–196. IEEE Computer Society, 2015. doi:10.1109/RTCSA.2015.8.
  • [16] Zhe Jiang, Kecheng Yang, Nathan Fisher, Neil C. Audsley, and Zheng Dong. Pythia-mcs: Enabling quarter-clairvoyance in i/o-driven mixed-criticality systems. In 41st IEEE Real-Time Systems Symposium, RTSS 2020, Houston, TX, USA, December 1-4, 2020, pages 38–50. IEEE, IEEE, 2020. doi:10.1109/RTSS49844.2020.00015.
  • [17] Jaewoo Lee, Kieu-My Phan, Xiaozhe Gu, Jiyeon Lee, Arvind Easwaran, Insik Shin, and Insup Lee. Mc-fluid: Fluid model-based mixed-criticality scheduling on multiprocessors. In Proceedings of the IEEE 35th IEEE Real-Time Systems Symposium, RTSS 2014, Rome, Italy, December 2-5, 2014, pages 41–52. IEEE Computer Society, 2014. doi:10.1109/RTSS.2014.32.
  • [18] Ruixiao Li, Fahao Chen, and Peng Li. Semi-clairvoyant scheduling of speculative decoding requests to minimize LLM inference latency. In Proceedings of the Thirty-Fourth International Joint Conference on Artificial Intelligence, IJCAI 2025, Montreal, Canada, August 16-22, 2025, IJCAI ’25, pages 8554–8562. ijcai.org, 2025. doi:10.24963/ijcai.2025/951.
  • [19] Behnaz Ranjbar, Tuan D. A. Nguyen, Alireza Ejlali, and Akash Kumar. Power-aware runtime scheduler for mixed-criticality systems on multicore platform. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst., 40(10):2009–2023, 2021. doi:10.1109/TCAD.2020.3033374.
  • [20] Federico Reghenzani, Zhishan Guo, Luca Santinelli, and William Fornaciari. A mixed-criticality approach to fault tolerance: Integrating schedulability and failure requirements. In 28th IEEE Real-Time and Embedded Technology and Applications Symposium, RTAS 2022, Milano, Italy, May 4-6, 2022, pages 27–39. IEEE, 2022. doi:10.1109/RTAS54340.2022.00011.
  • [21] Amir Hassan Safizadeh, Sepideh Safari, Shayan Shokri, and Shaahin Hessabi. Energy-aware fault-tolerant mapping of mixed-criticality tasks on heterogeneous multicores. IEEE Trans. Sustain. Comput., 10(4):756–767, 2025. doi:10.1109/TSUSC.2025.3532766.
  • [22] François Santy, Gurulingesh Raravi, Geoffrey Nelissen, Vincent Nélis, Pratyush Kumar, Joël Goossens, and Eduardo Tovar. Two protocols to reduce the criticality level of multiprocessor mixed-criticality systems. In Michel Auguin, Robert de Simone, Robert I. Davis, and Emmanuel Grolleau, editors, 21st International Conference on Real-Time Networks and Systems, RTNS 2013, Sophia Antipolis, France, October 17-18, 2013, pages 183–192. ACM, 2013. doi:10.1145/2516821.2516834.
  • [23] Steve Vestal. Preemptive scheduling of multi-criticality systems with varying degrees of execution time assurance. In Proceedings of the 28th IEEE Real-Time Systems Symposium (RTSS 2007), 3-6 December 2007, Tucson, Arizona, USA, pages 239–243. IEEE, IEEE Computer Society, 2007. doi:10.1109/RTSS.2007.47.
  • [24] Yiwen Zhang and Hui Zheng. Energy-aware reliability guarantee scheduling with semi-clairvoyant in mixed-criticality systems. J. Syst. Archit., 156(C):103269, November 2024. doi:10.1016/j.sysarc.2024.103269.
  • [25] Qingling Zhao, Mengfei Qu, Bo Huang, Zhe Jiang, and Haibo Zeng. Schedulability analysis and stack size minimization for adaptive mixed criticality scheduling with semi-clairvoyance and preemption thresholds. J. Syst. Archit., 124:102383, 2022. doi:10.1016/j.sysarc.2021.102383.