Constant-complexity deterministic memory allocator (heap) for hard real-time high-integrity embedded systems