In addition to a specification of real-time scheduling, various task and system models, and a large library of utility lemmas, Prosa contains several higher-level theorems of general interest to the real-time systems community, which we refer to as the main results.
For ease of reference, this page provides an overview of the main results formalized and proven correct in Prosa to date.
The following results are part of “modern Prosa,” the current, actively maintained branch of Prosa.
prosa.results.optimality.edf — optimality of Earliest-Deadline-First (EDF) scheduling on an ideal uniprocessorprosa.results.generality.gel — generality of (Global) EDF-Like (GEL) scheduling on an ideal uniprocessorprosa.results.generality.elf — generality of EDF-Like within Fixed priorities (ELF) scheduling on an ideal uniprocessorAll RTAs support a quite general setting: sporadic tasks characterized by arbitrary arrival curves and with arbitrary deadlines.
| Scheduling Policy | Preemption Model | RTA in Prosa |
|---|---|---|
| FIFO | any | prosa.results.rta.ideal.fifo.bounded_nps |
| EDF | fully preemptive | prosa.results.rta.ideal.edf.fully_preemptive |
| EDF | floating non-preemptive sections | prosa.results.rta.ideal.edf.floating_nonpreemptive |
| EDF | segmented limited-preemptive | prosa.results.rta.ideal.edf.limited_preemptive |
| EDF | fully non-preemptive | prosa.results.rta.ideal.edf.fully_nonpreemptive |
| FP | fully preemptive | prosa.results.rta.ideal.fp.fully_preemptive |
| FP | floating non-preemptive sections | prosa.results.rta.ideal.fp.floating_nonpreemptive |
| FP | segmented limited-preemptive | prosa.results.rta.ideal.fp.limited_preemptive |
| FP | fully non-preemptive | prosa.results.rta.ideal.fp.fully_nonpreemptive |
| Scheduling Policy | Preemption Model | RTA in Prosa |
|---|---|---|
| FIFO | any | prosa.results.rta.ovh.fifo.bounded_nps |
| EDF | fully preemptive | prosa.results.rta.ovh.edf.fully_preemptive |
| EDF | floating non-preemptive sections | prosa.results.rta.ovh.edf.floating_nonpreemptive |
| EDF | segmented limited-preemptive | prosa.results.rta.ovh.edf.limited_preemptive |
| EDF | fully non-preemptive | prosa.results.rta.ovh.edf.fully_nonpreemptive |
| FP | fully preemptive | prosa.results.rta.ovh.fp.fully_preemptive |
| FP | floating non-preemptive sections | prosa.results.rta.ovh.fp.floating_nonpreemptive |
| FP | segmented limited-preemptive | prosa.results.rta.ovh.fp.limited_preemptive |
| FP | fully non-preemptive | prosa.results.rta.ovh.fp.fully_nonpreemptive |
| Scheduling Policy | Preemption Model | RTA in Prosa |
|---|---|---|
| FP | fully non-preemptive | prosa.results.rta.exc.fp.fully_nonpreemptive |
| Scheduling Policy | Preemption Model | RTA in Prosa |
|---|---|---|
| FIFO | any | prosa.results.rta.prm.fifo.bounded_nps |
| EDF | fully preemptive | prosa.results.rta.prm.edf.fully_preemptive |
| EDF | floating non-preemptive sections | prosa.results.rta.prm.edf.floating_nonpreemptive |
| EDF | segmented limited-preemptive | prosa.results.rta.prm.edf.limited_preemptive |
| EDF | fully non-preemptive | prosa.results.rta.prm.edf.fully_nonpreemptive |
| FP | fully preemptive | prosa.results.rta.prm.fp.fully_preemptive |
| FP | floating non-preemptive sections | prosa.results.rta.prm.fp.floating_nonpreemptive |
| FP | segmented limited-preemptive | prosa.results.rta.prm.fp.limited_preemptive |
| FP | fully non-preemptive | prosa.results.rta.prm.fp.fully_nonpreemptive |
Also known as the Rate-Delay Model.
| Scheduling Policy | Preemption Model | RTA in Prosa |
|---|---|---|
| FIFO | any | prosa.results.rta.arm.fifo.bounded_nps |
| EDF | fully preemptive | prosa.results.rta.arm.edf.fully_preemptive |
| EDF | floating non-preemptive sections | prosa.results.rta.arm.edf.floating_nonpreemptive |
| EDF | segmented limited-preemptive | prosa.results.rta.arm.edf.limited_preemptive |
| EDF | fully non-preemptive | prosa.results.rta.arm.edf.fully_nonpreemptive |
| FP | fully preemptive | prosa.results.rta.arm.fp.fully_preemptive |
| FP | floating non-preemptive sections | prosa.results.rta.arm.fp.floating_nonpreemptive |
| FP | segmented limited-preemptive | prosa.results.rta.arm.fp.limited_preemptive |
| FP | fully non-preemptive | prosa.results.rta.arm.fp.fully_nonpreemptive |
| Scheduling Policy | Preemption Model | RTA in Prosa |
|---|---|---|
| FIFO | any | prosa.results.rta.rs.fifo.bounded_nps |
| EDF | fully preemptive | prosa.results.rta.rs.edf.fully_preemptive |
| EDF | floating non-preemptive sections | prosa.results.rta.rs.edf.floating_nonpreemptive |
| EDF | segmented limited-preemptive | prosa.results.rta.rs.edf.limited_preemptive |
| EDF | fully non-preemptive | prosa.results.rta.rs.edf.fully_nonpreemptive |
| FP | fully preemptive | prosa.results.rta.rs.fp.fully_preemptive |
| FP | floating non-preemptive sections | prosa.results.rta.rs.fp.floating_nonpreemptive |
| FP | segmented limited-preemptive | prosa.results.rta.rs.fp.limited_preemptive |
| FP | fully non-preemptive | prosa.results.rta.rs.fp.fully_nonpreemptive |
| ELF | fully preemptive | prosa.results.rta.rs.elf.fully_preemptive |
| ELF | floating non-preemptive sections | prosa.results.rta.rs.elf.floating_nonpreemptive |
| ELF | segmented limited-preemptive | prosa.results.rta.rs.elf.limited_preemptive |
| ELF | fully non-preemptive | prosa.results.rta.rs.elf.fully_nonpreemptive |
Additionally, the following results may be found in classic Prosa, an earlier version of Prosa developed until 2020.
Response-time analysis of time-partitioned scheduling (i.e., table-driven scheduling or TDMA) on an ideal uniprocessor assuming sporadic tasks (without release jitter): prosa.classic.analysis.uni.basic.tdma_rta_theory and tdma_wcrt_analysis
Response-time analysis of FP scheduling with release jitter on an ideal uniprocessor assuming sporadic tasks: prosa.classic.analysis.uni.jitter.fp_rta_theory and fp_rta_comp
Suspension-oblivious response-time analysis of FP scheduling assuming sporadic tasks with dynamic self-suspensions on an ideal uniprocessor: prosa.classic.analysis.uni.susp.dynamic.oblivious
Suspension-aware response-time analysis of FP scheduling assuming sporadic tasks with dynamic self-suspensions on an ideal uniprocessor, by reduction to a jitter-aware response-time analysis: prosa.classic.analysis.uni.susp.dynamic.jitter.rta_by_reduction
Weak sustainability of job costs and varying suspension times in the dynamic suspension model: prosa.classic.analysis.uni.susp.sustainability.allcosts.main_claim
Response-time analysis of Global EDF (G-EDF) on an ideal identical multiprocessor for…
Response-time analysis of Global FP (G-FP) on an ideal identical multiprocessor for…
Response-time analysis of Arbitrary Processor Affinity (APA) scheduling for sequential sporadic tasks without release jitter, with job priorities determined according to…