KR101313692B1 - 로봇용 소프트웨어 컴포넌트를 실행하는데 있어서 고장 감내 방법 및 장치 - Google Patents
로봇용 소프트웨어 컴포넌트를 실행하는데 있어서 고장 감내 방법 및 장치 Download PDFInfo
- Publication number
- KR101313692B1 KR101313692B1 KR1020090126638A KR20090126638A KR101313692B1 KR 101313692 B1 KR101313692 B1 KR 101313692B1 KR 1020090126638 A KR1020090126638 A KR 1020090126638A KR 20090126638 A KR20090126638 A KR 20090126638A KR 101313692 B1 KR101313692 B1 KR 101313692B1
- Authority
- KR
- South Korea
- Prior art keywords
- component
- executor
- robot
- software component
- execution
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0706—Error 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/0709—Error 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 a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Manipulator (AREA)
- Numerical Control (AREA)
Abstract
본 발명은 분산 환경에서 약결합된 형태를 취하고 있는 로봇용 소프트웨어 컴포넌트들을 구동시키는 컴포넌트 실행 방법에 있어서, 다중 컴포넌트를 실행할 때, 특정 컴포넌트의 고장이 전체 시스템의 고장으로 확대되는 것을 방지하는 방법 및 그 장치에 관한 것이다.
본 발명의 실시예에 따른 로봇용 소프트웨어 컴포넌트를 구동시키는데 있어서 컴포넌트 구동 시 발생하는 고장을 감내하는(fault tolerance) 방법은, 동일한 우선순위와 주기를 갖는 적어도 하나의 로봇용 소프트웨어 컴포넌트를 컴포넌트 실행기에 할당하는 단계, 운영체제로부터 하나의 쓰레드를 할당받아 상기 컴포넌트 실행기를 이용하여 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 실행하는 단계, 상기 실행한 결과를 실행기 모니터에 통보하는 단계, 및 상기 실행기 모니터가 상기 컴포넌트 실행기의 동작에 고장이 있는 것으로 판단한 경우 새로운 컴포넌트 실행기를 생성하는 단계를 포함하여 구성될 수 있다.
로봇, 소프트웨어 컴포넌트, 고장 감내, Fault Tolerance
Description
본 발명은 분산 환경에서 약결합된 형태를 취하고 있는 로봇용 소프트웨어 컴포넌트들을 구동시키는 컴포넌트 실행 방법에 있어서, 다중 컴포넌트를 실행할 때, 특정 컴포넌트의 고장이 전체 시스템의 고장으로 확대되는 것을 방지하는 방법 및 그 장치에 관한 것이다.
로봇용 소프트웨어 컴포넌트는 재사용 및 교체가 가능한 소프트웨어 모듈로서, 외부 컴포넌트 사용자 입장에서는 컴포넌트가 제공하는 인터페이스만을 이용하며 해당 인터페이스에 대한 상세 구현은 알 필요 없이 컴포넌트의 조합만으로 로봇 응용을 구성하게 된다.
로봇 소프트웨어 구조에서 사용되는 로봇 컴포넌트는 각각의 내부상태를 갖으며 능동적인 형태로 동작하고, 컴포넌트 인터페이스를 통해 컴포넌트 상호 간의 데이터 교환 및 메쏘드(method) 호출이 수행되면서 로봇 제어가 이루어진다. 최근 에 이러한 로봇의 특징을 지원하기 위해 Orocos(Open Robot Control Software), RTC(Robot Technology Component) 등은 능동적 패턴(active pattern) 형태의 컴포넌트를 이용한 로봇 프로그래밍 방식을 제시하고 있다.
로봇용 소프트웨어 컴포넌트들을 구동시키기 위해서는 운영체제의 쓰레드(thread)를 이용하여 컴포넌트들을 주어진 주기대로 실행하게 된다. 하지만, 로봇은 다양한 장치와 알고리즘이 사용되므로 사용되는 컴포넌트의 수가 많을 수 밖에 없으며, 이런 경우 개별 컴포넌트마다 하나의 쓰레드를 할당하여 사용하게 되면 운영체제의 시스템 자원이 낭비될 뿐만 아니라 쓰레드 문맥 교환 과정이 빈번하게 발생되어 시스템 성능을 저하시키게 된다.
따라서, OROCOS와 같이 종래 기술에서는 개별 컴포넌트 마다 쓰레드를 할당하여 발생되는 시스템 성능의 저하를 막기 위해서 주기가 동일한 컴포넌트는 하나의 쓰레드로 처리하도록 하여 시스템 성능 저하를 막도록 하였다.
이와 같이 여러 컴포넌트를 하나의 쓰레드로 처리하게 되는 경우에는 매 주기마다 해당 쓰레드에 등록된 컴포넌트를 순차적으로 처리하게 된다.
하지만, 하나의 쓰레드에 등록된 컴포넌트를 순차적으로 처리하는 도중에 특정 컴포넌트의 고장이 발생하거나 컴포넌트의 실행시간이 길어져서 주어진 주기 내에 모든 컴포넌트를 실행하지 못하게 되는 경우에는, 다른 컴포넌트의 실행도 방해하게 되고 결국에는 컴포넌트 하나의 고장으로 인해서 전체 로봇 시스템의 동작에 이상이 발생된다.
본 발명의 실시예는 앞에서 설명한 문제점을 해결하기 위한 것으로서, 로봇용 다중 소프트웨어 컴포넌트를 실행할 때, 시스템 성능을 유지하면서도 특정 컴포넌트의 고장이 전체 시스템의 고장으로 확대되는 것을 방지하는 방법 및 장치를 제공하는데 그 목적이 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 실시예에 따른, 로봇용 소프트웨어 컴포넌트를 구동시키는데 있어서 컴포넌트 구동 시 발생하는 고장을 감내하는(fault tolerance) 방법을 수행하기 위한 장치는, 운영체제로부터 쓰레드(thread)를 할당받아 동일한 우선순위와 주기를 갖는 적어도 하나의 로봇용 소프트웨어 컴포넌트를 상기 쓰레드를 이용하여 실행하는 컴포넌트 실행기, 상기 컴포넌트 실행기의 동작을 주기적으로 모니터링하여 상기 컴포넌트 실행기가 실행하는 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트의 고장 여부를 판단하는 실행기 모니터, 및 동일한 우선순위와 주기를 갖는 적어도 하나의 로봇용 소프트웨어 컴포넌트를 할당하여 상기 컴포넌트 실행기를 생성하며, 상기 실행기 모니터가 상기 컴포넌트 실행기의 동작에 고장이 있는 것으로 판단한 경우 새로운 컴포넌트 실행기를 생성하는 실행기 관리자를 포함하여 구성된다.
여기서, 상기 컴포넌트 실행기는, 상기 운영체제의 스케쥴링 정책에 따른 기 설정된 주기가 돌아왔을 때, 상기 할당된 쓰레드를 이용하여 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 순차적으로 실행할 수 있다.
그리고, 상기 컴포넌트 실행기는, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 실행할 때, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트에 대한 정보를 순차적으로 저장할 수 있다.
또한, 상기 컴포넌트 실행기는, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트의 한 주기 실행이 완료되면, 상기 실행기 모니터에 실행 완료 통보를 할 수 있다.
한편, 상기 실행기 모니터는, 상기 컴포넌트 실행기로부터 상기 실행 완료 통보가 정해진 주기에 따라 전달되는지를 감시할 수 있다.
또한, 상기 실행기 모니터는, 미리 정해진 횟수의 주기 동안 상기 컴포넌트 실행기에서 상기 실행 완료 통보가 전달되지 않을 경우 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트 중 하나에 고장이 발생한 것으로 판단하여 상기 실행기 관리자에 통보할 수 있다.
그리고, 상기 실행기 관리자는, 상기 실행기 모니터가 상기 컴포넌트 실행기의 동작에 고장이 있는 것으로 판단한 경우, 상기 컴포넌트 실행기와 동일한 우선순위와 주기를 갖는 상기 새로운 컴포넌트 실행기를 생성할 수 있다.
또한, 상기 컴포넌트 실행기는, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 실행할 때, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트에 대한 정보를 순차적으로 저장하며, 상기 실행기 관리자는, 상기 실행기 모니터가 상기 컴포넌트 실행기의 동작에 고장이 있는 것으로 판단한 경우, 상기 순차적으로 저장된 정보를 이용하여 상기 컴포넌트 실행기가 실행 중인 컴포넌트가 어느 것인지 판단할 수 있다.
여기서, 상기 실행기 관리자는, 상기 컴포넌트 실행기에서 실행 중인 것으로 판단된 컴포넌트를 제외한 나머지 우선순위와 주기를 갖는 컴포넌트를 상기 새로운 컴포넌트 실행기에 등록하여 이전시킬 수 있다.
그리고, 상기 실행기 관리자는 상기 새로운 컴포넌트 실행기에 등록하여 이전시킨 컴포넌트들을 상기 컴포넌트 실행기에서 삭제할 수도 있다.
본 발명의 또 다른 실시예에 따른, 로봇용 소프트웨어 컴포넌트를 구동시키는데 있어서 컴포넌트 구동 시 발생하는 고장을 감내하는(fault tolerance) 방법은, 동일한 우선순위와 주기를 갖는 적어도 하나의 로봇용 소프트웨어 컴포넌트를 컴포넌트 실행기에 할당하는 단계, 운영체제로부터 하나의 쓰레드를 할당받아 상기 컴포넌트 실행기를 이용하여 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 실행하는 단계, 상기 실행한 결과를 실행기 모니터에 통보하는 단계, 및 상기 실행기 모니터가 상기 컴포넌트 실행기의 동작에 고장이 있는 것으로 판단한 경우 새로운 컴포넌트 실행기를 생성하는 단계를 포함하여 구성될 수 있다.
이때, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 실행하는 단계는, 상기 운영체제의 스케쥴링 정책에 따른 기 설정된 주기가 돌아왔을 때, 상기 할당된 쓰레드를 이용하여 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 순차적으로 실행하는 것을 특징으로 할 수 있다.
그리고, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 순차적으로 실행 시, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트에 대한 정보를 순차적으로 저장할 수 있다.
여기서, 상기 실행기 모니터에 통보하는 단계는, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트의 한 주기 실행이 완료될 때마다, 상기 실행기 모니터에 실행 완료 통보를 하는 것을 특징으로 할 수 있다.
한편, 상기 컴포넌트 실행기의 동작에 고장이 있는 지 여부는 상기 실행 완료 통보가 정해진 주기에 따라 전달되고 있는지에 의해 결정되는 것을 특징으로 할 수 있다.
또한, 미리 정해진 횟수의 주기 동안 상기 실행 완료 통보가 전달되지 않을 경우 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트 중 하나에 고장이 발생한 것으로 판단하는 것을 특징으로 할 수 있다.
그리고, 상기 컴포넌트 실행기의 동작에 고장이 있는 것으로 판단한 경우, 상기 컴포넌트 실행기와 동일한 우선순위와 주기를 갖는 상기 새로운 컴포넌트 실행기를 생성하는 단계를 더 포함할 수 있다.
한편, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 실행하는 단계는, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 순차적으로 실행 시, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트에 대한 정보를 순차적으로 저장하는 것을 특징으로 하며, 상기 컴포넌트 실행기의 동작에 고장이 있는 것으로 판단한 경우, 상기 순차적으로 저장된 정보를 이용하여 상기 컴포넌트 실행기가 실행 중인 컴포 넌트가 어느 것인지 판단하는 것을 특징으로 할 수 있다.
또, 상기 컴포넌트 실행기의 동작을 폐기하고 새로운 컴포넌트 실행기를 생성하는 단계는, 상기 컴포넌트 실행기에서 실행 중인 것으로 판단된 컴포넌트를 제외한 나머지 동일한 우선순위와 주기를 갖는 컴포넌트를 상기 새로운 컴포넌트 실행기에 등록하여 이전시키는 것을 특징으로 할 수 있다.
아울러, 상기 새로운 컴포넌트 실행기에 등록하여 이전시키는 과정과 함께 상기 새로운 컴포넌트 실행기에 등록하여 이전시킨 컴포넌트들을 상기 컴포넌트 실행기에서 삭제할 수도 있다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
상기와 같은 구성을 갖는 본 발명의 실시예에 따른 로봇용 소프트웨어 컴포포넌트 실행에서의 고장 감내 방법 및 장치에 의하면 다중의 소프트웨어 컴포넌트 각각의 성능을 유지하면서도 특정 컴포넌트의 고장이 전체 시스템의 고장으로 확대되어 시스템 전체의 성능을 저하시키는 것을 방지할 수 있는 이점이 있다.
본 발명의 목적 및 효과, 그리고 그것들을 달성하기 위한 기술적 구성들은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다.
그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있다. 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 실시형태의 모듈, 기능 블록들 또는 수단들은 전자 회로, 집적 회로, ASIC (Application Specific Integrated Circuit) 등 공지된 다양한 소자들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수 있다.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
도 1은 본 발명의 실시예에 따른, 로봇용 소프트웨어 컴포넌트를 구동시키는데 있어서 컴포넌트 구동 시 발생하는 고장을 감내하는(fault tolerance) 방법을 수행하기 위한 장치의 구성을 개념적으로 나타낸 블록도이며, 도 2는 도 1에 표시된 고장 감내 장치의 인터페이스와 내부 자료 구조를 도시한 클래스 다이어그램이다.
도 1 및 도 2을 참조하면, 본 발명의 실시예에 따른, 로봇용 소프트웨어 컴포넌트를 구동시키는데 있어서 컴포넌트 구동 시 발생하는 고장을 감내하는(fault tolerance) 방법을 수행하기 위한 장치는, 운영체제로부터 쓰레드(thread)를 할당받아 동일한 우선순위와 주기를 갖는 적어도 하나의 로봇용 소프트웨어 컴포넌트들을 상기 할당받은 하나의 쓰레드를 이용하여 실행하는 컴포넌트 실행기, 컴포넌트 실행기의 동작을 주기적으로 모니터링하여 컴포넌트 실행기가 실행하는 로봇용 소프트웨어 컴포넌트의 고장 여부를 판단하는 실행기 모니터, 및 동일한 우선순위와 주기를 갖는 로봇용 소프트웨어 컴포넌트들을 할당하여 컴포넌트 실행기를 생성하며, 실행기 모니터가 컴포넌트 실행기의 동작에 고장이 있는 것으로 판단하는 경우 새로운 컴포넌트 실행기를 생성하는 실행기 관리자를 포함하여 구성된다.
운영체제로부터 쓰레드를 할당받아 여러 개의 컴포넌트를 실행시키기 위해서는 쓰레드와 컴포넌트 사이를 연결해주기 위한 매개체가 필요하다. 본 발명의 실시예에서는 컴포넌트 실행기가 운영체제로부터 쓰레드를 할당받고, 여러 컴포넌트들을 등록하여 할당받은 쓰레드로 컴포넌트들을 실행시키는 역할을 수행한다.
컴포넌트 실행기는 실행기 관리자를 통해서 생성되며, 실행기 모니터가 컴포넌트의 실행을 모니터링한다. 컴포넌트 실행기와 실행기 모니터, 실행기 관리자의 인터페이스와 내부 자료 구조는 도 2의 클래스 다이어그램에 나타나 있다.
컴포넌트 실행기는 우선순위와 주기를 갖고 있어서, 같은 우선순위와 같은 주기를 갖는 컴포넌트들을 같은 컴포넌트 실행기에 등록하여 실행시킨다. 컴포넌트 실행기에 설정된 우선순위와 주기는 컴포넌트 실행기가 여러 개인 경우 실시간 운영체제(Real Time Operation System:RTOS)의 스케쥴링 정책에 사용된다.
한편, 도 3은 본 발명의 실시예에 따른 로봇용 소프트웨어 컴포넌트를 구동시키는데 있어서 컴포넌트 구동 시 발생하는 고장을 감내하는(fault tolerance) 방법이 수행되는 순차적인 흐름을 도시한 흐름도이다.
도 3을 참조하면, 컴포넌트 실행기는 운영체제의 스케쥴링에 따라 정해진 주기가 돌아왔을 때 자신이 갖고 있는 쓰레드를 이용하여 컴포넌트 실행기에 등록된 컴포넌트들을 순차적으로 실행시킨다. 이때, 컴포넌트들을 순차적으로 실행시키면 서, 실행시키고자 하는 컴포넌트 정보를 컴포넌트 실행기 내부에 저장하여 놓는다. 컴포넌트 실행기는, 등록된 컴포넌트들의 순차적인 실행을 모두 마치고, 한주기 실행이 완료되면, 실행기 모니터에 실행 완료 통보를 한다(1).
한편, 실행기 모니터는 컴포넌트 실행기로부터 실행 완료 통보가 정해진 주기에 따라 전달되는지를 계속 감시하는 역할을 수행한다(2). 만약, 미리 정해진 몇번의 주기동안 컴포넌트 실행기에서 실행 완료 통보가 전달되지 않을 경우, 컴포넌트를 실행하는 컴포넌트 실행기에 고장이 발생한 것으로 판단하고, 이를 실행기 관리자에 통보한다(3).
한편, 고장 판단을 통보받은 실행기 관리자는 고장난 컴포넌트 실행기와 동일한 우선순위와 주기를 갖는 컴포넌트 실행기를 새로 생성한다(4). 그리고, 실행기 관리자는, 현재 컴포넌트 실행기가 실행 중인 컴포넌트가 어느 것인지 컴포넌트 실행기에 저장된 정보를 이용하여 알아낸 후, 고장난 컴포넌트 실행기에서 현재 실행되고 있는 컴포넌트를 제외한 컴포넌트들을 새로운 컴포넌트 실행기에 등록하여 이전시킨다(6).
한편, 기존 컴포넌트 실행기에서는 새로운 컴포넌트 실행기로 이전 등록된 컴포넌트들을 삭제한다(5). 새롭게 생성된 컴포넌트 실행기는 고장난 컴포넌트를 제외한 다른 컴포넌트들을 등록하여 운영체제로부터 새롭게 쓰레드를 할당받고 순차적 실행을 재개한다(7).
이처럼, 컴포넌트 실행기의 동작을 매주기마다 모니터링하여 고장 여부를 판단하고, 신속하게 고장난 컴포넌트를 검출해내어 새로운 컴포넌트 실행기를 생성할 뿐만 아니라, 고장난 컴포넌트를 컴포넌트 실행과정 중에서 순차적으로 저장한 정보를 이용하여 알아낸 후 선별적으로 제외하여 새로운 컴포넌트 실행을 수행하기 때문에 특정 컴포넌트의 고장이 전체 시스템의 고장으로 확대되는 것을 신속하고 정확하게 방지할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 예를 들어 당업자는 각 구성요소의 재질, 크기 등을 적용 분야에 따라 변경하거나, 개시된 실시형태들을 조합 또는 치환하여 본 발명의 실시예에 명확하게 개시되지 않은 형태로 실시할 수 있으나, 이 역시 본 발명의 범위를 벗어나지 않는 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것으로 한정적인 것으로 이해해서는 안 되며, 이러한 변형된 실시예들은 본 발명의 특허청구범위에 기재된 기술사상에 포함된다고 하여야 할 것이다.
도 1은 본 발명의 실시예에 따른, 로봇용 소프트웨어 컴포넌트를 구동시키는데 있어서 컴포넌트 구동 시 발생하는 고장을 감내하는(fault tolerance) 방법을 수행하기 위한 장치의 구성을 개념적으로 나타낸 블록도이다.
도 2는 본 발명의 실시예에 따른 고장을 감내하는(fault tolerance) 방법을 수행하기 위한 장치의 인터페이스와 내부 자료 구조를 도시한 블록도이다.
도 3은 본 발명의 실시예에 따른 로봇용 소프트웨어 컴포넌트를 구동시키는데 있어서 컴포넌트 구동 시 발생하는 고장을 감내하는(fault tolerance) 방법이 수행되는 순차적인 흐름을 도시한 흐름도이다.
Claims (20)
- 로봇용 소프트웨어 컴포넌트를 구동시키는데 있어서 컴포넌트 구동 시 발생하는 고장을 감내하는(fault tolerance) 방법을 수행하기 위한 장치에 있어서,운영체제로부터 쓰레드(thread)를 할당받아 동일한 우선순위와 주기를 갖는 적어도 하나의 로봇용 소프트웨어 컴포넌트를 상기 쓰레드를 이용하여 실행하고, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 실행할 때, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트에 대한 정보를 순차적으로 저장하는 컴포넌트 실행기,상기 컴포넌트 실행기의 동작을 주기적으로 모니터링하여 상기 컴포넌트 실행기가 실행하는 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트의 고장 여부를 판단하는 실행기 모니터, 및동일한 우선순위와 주기를 갖는 적어도 하나의 로봇용 소프트웨어 컴포넌트를 할당하여 상기 컴포넌트 실행기를 생성하며, 상기 실행기 모니터가 상기 컴포넌트 실행기의 동작에 고장이 있는 것으로 판단한 경우, 상기 컴포넌트 실행기와 동일한 우선순위와 주기를 갖는 상기 새로운 컴포넌트 실행기를 생성하는 실행기 관리자를 포함하고,상기 실행기 관리자는,상기 실행기 모니터가 상기 컴포넌트 실행기의 동작에 고장이 있는 것으로 판단한 경우, 상기 순차적으로 저장된 정보를 이용하여 상기 컴포넌트 실행기가 실행 중인 컴포넌트가 어느 것인지 판단하고,상기 컴포넌트 실행기에서 실행 중인 것으로 판단된 컴포넌트를 제외한 나머지 우선순위와 주기를 갖는 컴포넌트를 상기 새로운 컴포넌트 실행기에 등록하여 이전시키고,상기 새로운 컴포넌트 실행기에 등록하여 이전시킨 컴포넌트들을 상기 컴포넌트 실행기에서 삭제하는 것인, 로봇용 소프트웨어 컴포넌트 실행 동작의 고장 감내 장치.
- 제1항에 있어서,상기 컴포넌트 실행기는,상기 운영체제의 스케쥴링 정책에 따른 기 설정된 주기가 돌아왔을 때, 상기 할당된 쓰레드를 이용하여 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 순차적으로 실행하는로봇용 소프트웨어 컴포넌트 실행 동작의 고장 감내 장치.
- 제2항에 있어서,상기 컴포넌트 실행기는,상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 실행할 때, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트에 대한 정보를 순차적으로 저장하는로봇용 소프트웨어 컴포넌트 실행 동작의 고장 감내 장치.
- 제1항에 있어서,상기 컴포넌트 실행기는,상기 적어도 하나의 로봇용 소프트웨어 컴포넌트의 한 주기 실행이 완료되면, 상기 실행기 모니터에 실행 완료 통보를 하는로봇용 소프트웨어 컴포넌트 실행 동작의 고장 감내 장치.
- 제4항에 있어서,상기 실행기 모니터는,상기 컴포넌트 실행기로부터 되는 상기 실행 완료 통보가 정해진 주기에 따라 전달되는지를 감시하는로봇용 소프트웨어 컴포넌트 실행 동작의 고장 감내 장치.
- 제4항에 있어서,상기 실행기 모니터는,미리 정해진 횟수의 주기 동안 상기 컴포넌트 실행기에서 상기 실행 완료 통보가 전달되지 않을 경우 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트 중 하나에 고장이 발생한 것으로 판단하여 상기 실행기 관리자에 통보하는로봇용 소프트웨어 컴포넌트 실행 동작의 고장 감내 장치.
- 삭제
- 삭제
- 삭제
- 삭제
- 로봇용 소프트웨어 컴포넌트를 구동시키는데 있어서 실행기 관리자가 컴포넌트 구동 시 발생하는 고장을 감내하는(fault tolerance) 방법에 있어서,동일한 우선순위와 주기를 갖는 적어도 하나의 로봇용 소프트웨어 컴포넌트를 컴포넌트 실행기에 할당하는 단계,운영체제로부터 하나의 쓰레드를 할당받아 상기 컴포넌트 실행기를 이용하여 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 실행하고, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 순차적으로 실행시, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트에 대한 정보를 순차적으로 저장하는 단계,상기 실행한 결과를 실행기 모니터에 통보하는 단계, 및상기 실행기 모니터가 상기 컴포넌트 실행기의 동작에 고장이 있는 것으로 판단한 경우, 상기 컴포넌트 실행기와 동일한 우선순위와 주기를 갖는 새로운 컴포넌트 실행기를 생성하는 단계를 포함하고,상기 실행기 관리자는,상기 실행기 모니터가 상기 컴포넌트 실행기의 동작에 고장이 있는 것으로 판단한 경우, 상기 순차적으로 저장된 정보를 이용하여 상기 컴포넌트 실행기가 실행 중인 컴포넌트가 어느 것인지 판단하고,상기 컴포넌트 실행기에서 실행 중인 것으로 판단된 컴포넌트를 제외한 나머지 우선순위와 주기를 갖는 컴포넌트를 상기 새로운 컴포넌트 실행기에 등록하여 이전시키고,상기 새로운 컴포넌트 실행기에 등록하여 이전시킨 컴포넌트들을 상기 컴포넌트 실행기에서 삭제하는 것인, 로봇용 소프트웨어 컴포넌트 실행 동작의 고장 감내 방법.
- 제11항에 있어서,상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 실행하는 단계는,상기 운영체제의 스케쥴링 정책에 따른 기 설정된 주기가 돌아왔을 때, 상기 할당된 쓰레드를 이용하여 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 순차적으로 실행하는 것을 특징으로 하는로봇용 소프트웨어 컴포넌트 실행 동작의 고장 감내 방법.
- 제12항에 있어서,상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 순차적으로 실행 시, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트에 대한 정보를 순차적으로 저장하는로봇용 소프트웨어 컴포넌트 실행 동작의 고장 감내 방법.
- 제11항에 있어서,상기 실행기 모니터에 통보하는 단계는,상기 적어도 하나의 로봇용 소프트웨어 컴포넌트의 한 주기 실행이 완료될 때마다, 상기 실행기 모니터에 실행 완료 통보를 하는 것을 특징으로 하는로봇용 소프트웨어 컴포넌트 실행 동작의 고장 감내 방법.
- 제14항에 있어서,상기 컴포넌트 실행기의 동작에 고장이 있는 지 여부는 상기 실행 완료 통보가 정해진 주기에 따라 전달되고 있는지에 의해 결정되는 것을 특징으로 하는로봇용 소프트웨어 컴포넌트 실행 동작의 고장 감내 방법.
- 제14항에 있어서,미리 정해진 횟수의 주기 동안 상기 실행 완료 통보가 전달되지 않을 경우 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트 중 하나에 고장이 발생한 것으로 판단하는 것을 특징으로 하는로봇용 소프트웨어 컴포넌트 실행 동작의 고장 감내 방법.
- 삭제
- 삭제
- 삭제
- 삭제
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090126638A KR101313692B1 (ko) | 2009-12-18 | 2009-12-18 | 로봇용 소프트웨어 컴포넌트를 실행하는데 있어서 고장 감내 방법 및 장치 |
US12/843,513 US8332069B2 (en) | 2009-12-18 | 2010-07-26 | Fault tolerance method and apparatus for robot software component |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090126638A KR101313692B1 (ko) | 2009-12-18 | 2009-12-18 | 로봇용 소프트웨어 컴포넌트를 실행하는데 있어서 고장 감내 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110070007A KR20110070007A (ko) | 2011-06-24 |
KR101313692B1 true KR101313692B1 (ko) | 2013-10-02 |
Family
ID=44152215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090126638A KR101313692B1 (ko) | 2009-12-18 | 2009-12-18 | 로봇용 소프트웨어 컴포넌트를 실행하는데 있어서 고장 감내 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8332069B2 (ko) |
KR (1) | KR101313692B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018074750A1 (ko) * | 2016-10-18 | 2018-04-26 | 주식회사 유니온플레이스 | 열차 정보 관리 장치 |
KR20190132097A (ko) * | 2018-05-18 | 2019-11-27 | 강원대학교산학협력단 | 산업용 로봇 시스템의 실시간 스케줄링 방법 및 장치 |
KR102387137B1 (ko) * | 2020-12-23 | 2022-04-15 | 재단법인대구경북과학기술원 | 전자식 변속 제어기의 고장 검출 시스템 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110153079A1 (en) * | 2009-12-18 | 2011-06-23 | Electronics And Telecommunication Research Institute | Apparatus and method for distributing and monitoring robot application and robot driven thereby |
KR20140062288A (ko) * | 2012-11-14 | 2014-05-23 | 한국전자통신연구원 | 로봇 컴포넌트 오류 처리 장치 및 그 방법 |
KR102251991B1 (ko) | 2015-05-14 | 2021-05-17 | 한국전자통신연구원 | 결함 주입 및 결함 감내 분석을 위한 방법 및 장치 |
IL249816B (en) * | 2016-12-28 | 2019-03-31 | Gross Amit | System and methods for diagnosing and repairing a smart mobile device by neutralization |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001290637A (ja) * | 2000-04-05 | 2001-10-19 | Nec Corp | コンポーネントの動的置換装置及びコンピュータ読み取り可能な記憶媒体 |
JP2006338069A (ja) * | 2005-05-31 | 2006-12-14 | Hitachi Ltd | コンポーネントソフトウェアの運用方法および運用基盤 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5983161A (en) * | 1993-08-11 | 1999-11-09 | Lemelson; Jerome H. | GPS vehicle collision avoidance warning and control system and method |
US6748556B1 (en) | 2000-08-15 | 2004-06-08 | International Business Machines Corporation | Changing the thread capacity of a multithreaded computer processor |
KR20070053581A (ko) | 2005-11-21 | 2007-05-25 | 엘지전자 주식회사 | 사용자인식 소프트웨어 컴포넌트 api에서 에러 핸들링방법 |
US7668621B2 (en) * | 2006-07-05 | 2010-02-23 | The United States Of America As Represented By The United States Department Of Energy | Robotic guarded motion system and method |
US8073564B2 (en) * | 2006-07-05 | 2011-12-06 | Battelle Energy Alliance, Llc | Multi-robot control interface |
US7587260B2 (en) * | 2006-07-05 | 2009-09-08 | Battelle Energy Alliance, Llc | Autonomous navigation system and method |
US7584020B2 (en) * | 2006-07-05 | 2009-09-01 | Battelle Energy Alliance, Llc | Occupancy change detection system and method |
US7801644B2 (en) * | 2006-07-05 | 2010-09-21 | Battelle Energy Alliance, Llc | Generic robot architecture |
US7620477B2 (en) * | 2006-07-05 | 2009-11-17 | Battelle Energy Alliance, Llc | Robotic intelligence kernel |
US7974738B2 (en) * | 2006-07-05 | 2011-07-05 | Battelle Energy Alliance, Llc | Robotics virtual rail system and method |
US7211980B1 (en) * | 2006-07-05 | 2007-05-01 | Battelle Energy Alliance, Llc | Robotic follow system and method |
US8355818B2 (en) * | 2009-09-03 | 2013-01-15 | Battelle Energy Alliance, Llc | Robots, systems, and methods for hazard evaluation and visualization |
KR100877715B1 (ko) | 2007-02-02 | 2009-01-09 | 한국과학기술연구원 | 지능형 로봇을 위한 센싱, 구동 및 실시간 행동을 포함한리액티브 층 소프트웨어의 구조 |
KR100896705B1 (ko) | 2007-02-06 | 2009-05-14 | 한국과학기술연구원 | 지능형 로봇의 지능적 작업 관리를 위한 컴포넌트 기반의 작업 관리 시스템 |
US7926035B2 (en) * | 2007-04-24 | 2011-04-12 | Microsoft Corporation | Testing multi-thread software using prioritized context switch limits |
-
2009
- 2009-12-18 KR KR1020090126638A patent/KR101313692B1/ko not_active IP Right Cessation
-
2010
- 2010-07-26 US US12/843,513 patent/US8332069B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001290637A (ja) * | 2000-04-05 | 2001-10-19 | Nec Corp | コンポーネントの動的置換装置及びコンピュータ読み取り可能な記憶媒体 |
JP2006338069A (ja) * | 2005-05-31 | 2006-12-14 | Hitachi Ltd | コンポーネントソフトウェアの運用方法および運用基盤 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018074750A1 (ko) * | 2016-10-18 | 2018-04-26 | 주식회사 유니온플레이스 | 열차 정보 관리 장치 |
KR20190132097A (ko) * | 2018-05-18 | 2019-11-27 | 강원대학교산학협력단 | 산업용 로봇 시스템의 실시간 스케줄링 방법 및 장치 |
KR102149171B1 (ko) * | 2018-05-18 | 2020-08-28 | 강원대학교산학협력단 | 산업용 로봇 시스템의 실시간 스케줄링 방법 및 장치 |
KR102387137B1 (ko) * | 2020-12-23 | 2022-04-15 | 재단법인대구경북과학기술원 | 전자식 변속 제어기의 고장 검출 시스템 |
Also Published As
Publication number | Publication date |
---|---|
KR20110070007A (ko) | 2011-06-24 |
US20110153073A1 (en) | 2011-06-23 |
US8332069B2 (en) | 2012-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101313692B1 (ko) | 로봇용 소프트웨어 컴포넌트를 실행하는데 있어서 고장 감내 방법 및 장치 | |
US20200379858A1 (en) | Proactive cluster compute node migration at next checkpoint of cluster upon predicted node failure | |
CN105389243A (zh) | 一种容器监控方法和装置 | |
US9519532B2 (en) | Handling system interrupts with long-running recovery actions | |
US20140372983A1 (en) | Identifying the introduction of a software failure | |
EP2672341A1 (en) | Safety control device and safety control method | |
US20160085640A1 (en) | Methods, apparatus and system for selective duplication of subtasks | |
US20150089505A1 (en) | Systems and methods for fault tolerant batch processing in a virtual environment | |
US9329937B1 (en) | High availability architecture | |
CN105408868B (zh) | 稳健的硬件/软件错误恢复系统 | |
US20140129880A1 (en) | Generation of memory dump of a computer process without terminating the computer process | |
KR102020994B1 (ko) | 결함 주입 테스트 방법 및 장치 | |
CN104391754A (zh) | 一种任务异常的处理方法及装置 | |
TWI654561B (zh) | 用於控制時間密集的指令的資訊處理設備及方法 | |
US9563494B2 (en) | Systems and methods for managing task watchdog status register entries | |
Guo et al. | Real-time fault-tolerant scheduling algorithm with rearrangement in cloud systems | |
JP6303486B2 (ja) | 情報処理システム、監視方法、及び、プログラム | |
Zagan et al. | Improving the performances of the nMPRA processor using a custom interrupt management scheduling policy | |
US8984518B2 (en) | Apparatus and method for executing components based on thread pool | |
CN114661432A (zh) | 任务调度方法、装置、设备及存储介质 | |
Alho et al. | Software fault detection and recovery in critical real-time systems: An approach based on loose coupling | |
WO2018179739A1 (ja) | 情報処理装置、情報処理方法及びプログラム | |
CN110955546B (zh) | 一种内存地址监控方法、装置及电子设备 | |
JP6819061B2 (ja) | 情報処理装置、プロセス切り替え方法及びプログラム | |
CN116820715A (zh) | 作业重启方法、装置、计算机设备和可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
E801 | Decision on dismissal of amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160826 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |