KR101192202B1 - 내장형 운영체제 기반의 응용프로그램에서 고장 감지 방법 및 시스템 - Google Patents

내장형 운영체제 기반의 응용프로그램에서 고장 감지 방법 및 시스템 Download PDF

Info

Publication number
KR101192202B1
KR101192202B1 KR1020110027806A KR20110027806A KR101192202B1 KR 101192202 B1 KR101192202 B1 KR 101192202B1 KR 1020110027806 A KR1020110027806 A KR 1020110027806A KR 20110027806 A KR20110027806 A KR 20110027806A KR 101192202 B1 KR101192202 B1 KR 101192202B1
Authority
KR
South Korea
Prior art keywords
data
computer
message
shadow
primary computer
Prior art date
Application number
KR1020110027806A
Other languages
English (en)
Other versions
KR20120109922A (ko
Inventor
김용현
이노복
김두현
김준영
Original Assignee
국방과학연구소
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 국방과학연구소 filed Critical 국방과학연구소
Priority to KR1020110027806A priority Critical patent/KR101192202B1/ko
Publication of KR20120109922A publication Critical patent/KR20120109922A/ko
Application granted granted Critical
Publication of KR101192202B1 publication Critical patent/KR101192202B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 명세서는 내장형 운영체제 기반의 고장 감지 시스템에 있어서, 데이터를 복사하며, 상기 복사된 데이터 각각을 전송하기 위한 데이터 분배 모듈; 데이터의 수신, 연산 및 출력에 대한 동작을 수행하며, 각 동작의 성공을 알리는 제 1 메시지를 전송하는 프라이머리 컴퓨터; 상기 프라이머리 컴퓨터와 동일한 동작을 수행하며, 상기 프라이머리 컴퓨터에서 전송되는 상기 제 1 메시지에 기초하여, 상기 프라이머리 컴퓨터의 고장 여부를 감지하기 위한 적어도 하나의 쉐도우 컴퓨터; 및 상기 프라이머리 컴퓨터 및 상기 쉐도우 컴퓨터로부터 출력되는 데이터를 수신하며, 상기 수신된 데이터 중 어느 하나를 외부로 전송하기 위한 데이터 스위칭 모듈을 포함하여 이루어진다.

Description

내장형 운영체제 기반의 응용프로그램에서 고장 감지 방법 및 시스템{SYSTEM AND METHOD FOR DETECTING ERROR IN A APPLICATION INCLUDING INTERNAL OPERATION SYSTEM}
본 명세서는 고장 감지 방법 및 시스템에 관한 것으로 특히, 내장형 운영 체제 기반의 고장 감지 방법 및 시스템에 관한 것이다.
기존의 고장 감지 방법은 독립적으로 실행되는 다수의 프로그램 유닛으로부터 동일한 태스크에 대한 결과를 얻어 이 중 오류가 없는 결과를 선택하는 방법이거나 단위 태스크 동안 하나의 프로그램 유닛을 실행하여 얻은 결과에 대해 오류 발생 여부를 검사하여 오류가 발견되는 경우, 약속된 복원 지점부터 새로운 다른 프로그램 유닛을 실행하여 오류가 없는 결과를 얻는 방법이다.
이러한 방법은 프로그램 유닛이 결과를 생성한 시점에 오류 발생 여부를 검사하기 때문에 오류의 발견 시점이 늦고, 이로 인해 오류가 없는 새로운 결과를 도출하는 과정에서 해당 태스크의 데드라인을 지키지 못할 확률이 높아지는 문제가 있다.
본 명세서는 내장형 운영체제 기반의 무인 시스템의 신뢰성을 증진하기 위하여 이중화 기법을 이용한 태스크 실행 주기 기반의 고장 감내를 지원하는 방법 및 시스템을 제공함에 목적이 있다.
또한, 본 명세서의 고 신뢰도가 요구되는 내장형 운영체제(Operating System:OS) 기반의 시스템에서는 동일한 기능을 수행하는 시스템을 이중으로 구성하여 하나의 시스템에서 고장이 발생하였을 경우 다른 시스템이 그 기능을 이어받아 연산에 대한 일관성을 유지하며 중단 없이 동작할 수 있도록 하는 이중화 기법을 이용한 고장 감내 기능을 제공함에 목적이 있다.
본 명세서는 내장형 운영체제 기반의 고장 감지 시스템에 있어서, 데이터를 복사하며, 상기 복사된 데이터 각각을 전송하기 위한 데이터 분배 모듈; 데이터의 수신, 연산 및 출력에 대한 동작을 수행하며, 각 동작의 성공을 알리는 제 1 메시지를 전송하는 프라이머리 컴퓨터; 상기 프라이머리 컴퓨터와 동일한 동작을 수행하며, 상기 프라이머리 컴퓨터에서 전송되는 상기 제 1 메시지에 기초하여, 상기 프라이머리 컴퓨터의 고장 여부를 감지하기 위한 적어도 하나의 쉐도우 컴퓨터; 및 상기 프라이머리 컴퓨터 및 상기 쉐도우 컴퓨터로부터 출력되는 데이터를 수신하며, 상기 수신된 데이터 중 어느 하나를 외부로 전송하기 위한 데이터 스위칭 모듈을 포함하여 이루어진다.
또한, 상기 데이터 분배 모듈은 상기 프라이머리 컴퓨터 및 상기 쉐도우 컴퓨터 각각에 동일한 데이터를 전송하는 것을 특징으로 한다.
또한, 상기 쉐도우 컴퓨터는 상기 프라이머리 컴퓨터의 고장을 감지한 경우, 외부 전송 데이터를 상기 프라이머리 컴퓨터에서 출력되는 데이터에서 상기 쉐도우 컴퓨터에서 출력되는 데이터로 스위칭하도록 명령하는 제 2 메시지를 상기 데이터 스위칭 모듈로 전송하는 것을 특징으로 한다.
또한, 상기 데이터 스위칭 모듈은 상기 수신된 제 2 메시지에 기초하여, 상기 프라이머리 컴퓨터에서 출력되는 데이터에서 상기 쉐도우 컴퓨터에서 출력되는 데이터로 스위칭하여 외부로 데이터를 전송하는 것을 특징으로 한다.
또한, 상기 프라이머리 컴퓨터 및 상기 쉐도우 컴퓨터는 데이터 또는 메시지를 송수신하기 위한 통신부; 상기 통신부로부터 수신된 데이터의 연산을 수행하기 위한 연산부; 및 상기 연산부에 의해 연산된 데이터를 출력하기 위한 출력부를 포함하여 이루어지는 것을 특징으로 한다.
또한, 상기 프라이머리 컴퓨터는 데이터의 수신, 연산 또는 출력에 대한 각 동작이 성공하는 경우, 상기 제 1 메시지를 상기 쉐도우 컴퓨터로 전송하는 것을 특징으로 한다.
또한, 상기 프라이머리 컴퓨터는 상기 연산부에 의해 데이터 연산이 시작하여 데이터 연산을 종료한 시간까지의 차이 값과 기 설정된 임계 값을 비교하고, 상기 비교 결과 상기 차이 값이 상기 기 설정된 임계 값보다 큰 경우, 데이터 연산의 성공을 알리는 제 1 메시지를 상기 쉐도우 컴퓨터로 전송하는 것을 특징으로 한다.
또한, 상기 쉐도우 컴퓨터는 기 설정된 메시지 수신 대기 시간 동안 상기 프라이머리 컴퓨터로부터 상기 제 1 메시지를 수신하지 못하는 경우, 상기 프라이머리 컴퓨터의 고장을 감지하는 것을 특징으로 한다.
또한, 상기 메시지 수신 대기 시간은 상기 프라이머리 컴퓨터로부터 이전에 수신한 제 1 메시지 수신 시간과 현재 수신한 제 1 메시지의 수신 시간 차의 평균인 것을 특징으로 한다.
또한, 본 명세서는 내장형 운영체제 기반의 고장 감지 방법에 있어서, 프라이머리 컴퓨터에서의 데이터 수신, 연산 및 출력 과정 각각에서의 성공 결과를 알리기 위한 성공 알림 메시지를 상기 프라이머리 컴퓨터에서 상기 프라이머리 컴퓨터와 동일한 기능을 수행하는 적어도 하나의 쉐도우 컴퓨터로 전송하는 제 1 과정; 상기 프라이머리 컴퓨터로부터 전송되는 성공 알림 메시지에 기초하여 상기 쉐도우 컴퓨터에서 상기 프라이머리 컴퓨터의 고장을 감지하는 제 2 과정; 및 상기 프라이머리 컴퓨터의 고장이 감지된 경우, 상기 쉐도우 컴퓨터가 상기 프라이머리 컴퓨터의 기능을 대신하는 제 3 과정을 포함하여 이루어지는 것을 특징으로 한다.
또한, 상기 제 1 과정은 데이터 수신 과정, 데이터 연산 과정 및 데이터 출력 과정의 세 단계로 구분하고, 상기 구분된 각각의 과정에 해당하는 성공 알림 메시지를 전송하는 것을 특징으로 한다.
또한, 상기 제 2 과정은 상기 프라이머리 컴퓨터로부터 이전에 수신된 성공 알림 메시지와 현재 수신된 성공 알림 메시지의 수신 시간 차이의 평균으로 설정된 메시지 수신 대기 시간에 기초하여 상기 프라이머리 컴퓨터의 고장을 감지하는 것을 특징으로 한다.
또한, 상기 제 3 과정은 외부 전송 데이터를 상기 프라이머리 컴퓨터에서 출력되는 데이터에서 상기 쉐도우 컴퓨터에서 출력되는 데이터로 스위칭하도록 명령하기 위한 스위칭 명령 메시지를 데이터 스위칭 모듈로 전송하는 과정; 상기 스위칭 명령 메시지에 기초하여, 상기 데이터 스위칭 모듈에서 상기 프라이머리 컴퓨터에서 출력된 데이터를 상기 쉐도우 컴퓨터에서 출력된 데이터로 스위칭하는 과정; 및 상기 데이터 스위칭 모듈에서 상기 스위칭된 데이터를 외부로 전송하는 과정을 포함하여 이루어지는 것을 특징으로 한다.
또한, 본 명세서는 내장형 운영체제 기반의 고장 감지 시스템에서, 고장을 감지하기 위한 쉐도우 컴퓨터에 있어서, 데이터 또는 메시지를 송수신하기 위한 통신부; 및 데이터의 수신, 연산 또는 출력의 성공을 알리는 제 1 메시지를 프라이머리 컴퓨터로부터 수신하도록 상기 통신부를 제어하며, 상기 프라이머리 컴퓨터로부터 이전 수신된 제 1 메시지의 수신 시간과 현재 수신된 제 1 메시지의 수신 시간의 차이에 기초하여, 상기 프라이머리 컴퓨터의 고장 여부를 감지하며, 상기 프라이머리 컴퓨터의 고장이 감지된 경우, 외부로 전송되는 데이터를 상기 프라이머리 컴퓨터로부터 출력되는 데이터에서 상기 쉐도우 컴퓨터로부터 출력되는 데이터로 스위칭하도록 명령하는 제 2 메시지를 데이터 스위칭 모듈로 전송하도록 상기 통신부를 제어하기 위한 제어부를 포함하여 이루어지는 것을 특징으로 한다.
본 명세서는 프라이머리 컴퓨터 및 쉐도우 컴퓨터를 이용함으로써, 단순히 소프트웨어적인 지원 기법을 통하여 고장 감내 기능을 지원 할 수 있고, 시스템의 중단 없이 요구사항을 처리 함으로써 시스템 동작에 대한 신뢰성을 높일 수 있고 고장 발생시에 빠른 시스템의 재구성과 재동작을 할 수 있게 하는데 효과가 있다.
도 1은 본 명세서의 일 실시 예에 따른 내장형 운영체제 기반의 이중화 기법을 이용한 고장 감지 시스템을 나타낸다.
도 2는 본 명세서의 일 실시 예에 따른 프라이머리 컴퓨터를 나타낸다.
도 3은 본 명세서의 일 실시 예에 따른 쉐도우 컴퓨터를 나타낸다.
도 4는 본 명세서의 일 실시 예에 따른 내장형 운영체제 기반의 고장 감지 시스템에서 고장을 감지하고 고장을 복구하는 흐름도를 나타낸다.
이하, 본 명세서에 따른 실시 예들을 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 명세서에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 명세서의 요지를 흩트리지 않도록 생략될 것이라는 것을 유의하여야 한다.
이하의 실시 예들은 본 명세서의 구성요소들과 특징들이 소정 형태로 결합된 것들이다. 각 구성요소 또는 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려되어야 한다. 각 구성요소 또는 특징은 다른 구성요소나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성요소들 및/또는 특징들을 결합하여 본 명세서의 실시 예를 구성하는 것도 가능하다. 본 명세서의 실시예들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시 예의 일부 구성이나 특징은 다른 실시예에 포함될 수 있고, 또는 다른 실시 예의 대응하는 구성 또는 특징과 교체될 수 있다.
본 명세서의 실시 예들은 다양한 수단을 통해 구현될 수 있다. 예를 들어, 본 명세서의 실시예들은 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다.
하드웨어에 의한 구현의 경우, 본 명세서의 실시예들에 따른 방법은 하나 또는 그 이상의 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
펌웨어나 소프트웨어에 의한 구현의 경우, 본 명세서의 실시예들에 따른 방법은 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차 또는 함수 등의 형태로 구현될 수 있다. 소프트웨어 코드는 메모리 유닛에 저장되어 프로세서에 의해 구동될 수 있다. 상기 메모리 유닛은 상기 프로세서 내부 또는 외부에 위치하여, 이미 공지된 다양한 수단에 의해 상기 프로세서와 데이터를 주고 받을 수 있다.
이하의 설명에서 사용되는 특정 용어들은 본 명세서의 이해를 돕기 위해서 제공된 것이며, 이러한 특정 용어의 사용은 본 명세서의 기술적 사상을 벗어나지 않는 범위에서 다른 형태로 변경될 수 있다.
이하에서, 본 명세서에서 제안하는 내장형 운영체제 기반의 이중화 기법을 이용한 고장 감지 시스템 및 고장 감지 방법에 대해 구체적으로 살펴보기로 한다.
먼저, 본 명세서에서의 컴퓨터란, 내장형 운영체제를 구동할 수 있는 컴퓨터를 의미한다. 다만, 본 명세서에 따른 이중화 기법을 이용한 내장형 운영체제용 고장 감내(또는 감지) 지원 기법은 상기 언급한 컴퓨터에 한정되어 적용되지 않는다. 즉, 내장형 운영체제를 구동할 수 있는 임베디드 보드 등에 확장하여 적용될 수 있다.
또한 본 명세서에서 언급한 유선통신에 대한 통신 방식은 RS-232, RS-422, RS-485, CAN 및 LAN 통신 방식 중 어느 하나 이상을 포함하지만, 이에 한정되지 않는다. 또한, 유선 방식뿐만 아니라 Wi-Fi, 블루투스, 3G, LTE(A), WiMax 등과 같은 무선 통신 방식이 적용될 수도 있다.
이중화 기법의 고장 감지 시스템
도 1은 본 명세서의 일 실시 예에 따른 내장형 운영체제 기반의 이중화 기법을 이용한 고장 감지 시스템을 나타낸다.
본 명세서에 따른 고장 감지 시스템은 내장형 운영체제의 구동이 가능한 컴퓨터 또는 임베디드(Embedded) 보드, 데이터 분배 모듈, 데이터 스위칭 모듈을 포함하여 구성될 수 있다.
즉, 도 1을 참조하면, 본 명세서에 따른 고장 감지 시스템(100)에서는 데이터 분배 모듈(110), 프라이머리 컴퓨터(200), 쉐도우 컴퓨터(300), 데이터 스위칭 모듈(120)을 포함하여 구성된다.
상기 데이터 분배 모듈, 프라이머리 컴퓨터, 쉐도우 컴퓨터, 데이터 스위칭 모듈 각각은 유선 또는 무선 통신을 이용하여 상호 연결 즉, 데이터 또는 메시지를 송수신할 수 있다.
데이터 분배 모듈(110)은 데이터 수신부(111) 및 데이터 분배부(112)를 포함한다.
상기 데이터 분배부(112)는 프라이머리 컴퓨터(300)와 쉐도우 컴퓨터(500)의 데이터 수신부(211, 311)에 데이터를 분배를 하는 기능을 수행한다. 이때 분배되는 데이터는 동일한 정보를 가지고 있으며 동일한 시각에 분배가 된다.
상기 데이터 분배부(112)에 대하여 좀 더 자세히 설명하면, 데이터 수신부(111)로 데이터를 수신한 데이터를 데이터 분배 모듈(110)에서 데이터를 복사를 한 후, 데이터 분배부(112)를 통하여 동일한 데이터를 각각의 컴퓨터(200, 300)의 데이터 수신부(211, 311)로 송신을 하는 역할을 한다.
프라이머리 컴퓨터(200)는 데이터의 수신, 연산 및 출력에 대한 동작을 수행하며, 각 동작의 성공을 알리는 제 1 메시지를 전송한다.
쉐도우 컴퓨터(300)는 상기 프라이머리 컴퓨터와 동일한 동작(데이터 수신, 연산 및 출력)을 수행하며, 상기 프라이머리 컴퓨터에서 전송되는 상기 제 1 메시지에 기초하여, 상기 프라이머리 컴퓨터의 고장 여부를 감지한다. 또한, 상기 쉐도우 컴퓨터는 복수 개가 구비될 수 있다.
데이터 스위칭 모듈(120)은 데이터 스위칭부(121), 스위칭 통신부(122)을 포함한다.
상기 데이터 스위칭 모듈(120)을 상기 프라이머리 컴퓨터 및 상기 쉐도우 컴퓨터로부터 출력되는 데이터를 수신하며, 상기 수신된 데이터 중 어느 하나를 외부로 전송한다.
즉, 상기 데이터 스위칭 모듈은 일반적으로는 프라이머리 컴퓨터로부터 출력되는 데이터를 외부로 출력하지만, 상기 쉐도우 컴퓨터로부터 스위칭 명령 메시지를 수신하는 경우에는 상기 쉐도우 컴퓨터로부터 출력되는 데이터로 스위치하여 외부로 출력하는 역할을 한다.
프라이머리(Primary) 및 쉐도우(Shadow) 컴퓨터
도 2는 본 명세서의 일 실시 예에 따른 프라이머리 컴퓨터를 나타내며, 도 3은 본 명세서의 일 실시 예에 따른 쉐도우 컴퓨터를 나타낸다.
도 2 및 도 3을 참조하면, 프라이머리 컴퓨터(200) 및 쉐도우 컴퓨터(300)는 통신부(210, 310), 연산부(220, 320), 출력부(230, 330) 및 제어부(240, 340)를 포함한다.
통신부(210, 310)는 데이터 분배 모듈(110)로부터 데이터를 수신하며, 메시지를 송수신한다.
상기 프라이머리 컴퓨터의 통신부(210)는 데이터 분배 모듈로부터 데이터를 수신하는 데이터 수신부(211), 데이터 수신 성공을 알리는 메시지를 전송하기 위한 수신 통신부(212), 수신된 데이터의 연산 성공을 알리는 메시지를 전송하기 위한 연산 통신부(213), 연산된 데이터의 출력 성공을 알리는 메시지를 전송하기 위한 출력 통신부(214)로 세분화하여 구성될 수 있다.
또한, 상기 쉐도우 컴퓨터의 통신부(310)는 데이터 분배 모듈로부터 데이터를 수신하는 데이터 수신부(311), 상기 프라이머리 컴퓨터의 통신부를 통해 전송되는 알림 메시지를 각각 수신하기 위한 수신 통신부(312), 연산 통신부(313), 출력 통신부(314), 스위칭 통신부(315)로 세분화하여 구성될 수 있다.
연산부(220, 320)는 상기 통신부로부터 수신된 데이터에 대한 연산을 수행한다.
상기 연산부(220, 320)에서는 연산을 종료하게 되면 설정이 된 WCET(Worst Case Execution Time)을 통하여 승인 시험(Acceptance Test)을 하게 된다. 연산을 시작해서 종료할 때까지 걸린 시간이 Acceptance Test를 통과하게 되면 데이터에 대한 연산 성공을 의미한다.
상기 승인 시험(Acceptance Test)은 프라이머리 컴퓨터(200)의 데이터 연산부(220)에서 연산을 시작하여 연산을 마친 시간까지의 차이(δ)와 설정이 된 WCET의 시간을 비교한다.
여기서, δ WCET의 조건이 만족하게 된다면 Acceptance Test를 통과하지 못한 것으로 간주를 한다.
출력부(230, 330)는 상기 연산부로부터 연산된 데이터를 출력한다.
프라이머리 컴퓨터의 제어부(240)는 데이터 수신, 연산 또는 출력 동작에서 각 동작 과정이 성공한 경우, 각 동작의 성공을 알리는 메시지를 쉐도우 컴퓨터로 전송하도록 통신부를 제어할 수 있다.
쉐도우 컴퓨터의 제어부(340)는 프라이머리 컴퓨터로부터 전송되는 각 동작의 성공 알림 메시지의 수신 시간 차이를 이용하여 상기 프라이머리 컴퓨터의 고장 여부를 감지하도록 제어하며, 고장이 감지된 경우 데이터 스위칭 모듈로 외부 출력 데이터를 상기 쉐도우 컴퓨터에서 출력되는 데이터로 사용할 것을 명령하는 스위칭 명령 메시지를 전송하도록 쉐도우 컴퓨터의 통신부를 제어할 수 있다.
도 4는 본 명세서의 일 실시 예에 따른 내장형 운영체제 기반의 고장 감지 시스템에서 고장을 감지하고 고장을 복구하는 방법을 나타낸다.
상기에서도 살핀 것처럼, 프라이머리 컴퓨터(200)와 쉐도우 컴퓨터(300)의 전체적인 동작 과정은 데이터 수신, 연산, 데이터 출력의 과정으로 동작한다.
고장 감지 방법
1.데이터 수신 성공 알림 메시지 전송 과정
프라이머리 컴퓨터(200)와 쉐도우 컴퓨터(300)는 데이터 분배 모듈(110)로부터 데이터를 수신 받는다(S410). 구체적으로 상기 프라이머리 컴퓨터 및 쉐도우 컴퓨터의 통신부가 상기 데이터 분배 모듈로부터 데이터를 수신한다(S420).
이 경우, 프라이머리 컴퓨터는 데이터 수신 성공을 알리는 알림 메시지를 상기 쉐도우 컴퓨터로 전송한다(S430). 여기서, 상기 알림 메시지는 상기 프라이머리 컴퓨터 및 상기 쉐도우 컴퓨터의 통신부(210, 310)를 통해 송수신된다.
쉐도우 컴퓨터는 제 1 메시지 수신 대기 시간 동안 상기 프라이머리 컴퓨터로부터 전송되는 알림 메시지를 수신 대기한다.
상기 제 1 메시지 수신 대기 시간은 상기 프라이머리 컴퓨터가 상기 데이터 분배 모듈(100)로부터 데이터를 수신한 시간부터 시작하여 상기 쉐도우 컴퓨터에서 알림 메시지를 수신한 시간을 이용한 것으로, 이전 과정에서 수신한 알림 메시지 수신 시간과 현재 과정에서 수신한 알림 메시지의 수신 시간의 차의 평균으로 정의를 한다.
즉, 본 명세서에서의 고장 감지 방법은 하나의 시스템은 프라이머리(Primary)로 동작하여 정해진 요구사항을 수행하고, 다른 시스템은 쉐도우(Shadwow)로 동작을 하면서 동일한 요구사항을 수행을 하면서 프라이머리에 고장이 발생 되었는지를 모니터링을 한다.
쉐도우는 프라이머리에 고장이 발생되었을 경우, 프라이머리로 전환이 되어 중단없이 사용자의 요구사항을 수행하도록 한다.
또한, 본 명세서에서 고장을 모니터링하는 방법으로 프라이머리의 요구사항 수행 절차를 데이터 입력, 연산, 데이터 출력의 과정으로 구분을 하고, 각각의 과정이 수행이 되는 평균 주기를 연산을 하게 된다. 이를 바탕으로 프라이머리에서 각 과정을 수행을 하면서 쉐도우로 동기신호를 보내게 되고, 쉐도우는 각 과정이 수행이 되는 평균 주기 안에 프라이머리로부터의 동기신호를 받지 못하게 되면 프라이머리의 고장을 감지하게 된다.
2.데이터 연산 성공 알림 메시지 전송 과정
프라이머리 컴퓨터(200)는 통신부에서 수신한 데이터를 기반으로 연산 과정을 수행하게 된다. 구체적으로, 상기 통신부의 데이터 연산부(220)에서 연산을 수행한다(S420).
프라이머리 컴퓨터는 상기 데이터 연산부에서의 연산이 종료하면, 기 설정된 WCET을 통하여 Acceptance Test를 수행한다.
프라이머리 컴퓨터는 연산을 시작해서 연산을 종료할 때까지 걸린 시간이 Acceptance Test를 통과하게 되면, 상기 데이터 연산부에서의 연산 성공을 알리는 메시지를 상기 쉐도우 컴퓨터로 전송한다(S430).
상기 Acceptance Test는 프라이머리 컴퓨터(200)에서 연산을 시작하여 연산을 마친 시간까지의 차이(δ)와 기 설정된 WCET의 시간을 비교함으로써, 수행된다.
여기서, δ WCET의 조건을 만족한다면 Acceptance Test를 통과하지 못한 것으로 간주를 한다.
여기서, 쉐도우 컴퓨터는 제 2메시지 수신 대기 시간 동안 상기 프라이머리 컴퓨터(300)에서 전송하는 연산 성공 알림 메시지를 수신 대기하게 된다.
상기 제 2 메시지 수신 대기 시간은 상기 프라이머리 컴퓨터(200)가 상기 데이터 분배 모듈로부터 데이터를 수신한 시간부터 시작하여 데이터 연산부(220)에서 연산 및 Acceptance Test를 마치고, 상기 프라이머리 컴퓨터가 송신한 연산 성공 알림 메시지를 쉐도우 컴퓨터(300)에서 수신한 시간을 이용한 것으로, 이전 연산 과정에서 수신된 연산 성공 알림 메시지의 시간과 현재 과정에서 수신된 연산 성공 알림 메시지의 수신 시간의 차의 평균으로 정의를 한다.
3.데이터 출력 성공 알림 메시지 전송 과정
프라이머리 컴퓨터(200)는 데이터 연산부(220)에서 연산을 한 결과 데이터를 출력한다. 구체적으로, 통신부의 데이터 출력부를 통해 연산 수행된 데이터가 출력된다(S420).
상기 프라이머리 컴퓨터는 연산된 데이터에 대한 출력 과정이 종료하게 되면, 프라이머리 데이터 출력 성공을 알리는 알림 메시지를 쉐도우 컴퓨터(300)로 전송한다(S430).
쉐도우 컴퓨터(300)는 통신부를 통해 제 3 메시지 수신 대기 시간 동안 상기 프라이머리 컴퓨터(200)에서 전송한 출력 성공 알림 메시지를 수신 대기한다.
상기 제 3 메시지 수신 대기 시간은 상기 프라이머리 컴퓨터(200)의 데이터 출력부(230)에서 연산 결과를 출력한 시간에서 시작하여 상기 프라이머리 컴퓨터가 출력 성공 알림 메시지를 전송하고, 상기 쉐도우 컴퓨터(300)에서 알림 메시지를 수신한 시간을 이용한 것으로, 이전 출력 과정에서의 출력 성공 알림 메시지 수신 시간과 현재 과정에서 수신된 출력 성공 알림 메시지의 수신 시간의 차의 평균으로 정의를 한다.
본 명세서에서 제안하는 고장 감지 방법은 상기 쉐도우 컴퓨터(300)의 통신부(310)에서 상기 프라이머리 컴퓨터가 수행하는 각 동작 과정에서의 성공을 알리는 메시지를 각각 기 설정된 제 1 메시지 수신 대기 시간, 제 2 메시지 수신 대기 시간, 제 3 메시지 수신 대기 시간 동안 수신하지 못한 경우, 상기 쉐도우 컴퓨터는 상기 프라이머리 컴퓨터의 고장을 감지한다(S440).
고장 복구 방법
상기 쉐도우 컴퓨터(300)에서 상기 프라이머리 컴퓨터(200)의 고장을 감지하였을 경우(S450), 상기 쉐도우 컴퓨터(300)는 데이터 스위칭 모듈(120)로 외부 출력 데이터를 상기 프라이머리 컴퓨터에서 출력되는 데이터 대신 상기 쉐도우 컴퓨터에서 출력되는 데이터로 스위칭하여 전송할 것을 명령하는 스위칭 명령 메시지를 전송한다. 구체적으로, 상기 데이터 스위칭 모듈의 통신부에서 상기 스위칭 명령 메시지를 수신하게 된다(S460).
상기 데이터 스위칭 모듈(120)이 상기 쉐도우 컴퓨터로부터 스위칭 명령을 수신하게 되면, 상기 데이터 스위칭 모듈은 상기 프라이머리 컴퓨터(200)의 데이터 출력부(230)에서 출력이 되는 데이터를 대신하여 쉐도우 컴퓨터(300)의 데이터 출력부(330)에서 출력이 되는 데이터를 외부로 전송한다.
구체적으로, 상기 스위칭 과정은 상기 데이터 스위칭 모듈의 데이터 스위칭부(121)에서 수행된다(S470).
100: 고장 감지 시스템 230, 330: 출력부
110: 데이터 분배 모듈 240, 340: 제어부
120: 데이터 스위칭 모듈
200: 프라이머리 컴퓨터
300: 쉐도우 컴퓨터
111, 211, 311: 데이터 수신부
112: 데이터 분배부
121: 데이터 스위칭부
122, 315: 스위칭 통신부
210, 310: 통신부
220, 320: 연산부

Claims (14)

  1. 내장형 운영체제 기반의 고장 감지 시스템에 있어서,
    데이터를 복사하며, 상기 복사된 데이터 각각을 전송하기 위한 데이터 분배 모듈;
    데이터의 수신, 연산 및 출력에 대한 동작을 수행하며, 각 동작의 성공을 알리는 제 1 메시지를 전송하는 프라이머리 컴퓨터;
    상기 프라이머리 컴퓨터에서 전송되는 상기 제 1 메시지에 기초하여, 상기 프라이머리 컴퓨터의 고장 여부를 감지하기 위한 적어도 하나의 쉐도우 컴퓨터; 및
    상기 프라이머리 컴퓨터 및 상기 쉐도우 컴퓨터로부터 출력되는 데이터를 수신하며, 상기 수신된 데이터 중 어느 하나를 외부로 전송하기 위한 데이터 스위칭 모듈을 포함하며,
    상기 데이터 분배 모듈은 상기 복사된 데이터 각각을 상기 프라이머리 컴퓨터 및 상기 쉐도우 컴퓨터에 전송하며,
    상기 프라이머리 컴퓨터는 상기 제 1 메시지를 상기 적어도 하나의 쉐도우 컴퓨터에 전송하며,
    상기 쉐도우 컴퓨터는 기 설정된 메시지 수신 대기 시간 동안 상기 프라이머리 컴퓨터로부터 상기 제 1 메시지를 수신하지 못하는 경우, 상기 프라이머리 컴퓨터의 고장을 감지하며, 여기서, 상기 메시지 수신 대기 시간은 상기 프라이머리 컴퓨터로부터 이전에 수신한 제 1 메시지 수신 시간과 현재 수신한 제 1 메시지의 수신 시간 차의 평균인 것을 특징으로 하는 고장 감지 시스템.
  2. 제 1항에 있어서, 상기 데이터 분배 모듈은,
    상기 프라이머리 컴퓨터 및 상기 쉐도우 컴퓨터 각각에 동일한 데이터를 전송하는 것을 특징으로 하는 고장 감지 시스템.
  3. 제 1항에 있어서, 상기 쉐도우 컴퓨터는,
    상기 프라이머리 컴퓨터의 고장을 감지한 경우, 외부 전송 데이터를 상기 프라이머리 컴퓨터에서 출력되는 데이터에서 상기 쉐도우 컴퓨터에서 출력되는 데이터로 스위칭하도록 명령하는 제 2 메시지를 상기 데이터 스위칭 모듈로 전송하는 것을 특징으로 하는 고장 감지 시스템.
  4. 제 3 항에 있어서, 상기 데이터 스위칭 모듈은,
    상기 제 2 메시지에 기초하여, 상기 프라이머리 컴퓨터에서 출력되는 데이터에서 상기 쉐도우 컴퓨터에서 출력되는 데이터로 스위칭하여 외부로 데이터를 전송하는 것을 특징으로 하는 고장 감지 시스템.
  5. 제 1항에 있어서,
    상기 프라이머리 컴퓨터 및 상기 쉐도우 컴퓨터는,
    데이터 또는 메시지를 송수신하기 위한 통신부;
    상기 통신부로부터 수신된 데이터의 연산을 수행하기 위한 연산부; 및
    상기 연산부에 의해 연산된 데이터를 출력하기 위한 출력부를 포함하여 이루어지는 것을 특징으로 하는 고장 감지 시스템.
  6. 제 1항에 있어서, 상기 프라이머리 컴퓨터는,
    데이터의 수신, 연산 또는 출력에 대한 각 동작이 성공하는 경우, 상기 제 1 메시지를 상기 쉐도우 컴퓨터로 전송하는 것을 특징으로 하는 고장 감지 시스템.
  7. 제 5항에 있어서, 상기 프라이머리 컴퓨터는,
    상기 연산부에 의해 데이터 연산이 시작하여 데이터 연산을 종료한 시간까지의 차이 값과 기 설정된 임계 값을 비교하고,
    상기 비교 결과 상기 차이 값이 상기 기 설정된 임계 값보다 큰 경우, 데이터 연산의 성공을 알리는 제 1 메시지를 상기 쉐도우 컴퓨터로 전송하는 것을 특징으로 하는 고장 감지 시스템.
  8. 삭제
  9. 삭제
  10. 내장형 운영체제 기반의 고장 감지 방법에 있어서,
    프라이머리 컴퓨터에서의 데이터 수신, 연산 및 출력 과정 각각에서의 성공 결과를 알리기 위한 성공 알림 메시지를 상기 프라이머리 컴퓨터에서 적어도 하나의 쉐도우 컴퓨터로 전송하는 제 1 과정;
    상기 프라이머리 컴퓨터로부터 전송되는 성공 알림 메시지에 기초하여 상기 쉐도우 컴퓨터에서 상기 프라이머리 컴퓨터의 고장을 감지하는 제 2 과정; 및
    상기 프라이머리 컴퓨터의 고장이 감지된 경우, 상기 쉐도우 컴퓨터가 상기 프라이머리 컴퓨터의 기능을 대신하는 제 3 과정을 포함하며,
    상기 제 2 과정은,
    상기 프라이머리 컴퓨터로부터 이전에 수신된 성공 알림 메시지와 현재 수신된 성공 알림 메시지의 수신 시간 차이의 평균으로 설정된 메시지 수신 대기 시간동안 상기 쉐도우 컴퓨터가 상기 프라이머리 컴퓨터로부터 상기 성공 알림 메시지를 수신하지 못한 경우 상기 프라이머리 컴퓨터의 고장을 감지하는 것을 특징으로 하는 고장 감지 방법.
  11. 제 10항에 있어서, 상기 제 1 과정은,
    데이터 수신 과정, 데이터 연산 과정 및 데이터 출력 과정의 세 단계로 구분하고, 상기 구분된 각각의 과정에 해당하는 성공 알림 메시지를 전송하는 것을 특징으로 하는 고장 감지 방법.
  12. 삭제
  13. 제 10항에 있어서, 상기 제 3 과정은,
    외부 전송 데이터를 상기 프라이머리 컴퓨터에서 출력되는 데이터에서 상기 쉐도우 컴퓨터에서 출력되는 데이터로 스위칭하도록 명령하기 위한 스위칭 명령 메시지를 데이터 스위칭 모듈로 전송하는 과정;
    상기 스위칭 명령 메시지에 기초하여, 상기 데이터 스위칭 모듈에서 상기 프라이머리 컴퓨터에서 출력된 데이터를 상기 쉐도우 컴퓨터에서 출력된 데이터로 스위칭하는 과정; 및
    상기 데이터 스위칭 모듈에서 상기 스위칭된 데이터를 외부로 전송하는 과정을 포함하여 이루어지는 것을 특징으로 하는 고장 감지 방법.
  14. 삭제
KR1020110027806A 2011-03-28 2011-03-28 내장형 운영체제 기반의 응용프로그램에서 고장 감지 방법 및 시스템 KR101192202B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110027806A KR101192202B1 (ko) 2011-03-28 2011-03-28 내장형 운영체제 기반의 응용프로그램에서 고장 감지 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110027806A KR101192202B1 (ko) 2011-03-28 2011-03-28 내장형 운영체제 기반의 응용프로그램에서 고장 감지 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20120109922A KR20120109922A (ko) 2012-10-09
KR101192202B1 true KR101192202B1 (ko) 2012-10-17

Family

ID=47280965

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110027806A KR101192202B1 (ko) 2011-03-28 2011-03-28 내장형 운영체제 기반의 응용프로그램에서 고장 감지 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101192202B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006172390A (ja) 2004-12-20 2006-06-29 Nec Corp フォルトトレラント・二重化コンピュータシステムとその制御方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006172390A (ja) 2004-12-20 2006-06-29 Nec Corp フォルトトレラント・二重化コンピュータシステムとその制御方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
‘시스템 이중화를 토한 고가용성 고장 감내 시스템 구조 설계’, 정보통신부, 2000년도 추계종합학술발표회 논문지 상, pages : 1-8 (2000)*
‘핫 스탠바이 스페어링 기법을 이용한 고장 감내 이중화 시스템 설계’, 한국통신학회, 한국통신학회논문지 제29권 10A호, pages: 1113-1122(2004.10.)*

Also Published As

Publication number Publication date
KR20120109922A (ko) 2012-10-09

Similar Documents

Publication Publication Date Title
US10560315B2 (en) Method and device for processing failure in at least one distributed cluster, and system
US10095576B2 (en) Anomaly recovery method for virtual machine in distributed environment
CN102724083A (zh) 基于软件同步的可降级三模冗余计算机系统
US10938628B2 (en) Battery management system and communication method thereof
US11848889B2 (en) Systems and methods for improved uptime for network devices
WO2013101082A1 (en) Reset of processing core in multi-core processing system
KR102131863B1 (ko) 라우팅 처리기의 동작 모드 천이 방법
CN113965494A (zh) 用于冗余进程网络中的故障检测和角色选择的方法
JP5613119B2 (ja) マスター/スレーブシステム、制御装置、マスター/スレーブ切替方法、および、マスター/スレーブ切替プログラム
KR101192202B1 (ko) 내장형 운영체제 기반의 응용프로그램에서 고장 감지 방법 및 시스템
JP2003345620A (ja) 多ノードクラスタシステムのプロセス監視方法
JP6066748B2 (ja) システム管理装置およびシステム
JP5989288B1 (ja) 冗長化システム及び通信ユニット
KR102023164B1 (ko) 알티오에스 마이컴의 오에스 태스크의 모니터링 방법
TWI434159B (zh) 雙重系統控制裝置
JP6654662B2 (ja) サーバ装置およびサーバシステム
CN107134294B (zh) 一种ecc信息获取方法及系统
CN107239363B (zh) 一种ecc信息上报方法及系统
JP2013254333A (ja) 多重系制御システム及びその制御方法
JP2000020336A (ja) 二重化通信システム
JP2007018026A (ja) コントローラ
US11853175B2 (en) Cluster system and restoration method that performs failover control
TWI551983B (zh) 多中央處理單元系統之偵錯切換方法
JP5469637B2 (ja) 冗長構成をとるコントローラ
JP2013239034A (ja) 系切替制御装置及び二重化システム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191002

Year of fee payment: 8