CheckPointing

          Two common forms of time redundancy in processors consist repeating an instruction or a section of a program which has failed. These techniques require relatively few hardware and software resources and have proved to be very efficient against transient faults.
 
            Checkpointing consist of saving the process state every so often. If the process fails, it can be started from the last checkpoint, rather than having to go back to the very beginning. Here, the issue is where to place the checkpoints along the execution path, so that some measure of the performance is optimized.
 

 

Running the Applet

User will need to fill textboxes, shown in orange color.

        First textbox is   "Probability that fault is permanent". This is defined as S in the formulas shown below.. As we know failure may be either transient  or permanent. It is a fact that
Prob(failure is transient) + Prob(failure is permanent) = 1.

        Second is           : "Average Number of Instructions per program". This is defined as 'L'

        Third is               : "Required setup time, when a permanent failure happens."  This is defined as delta1.

        Fourth is             : "Required Diagnosis and repair time when a permanent failure happens". This is defines as 'delta2'

        Second  ScrollPane is also an input field which consist of  each instructions failure, recover rates. Also time and frequnce values. Key point here is total frequnce for all instructions should be 1.

        Finally output :
Outputs are in an order way: P ( C ) , P (RB1 ) , P (RB2 ) and  P (PF )  , tau1, tau2 that we tried to formulate below.
 

Some other variables that have been defined in the formulas are :
 
W       -->  Mean time spent for one instruction . This can be found by addition of each instructions time value multiplied by its frequence.
M        -->  Number of instructions between two checkpoints. In this java applet it is limited by at most 10. In real it may be 150 or more.
delta1 -->  Required setup time, which is a user input
delta2 -->  Required diagnosis and  repair time., which was an   user input as well.
f          -->  Frequency of a specific type of instruction.
t         -->   Time cost of a specific type of instruction.
tau1    -->   Required time for  one rollback run.
tau2    -->   Required time for two rollback run.
 
The aim of this applet is finding probability measures for a process, which may consist of at most 10 different instructions.  If we define these mutually exclusive events occuring during the execution of an instruction:
We denote P ( C ) , P (RB1 ) , P (RB2 ) and  P (PF )   the probabilities of events H ( C ) , H (RB1 ) , H (RB2 ) and  H (PF ) .
These probabilities should satisfy: P ( C ) + P (RB1 ) + P (RB2 ) +  P (PF )  = 1.
Let Pi ( C ) , Pi(RB1 ) , Pi (RB2 ) and  Pi(PF )  denote the conditional probabilities of the above events, given that the instruction is of type of i. Once these conditional probabilities are calculated, the unconditional probabilities are obtained by averaging over i with respect to f1, ....fN

                       P (J )  = (    f1 * P1(J )    +     f2 * P2(J )    +........+    fN * PN(J )     )   where (j = C,RB1,RB2,PF)

We proceed now to calculate these conditional probabilities. First:
 

Pi ( C )      =  P0(lambdai , T i ) = e (- lambdai * Ti )

Pi (RB1 )     =  P¯00( (1-S) * lambdai, µi, ti, ti) *  P0(S*lambdai , T i ) *  (Pi( C ) / M)   *   ( ( (1 -P C )M )/(1 -P C ) )

Pi (RB2 )    =  P¯00( (1-S) * lambdai, µi, ti, ti) *  P0(S*lambdai , T i ) * Pi(RB1 )

Pi (PF )     =  1 - Pi( C ) - Pi ( RB1 ) - Pi (RB2 )

If we denote T¬  = ( f1*T1 + f2* T2 +...+ fN* TN)

Mean time required to successfully execute an instruction with a one rollback will be :

tau1 =  T¬  + P (RB1 ) * (delta1 + ((M+1)/2) * (T¬)   ) + P (PF )* (delta1 + ((M+1)/2) * (T¬) + delta2 +(L+1)*(W/2)   )


Mean time required to successfully execute an instruction with two rollback will be :

tau2 =  T¬  + P (RB1 ) * (delta1 + ((M+1)/2) * (T¬)   )+ P (RB2 )* ( (2* delta1) + (M+1)* (T¬) )+ P (PF )* ( (2*delta1)+(M+1)* (T¬) + delta2 + (L+1)*(W/2) )