Processes are distributed over processors that share directly accessible memory. Processes exchange messages via memory. Algorithms are specified which satisfy the atomic multicast requirements under two fault hypotheses: (1) fail-stop memory and fail stop processes and (2) fail-stop memory and processes with timing failures. It is shown that the algorithms can be applied under different scheduling conditions: (1) hard real-time (HRT) applications composed of periodically scheduled tasks and (2) HRT applications with tasks scheduled according to a static off-line calculated schedule. The performance measurements on an implementation of two algorithms are presented.