Skip to content
@DYResearch

DY Research

Real-time systems work with the arithmetic shown. Integer bounds, checked operations, refusal over approximation.

DY Research

Real-time timing analysis with the arithmetic shown.

Site Audit

Rust Licence Contact


Start here

Two tasks. One number. Most implementations get it wrong.

task A   100 µs every  400 µs   ← higher priority
task B   200 µs every 1000 µs

What is B's worst-case response time?

The obvious answer is 400 µs — two activations of A fit inside B's 1000 µs period, so 200 + 2×100. It is wrong.

The correct answer is 300 µs. The window that counts is the response time, not the period: at R = 200 one activation fits, giving 300; at R = 300 still one, so 300 is the fixed point.

Here the mistake is conservative and the system merely looks worse than it is. Change the periods and it inverts — the wrong method reports a deadline met that is missed on hardware. Both answers are plausible, neither is flagged, and a test written by whoever wrote the bug passes.

Check it in thirty seconds:

git clone https://github.com/DYResearch/dy-wcet && cd dy-wcet && cargo test

The case above is a_lower_priority_task_pays_for_every_preemption, one of forty-nine.


Real-time systems are full of numbers that nobody can reproduce. A worst-case bound computed in floating point differs in its last bits between compilers. An analysis that caps its iteration returns a number that looks like an answer. A sum that wraps turns a system that misses deadlines into one that appears to meet them.

None of these fail loudly. All of them fail in the direction that flatters the result.

The work here is narrower than a platform and more specific than a library: the pieces of real-time analysis where the arithmetic decides the answer, written so that the arithmetic can be checked.


Checked against a second implementation

The AxonOS kernel carries its own response-time analysis, written months earlier for a different reason. The two agree on a shared task set — and the first attempt at that comparison is the part worth reading.

It used a set whose execution times summed to less than the shortest period, so no task activated twice inside any response window. Every ceiling was 1, the fixed point was the first value tried, and what had been verified was addition. The set now used takes three iterations on its lowest-priority task.

The derivation, iteration by iteration →

Both implementations are by the same author, so this is not independent verification. A shared misreading of the recurrence would agree with itself perfectly, which is why every figure there is derived rather than asserted.

What that means in practice

Integers, everywhere the result matters. Same input, same bits, any machine. A property a floating-point implementation cannot offer and a test cannot pin.

Refusal over approximation. When a computation has no answer, it returns that — not the last value before the loop gave up. An infinite response time fails every deadline comparison it is put into, which is the safe direction.

Checked arithmetic as a rule, not a habit. Overflow is reported. A wrapped sum in a schedulability test is the single worst arithmetic error available, because it converts a real failure into an apparent success.

No dependencies where none are needed. A crate that computes a bound should not pull in a runtime to do it.


Schedulability audit

You send a task set. I return a response-time analysis, with every iteration written out, and signed.

For teams where a missed deadline is a machine acting late rather than a dropped frame. The tool is open and free; what is paid for is someone reading the set, naming the assumptions it rests on, and standing behind the result.

→ What it covers, what it does not, and a worked example

connect@axonos.org · payment in Dogecoin


Repositories

What it is
dy-wcet Response-time analysis for fixed-priority task sets. Integer throughout; non-convergence and overflow both return an explicit unschedulable result.

What is not claimed

No hardware measurements are published here. These crates compute bounds from execution times somebody else established, and a bound is only as good as its inputs — if those come from a spreadsheet rather than an oscilloscope, the result is arithmetic about a guess. The distinction is stated in each crate rather than left to a reader.

No comparative benchmark against other real-time platforms has been performed.

Who

Denis Yermakou. Also the author of AxonOS, a real-time operating layer for brain–computer interfaces, where these problems arrived first and where the answers are used.

Licensing

Apache-2.0 OR MIT for code, at your option. Every source file carries its SPDX identifier and its copyright line.


DY Research · connect@axonos.org · axonos.org

© 2026 Denis Yermakou

Popular repositories Loading

  1. .github .github Public

    Organisation profile for DY Research.

    1

  2. dy-wcet dy-wcet Public

    Worst-case response time for fixed-priority task sets, in integer arithmetic that refuses rather than rounds. no_std, zero dependencies.

    Rust 1

  3. DYResearch.github.io DYResearch.github.io Public

    DY Research — real-time timing analysis with the arithmetic shown.

    HTML 1

  4. dy-blocking dy-blocking Public

    Blocking terms derived from a resource graph, not estimated.

    1

  5. dy-trace dy-trace Public

    Execution-time inputs with their confidence stated.

    1

  6. dy-certify dy-certify Public

    A signed schedulability certificate an auditor can re-run.

Repositories

Showing 6 of 6 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…