Hard real-time is fundamentally about never agreeing to start something you can’t finish.
It has nothing at all to do with throughput. What matters is whether there are any unbounded or loosely bounded operations in your call tree. Like memory management bookkeeping.
I worked with Aicas’ hard real-time VM for three years, although we were not using those features. Among other things, they had to implement their own amortizing garbage collector to do it. You’d need something similar for Rust to handle object life cycles. It’s also common to divide memory into regions so that different classes of traffic can’t exhaust system memory.
It has nothing at all to do with throughput. What matters is whether there are any unbounded or loosely bounded operations in your call tree. Like memory management bookkeeping.
I worked with Aicas’ hard real-time VM for three years, although we were not using those features. Among other things, they had to implement their own amortizing garbage collector to do it. You’d need something similar for Rust to handle object life cycles. It’s also common to divide memory into regions so that different classes of traffic can’t exhaust system memory.