3.1 마코프 체인 모델
제안된 QMR 시스템에 대한 마코프 체인 모델을 유도하기 위해 먼저 각 프로세서에서 발생하는 고장이 발생률 λ를 가진 포와송(Poisson) 분포를
따른다고 설정하자. 또 고장 탐지 간격 Δ 내에서 고장이 하나도 없을 확률을 p라 하고, 1개 이상의 고장이 발생할 확률을 q라 하자. p와 q는
다음과 같이 표현된다[10].
p과 q를 이용하여 Δ 내에서 고장이 발생하는 프로세서의 개수에 따른 아래와 같은 세부 확률을 구해 보자.
∙ α : Δ 내에서 5개 프로세서 모두에 고장이 없을 확률
∙ β : Δ 내에서 1개 또는 2개 프로세서에서 고장이 발생할 확률
∙ μ : Δ 내에서 3개 이상의 프로세서에서 고장이 발생할 확률
식 (7)로부터 각각의 확률은 다음과 같이 유도된다.
QMR 시스템 마코프 체인 모델의 상태 변수는 xi,j로 표현한다. 여기서 i는 QMR 시스템이 지금까지 i번의 동기화 과정을 실행했다는 의미이며,
j는 상태 xi,j에서 다음에 실행되어야 하는 태스크 조각은 Tj+1이라는 뜻이다(j=nm일 때는 시스템이 현재 상태에 계속 머무른다). i와 j는
각각 0≤i≤w와 0≤j≤nm의 범위를 가지므로 마코프 체인의 총 상태 개수는 (w+1)(nm+1)개이다.
그림 4는 본 연구에서 제안하는 QMR 시스템의 확률적인 상태 변화를 마코프 체인으로 모델링한 것이다. 그림 4에서 볼 수 있듯이 마코프 체인의 상태는 (w+1)개의 행으로 배열되어 있으며 각 행은 동기화 횟수가 동일한 nm+1개의 상태로 구성된다. 예를 들어
첫 번째 행은 x0,0,...,x0,nm로 이루어져 있다. 그림 4에서 진한 색의 상태는 체크포인터가 배치된 곳을 나타낸다. 예를 들어 첫 번째 행의 상태 x0,m은 태스크 조각 Tm의 수행이 끝났으므로 고장 탐지
후 체크포인터를 삽입하고 Tm+1을 수행하기 직전의 상태이다. 이를 일반화하면 v번째 체크포인터는 상태 x0,vm에 삽입된다고 말할 수 있다(1≤v≤n).
본 마코프 체인은 다음과 같이 α, β, μ에 의한 세 가지 종류의 확률적 상태 천이를 가진다.
그림 4. 제안된 체크포인터 운영 방식을 가진 QMR 시스템의 마코프 체인 모델
Fig. 4. Markov chain model of the QMR system with the proposed checkpoint management
(i) 확률 α에 의한 상태 천이 :
그림 4의 마코프 체인은 x0,0에서 시작하여 첫 번째 태스크 조각 T1을 실행하는데 이 과정에서 어떠한 프로세서에서도 고장이 발생하지 않으면(확률 α)
다음 상태 x0,1로 천이하여 두 번째 태스크 조각 T2를 실행한다. 마찬가지로 x0,1에서는 α의 확률로 j 값이 1 증가한 x0,2로 천이한다.
그림 4의 마코프 체인 모델의 상태 천이 경로 중 확률 α로 이루어진 것들이 모두 이러한 과정을 나타낸다. 이를 일반화하여 마코프 체인 모델이 현재 상태
xi,j에 있다고 하자. QMR 시스템은 태스크 조각 Tj+1를 실행하는데 이 과정에서 어떠한 프로세서에서도 고장이 발생하지 않았다면(확률 α) 마코프
체인은 다음 상태 xi,j+1로 천이한다. 즉 0≤i≤w, 0≤j<nm에서
이다.
(ii) 확률 β에 의한 상태 천이 :
(i)과 다르게 x0,0에서 T1를 실행할 때 1개 또는 2개의 프로세서에서 확률 β로 고장이 탐지되었다고 가정하자. 이 경우 제안된 방법에 의해
고장이 발생한 프로세서의 복구를 위한 동기화 과정이 수행되며, 고장이 복구된 후에는 다음 태스크 조각 T2가 실행될 수 있다. 따라서 동기화 과정의
횟수를 나타내는 인덱스 i 값이 1 증가하고 T1의 수행이 끝났기 때문에 마코프 체인은 x0,0에서 x1,1로 천이한다. 이를 일반화하여 마코
프 체인이 상태 xi,j에 있을 때 Tj+1의 실행 과정 중 β의 확률로 1~2개의 프로세서에서 고장이 발생하였다고 하자. 앞의 경우와 마찬가지로
QMR은 동기화 과정을 한 번 수행하여 고장을 복구한 후 다음 태스크 조각 Tj+2를 실행할 수 있는 상태를 가지므로 xi+1,j+1로 천이한다.
즉 0≤i<w, 0≤j<nm에서
이다.
(iii) 확률 μ에 의한 상태 천이 :
이번에는 x0,0에서 T1를 실행할 때 3개 이상의 프로세서에서 μ의 확률로 고장이 탐지된 경우를 생각하자. 이 경우에는 다수결 값이 존재하지 않으므로
동기화로 고장을 복구할 수 없다. 따라서 가장 가까운 직전 체크포인터로 회귀하고 저장된 상태 값을 이용하여 태스크 조각을 재수행한다. x0,0에서
가장 가까운 직전 체크포인터는 x0,0 자신에 배치된 것이므로 그림 4에 나타낸 바와 같이 x0,0은 확률 μ의 셀프 루프(self-loop) 천이를 가진다. 현재 상태가 x0,0이 아니라 x0,1이라고 하자. 또 태스크
조각 T2가 실행될 때 고장 탐지 모듈에서 얻어지는 다수결 값이 존재하지 않는다고 하자. 앞의 경우와 마찬가지로 이것은 3개 이상의 프로세서에서 고장이
발생했다는 뜻이므로 QMR 시스템은 직전 체크포인터로 회귀해야 한다. 그런데 그림 4의 첫 번째 상태 행에서 볼 수 있듯이 x0,1에서 가장 가까운 직전 체크포인터 역시 x0,0에 배치된 것이다. 따라서 마코프 체인은 x0,1에서
x0,0으로의 확률적 상태 천이 μ를 가진다.
위의 설명을 일반화하기 위해 마코프 체인이 상태 xi,j에 있을 때 태스크 조각 Tj+1의 실행 중 3개 이상의 프로세서에서 고장을 탐지했다고 가정하자.
QMR 시스템이 회귀해야 할 체크포인터의 위치를 특정하기 위해서 j를 아래와 같이 표현하자.
태스크에는 매 m개의 고장 탐지 모듈마다 체크포인터 한 개가 삽입되기 때문에 xi,j에서 가장 가까운 직전 체크포인터는 v번째 체크포인터이며 이것은
상태 xi,vm에 배치되어 있다. 따라서 QMR 시스템은 상태 xj,vm로 회귀하여 태스크 조각 Tvm+1부터 재실행한다. 즉 0≤i≤w, 0≤j<nm에서
이다. 그림 4의 확률 μ를 가지는 모든 천이가 이 과정을 나타낸다.
xi,nm는 i번의 동기화 과정을 거쳐서 마지막 태스크 조각 Tnm을 실행함으로써 전체 태스크의 실행을 성공적으로 완료한 상태이다(0≤i≤w). xi,nm에
도달한 이후 QMR 시스템은 이 상태에 계속 머문다. xi,nm이 가진 확률 1의 셀프 루프 천이가 이를 표현한다.
3.2 태스크의 실행 성공 확률
본 절에서는 앞에서 도입한 마코프 체인 모델에 기반하여 태스크의 실행 성공 확률을 구한다. 현재까지 수행한 고장 탐지 횟수 k를 마코프 체인 상태
xi,j가 가지는 인수라고 설정하면 xi,j를 k에 대한 함수라고 해석할 수 있다. xi,j의 표현을 확장하여 k번의 고장 탐지를 수행한 후 QMR
시스템이 가지는 상태를 xi,j(k)라고 하자. 또한 πi,j(k)를 QMR 시스템이 xi,j(k)에 도달할 확률이라고 하자. 태스크 실행 성공 확률은
πi,j(k+1)를 이용하여 표현할 수 있기 때문에 각 상태에 대한 확률 πi,j(k+1)를 아래와 같이 먼저 구한다.
(i) 확률 πi,0(k+1) :
πi,0(k+1)는 QMR 시스템이 xi,0(k+1)를 가지는 확률이다. 다시 말하면 QMR 시스템이 i번의 동기화 과정을 거치고 k+1번의 고장
탐지를 수행한 후 상태 xi,0에 도달하는 확률이다(0≤i≤w). 그림 4에서 확인할 수 있듯이 xi,0은 마코프 체인의 첫 번째 열에 위치하며 xi,0에서 첫 번째 태스크 조각 T1이 수행된다. 따라서 QMR 시스템이
xi,0(k+1)를 가지기 위해서는 i번의 동기화와 k번의 고장 탐지가 이미 수행된 이후 T1,...,Tm 중 하나의 태스크 조각을 실행하다가 3개
이상의 프로세서에서 고장이 발생해야 한다. 제안된 고장 극복 알고리듬에 의해 QMR 시스템은 직전 체크포인터로 회귀해야 하는데 T1,...,Tm에
대한 직전 체크포인터는 xi,0에 배치되어 있기 때문이다. 또한 xi,0에서는 T1이 수행되기 때문에 동기화 과정으로는 xi,0에 다시 도달할 수
없다.
i번의 동기화 과정과 k번의 고장 탐지 후 태스크 조각 Th+1를 실행해야 하는 상태는 xi,h(k)이며(0≤h≤m-1), QMR 시스템이 xi,h(k)를
가지는 확률은 앞에서 정의했듯이 πi,h(k)이다. 또한 3개 이상의 프로세서에서 고장이 발생하는 확률은 μ이기 때문에 QMR 시스템은 xi,h(k)에
도달하여 xi,0(k)로 다시 천이할 확률은 μπi,h(k)이다. h=1,...,m-1에 대한 이 확률을 모두 더하면 QMR 시스템이 xi,0(k+1)를
가지는 확률을 구할 수 있다. 따라서 πi,0(k+1)는 다음과 같이 표현된다.
(ii) 확률 πi,vm(k+1) (1≤v≤n-1) :
이번에는 QMR 시스템이 1≤v≤n-1인 xi,vm(k+1)에 도달하는 확률 πi,vm(k+1)를 구해 보자. 상태 xi,vm의 두 번째 인덱스가
m의 배수이기 때문에 v번째 체크포인터가 xi,vm에 삽입되며 태스크 조각 Tvm+1이 수행된다. QMR 시스템이 xi,vm(k+1)에 도달하는 경우는
세 가지이다.
∙ 먼저 xi,vm-1(k)에서 태스크 조각 Tvm을 실행하면서 고장 탐지 과정을 거쳤지만 5개 프로세서에서 고장이 하나도 발생하지 않는 경우이다(확률
α). 고장 탐지 횟수만 1 증가하고 xi,vm-1에서 xi,vm로 천이하기 때문에 QMR 시스템은 xi,vm(k+1)에 도달한다. 이때의 확률은
απi,vm-1(k)로 표현된다.
∙ 다음으로 xi-1,vm-1(k)에서 Tvm을 실행하면서 (k+1)번째 고장 탐지를 한 결과 1~2개의 프로세서에서 고장이 발생하는 경우이다(확률
β). 상태 xi-1,vm-1에 있던 QMR 시스템은 동기화 과정만 한 번 수행한 후 다음 상태 xi,vm로 천이한다(식 (10) 참조). 고장 탐지 횟수가 k+1이 되었기 때문에 QMR 시스템은 xi,vm(k+1)에 도달한다. 이때의 확률은 βπi-1,vm-1(k)로 표현된다.
∙ 마지막으로 i번의 동기화 과정을 거친 후 Tvm+1,...,Tvm+m 중 하나의 태스크 조각 Tvm+h을 수행하면서 (k+1)번째 고장 탐지 과정에서
3개 이상의 프로세서에서 고장이 발생한 것을 인식하는 경우이다(확률 μ). 제안된 알고리듬에 따라 QMR 시스템은 직전 체크포인터가 배치된 상태 xvm으로
회귀하여 Tvm+1부터 재수행하는데 이것은 QMR 시스템이 xi,vm(k+1)에 도달하는 것으로 표현될 수 있다. 해당 확률은 μπi,vm+h(k)이다(0≤h≤m-1).
위의 세 가지 경우의 확률을 모두 더하면 πi,vm(k+1)이 아래와 같이 유도된다(i<0인 경우는 πi,j(k)=0으로 설정한다).
(iii) 확률 πi,nm(k+1) :
마코프 체인 모델의 마지막 열인 j=nm열에 해당하는 상태에 대한 확률 πi,nm(k+1)을 구해 보자. xi,nm(k+1)은 i번의 동기화 과정과
(k+1)번의 고장 탐지 과정 후 QMR 시스템이 상태 xi,nm을 가지는 경우를 나타낸다. QMR 시스템이 xi,nm(k+1)에 도달하는 경우는
앞의 (ii)와 유사하게 다음 세 가지 경우로 나뉜다.
∙ 만약 i번의 동기화 과정과 k번째 고장 탐지 후 모든 태스크 조각의 수행이 끝났다면 (k+1)번째 고장 탐지에서 관측하는 고장 발생 유무와 상관없이
QMR 시스템은 계속 상태 xi,nm에 머무른다. 이 확률은 πi,nm(k)로 표현된다.
∙ 다음으로 그림 4와 식 (9)에서 볼 수 있듯이 상태 xi,nm-1에서 α의 확률로 xi,nm으로 바로 천이하는 경우이다. 다시 말하면 QMR 시스템은 xi,nm-1에서 (k+1)번째
고장 탐지를 수행한 결과(xi,nm-1(k+1)로 표현) 하나도 고장이 발견되지 않았기 때문에 xi,nm으로 천이하며, 이것은 xi,nm(k+1)로
표현된다. 이에 해당하는 확률은 απi,nm-1(k)이다.
∙ 마지막으로 xi-1,nm-1(k)에서 (k+1)번째 고장 탐지 과정에서 1~2개 프로세서에서 고장이 발생했음을 인지하는 경우이다. QMR 시스템은
동기화 과정을 수행하고 상태 xi,nm으로 천이한다. 이 결과 역시 xi,nm(k+1)로 표현되며 이에 해당하는 확률은 βπi-1,nm-1(k)이다
위에서 기술한 세 가지 경우를 합하여 πi,nm(k+1)을 구하면 아래 식과 같다.
(iv) 확률 πi,vm+h(k+1) (1≤v≤n-1, 1≤h≤m-1) :
마지막으로 (i)~(iii)에 해당하지 않는 열 j = vm+h에 대한 확률 πi,vm+h(k+1)을 구해 보자(1≤h≤m-1). 먼저 xi,vm+h-1(k)에
도달한 후 (k+1)번째 고장 탐지 과정에서 고장을 탐지하지 않으면 QMR 시스템은 xi,vm+h(k+1)로 천이한다. 이에 해당하는 확률은 απi,vm+h-1(k)이다.
또한 xi-1,vm+h-1(k)에 도달한 후 (k+1)번째 고장 탐지 과정에서 1~2개 프로세서에서 고장이 발생한 것을 발견하였다면 QMR 시스템은
동기화 과정을 거친 후 xi,vm+h(k+1)에 도달한다. 이 확률은 βπi-1,vm+h-1(k)이다. 앞의 두 경우의 확률을 더하면 πi,vm+h(k+1)은
아래 식과 같다.
식 (13)~(16)을 적용하면 그림 4의 마코프 체인이 임의의 상태에 있을 확률을 구할 수 있다. 이때 고려되어야 할 중요한 조건은 태스크의 수행 시간, 고장 탐지 시간, 동기화 시간을
합한 전체 실행 시간이 데드라인 D를 넘지 않도록 고장 탐지 횟수 k가 제한되어야 한다는 점이다. 태스크의 수행을 D 내에 끝내기 위해서는 기본적으로
nm번의 고장 탐지가 수행되어야 한다. 또 데드라인 이내에 구간 재수행이 가능한 횟수 r(i)는 식 (6)과 같이 동기화 과정 횟수 i에 의존한다.
동기화 과정 횟수가 i일 때 가능한 최대의 고장 탐지 횟수를 ki라고 하자. nm번의 기본 고장 탐지가 수행되어야 하고 구간 재수행을 한 번 실행하면
고장 탐지도 한 번 더 할 수 있기 때문에 아래 식의 관계가 유도된다.
n개의 체크포인터가 동일 간격으로 배치되고 체크포인터 사이에 m번의 고장 탐지가 실행되는 QMR 구조를 가진 실시간 시스템이 데드라인 D 이내에 태스크
실행을 성공시킬 확률을 PD(n,m)이라고 하자. πi,j(k)와 식 (17)에서 구한 ki를 이용하여 PD(n,m)을 유도해보자. 총 i번의 동기화 과정을 거친 후 태스크 수행이 완료되기 위해서는 ki번째 고장 탐지까지 nm개의
태스크 조각이 모두 실행 완료되어야 한다. 이에 해당하는 확률은 정의에 따라서 πi,nm(ki)로 표현된다. 그런데 동기화 횟수 i는 0에서 w까지
변할 수 있기 때문에 PD(n,m)은 (w+1)개의 개별 확률 π0,nm(ki),...,πw,nm(ki)를 모두 더한 값이 된다. 따라서 데드라인
이내에서 태스크의 실행을 성공할 확률 PD(n,m)은 다음과 같이 얻어진다.
QMR 시스템은 초기에 상태 x0,0에 머무르기 때문에 각 상태에서의 초기 확률값은 π0,0(0)=1, πi,j(0)=0이다 (i≠0, j≠0).