An implementation guide to real-time programming