Answer should be (D) ,
Reliability can be defined as the probability that a system will produce correct outputs up to some given time t. Reliability is enhanced by features that help to avoid, detect and repair hardware faults. A reliable system does not silently continue and deliver results that include uncorrected corrupted data.
Availability means the probability that a system is operational at a given time, i.e. the amount of time a device is actually operating as the percentage of total time it should be operating. reference@http://en.wikipedia.org/wiki/Reliability,_availability_and_serviceability_(computing)
Now ,
since "The program is considered to have failed if any of these modules fails" so both module in series then the reliability of two program module ,
Reliability = Reliability of M1* Reliability of M2
Reliability of M1 = (MTTF1) /(MTTF1+MTTR1) = T1 /(T1+R1) ;
Reliability of M2 = (MTTF2) /(MTTF2+MTTR2) = T2 /(T2+R2) ,
so ,
Reliability = Reliability of M1* Reliability of M2 = (T1 /(T1+R1)) * (T2 /(T2+R2))
= (T1*T2) / ((T1+R1)*(T2+R2)) = (T1*T2) / (T1*T2+T1*R2+R1*T2+R1*R2) ,
{ since "modules M1 and M2 that can fail independently, but never simultaneously" , so R1*R2 can be ignore for high availability of the program}
therefore availability of overall program = (T1*T2) / (T1*T2+T1*R2+R1*T2)
notes@http://www.sars.org.uk/old-site-archive/BOK/Applied%20R&M%20Manual%20for%20Defence%20Systems%20(GR-77)/p4c06.pdf
correct me ..... ???