Cross-Layer Reliability of Computing Systems