KR101869341B1 - 데이터 출력 시스템 및 그 시스템의 데이터 출력 방법 - Google Patents

데이터 출력 시스템 및 그 시스템의 데이터 출력 방법 Download PDF

Info

Publication number
KR101869341B1
KR101869341B1 KR1020170175956A KR20170175956A KR101869341B1 KR 101869341 B1 KR101869341 B1 KR 101869341B1 KR 1020170175956 A KR1020170175956 A KR 1020170175956A KR 20170175956 A KR20170175956 A KR 20170175956A KR 101869341 B1 KR101869341 B1 KR 101869341B1
Authority
KR
South Korea
Prior art keywords
data
output
terminated
processed
unit
Prior art date
Application number
KR1020170175956A
Other languages
English (en)
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 KR1020170175956A priority Critical patent/KR101869341B1/ko
Application granted granted Critical
Publication of KR101869341B1 publication Critical patent/KR101869341B1/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/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/0745Error 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 an input/output transactions management context

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)

Abstract

본 발명은 처리된 데이터를 파일 시스템 등으로 출력하는 데이터 출력 시스템 및 그 시스템의 데이터 출력 방법에 관한 것으로, 데이터를 처리하는 프로세스를 포함하는 데이터 처리부와, 상기 프로세스가 처리한 데이터를 입력받아 파일 시스템으로 출력하는 출력부를 포함하는 데이터 출력 시스템에 있어서, 상기 데이터 처리부는, 상기 프로세스가 비정상 종료되었는지 여부를 판단하고, 판단 결과에 근거하여 상기 프로세스의 비정상 종료를 알리기 위한 비정상 종료 신호를 상기 출력부에 전송하며, 상기 출력부는, 상기 프로세스가 처리한 데이터를 저장하는 버퍼부를 포함하고, 상기 비정상 종료 신호의 수신 여부에 근거하여, 상기 버퍼부에 저장된 데이터를 상기 파일 시스템에 즉시 출력하거나 또는 기 설정된 알고리즘에 따른 최적 시간에 출력하는 것을 특징으로 한다.

Description

데이터 출력 시스템 및 그 시스템의 데이터 출력 방법{DATA OUTPUT SYSTEM AND METHOD FOR DATA OUTPUT THEREOF}
본 발명은 처리된 데이터를 파일 시스템 등으로 출력하는 데이터 출력 시스템 및 그 시스템의 데이터 출력 방법에 관한 것이다.
현재 급변하는 다양한 상황에 실시간 대응하기 위하여 입력되는 정보의 실시간 처리를 위한 실시간 소프트웨어가 등장하고 있다. 이러한 실시간 소프트웨어들은 실시간 운영체제(Real Time Operation System, RTOS) 또는 실시간 소프트웨어의 운용이 가능한 LINUX/UNIX 상에서 구현된 소프트웨어들일 수 있다.
한편 이러한 실시간 운영체제의 데이터 출력 시스템의 경우, 상술한 바와 같이 실시간 데이터 처리를 할 수 있는 기능을 제공할 수 있으나, 하드웨어 성능에 의한 문제를 해결할 수는 없다. 즉, 데이터의 처리는 실시간으로 이루어질 수 있으나, 데이터를 출력하는 출력부에서 출력 가능한 속도보다 데이터의 처리 속도가 더 빠른 경우 미처 출력되지 못한 데이터는 출력부의 버퍼에 적재된다. 그리고 버퍼에 적재된 데이터들은 그 데이터를 처리한 시스템 프로세스에 의해 최적의 출력 시간이 설정되고, 설정된 최적의 출력 시간에 따라 순차적으로 데이터가 파일 시스템으로 출력된다. 그리고 데이터가 파일 시스템에 출력이 완료되거나 해당 프로세스가 정상적으로 종료되면 실시간 운영체제는 시스템 상의 오버헤드 및 한정된 하드웨어의 효율적 사용을 위해 상기 출력 및 프로세스가 종료된 데이터를 버퍼에서 삭제한다.
그런데, 이처럼 정상적인 과정을 통하여 프로세스가 종료되는 것이 아니라, 오류 등 다양한 문제로 인하여 프로세스가 비정상 종료되는 경우가 발생할 수 있다. 이러한 경우 실시간 운영체제는 상기 프로세스가 종료됨에 따라 해당 프로세스가 사용하던 자원을 다른 프로세스가 사용할 수 있도록 한다. 따라서 상기 비정상 종료된 프로세스가 처리한 데이터가 아직 출력되지 않은 채로 버퍼에 적재된 상태인 경우, 상기 비정상 종료된 프로세스의 데이터들이 아직 출력되지 않았음에도 불구하고, 다른 프로세스가 사용할 수 있도록 삭제된다. 이에 따라 상기 비정상 종료된 프로세스에서 현재까지 처리된 데이터들이 파일 시스템에 출력되지 못하고 버퍼에서 삭제된다는 문제점이 있다.
이처럼 프로세스가 예상치 못하게 비정상 종료되는 경우에, 그 프로세스가 처리하였으나 미처 출력되지 못한 데이터가 삭제된다는 문제점을 해결하기 위하여, 중요한 프로세스의 경우 사용자가 명시적으로 즉시 출력을 하도록 직접 지정하는 방법이 등장하였다. 그러나 이러한 방법의 경우 사용자 임의의 결정에 따라 프로세스의 중요 여부가 판단되며, 또한 중요한 것으로 판단된 프로세스의 경우 버퍼에서 파일 시스템에 즉시 출력이 수행되어야 하므로, 데이터 출력시에 상당한 오버헤드가 발생한다는 문제가 발생하였다. 또한 사용자가 임의로 중요도를 결정하여 즉시 출력 여부를 결정함으로써 정작 중요한 데이터의 출력이 지연될 수 있다는 문제점 및 데이터가 출력될 때마다 사용자가 즉시 출력 여부를 결정하여야 하는 문제점 등이 있었다.
본 발명은 전술한 문제 및 다른 문제를 해결하는 것을 목적으로 하는 것으로, 데이터 출력 시에 오버헤드를 증가시키지 않으면서도, 프로세스가 비정상 종료되는 경우에 상기 비정상 종료된 프로세스에서 처리된 데이터들이 손실없이 출력될 수 있도록 하는 데이터 출력 시스템 및 그 시스템의 데이터 출력 방법을 제공하는 것을 목적으로 한다.
상기 또는 다른 목적을 달성하기 위해 본 발명의 일 측면에 따르면, 데이터를 처리하는 프로세스를 포함하는 데이터 처리부와, 상기 프로세스가 처리한 데이터를 입력받아 파일 시스템으로 출력하는 출력부를 포함하는 데이터 출력 시스템에 있어서, 상기 데이터 처리부는, 상기 프로세스가 비정상 종료되었는지 여부를 판단하고, 판단 결과에 근거하여 상기 프로세스의 비정상 종료를 알리기 위한 비정상 종료 신호를 상기 출력부에 전송하며, 상기 출력부는, 상기 프로세스가 처리한 데이터를 저장하는 버퍼부를 포함하고, 상기 비정상 종료 신호의 수신 여부에 근거하여, 상기 버퍼부에 저장된 데이터를 상기 파일 시스템에 즉시 출력하거나 또는 기 설정된 알고리즘에 따른 최적 시간에 출력하는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 출력부는, 상기 비정상 종료 신호가 수신되지 않는 경우, 상기 버퍼부에 저장된 데이터가 현재 종료되지 않은 프로세스 또는 정상 종료된 프로세스로부터 처리된 데이터로 판단하고, 상기 버퍼부에 저장된 데이터를 기 설정된 최적 시간에 근거하여 출력하며, 상기 비정상 종료 신호가 수신되는 경우, 상기 버퍼부에 저장된 데이터가 비정상 종료된 프로세스로부터 처리된 데이터로 판단하여 상기 파일 시스템에 즉시 출력하는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 데이터 처리부는, 실시간 운영체제 또는 상기 실시간 운영체제가 탑재된 소프트웨어 또는 하드웨어임을 특징으로 한다.
일 실시 예에 있어서, 상기 데이터 처리부의 프로세스는 복수개이며, 상기 버퍼부는, 상기 복수개의 프로세스 중 적어도 일부에 각각 대응하는 복수의 버퍼를 포함하며, 상기 복수의 버퍼는, 대응하는 서로 다른 프로세스로부터 처리되는 데이터를 저장하는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 출력부는, 상기 비정상 종료 신호로부터 상기 복수의 프로세스 중 비정상 종료된 프로세스를 식별하며, 상기 복수의 버퍼 중, 식별된 프로세스에 대응하는 버퍼를 식별 및 식별된 버퍼에 저장된 데이터를 상기 파일 시스템으로 즉시 출력하는 것을 특징으로 한다.
상기 또는 다른 목적을 달성하기 위해 본 발명의 일 측면에 따르면, 데이터를 처리하는 프로세스를 포함하는 데이터 처리부와, 상기 프로세스가 처리한 데이터를 입력받아 파일 시스템으로 출력하는 출력부를 포함하는 데이터 출력 시스템의 데이터 출력 방법에 있어서, 상기 데이터 처리부의 프로세스가, 처리한 데이터를 상기 출력부로 출력하는 제1 단계와, 상기 데이터 처리부가, 상기 프로세스의 종료 여부를 판단하는 제2 단계와, 상기 데이터 처리부가, 상기 종료 여부를 판단한 결과 프로세스가 종료된 경우 종료된 프로세스가 비정상 종료되었는지 여부를 판단하는 제3 단계와, 상기 데이터 처리부가, 상기 프로세스의 비정상 종료 여부를 판단한 결과에 따라 비정상 종료 신호를 상기 출력부로 전송하는 제4 단계 및, 상기 출력부가, 상기 비정상 종료 신호의 수신 여부에 따라 상기 출력부의 버퍼에 저장된 데이터를 상기 파일 시스템으로 즉시 출력하거나, 또는 기 설정된 알고리즘에 따라 결정되는 최적 시간에 출력하는 제5 단계를 포함하는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 데이터 처리부의 프로세스는 복수개이며, 상기 출력부는, 상기 복수개의 프로세스 중 적어도 일부에 각각 대응하는 복수의 버퍼를 포함하며, 상기 복수의 버퍼는, 대응하는 서로 다른 프로세스로부터 처리되는 데이터를 저장하는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 제5 단계는, 상기 비정상 종료 신호가 수신되는 경우 상기 출력부가, 상기 비정상 종료 신호로부터 상기 비정상 종료된 프로세스를 식별하는 제5-1 단계와, 상기 출력부가, 상기 복수의 버퍼 중 상기 비정상 종료된 프로세스에 대응하는 버퍼를 식별하는 제5-2 단계 및, 상기 복수의 버퍼 중, 상기 식별된 버퍼에 저장된 데이터는 상기 파일 시스템으로 즉시 출력하고, 그 외의 버퍼들은 상기 최적 시간에 출력하는 제5-3 단계를 더 포함하는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 데이터 처리부는, 실시간 운영체제 또는 상기 실시간 운영체제가 탑재된 소프트웨어 또는 하드웨어임을 특징으로 한다.
본 발명에 따른 데이터 출력 시스템 및 그 시스템의 데이터 출력 방법의 효과에 대해 설명하면 다음과 같다.
본 발명의 실시 예들 중 적어도 하나에 의하면, 본 발명은 데이터를 처리하는 프로세스가 비정상 종료되는 경우, 비정상 종료된 프로세스를 알리기 위한 신호를 탐지하고, 상기 프로세스의 비정상 종료 알림 신호 탐지 여부에 근거하여 버퍼에 저장된 데이터를 즉시 출력하거나 또는 기 설정된 최적 시간에 따라 순차적으로 데이터가 출력될 수 있도록 한다. 이에 따라 비정상 종료된 프로세스가 있는 경우에 한하여 데이터가 즉시 출력되도록 함으로써, 즉시 출력에 의해 발생하는 오버헤드를 최소화하면서도, 상기 프로세스의 비정상 종료에 따른 데이터 손실을 방지할 수 있다는 효과가 있다.
도 1은 본 발명의 실시 예에 따른 데이터 출력 시스템의 구조를 설명하기 위한 블록도이다.
도 2는 본 발명의 실시 예에 따른 데이터 출력 시스템에서, 프로세스가 처리한 데이터를 출력하는 동작 과정을 도시한 흐름도이다.
도 3은 본 발명의 다른 실시 예에 따른 데이터 출력 시스템의 구조를 설명하기 위한 블록도이다.
도 4는 본 발명의 다른 실시 예에 따른 데이터 출력 시스템에서, 프로세스가 처리한 데이터를 출력하는 동작 과정을 도시한 흐름도이다.
본 명세서에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "구성된다." 또는 "포함한다." 등의 용어는 명세서상에 기재된 여러 구성 요소들, 또는 여러 단계를 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 명세서에 개시된 기술을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 기술의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예들을 상세히 설명하도록 한다.
먼저 도 1은 본 발명의 실시 예에 따른 데이터 출력 시스템의 구조를 설명하기 위한 블록도이다.
도 1을 참조하여 살펴보면, 본 발명의 실시 예에 따른 데이터 출력 시스템(100)은, 데이터를 처리하는 데이터 처리부(110), 상기 데이터 처리부(110)로부터 각 프로세스들이 처리한 데이터를 입력받아 파일 시스템(130)으로 출력하는 출력부(120)를 포함하여 구성될 수 있다.
여기서 상기 데이터 처리부(110)는, 프로세스(process) 단위로 데이터를 처리할 수 있다. 즉, 상기 데이터 처리부(110)는 복수의 프로세스가 각각 데이터를 처리할 수 있도록 형성되는 것으로, LINUX, 또는 VxWorks와 같은 실시간 운영체제 또는 상기 실시간 운영체제가 탑재된 소프트웨어 또는 하드웨어일 수 있다.
한편 파일 시스템(130)은 처리된 데이터를 저장하기 위한 저장 매체를 포함할 수 있다. 예를 들어 상기 파일 시스템(130)은 플래시 메모리 타입(flash memory), 하드디스크(hard disk), SSD(Solid State Disk), SDD(Silicon Disk Drive), 램(random access memory; RAM), SRAM(static random access memory), 롬(read-only memory; ROM), EEPROM(electrically erasable programmable read-only memory), PROM(programmable read-only memory), 자기 메모리, 자기 디스크 및 광디스크 중 적어도 하나의 저장매체를 포함할 수 있다. 또는 인터넷(internet)상에서 저장 기능을 수행하는 웹 스토리지(web storage)를 포함할 수도 있다.
한편 출력부(120)는 상기 데이터 처리부(110)의 각 프로세스들로부터 처리되는 데이터를 파일 시스템(130)으로 출력할 수 있다. 그러나 데이터 처리부(110)에서 데이터가 처리되는 속도가, 상기 파일 시스템(130)에 데이터가 저장되는 속도보다 현저히 빠르므로, 출력부(120)는 상기 데이터 처리부(110)로부터 입력되는 데이터를 임시 저장하는 버퍼부(122)를 더 포함할 수 있다. 그리고 출력부(120)는 입력되는 데이터를 상기 버퍼부(122)에 적재하고, 입력된 데이터를 최적의 시간에 출력하기 위한 기 설정된 알고리즘에 따라 상기 버퍼부(122)에 적재된 데이터를 상기 알고리즘에 따라 결정된 최적의 시간에 파일 시스템(130)으로 출력한다.
한편, 본 발명의 실시 예에 따른 데이터 출력 시스템(100)의 데이터 처리부(110)는 데이터를 처리하는 각각의 프로세스의 상태를 감지할 수 있다. 특히 상기 데이터 처리부(110)는 프로세스가 종료되는 경우 상기 프로세스가 정상적으로 종료된 것인지 또는 비정상적으로 종료된 것인지 여부를 판단할 수 있다.
예를 들어 데이터 처리부(110)는 종료된 프로세스가, 자(子) 프로세스이고 부(父) 프로세스의 제어에 의해 종료(예 : 부(父) 프로세스가 종료되지 않은 상태에서 자(子) 프로세스가 종료), 또는 해당 프로세스에 관련된 명령 코드들이나 다른 프로세스들의 실행 완료에 따라 종료, 또는 프로세스를 종료시키기 위해 미리 정의된 인터럽트(interrupt) 수신에 따라 해당 프로세스가 종료되는 등의 경우, 상기 종료된 프로세스가 정상적으로 종료된 프로세스라고 판단할 수 있다. 반면 상기 종료된 프로세스가 자(子) 프로세스인 경우, 명령 코드 실행 중에 부(父) 프로세스의 갑작스러운 종료에 따라 함께 종료, 또는 실행될 명령 코드들 또는 관련된 다른 프로세스들이 아직 실행되지 않은 상태에서 프로세스가 종료되는 등의 경우(할당되지 않은 포인터 변수 해제, 해제된 메모리 재 해제, NULL 포인터 변수 접근, 해제된 포인터 변수 접근, 할당되지 않은 포인터 변수 접근, 할당된 범위를 벗어난 메모리 접근 등) 해당 프로세스가 비정상 종료된 것으로 판단할 수 있다.
한편 이처럼 비정상 종료된 프로세스가 탐지되는 경우, 데이터 처리부(110)는 해당 프로세스의 비정상 종료를 알리기 위한 신호를 출력부(120)에 출력할 수 있다. 그러면 출력부(120)는 버퍼부(122)에 저장된 데이터를 파일 시스템에 즉시 출력할 수 있다. 이에 따라 데이터 중 버퍼부(122)에 적재된 데이터가 즉시 출력되어 파일 시스템(130)에 저장될 수 있다. 따라서 상기 비정상 종료된 프로세스가 종료되기 전까지 처리한 데이터 중 미처 파일 시스템(130)으로 출력되지 못한 데이터가 있다 하더라도, 상기 즉시 출력을 통해 파일 시스템에 저장될 수 있다.
따라서 본 발명의 실시 예에 따른 데이터 출력 시스템(100)은, 비정상적으로 종료된 프로세스가 없는 경우에는, 즉 프로세스들이 정상적으로 종료되는 상태에서는 각 프로세스로부터 처리되는 데이터들을 기 설정된 알고리즘(예 : FIFO(First In First Out)에 따라 결정되는 최적 시간에 따라 파일 시스템(130)으로 출력할 수 있다. 반면 비정상적으로 종료되는 프로세스가 검출되는 경우에는, 버퍼부(122)에 적재된 데이터들이 즉시 출력되도록 함으로써 상기 프로세스의 비정상 종료로 인해 데이터의 손실이 발생하지 않도록 할 수 있다. 이에 따라 본 발명은 사용자가 임의로 처리되는 데이터의 중요도를 설정하거나, 또는 모든 데이터를 즉시 출력함에 따라 발생하는 오버헤드의 증가 없이도, 발생되는 오버헤드를 최소화하면서도 상기 프로세스의 비정상 종료에 따른 데이터 손실을 방지할 수 있다.
한편 도 2는 이러한 본 발명의 실시 예에 따른 데이터 출력 시스템(100)에서, 프로세스가 처리한 데이터를 출력하는 동작 과정을 도시한 흐름도이다.
도 2를 참조하여 살펴보면, 본 발명의 실시 예에 따른 데이터 출력 시스템(100)의 데이터 처리부(110)에서는, 먼저 프로세스가 데이터를 처리하는 과정이 수행될 수 있다. 그리고 처리된 데이터는 출력부(120)로 출력될 수 있다(S200).
그리고 데이터 처리부(110)는 상기 프로세스의 상태를 감지할 수 있다. 먼저 데이터 처리부(110)는 상기 프로세스가 종료되었는지 여부를 판단할 수 있다(S204).
그리고 상기 프로세스의 종료 여부를 판단한 결과, 프로세스가 종료되지 않은 상태라면, 상기 프로세스가 처리하는 데이터는 계속 출력부(120)로 출력될 수 있다. 그러면 출력부(120)는 데이터 처리부(110)로부터 입력되는 데이터를 버퍼부(122)에 적재할 수 있다. 그리고 적재된 데이터를 기 설정된 알고리즘에 따라 결정되는 최적 시간에 파일 시스템(130)으로 출력할 수 있다(S204). 그리고 출력부(120)는 출력된 데이터를 버퍼부(122)에서 삭제할 수 있다(206). 그리고 다시 S200 단계로 진행하여 상기 프로세스로부터 처리되는 데이터를 출력부(120)에 출력할 수 있다.
한편 상기 S202 단계에서 프로세스의 종료가 검출되면, 데이터 처리부(110)는 상기 프로세스가 비정상적으로 종료되었는지 여부를 판단할 수 있다(S208). 여기서 상기 데이터 처리부(110)는 상기 프로세스가 종료된 원인에 근거하여 상기 프로세스가 비정상적으로 종료되었는지 여부를 판단할 수 있다(S208).
예를 들어 데이터 처리부(110)는 상술한 바와 같이 연계된 다른 프로세스의 종료에 따라 강제 종료되었거나, 또는 실행될 명령 코드들 또는 관련된 다른 프로세스들이 아직 실행되지 않은 상태에서 프로세스가 종료되는 등의 경우 상기 프로세스가 비정상 종료된 것으로 판단할 수 있다.
한편 상기 S208 단계의 판단 결과, 프로세스가 비정상 종료된 경우가 아니라면, 출력부(120)는 다시 S204 단계 및 S206 단계로 진행하여 정상 종료된 프로세스로부터 입력된 데이터를 기 설정된 알고리즘에 따른 최적 시간에 파일 시스템(130)으로 출력 및 출력된 데이터를 버퍼부(122)에서 삭제하는 과정을 진행할 수 있다. 이에 따라 본 발명의 실시 예에 따른 데이터 출력 시스템(100)은 정상 종료되거나, 현재 종료되지 않은 프로세스의 경우, 그 프로세스가 처리하는 데이터를 기 설정된 최적 시간에 출력할 수 있다. 그리고 만약 프로세스가 정상 종료된 상태인 경우, 상기 버퍼에 저장된 데이터가 모두 출력되면 현재 종료된 프로세스에 대한 상기 도 2의 동작 과정이 종료될 수 있다.
반면 상기 S208 단계에서 현재 종료된 프로세스가 비정상 종료된 것으로 판단되면, 데이터 처리부(110)는 세그멘테이션 폴트 신호(Segmentation Fault signal)등 비정상 종료 신호를 생성할 수 있다. 여기서 상기 세그멘테이션 폴트 신호는 상기 프로세스가 비정상 종료되었음을 알리기 위한 신호 중 하나일 수 있다. 그리고 데이터 처리부(110)는 생성된 세그멘테이션 폴트 등의 비정상 프로세스 종료 알림 신호를 출력부(120)에 전달할 수 있다(S210).
그러면 출력부(120)는 상기 비정상 종료 신호에 따라 현재 버퍼부(122)에 저장된 데이터를 파일 시스템(130)으로 즉시 출력할 수 있다. 따라서 본 발명의 실시 예에 따른 데이터 출력 시스템(100)은 프로세스가 비정상 종료에 의해 데이터가 손실되는 것을 방지할 수 있다.
한편 본 발명의 실시 예에 따른 데이터 출력 시스템은 복수의 버퍼를 가질 수도 있음은 물론이다. 도 3은 이러한 경우에 본 발명의 실시 예에 따른 데이터 출력 시스템을 설명하기 위한 블록도이다.
도 3을 참조하여 살펴보면, 본 발명의 실시 예에 따른 데이터 출력 시스템(300)의 버퍼부(312)는 복수의 버퍼(제1 버퍼, 제2 버퍼, ... , 제n 버퍼)를 포함할 수 있다. 이러한 경우 상기 복수의 버퍼는 각각 서로 다른 프로세스로부터 처리되는 데이터를 저장하도록 형성될 수도 있다. 그리고 출력부(310)는 기 설정된 알고리즘에 따라 결정되는 최적 시간에, 상기 복수의 버퍼들 각각에 저장된 데이터들을 파일 시스템(130)으로 출력할 수 있다.
한편, 데이터 처리부(110)는 데이터를 처리하는 각각의 프로세스의 상태를 감지할 수 있다. 그리고 프로세스가 종료되는 경우 상기 프로세스가 정상적으로 종료된 것인지 또는 비정상적으로 종료된 것인지 여부를 판단할 수 있다. 그리고 상기 프로세스가 비정상 종료된 경우, 이를 알리기 위한 비정상 종료 신호(예 : 세그멘테이션 폴트 신호(Segmentation Fault signal))를 생성하고 생성된 비정상 종료 신호를 출력부(120)로 출력할 수 있다.
한편 출력부(310)는 상기 비정상 종료 신호가 수신되는 경우, 수신된 비정상 종료 신호에 대응하는 프로세스를 식별할 수 있다. 예를 들어 상기 비정상 종료 신호는 현재 비정상 종료된 프로세스의 식별 정보를 포함할 수 있다. 그리고 출력부(310)은 상기 비정상 종료 신호에 포함된 프로세스 식별 정보에 근거하여, 상기 비정상 종료된 프로세스를 식별할 수 있다. 그리고 복수의 버퍼들 중 식별된 프로세스에 관련된 데이터가 적재된 버퍼를 식별할 수 있다. 그리고 식별된 버퍼에 한해 즉시 출력이 수행되도록 할 수 있다.
예를 들어 상기 제1 버퍼에 상기 비정상 종료된 프로세스의 데이터가 적재된 상태라면, 출력부(310)는 데이터 처리부(110)로부터 수신된 비정상 종료 신호에 근거하여 상기 제1 버퍼를 식별할 수 있다. 그리고 상기 제1 버퍼에 저장된 데이터들을 파일 시스템(130)으로 즉시 출력할 수 있다. 반면 다른 버퍼들에 저장된 데이터들은 프로세스가 정상적으로 진행되고 있는 상태이므로, 출력부(310)는 상기 기 설정된 알고리즘에 따라 결정되는 최적 시간에 따라 상기 다른 버퍼들에 저장된 데이터들을 파일 시스템(130)으로 출력할 수 있다.
도 4는 이러한 본 발명의 다른 실시 예에 따른 데이터 출력 시스템에서, 프로세스가 처리한 데이터를 출력하는 동작 과정을 도시한 흐름도이다.
도 4를 참조하여 살펴보면, 본 발명의 다른 실시 예에 따른 데이터 출력 시스템(300)의 데이터 처리부(110)에서는, 복수의 서로 다른 프로세스가 각각 데이터들을 처리하는 과정이 수행될 수 있다. 그리고 처리된 데이터들은 출력부(310)로 출력될 수 있다(S400).
그리고 데이터 처리부(110)는 각 프로세스들의 상태를 감지할 수 있다. 먼저 데이터 처리부(110)는 각 프로세스들 중 종료된 프로세스가 있는지 여부를 판단할 수 있다(S404).
프로세스들의 종료 여부를 판단한 결과, 종료된 프로세스가 없는 경우라면, 상기 데이터 처리부(110)의 각 프로세스들이 처리하는 데이터들은 계속 출력부(310)로 출력될 수 있다. 그러면 출력부(310)는 입력되는 데이터들을 버퍼부(312)에 적재할 수 있다. 이러한 경우 각각의 버퍼들은 서로 다른 프로세스들로부터 처리되는 데이터들을 저장할 수 있다. 그리고 각각의 버퍼에 적재된 데이터들은 기 설정된 알고리즘에 따라 결정되는 최적 시간에 따라 파일 시스템(130)으로 출력할 수 있다(S404). 그리고 출력부(310)는 출력된 데이터를 각각의 버퍼에서 삭제할 수 있다(406). 그리고 다시 S400 단계로 진행하여 각 프로세스로부터 처리되는 데이터들을 출력부(310)에 출력할 수 있다.
한편 상기 S402 단계에서 종료된 프로세스가 있는 경우, 데이터 처리부(110)는 현재 종료된 프로세스가 비정상적으로 종료되었는지 여부를 판단할 수 있다(S408).
한편 상기 S408 단계의 판단 결과, 상기 종료된 프로세스가 비정상 종료된 경우가 아니라면, 출력부(310)는 다시 S404 단계 및 S406 단계로 진행하여 정상 종료된 프로세스로부터 입력된 데이터가 기 설정된 알고리즘에 따른 최적 시간에 파일 시스템(130)으로 출력되도록 할 수 있다. 그리고 출력된 데이터를 해당 버퍼에서 삭제하는 과정을 진행할 수 있다. 그리고 만약 프로세스가 정상 종료된 상태인 경우, 버퍼에 저장된 상기 정상 종료된 프로세스의 데이터가 모두 출력되면, 데이터 처리부(110)는 다시 S400 단계로 진행하여, 상기 데이터가 모두 출력된 버퍼에, 다른 프로세스로부터 처리된 데이터를 저장할 수 있다.
반면 상기 S408 단계에서 현재 종료된 프로세스가 비정상 종료된 경우, 데이터 처리부(110)는 비정상 종료 신호(예 : 세그멘테이션 폴트 신호(Segmentation Fault signal))를 생성할 수 있다. 그리고 생성된 세그멘테이션 폴트 신호를 출력부(310)에 전달할 수 있다(S410).
그러면 출력부(310)는 상기 비정상 종료 신호에 대응하는 프로세스로부터 상기 비정상 종료된 프로세스의 데이터를 포함하는 버퍼를 식별할 수 있다(S412). 그리고 식별된 버퍼에 저장된 데이터들을 파일 시스템(130)으로 즉시 출력할 수 있다. 이에 따라 버퍼부(312)의 각 버퍼에 저장된 데이터들 중, 비정상 종료된 프로세스의 데이터들만 우선적으로 파일 시스템(130)에 즉시 출력될 수 있다. 따라서 본 발명의 실시 예에 따른 데이터 출력 시스템(300)은 프로세스가 비정상 종료에 의해 데이터가 손실되는 것을 방지할 수 있을 뿐만 아니라, 상기 비정상 종료된 프로세스의 데이터에 한해 즉시 출력이 이루어지도록 함으로써, 상기 즉시 출력으로 인해 발생하는 오버헤드를 최소화할 수 있다.
한편 상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시할 수 있다. 특히 본 발명의 실시 예에서는 LINUX, VXworks 등 실시간 운영체제를 이용하는 데이터 출력 시스템을 예로 들어 설명하였으나, 얼마든지 다른 운영체제를 이용하는 데이터 출력 시스템에도 적용될 수 있음은 물론이다.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 상기 컴퓨터는 단말기의 제어부를 포함할 수도 있다. 따라서 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
100 : 데이터 출력 시스템 110 : 데이터 처리부
120 : 출력부 122 : 버퍼부
130 : 파일 시스템

Claims (9)

  1. 데이터를 처리하는 프로세스를 포함하는 데이터 처리부와, 상기 프로세스가 처리한 데이터를 입력받아 파일 시스템으로 출력하는 출력부를 포함하는 데이터 출력 시스템에 있어서,
    상기 데이터 처리부는,
    상기 프로세스가 비정상 종료되었는지 여부를 판단하고, 판단 결과에 근거하여 상기 프로세스의 비정상 종료를 알리기 위한 비정상 종료 신호를 상기 출력부에 전송하며,
    상기 출력부는,
    상기 프로세스가 처리한 데이터를 저장하는 버퍼부를 포함하고,
    상기 비정상 종료 신호가 수신되지 않는 경우, 상기 버퍼부에 저장된 데이터가 현재 종료되지 않은 프로세스 또는 정상 종료된 프로세스로부터 처리된 데이터로 판단하고, 상기 버퍼부에 저장된 데이터를 기 설정된 최적 시간에 근거하여 출력하며,
    상기 비정상 종료 신호가 수신되는 경우, 상기 버퍼부에 저장된 데이터가 비정상 종료된 프로세스로부터 처리된 데이터로 판단하여 상기 파일 시스템에 즉시 출력하는 것을 특징으로 하는 데이터 출력 시스템.
  2. 삭제
  3. 제1항에 있어서, 상기 데이터 처리부는,
    실시간 운영체제 또는 상기 실시간 운영체제가 탑재된 소프트웨어 또는 하드웨어임을 특징으로 하는 데이터 출력 시스템.
  4. 제1항에 있어서,
    상기 데이터 처리부의 프로세스는 복수개이며,
    상기 버퍼부는,
    상기 복수개의 프로세스 중 적어도 일부에 각각 대응하는 복수의 버퍼를 포함하며,
    상기 복수의 버퍼는,
    대응하는 서로 다른 프로세스로부터 처리되는 데이터를 저장하는 것을 특징으로 하는 데이터 출력 시스템.
  5. 제4항에 있어서, 상기 출력부는,
    상기 비정상 종료 신호로부터 상기 복수의 프로세스 중 비정상 종료된 프로세스를 식별하며,
    상기 복수의 버퍼 중, 식별된 프로세스에 대응하는 버퍼를 식별 및 식별된 버퍼에 저장된 데이터를 상기 파일 시스템으로 즉시 출력하는 것을 특징으로 하는 데이터 출력 시스템.
  6. 데이터를 처리하는 프로세스를 포함하는 데이터 처리부와, 상기 프로세스가 처리한 데이터를 입력받아 파일 시스템으로 출력하는 출력부를 포함하는 데이터 출력 시스템의 데이터 출력 방법에 있어서,
    상기 데이터 처리부의 프로세스가, 처리한 데이터를 상기 출력부로 출력하는 제1 단계;
    상기 데이터 처리부가, 상기 프로세스의 종료 여부를 판단하는 제2 단계;
    상기 데이터 처리부가, 상기 종료 여부를 판단한 결과 프로세스가 종료된 경우 종료된 프로세스가 비정상 종료되었는지 여부를 판단하는 제3 단계;
    상기 데이터 처리부가, 상기 프로세스의 비정상 종료 여부를 판단한 결과에 따라 비정상 종료 신호를 상기 출력부로 전송하는 제4 단계; 및,
    상기 비정상 종료 신호가 수신되지 않는 경우, 상기 출력부가 버퍼부에 저장된 데이터를 현재 종료되지 않은 프로세스 또는 정상 종료된 프로세스로부터 처리된 데이터로 판단하고 상기 버퍼부에 저장된 데이터를 기 설정된 최적 시간에 근거하여 출력하거나, 상기 비정상 종료 신호가 수신되는 경우, 상기 출력부가 상기 버퍼부에 저장된 데이터를 비정상 종료된 프로세스로부터 처리된 데이터로 판단하여 상기 파일 시스템에 즉시 출력하는 제5 단계를 포함하는 것을 특징으로 하는 데이터 출력 방법.
  7. 제6항에 있어서,
    상기 데이터 처리부의 프로세스는 복수개이며,
    상기 출력부는,
    상기 복수개의 프로세스 중 적어도 일부에 각각 대응하는 복수의 버퍼를 포함하며,
    상기 복수의 버퍼는,
    대응하는 서로 다른 프로세스로부터 처리되는 데이터를 저장하는 것을 특징으로 하는 데이터 출력 방법.
  8. 제7항에 있어서, 상기 제5 단계는,
    상기 비정상 종료 신호가 수신되는 경우 상기 출력부가, 상기 비정상 종료 신호로부터 상기 비정상 종료된 프로세스를 식별하는 제5-1 단계;
    상기 출력부가, 상기 복수의 버퍼 중 상기 비정상 종료된 프로세스에 대응하는 버퍼를 식별하는 제5-2 단계; 및,
    상기 복수의 버퍼 중, 상기 식별된 버퍼에 저장된 데이터는 상기 파일 시스템으로 즉시 출력하고, 그 외의 버퍼들은 상기 최적 시간에 출력하는 제5-3 단계를 더 포함하는 것을 특징으로 하는 데이터 출력 방법.
  9. 제6항에 있어서, 상기 데이터 처리부는,
    실시간 운영체제 또는 상기 실시간 운영체제가 탑재된 소프트웨어 또는 하드웨어임을 특징으로 하는 데이터 출력 방법.
KR1020170175956A 2017-12-20 2017-12-20 데이터 출력 시스템 및 그 시스템의 데이터 출력 방법 KR101869341B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170175956A KR101869341B1 (ko) 2017-12-20 2017-12-20 데이터 출력 시스템 및 그 시스템의 데이터 출력 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170175956A KR101869341B1 (ko) 2017-12-20 2017-12-20 데이터 출력 시스템 및 그 시스템의 데이터 출력 방법

Publications (1)

Publication Number Publication Date
KR101869341B1 true KR101869341B1 (ko) 2018-07-20

Family

ID=63103441

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170175956A KR101869341B1 (ko) 2017-12-20 2017-12-20 데이터 출력 시스템 및 그 시스템의 데이터 출력 방법

Country Status (1)

Country Link
KR (1) KR101869341B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06187192A (ja) * 1992-12-18 1994-07-08 Hitachi Ltd プログラム出力制御方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06187192A (ja) * 1992-12-18 1994-07-08 Hitachi Ltd プログラム出力制御方法

Similar Documents

Publication Publication Date Title
US9164908B2 (en) Managing out-of-order memory command execution from multiple queues while maintaining data coherency
US7574565B2 (en) Transforming flush queue command to memory barrier command in disk drive
CN110753112A (zh) 云服务的弹性伸缩方法和装置
CN108196940B (zh) 删除容器的方法和相关设备
CN110069217B (zh) 一种数据存储方法及装置
US20100332914A1 (en) Dump output control apparatus and dump output control method
US20180018237A1 (en) Information processing apparatus and information processing system
US9304955B2 (en) Techniques for identifying and handling processor interrupts
KR101869341B1 (ko) 데이터 출력 시스템 및 그 시스템의 데이터 출력 방법
US10552354B2 (en) Managing starvation in a distributed arbitration scheme
CN114238990A (zh) 一种分布式漏洞扫描方法及k8s分布式系统
US20170091218A1 (en) Method and apparatus for locking file in memory
JPH0786841B2 (ja) 障害情報ログ方法及びデータ処理装置
US9069888B2 (en) Tracking errors in a computing system
JP7141939B2 (ja) 産業用コントローラ
CN112306371A (zh) 存储管理的方法、设备和计算机程序产品
US9619306B2 (en) Information processing device, control method thereof, and recording medium
CN113778711B (zh) 一种事件处理方法、装置、电子设备及存储介质
JP7336911B2 (ja) 処理特定装置、処理特定方法及び処理特定プログラム
CN111263936A (zh) 电子终端的垃圾文件处理方法与电子终端
US20210382645A1 (en) File processing method, computer device and readable storage medium
KR101115752B1 (ko) 프로세스 모니터링을 통한 유해 프로세스 침입 탐지 방법및 이를 구현하는 호스트 침입 방지 시스템
JP7067781B2 (ja) 動的リンク管理装置、動的リンク管理方法、及びプログラム
JP3008890B2 (ja) 処理制御装置
CN111221736A (zh) 一种设备耗电方法、装置及电子设备

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant