A fault tolerant architecture for supervisory control of discrete event systems