Conversation

Replying to and
Let's start with the definition of "hard realtime" here. "hard realtime" means that there is an upper bound on the execution of an operation. It says nothing about the absolute latency. malloc() in C is a good example. It's usually pretty quick, but it is not realtime.
2
Replying to
They all traverse a list of free chunks to find the next one that's big enough to satisfy the allocation. I once was paid to write the realtime control software for an atomic force microscope. I know that stuff well enough.
2
Replying to and
Modern allocators are almost always O(1) with dedicated size classes for small allocations. For larger allocations, they're either O(1) with approximate best-fit via buckets of free space sizes (more fragmentation) or O(log n) for precise address ordered best-fit. No traversals.
1
2