결함 허용
결함허용에는 4가지 방식이 있다
1. 결함탐지 - Fault Detection : 시스템은 시스템장애를 유발 할 수있는 결함을 탐지해야 함
-> 시스템상태가 일관성이 있는가를 검사
2. 손상측정 - Damage Assetment : 결함에 영향을 받은 시스템상태의 부분을 탐지
3. 결함복구 - Fault Recovery : 알려진 '안전' 상태로 복구 (일시적)
전방오류복구 - 손상된 상태를 수정
후방오류복구 - 안정 상태로 회복
4. 결함수리 - Fault Repair - 수정을 통한 결함재발생방지
, SW결함은 일시적 --> 시스템입력의 특별한 조합에 기인
결함 내성 아키텍처
많은 시스템에서 소트프웨어적으로 검사와 복구기능을 포함시켜 결함내성을 구현할 수 있다.
이것을 Defensive programming(방어적 프로그래밍) 이라고 한다. 그러나 이 방법은 H/W와 S/W 의 상호작용으로
생기는 결함에 대해서는 효과적이지 못하다. 따라서 가용성이 중요한 시스템에서는 결함내성을 지원하기 위한
특별한 아키텍쳐가 필요하다.
1.결함내성을 위한 구현기술
기술 | 설명 |
(1) Defensive Programming | - 시스템의 코드에 에러가 있다고 가정하여 상태를 검사하는 코드를 삽입해둔다. - 만약 에러가 감지될 때 이를 처리할 수 있는 코드를 미리 삽입해둔다. - 그러나 이것은 HJ/W와 S/W간의 상호작용으로 발생하는 에러를 처리하기는 어렵다. |
(2) Fault-tolerant 아키텍쳐 | - 결함내성을 지원하는 하드웨서 또는 소프트웨어 아키텍쳐를 사용한다. |
1) H/W결함내성 (Hardware Fault tolerance) ① TMR (Tirple Moduler Redundancy) : 3중모듈중복 (설계결함 < 개별부품장애) : 동일한 입력을 받는 3개의 동일한 컴포넌트를 중복 사용하여 결과를 비교한다. 만약 하나의 결과가 다르다면 그것은 무시되고 컴포넌트는 오류가 발생한 것으로 간주한다. : 설계상의 오류라기 보다는 컴포넌트 자체의 오류를 허용하기 위한 것이며, 동시에 컴포넌트들이 오류를 발생을 일으킬 확률은 아주 낮다. : 하드웨어 컴포넌트는 공통적인 설계 결함을 가지지 않는다. * 하드웨어의 경우에는 동일한 설계의 컴포넌트라 할지라도 서로 다른 결과를내는 경우가 발생하지만 소프트웨어 경우에는 설계가 동일한 경우는 완전히 동일하다고 볼수 있기 때문에 TMR을 동일한 소트프웨어로 실행시킨다는 것은 큰 의미가 없다. 따라서 하드웨어적으로는 TMR이 의미가 있고 소프트웨어적으로는 다른 설계방법으로 구현된것을 가지고 비교하여야 한다 |
|
2) S/W결함내성 (Software Fault tolerance) ① TMR은 기본적으로 다음을 가정하고 있다. * 하드웨어 컴포넌트는 공통적인 설계 결함을 가지지 않는다. * 컴포넌트는 임의적으로 오동작하며. 모든 컴퓨터가 동시에 오동작할 확률은 아주 낫다. ② 하지만 S/W는 이러한 가정이 성립되지 않는다. H/W의 경우에는 동일한 설계의 컴포넌트라 할지라도 서로 다른 결과를 낼 수 있지만 S/W의 경우는 설계가 동일한 경우는 동일하 결과를 내게 되므로 TMR의 비교의미가 없다. 대신 설계의 다양성이 요구된다. 2-1) N버전 프로그래밍 (병행수행) ① 동일명세서에 대해 서로 다른 팀들에 의해 다양한 구현이 이루어진다 . 각각의 버전들은 동시에 입력을 받아 계산을 하고 그 결과를 모아서 비교하게 된다. ② 별도컴퓨터에서 동시실행 시 출력 중 적어도 두 개 버전은 동일 출력값 산출 (1개 버전 결함허용) ③ 구현은 다르지만 둘 이상의 개발팀이 명세서를 구현하기 위해 동일 알고리즘 선택 ④ 예) 철도신호시스템, 항공기, 원자로보호시스템 2-2) 복구블록 (Recovery Block/순차수행) ① 동일한 명세에 대해 명시적으로 다른 버전을 만들어서 순차적으로 실행된다. 각각의 프로그램 컴포넌트는 컴포넌트가 성공적으로 실행되었는지를 점검하고 시험을 포함 장애발견시 시스템 백업 후 계산 반복하도록 대안코드 포함. 순차수행 (HW불필요) ② 각 블록마다 명시적으로 다른 알고리즘 사용 -> 동일오류 발생확률 감소 ** 위 두 방법은 설계와 구현의 다양성. 즉 같은 명세에 대해서는 다른 버전의 소트프웨어는 같은 결함을 가지지 않을 꺼라는 가정에 기초하고 있다 |
2. 결함내성제어기
- SW가 결함내성제어기의 통제하에서 수행필요, 결함을 견디기위해 포함된 단게들이 소프트웨어 실행을 보장 출력을 조사 및 비교해서 출력상이시 복구활동 수행 |
3. 설계와 구현의 다양성 (결함내성기본원리)
- 동일하기 위해 명세서 구현시 다양한 기법사용 시 SW의 상이한 버전이 똑 같은 결함을 포함하지 않아 공통적인 |
'CA' 카테고리의 다른 글
CPU 스케줄링 알고리즘 (0) | 2019.10.15 |
---|