KR100636268B1 - 임베디드 멀티태스크 운영체제를 사용하는 시스템에서운영체제의 소프트웨어 모듈 상태 감시 장치 및 그 방법 - Google Patents

임베디드 멀티태스크 운영체제를 사용하는 시스템에서운영체제의 소프트웨어 모듈 상태 감시 장치 및 그 방법 Download PDF

Info

Publication number
KR100636268B1
KR100636268B1 KR1020040005153A KR20040005153A KR100636268B1 KR 100636268 B1 KR100636268 B1 KR 100636268B1 KR 1020040005153 A KR1020040005153 A KR 1020040005153A KR 20040005153 A KR20040005153 A KR 20040005153A KR 100636268 B1 KR100636268 B1 KR 100636268B1
Authority
KR
South Korea
Prior art keywords
software module
operating system
status information
status
information
Prior art date
Application number
KR1020040005153A
Other languages
English (en)
Other versions
KR20050077201A (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 KR1020040005153A priority Critical patent/KR100636268B1/ko
Priority to US11/004,850 priority patent/US20050177776A1/en
Publication of KR20050077201A publication Critical patent/KR20050077201A/ko
Application granted granted Critical
Publication of KR100636268B1 publication Critical patent/KR100636268B1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47KSANITARY EQUIPMENT NOT OTHERWISE PROVIDED FOR; TOILET ACCESSORIES
    • A47K3/00Baths; Douches; Appurtenances therefor
    • A47K3/02Baths
    • A47K3/022Baths specially adapted for particular use, e.g. for washing the feet, for bathing in sitting position
    • 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/3017Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47KSANITARY EQUIPMENT NOT OTHERWISE PROVIDED FOR; TOILET ACCESSORIES
    • A47K3/00Baths; Douches; Appurtenances therefor
    • A47K3/02Baths
    • A47K3/06Collapsible baths, e.g. inflatable; Movable baths
    • 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/0715Error 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 system implementing multitasking
    • 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/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available

Abstract

본 발명에 따른 임베디드 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치 및 그 방법은, 운영체제내 다수의 소프트웨어 모듈의 상태 정보를 하드웨어 로직의 상태 기록 영역에 순차적으로 기록하고, 사용자의 상태 정보 확인 요청에 따라 상태 기록 영역에 기록된 소프트웨어 모듈의 상태 정보를 순차적으로 하드웨어 로직을 통해 판독하여 사용자가 용이하게 확인할 수 있도록 디스플레이하여 줌으로써, 운영체제내의 소프트웨어와 서로 동작이 무관하게 소프트웨어 모듈의 상태 정보를 감시 및 확인이 가능한 것으로, 어떤 경우의 소프트웨어적인 예외 상황이라도 상태 점검이 가능하도록 한 것이다.

Description

임베디드 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치 및 그 방법{Apparatus and method for monitoring software module state in systems using embedded multitask Operating System}
도 1은 종래 기술에 따른 임베디드 멀티태스크 시스템의 운영 체제내 커널 소프트웨어와 커널 소프트웨어의 상태를 감시하기 위한 소프트웨어 모듈의 연결 구성을 나타낸 도면.
도 2는 종래 기술에 따른 커널 소프트웨어의 상태를 감시하는 방법에 대한 동작 플로우챠트를 나타낸 도면.
도 3은 본 발명에 따른 임베디드 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치의 블록 구성을 나타낸 도면.
도 4는 도 3에 도시된 상태 기록부에 저장되는 데이터의 구조를 나타낸 도면.
도 5는 본 발명에 따른 임베디드 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 방법에 대한 동작 플로우챠트를 나타낸 도면.
도 6은 도 4에 도시된 커널 소프트웨어들이 자신의 상태 정보를 기록할 어드 레스와 크기를 결정하는 데이터 흐름을 나타낸 도면.
도 7은 본 발명에 따른 커널 소프트웨어들이 자신의 상태를 기록할 어드레스와 크기를 결정하는 방법에 대한 동작 플로우챠트를 나타낸 도면.
도 8은 도 4에 도시된 하드웨어 로직내에서 각 커널 소프트웨어들이 상태 기록부에 기록한 상태값을 사용자의 요청에 따라 외부의 디스플레이장치로 출력하는 데이터의 흐름을 나타낸 도면.
도 9는 도 8의 데이터 흐름에 따라 도 4에 도시된 하드웨어 로직내 상태 기록부에 기록된 소프트웨어 모듈의 상태 정보를 사용자의 요청에 따라 외부의 디스플레이장치로 출력하는 방법에 대한 동작 플로우챠트를 나타낸 도면.
*도면의 주요 부분에 대한 부호의 설명*
10 : 운영체제 20a - 20c : 커널 소프트웨어
30 : 스케쥴러 50 : 상태 기록 설정부
100 : 하드웨어 로직 110 : 외부 디스플레이부
120 : 상태 출력부 130 : 상태 판독부
140 : 저장부 150 : 상태 점검 요청부
본 발명은 임베디드 멀티태스크 운영체제에 관한 것으로서, 특히 임베디드 멀티태스크 운영체제(Embedded Multitask Operating System)를 사용하는 시스템에서 발생할 수 있는 커널(Kernel)상의 패닉 즉, 운영체제의 소프트웨어 모듈의 내부 상태를 효율적으로 감시하기 위한 장치 및 방법에 관한 것이다.
일반적으로, 임베디드 시스템에서 사용되는 운영체제는 커널이라고 불리 우는 운영체제의 핵심 역할을 하는 소프트웨어 모듈(Software module)을 포함하고 있다. 운영체제는 커널보다 포괄적인 개념이지만 보통 운영 체제와 커널간에 혼용하여 사용하기도 한다.
커널은 채택된 운영체제에 따라서 차이는 있지만 일반적으로 아래와 같은 기능들을 수행한다.
첫 째, 시스템내의 메모리(Memory) 관리(가상 메모리 지원, 메모리 보호) 기능, 둘 째, 인터럽트(Interrupt) 및 타임머(Timer) 관리 기능, 세 째, 프로세스(Process)/태스크(Task) 스케쥴링(Scheduling) 기능, 넷째, 버스(Bus)나 콘트롤러(Controller)의 초기화 및 관리 기능 등을 수행한다.
상기한 기능들은 운영체제의 핵심을 이루어서 이 운영체제를 바탕으로 동작하는 소프트웨어들이 문제없이 서비스를 제공할 수 있도록 시스템내의 리소스(Resource)를 관리해준다. 상기에서 언급된 대부분의 리소스들은 하드웨어(Hardware)의 도움을 받아야 하는 부분이다. 따라서, 커널부분의 구현에서는 하드웨어와 연계하여 동작하도록 되어 있는 부분이 많다.
임베디드 시스템이 제공하는 서비스를 담당하는 소프트웨어는 이러한 커널을 포함한 운영체제 상에서 동작하도록 되어 있기 때문에 운영체제는 상위(Upper) 서비스 소프트웨어(Service software, 운영체제를 기반으로 동작하는 소프트웨어)의 동작 상태에 관계없이 항상 정상적인 동작상태를 유지해야 한다. 그리고, 비정상적인 문제점이 발생 시 빠른 조치를 취할 수 있는 기능도 제공할 수 있어야 한다.
그러나, 이 커널 부분은 많은 하드웨어를 직접 다루고 있고 다양하고 많은 소프트웨어를 관리하고 있기 때문에 항상 비정상적인 동작에 대해 노출되어 있다. 만약에 안정성이 충분히 검증되지 않은 소프트웨어 모듈의 이상동작에 의해서 커널 자체가 비정상적인 동작 상태를 보일 수 도 있다.
이러한 문제를 차단하기 위해서 커널에는 슈퍼바이져 모드(Supervisor mode)와 일반유저 모드(User mode)로 나뉘어서 리소스 접근에 제한을 둘 수 있는 기능이 있다. 그러나, 하드웨어에 직접 접근하는 디바이스 드라이버(Device driver)와 같은 소프트웨어 모듈은 일반적으로 슈퍼바이져 모드에서 동작하므로 커널에 직접적인 영향을 줄 소지가 분명히 있는 것이다.
이하, 첨부한 도 1 및 도 2를 참조하여 종래 기술에 따른 운영 체제내 커널 소프트웨어의 상태를 감시하기 위한 동작에 대하여 살펴보기로 하자.
도 1은 일반적인 운영체제내(10)의 커널 소프트웨어(20a~20c)간의 동작 상태와, 이들의 동작 상태를 감시하기 위한 소프트웨어 모듈들간의 관계를 보여 주고 있다.
도 1에 도시된 바와 같이, 일반적인 운영체제(10)는 다수의 커널 소프트웨어(20a - 20c), 스케쥴러(30) 및 상태 감시 소프트웨어 모듈(40)을 포함할 수 있다. 여기서, 상태 감시 소프트웨어 모듈(40)은 상태 검사부(41) 및 상태 출력부(42)를 포함하며, 상기 커널 소프트웨어(20a-20n)는 커널내부에서 동작되는 모든 소프트웨어를 의미하고, 상태 출력부(42)를 통해 출력되는 소프트웨어 모듈들의 상태 정보는 외부 디스플레이부(100)에 디스플레이될 수 있다.
도 1에 도시된 바와 같이, 일반적인 운영체제(10)는 슈퍼바이져 모드와 일반 유저 모드로 나뉘어 동작한다.
슈퍼바이져 모드에서는 시스템내의 모든 리소스를 직접 사용할 수 있기 때문에 모든 소프트웨어가 슈퍼바이져 모드 하에서 동작할 수 있는 것은 아니고, 리소스를 직접 다루어야 만 하는 일부 소프트웨어 모듈만 이 모드에서 동작한다. 여기서 리소스란 메모리와 같은 하드웨어 파트들을 포함한다.
일반 유저 모드 하에서 동작하는 소프트웨어 모듈들은 하드웨어와 같은 리소스에 직접 접근할 수 없도록 커널에 의해서 제한을 하고 있다. 따라서, 일반 유저 모드에서 동작하는 소프트웨어는 시스템에 치명적인 영향을 주는 경우가 적다. 그러나, 디바이스 드라이버라 불리우는 소프트웨어 모듈은 슈퍼바이져 모드에서 동작하여 하드웨어를 직접 다루기 때문에 시스템을 심각한 비정상적인 상태로 만들 수 있는 것이다.
따라서, 대부분의 운영체제(10)에는 이러한 상태를 감시하는 소프트웨어 모듈이 있을 수 있다. 이 소프트웨어 모듈도 커널 내에서 동작이 되므로 커널의 제어를 받아야 한다.
커널 내에서는 이러한 소프트웨어들을 관리하기 위해서 내부적으로 도 1에 도시된 바와 같이, 스케쥴러(Scheduler)(30)라고 하는 핵심기능 소프트웨어 모듈을 갖고 있다. 스케쥴러(30)는 여러 종류나 여러 개의 커널 소프트웨어 모듈(20a~20n)들이 공평하게 각자의 기능을 수행할 수 있도록 중재 역할을 해준다. 여기서 언급되는 커널 소프트웨어 모듈(20a~20n)은 커널 내부에서 동작되는 모든 소프트웨어를 포함한다.
스케쥴러(30)는 내부의 모든 소프트웨어가 이상 없이 정상적으로 동작할 수 있도록 자체적인 알고리즘(Algorithm)에 의해서 각 소프트웨어 모듈에게 일정 시간을 분배하고 있다.
각 커널 소프트웨어 모듈(20a~20n)은 스케쥴러(30)에서 분배한 시간 내에 원하는 기능을 수행해야 한다. 현재 수행중인 커널 소프트웨어 모듈(20a~20n)의 정해진 동작시간이 완료되면, 스케쥴러(30)는 다른 커널 소프트웨어 모듈(20a~20n)이 동작될 수 있도록 리소스 사용권을 다음 커널 소프트웨어(20a~20n)에게 넘기게 된다.
이러한 과정의 반복이 커널내의 모든 소프트웨어들이 문제없이 실행될 수 있도록 하는 방법이고 시스템이 제대로 운영되는 한 이러한 반복과정은 계속된다.
커널(10)내의 각 소프트웨어의 상태를 주기적으로 감독하고 이를 외부에 알리는 소프트웨어 모듈이 상태감시 소프트웨어 모듈(40)이다. 이 소프트웨어 모듈(40)은 다른 커널 소프트웨어 모듈(20a~20n)과 같이 스케쥴러(30)에 의해서 제어될 수 있는데, 사용자는 이 상태감시 소프트웨어 모듈(40)을 통해 외부 디스플레이부(100)에 디스플레이되는 정보를 보고 현재 커널 상태를 확인할 수 있는 것이 다.
상기한 종래기술에 따른 운영체제의 소프트웨어 모듈 상태 감시 동작에 상응하는 종래 기술에 따른 소프트웨어 모듈 상태 감시 방법에 대하여 도 2를 참조하여 단계적으로 설명해 보기로 하자.
도 2는 종래 기술에 따른 커널 소프트웨어의 상태를 감시하는 방법에 대한 동작 플로우챠트를 나타낸 도면이다.
도 2에 도시된 바와 같이, 스케쥴러(30)는 자신이 관리하는 소프트웨어 즉, 커널 소프트웨어(20a~20n)와 상태 감시 소프트웨어 모듈(40)에게 동등하게 동작할 기회를 주는 역할을 한다. 그래서, 사전에 정해진 알고리즘에 의해서 현재 실행되고 있는 소프트웨어(20a~20n, 40) 다음에 동작할 소프트웨어(20a~20n, 40)를 결정한다.
현재 동작하고 있는 소프트웨어(20a~20n, 40)가 할당된 시간이 경과된 경우, 현재 동작하고 있는 소프트웨어(20a~20n, 40)의 동작을 일시 멈추게 하고, 상기 결정된 다음 동작할 소프트웨어(20a~20n, 40)를 실행시킨 후, 실행되는 소프트웨어 모듈(20a~20n, 40)에 실행 시간을 할당한다(S101).
이어, 실행될 소프트웨어 모듈이 상태 감시 소프트웨어 모듈(40)인지를 판단하고(S102), 판단 결과, 현재 실행된 소프트웨어 모듈이 상태감시 소프트웨어(40)인 경우 각 커널 소프트웨어(20a~20n, 40)의 상태를 파악한 후, 필요한 경우 상기 파악된 커널 소프트웨어 모듈(20a-20n)의 상태 정보를 외부 디스플레이부(100)에 출력하여 사용자가 커널 소프트웨어 모듈(20a-20n)의 현재 상태를 확인할 수 있도 록 한다(S103).
그러나, 상기 S102 단계에서, 다음 실행될 소프트웨어 모듈이 일반적인 기능을 수행하는 커널 소프트웨어 모듈(20a-20n)인 경우, 커널 소프트웨어 모듈(20a-20n)의 자체 기능을 수행하고(S105), 커널 소프트웨어의 자체 기능 수행 중 자체 기능상 문제가 발생되었는지를 판단한다(S106).
판단 결과, 커널 소프트웨어 모듈(20a -20n)의 자체 기능상 문제가 발생한 경우에는 시스템이 복구 불능상황에 빠지게 되는 것이다.
그러나, 커널 소프트웨어 모듈(20a-20n) 실행중 자체 문제가 발생하지 않은 경우, 스케쥴러는 현재 실행중인 소프트웨어 모듈(20a-20n, 40)에 할당된 실행 시간이 모두 경과되었는지를 판단한다(S104).
할당된 시간이 모두 경과되었을 경우에 스케쥴러는 그 다음 실행될 소프트웨어 모듈을 결정한 후, 상기한 동작을 반복 수행하게 된다.
커널내의 각 소프트웨어 모듈(20a~20c)은 각각 서로 다른 하드웨어를 다루기 때문에 경우에 따라서 예외적인 상황이 발생한다. 이러한 경우 특정 커널 소프트웨어(20a~20n)에 의해서 모든 리소스가 점유당하게 되면 스케쥴러(10) 자체도 제대로 동작되지 않을 수 있다.
이러한 심각한 상황이 되면 상태감시를 위한 소프트웨어 모듈(40)은 정상적인 역할을 수행할 수 없게 되기 때문에 외부에서 사용자가 시스템내의 상태를 확인할 수 없게 된다. 이 경우 시스템의 상태를 정확히 파악할 수 없게 되므로 문제 해결을 위한 접근이 어렵게 되는 것이다.
이와 같은 심각한 문제점의 일차적인 원인은 잘못 작성된 커널 소프트웨어에게 있다. 그러나, 해당 커널 소프트웨어는 커널 자체는 아니고 서비스를 위해서 추가적으로 작성된 것일 수 있다. 이러한 경우에도 운영체제의 상태를 제대로 파악해서 빠른 시간 내에 문제점을 알아낼 수 있어야 한다.
커널내의 스케쥴러도 소프트웨어이고 문제를 일으킨 커널 소프트웨어, 그리고 상태감시를 위한 소프트웨어 모듈도 모두 소프트웨어이다. 따라서, 상기한 심각한 상황에서는 소프트웨어만 가지고는 문제를 해결하기 어렵다. 따라서, 하드웨어 로직의 도움이 필요하게 된다. 하드웨어 로직은 소프트웨어와 무관하게 동작할 수 있으므로 소프트웨어와 하드웨어의 연결 인터페이스만 제대로 되어 있으면 소프트웨어의 상태를 하드웨어 로직에서 알아 낼 수 있는 것이다.
따라서, 본 발명은 상기한 종래 기술에 따른 제반 문제점을 해결하기 위한 것으로, 본 발명의 목적은, 소프트웨어 모듈의 동작과 무관한 하드웨어 로직을 구성하여 소프트웨어 모듈의 내부 상태(패닉)를 모니터링하고, 모니터링된 소프트웨어 모듈의 내부 상태 정보를 사용자가 용이하게 확인할 수 있도록 출력하는 임베디드 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치 및 그 방법을 제공함에 있다.
상기한 목적을 달성하기 위한 본 발명에 따른 임베디드 멀티태스크 운영체제를 사용하는 시스템에서 운영체제내 적어도 하나 이상의 소프트웨어 모듈의 상태를 감시하는 장치의 일 측면에 따르면, a) 상기 운영 체제와 인터페이싱되어 상기 운영 체제내 적어도 하나 이상의 소프트에어 모듈의 상태 정보를 기록하기 위한 기록 영역과 기록 영역의 크기가 결정되면, 각 소프트웨어 모듈의 상태 정보를 해당 영역에 순차적으로 기록하고, b) 사용자의 상태정보 요청이 있는 경우, 상기 기록된 각 소프트웨어 모듈의 상태 정보를 판독하여 디스플레이가능한 포맷으로 변환한 후, 변환된 각 소프트웨어모듈의 상태 정보를 디스플레이장치에 디스플레이하는 하드웨어 로직을 포함할 수 있다.
상기 운영체제는, 상기 적어도 하나 이상의 소프트웨어 모듈 초기화시 각 소프트웨어 모듈 별 상태 정보를 기록할 기록 영역 어드레스와, 해당 어드레스의 크기를 결정하고, 결정된 어드레스와 기록될 각 소프트웨어 모듈의 상태 정보에 대한 크기를 상기 하드웨어 로직의 상태 정보 기록 영역에 각각 기록하는 상태 정보 기록 설정 모듈을 포함한다.
상기 어드레스 크기는, 상기 하드웨어 로직에 기록할 상기 운영체제 내 각 소프트웨어 모듈의 상태 정보의 크기에 따라 결정된다.
상기 운영체제는, 상기 적어도 하나 이상의 소프트웨어 모듈중 다음에 실행할 소프트웨어 모듈을 결정하고, 현재 동작중인 소프트웨어 모듈의 할당 시간이 경과되면, 상기 결정된 소프트웨어 모듈을 실행시킨 후, 해당 소프트웨어 모듈에 실행 시간을 할당하여 실행중인 소프트웨어 모듈이 자신의 상태 정보를 하드웨어 로 직의 소프트웨어 상태 정보 기록 영역에 기록할 수 있도록 각 소프트웨어 모듈의 스케쥴을 제어하는 스케쥴링 모듈을 포함한다.
상기 현재 실행중인 소프트웨어 모듈은 상기 스케쥴링 모듈에 의해 자신에 할당된 실행 시간 중 마지막으로 실행한 자신의 상태 정보를 상기 하드웨어 로직의 자신의 상태정보 기록 영역에 기록한다.
상기 하드웨어 로직은, 상기 운영 체제의 각 소프트웨어 모듈 초기화시 결정된 소프트웨어 모듈 상태 기록 영역 어드레스와, 해당 어드레스 크기 정보에 따라 상기 운영 체제의 각 소프트웨어 모듈의 상태 정보를 해당 영역에 기록하는 상태 정보 기록부; 상기 상태 정보 기록부에 기록된 운영 체제내 적어도 하나 이상의 소프트웨어 모듈의 상태 정보를 확인하기 위한 키 입력신호를 제공하는 상태 정보 요청부; 상기 상태 정보 요청부로부터 상태 정보 확인 요청 신호가 입력되는 경우, 상기 상태 정보 기록부에 기록된 각 소프트웨어 모듈의 상태 정보를 리드하고, 리드된 소프트웨어 모듈의 상태 정보를 디스플레이가능한 데이터로 출력하는 상태 정보 판독부; 상기 상태 정보 판독부로부터 출력되는 소프트웨어 모듈의 상태 정보에 상응하는 데이터를 디스플레이하는 디스플레이부를 포함한다.
상기 상태 정보 기록부는, 상기 운영체제내 각 소프트웨어 모듈의 상태 정보를 기록할 어드레스와, 상기 각 소프트웨어 모듈의 상태 정보에 대한 크기 정보를 상기 어드레스에 대응되게 기록하는 제1 기록영역과, 상기 제1 기록영역에 기록된 운용 체제내 각 소프트웨어 모듈의 상태 정보에 대한 크기 정보에 따라 해당 소프트웨어 모듈의 상태 정보를 기록하는 제2 기록영역을 포함한다.
상기 제1 기록 영역의 범위는, 적어도 상기 운영체제내 소프트웨어 모듈의 개수와 동일하고, 상기 제2 기록영역에 기록되는 운영체제내 각 소프트웨어 모듈의 상태 정보는 헥사코드 형태로 기록할 수 있다.
상기 상태 정보 판독부는, 상기 상태 정보 기록부로부터 리드된 소프트웨어 모듈의 상태정보를 사용자가 용이하게 확인 가능하도록 디스플레이 데이터 포맷으로 변환하는 포맷 변환부를 포함한다.
상기 포맷 변환부는, 상기 상태 정보 기록부에 기록된 운영체제 내 각 소프트웨어 모듈의 상태정보를 2진수, 10진수, 텍스트 메시지 중 적어도 하나의 포맷으로 변환하여 디스플레이부에 디스플레이할 수 있다.
상기 상태 정보 판독부는, 상기 상태 정보 요청부로부터 요청신호가 입력될 때마다 라운드 로빈 방식으로 각 소프트웨어 모듈의 상태정보를 상기 상태 정보 기록부로부터 순차적으로 리드하여 상기 디스플레이부에 디스플레이하거나, 상기 상태 정보 요청부로부터 상태 정보 요청신호가 입력되는 경우, 상기 정보 기록부에 기록된 각 소프트웨어 모듈의 상태 정보를 순차적으로 리드하여 모든 소프트웨어 모듈의 상태 정보를 상기 디스플레이부에 디스플레이할 수 있다.
상기 디스플레이부는, 캐릭터 LED, LCD 중 적어도 하나를 포함한다.
상기 하드웨어 로직은, FPGA(Field Programmable Gate Array) 형태로 설계 및 구현될 수 있다.
또한, 본 발명에 따른 임베디드 멀티태스크 운영체제를 사용하는 시스템의 일측면에 따르면, 사로 다른 동작을 수행하는 적어도 하나 이상의 소프트웨어 모듈을 구비하고, 각 소프트웨어 모듈 초기화시 각 소프트웨어 모듈 별 상태 정보를 기록할 기록 영역 어드레스와, 상기 상태 정보 기록 영역의 크기를 결정하고, 결정된 어드레스 및 상태 정보 크기 정보를 발생하는 운영체제; a) 상기 운영 체제와 인터페이싱되어 상기 운영 체제로부터 발생 되는 소프트웨어 모듈별 상태 정보를 기록하기 위한 어드레스 및 상태 정보 크기 정보를 일 영역에 기록하고, 운영체제 내 각 소프트웨어 모듈의 현재 상태 정보를 상기 어드레스 및 상태 정보 크기정보에 상응하는 다른 영역에 순차적으로 기록하며, b) 사용자의 상태정보 요청이 있는 경우, 상기 기록된 각 소프트웨어 모듈의 상태 정보를 판독하여 디스플레이가능한 포맷으로 변환한 후, 변환된 각 소프트웨어모듈의 상태 정보를 디스플레이장치에 디스플레이하는 하드웨어 로직을 포함할 수 있다.
상기 운영체제는, 서로 다른 동작을 수행하는 적어도 하나 이상의 소프트웨어 모듈; 상기 적어도 하나 이상의 소프트웨어 모듈들 각각에 실행 시간을 할당하고, 할당된 시간에 따라 해당 소프트웨어 모듈의 실행을 제어하는 스케쥴링 모듈; 상기 적어도 하나 이상의 소프트웨어 모듈 초기화시 각 소프트웨어 모듈 별 상태 정보를 기록할 기록 영역 어드레스와, 해당 어드레스의 크기를 결정하고, 결정된 어드레스와 기록될 각 소프트웨어 상태 정보에 대한 크기값 및 각 소프트웨어 모듈의 현재 상태 정보를 상기 하드웨어 로직으로 인터페이싱하는 상태 정보 기록 설정부를 포함한다.
또한, 임베디드 멀티태스크 운영체제를 사용하는 시스템에서 운영체제내 적어도 하나 이상의 소프트웨어 모듈의 상태를 감시하는 장치의 다른 측면에 따르면, 상기 운영 체제내 적어도 하나 이상의 소프트웨어 모듈 초기화시 결정된 소프트웨어 모듈 상태 기록 영역 어드레스와, 해당 어드레스 크기 정보에 따라 상기 운영 체제의 각 소프트웨어 모듈의 상태 정보를 해당 영역에 기록하는 상태 정보 기록부; 상기 상태 정보 기록부에 기록된 운영 체제내 적어도 하나 이상의 소프트웨어 모듈의 상태 정보를 확인하기 위한 키 입력신호를 제공하는 상태 정보 요청부; 상기 상태 정보 요청부로부터 상태 정보 확인 요청 신호가 입력되는 경우, 상기 상태 정보 기록부에 기록된 각 소프트웨어 모듈의 상태 정보를 리드하고, 리드된 소프트웨어 모듈의 상태 정보를 디스플레이가능한 데이터로 출력하는 상태 정보 판독부; 상기 상태 정보 판독부로부터 출력되는 소프트웨어 모듈의 상태 정보에 상응하는 데이터를 디스플레이하는 디스플레이부를 포함할 수 있다.
한편, 본 발명에 따른 임베디드 멀티태스크 운영체제를 사용하는 시스템에서 운영체제내 적어도 하나 이상의 소프트웨어 모듈의 상태를 감시하는 방법의 일측면에 따르면, 상기 운영 체제내 적어도 하나 이상의 소프트에어 모듈의 초기화시 각 소프트웨어 모듈의 상태 정보를 기록하기 위한 기록 영역과 기록 영역의 크기가 결정되면, 결정된 기록영역과 크기 정보에 따라 각 소프트웨어 모듈의 상태 정보를 해당 영역에 순차적으로 기록하는 단계; 사용자의 상태 정보 요청이 있는 경우, 상기 기록된 각 소프트웨어 모듈의 상태 정보를 판독하여 디스플레이가능한 포맷으로 변환한 후, 변환된 각 소프트웨어모듈의 상태 정보를 디스플레이장치에 디스플레이하는 단계를 포함할 수 있다.
상기 기록하는 단계에서, 상기 운영체제내 각 소프트웨어 모듈의 상태 정보를 기록할 어드레스와, 상기 각 소프트웨어 모듈의 상태 정보에 대한 크기 정보는 상기 어드레스에 대응되도록 제1 기록영역에 기록하고, 상기 제1 기록 영역에 기록된 운용 체제내 각 소프트웨어 모듈의 상태 정보에 대한 크기 정보에 따라 해당 소프트웨어 모듈의 상태 정보를 제2 기록영역에 기록한다.
상기 제1 기록 영역의 범위는, 적어도 상기 운영체제내 소프트웨어 모듈의 개수와 동일하고, 상기 제2 기록영역에 기록되는 운영체제내 각 소프트웨어 모듈의 상태 정보는 헥사코드 형태로 기록될 수 있다.
상기 디스플레이하는 단계에서, 상기 상태 정보의 포맷 변환은, 2진수, 10진수, 텍스트 메시지 중 적어도 하나의 포맷으로 변환하여 디스플레이할 수 있다.
상기 디스플레이하는 단계에서, 사용자의 상태 정보 요청신호가 입력될 때마다 라운드 로빈 방식으로 상기 기록된 각 소프트웨어 모듈의 상태정보를 순차적으로 리드하여 디스플레이한다.
또한, 본 발명에 따른 임베디드 멀티태스크 운영체제를 사용하는 시스템에서 운영체제내 적어도 하나 이상의 소프트웨어 모듈의 상태를 감시하는 방법의 다른 측면에 따르면, 상기 운영 체제내 적어도 하나 이상의 소프트웨어 모듈 초기화시 결정된 소프트웨어 모듈 상태 기록 영역 어드레스와, 해당 어드레스 크기 정보에 따라 상기 운영 체제의 각 소프트웨어 모듈의 상태 정보를 상태 정보 기록 영역에 각각 기록하는 단계; 상기 기록된 운영 체제내 적어도 하나 이상의 소프트웨어 모듈의 상태 정보를 확인하기 위한 요구신호가 있는 경우, 상기 상태 정보 기록 영역에 기록된 각 소프트웨어 모듈의 상태 정보를 리드하고, 리드된 소프트웨어 모듈의 상태 정보를 디스플레이가능한 데이터로 출력하는 단계; 상기 출력되는 소프트웨어 모듈의 상태 정보에 상응하는 데이터를 디스플레이하는 단계를 포함할 수 있다.
이하, 본 발명에 따른 임베디드 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치 및 그 방법에 대하여 첨부한 도면을 참조하여 상세하게 살펴보기로 한다.
도 3은 본 발명에 따른 임베디드 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치의 블록 구성을 나타낸 도면이다.
도 3에 도시된 바와 같이, 본 발명에 따른 임베디드 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치는 운영체제 부분(10)과 하드웨어 로직(100) 부분으로 구분될 수 있다. 여기서, 각 부분의 동작은 완전히 독립적이며 서로의 동작 상태에 영향을 주지는 않게 된다.
운영체제 부분(10)은, 스케쥴러(30), 다수의 커널 소프트웨어 모듈(20a-20n) 및 상태 기록 설정부(50)를 포함하고, 하드웨어 로직(100)은 상태 기록부(140),상태 판독부(130), 상태 출력부(120), 디스플레이부(110) 및 상태 점검 요청부(150)를 포함한다.
상기한 운영체제(10)부분과 하드웨어 로직(100) 간의 정보 교환은 상태 기록 설정부(50)와 상태 기록부(140)를 통해 이루어진다.
운영체제(10)의 각 커널 소프트웨어(20a ~20n)들은 실행중 자신의 상태 정보를 상태 기록 설정부(50)에 의해 설정된 상태 기록부(140)의 맵핑 영역에 기록할 수 있다. 여기서, 상태 기록부(140)는 커널 소프트웨어(20a~20n)별로 각각 구분하여 사용할 수도 있고, 운영체제(10) 전체 입장에서 정해진 방법에 의해서 사용될 수도 있다.
도 3에 도시된 스케쥴러(30)와 커널 소프트웨어(20a~20n)에 대하여는 도 1에 도시된 종래 기술과 중복되는 동일한 구성요소이기 때문에 상세 설명에 대하여는 생략하기로 한다. 이때, 도 1에 도시된 종래 기술과 달라진 부분은 커널 소프트웨어모듈(20a-20n)들의 상태 감시를 위한 기능을 하드웨어 로직(100)내로 이동한 것이다.
도 3에 도시된 운영체제(10)내의 상태 기록 설정부(50)는 운영 체제(10)내의 다수의 커널 소프트웨어 모듈(20a-20c)들의 상태 정보를 하드웨어 로직(100)내 상태 기록부(140)에 각각 기록하기 위해 기록영역 및 영역의 크기를 설정하고 각 커널 소프트웨어 모듈(20a-20n)의 상태 정보를 모니터링하여 상태 기록부(140)의 해당 영역에 기록하게 된다. 여기서, 상기 상태기록부(140)의 기록 영역 및 영역의 크기의 결정은 시스템의 초기화시 미리 설정해 주어야 한다. 따라서, 운영체제(10) 실행시 각 커널 소프트웨어 모듈(20a-20n)의 실행시 각 커널 소프트웨어 모듈(20a-20n)의 현재 상태 값을 미리 설정해 둔 영역에 영역의 크기만큼 기록하는 것이다.
하드웨어 로직(100)내 상태 기록부(140)는 일종의 메모리로서, 운영체제(10)내의 상태 기록 설정부(50)에 의해 할당된 영역내에 상태 기록 설정부(50)로부터 제공되는 운영체제(10)내 각 커널 소프트웨어 모듈(20a-20n)의 상태 정보를 기록하게 된다. 여기서, 상태 기록부(140)에 기록되는 정보로는, 오프셋 어드레스, 각 커널 소프트웨어 모듈(20a-20n)별 상태 정보를 기록할 어드레스 및 크기 정보, 각 커널 소프트웨어 모듈(20a-20n)의 현재 상태 정보를 포함하는 것으로 상태 기록부(140)에 대하여는 첨부한 도 4를 참조하여 상세하게 후술하기로 한다.
상태 점검 요청부(150)는 커널 소프트웨어 모듈(20a-20n)들의 상태 감시 결과를 디스플레이부(110)에 출력하여 소프트웨어 모듈(20a-20n)의 현재 상태를 확인하기 위한 키 입력신호를 상태 판독부(130)로 제공하는 것으로, 일종의 키로 구성될 수 있다. 즉, 상태 점검 요청부(150)는 운영체제(10)내 다수의 커널 소프트웨어 모듈(20a-20n)의 상태 정보를 확인하기 위한 사용자의 입력처리 기능을 갖는 것이다.
상태 판독부(130)는 상태 점검 요청부(150)로부터 현재 커널 소프트웨어들(20a~20c)의 상태 정보 확인 요청 신호가 입력되는 경우, 상태 기록부(140)에 저장된 운영체제(10)내 각 커널 소프트웨어 모듈(20a-20n)들의 상태 정보를 판독하여(Reading) 상태 출력부(120)로 제공한다.
상태 출력부(120)는 상태 판독부(130)로부터 출력되는 각 커널 소프트웨어 모듈(20a-20n)의 상태 정보를 디스플레이 가능하고 사용자가 용이하게 확인할 수 있는 포맷으로 변환하여 디스플레이부(110)에 디스플레이하게 된다. 여기서, 디스 플레이부(110)는 캐릭터 LED와 같은 표시장치를 이용하는 것으로 사용자가 용이하게 커널 소프트웨어 모듈(20a-20n)의 상태를 확인하기 위해 2진수 또는 10진수 형태로 표시할 수 있으며, LCD 등과 같은 표시 장치를 이용하여 텍스트 메시지 형태로 디스플레이할 수 있도록 하는 하드웨어적인 요소이다.
결국, 도 3에 도시된 하드웨어 로직(100)은 FPGA(Field Programmable Gate Array)를 이용하여 설계, 구현, 사용이 가능하고, 하드웨어 로직(100)과 운영체제(10)와의 인터페이스(Interface)는 운영체제(10)의 상태 기록 설정부(50) 및 하드웨어 로직(100)의 상태 기록부(140)를 이용하는 것이다.
도 3에 도시된 상태 기록부(140)에 대하여 첨부한 도 4를 참조하여 좀 더 상세하게 설명해 보기로 하자.
도 4는 도 3에 도시된 상태 기록부에 저장되는 데이터 포맷을 나타낸 도면이다.
도 4에 도시된 바와 같이, 상태 기록부(140)는 일종의 메모리 영역으로 I/O 공간에 할당되어 있기 때문에 상태기록부(140)의 위치는 하드웨어 로직(100)의 일부에 존재하게 된다.
도 4에 도시된 상태 기록부(140)의 오프셋 열은 저장 영역(메모리)의 어드레스를 의미하며 0x0000 0000은 처음 어드레스를 지정하는 것이다. 이 어드레스 영역은 크게 2개의 영역으로 구분할 수 있다.
첫 번째 영역(141)은 커널 소프트웨어 모듈(20a~20n)별 기록 시작 설정 어드레스(0x0000 0000 ~)를 기록하는 영역이고, 두 번째 영역(142)은 커널 소프트웨어 모듈(20a~20n)별 현재 상태 값 기록 영역(0x0000 1000 ~)이다.
하드웨어 로직(100)이 운영체제(10)내의 각 커널 소프트 웨어 모듈(20a-20n)의 현재 상태를 외부에 알리기 위해서 어떤 커널 소프트웨어가 어느 위치에 현재 상태의 값을 기록하고 있는지 알 필요가 있다. 이러한 정보는 각 커널 소프트웨어가 하드웨어 로직(100)에게 알려 주어야 하는데 이러한 정보를 알려 주기 위해서 첫 번째 영역(141)이 사용된다. 여기에는 어드레스 값과 크기를 기록해 놓아야 한다. 예를 들어, 32 bit안에 두 가지 내용을 모두 저장하기 위해서 각각 16bit씩 니블(nibble) 단위(상위 니블 및 하위 니블)로 나누어서 사용하도록 할 수 있다.
또한, 영역의 크기는 각 커널 소프트웨어(20a~20n)마다 기록할 정보가 다를 수 있으므로 그 영역의 크기를 서로 다르게 할당할 수 있다. 즉, 첫 번째 영역(141)의 범위는 커널 소프트웨어 모듈(20a~20n)의 개수에 의존적이다.
예를 들어, 도 4에 도시된 바와 같이, 오프셋 어드레스 "0X0000 0000"의 상위 니블(어드레스)이 "0X0000"이고, 하위 니블값이 "0X0004"인 경우는 제1 커널 소프트웨어 모듈의 상태정보를 "0X0000"번지부터 4바이트 만큼 사용하여 오프셋 어드레스 즉, 상태 기록부(140)의 두 번째 영역(142)의 "0X0000 1000"어드레스 영역에 상태 정보를 기록한다는 의미이다.
한편, 상태 기록부(140)의 두 번째 영역(142)은 각각의 커널 소프트웨어 모듈(20a~20n)이 현재 상태를 정해진 오프셋에 기록하는 곳이다. 여기에는 각 커널 소프트웨어 모듈(20a~20n)의 현재 상태를 암시해주는 값들이 기록된다. 이 값들은 각각의 커널 소프트웨어 모듈(20a~20n)마다 다를 수 있으므로 각 소프트웨어별로 다르게 판별해야 한다. 즉, 각 커널 소프트웨어 모듈(20a-20n) 마다 서로 다른 기능을 수행하는 소프트웨어 모듈들이기 때문에 기록되는 현재 상태값은 각각 다르게 코드값으로 설정 및 기록되어야 할 것이다. 예를 들면, 각 소프트웨어 모듈별로 서로 다른 상태값을 구별하기 위하여 서로 다른 헥사(hexa)값들로 기록될 수 있다.
상태 기록부(140)의 두 번째 영역(142)에 기록되는 각 커널 소프트웨어 모듈(20a~20n)의 현재 상태값들은 예를 들면, 접근(access)할 I/O 영역의 어드레스값, 접근할 중요 리소스의 종류 값, 소프트웨어의 현재상태(machine state)값들을 포함할 수 있다.
결국, 각 커널 소프트웨어 모듈(20a~20n)마다 현재 상태가 의미하는 바가 다르기 때문에 실제 외부 디스플레이부(110)에 출력되는 내용의 판별은 사용자가 직접해야 한다. 따라서, 디스플레이부(110)에 디스플레이되는 값은 사용자가 용이하게 소프트웨어 모듈들의 상태값을 확인하기 위하여 2진수 또는 10진수 또는 텍스트 메시지 형태로 디스플레이 될 수 있다. 이는 도 3에 도시된 상태 출력부(120)에서 포맷 변환이 이루어지게 되는데, 예를 들면, 상태 기록부(140)의 두 번째 영역에 기록된 소프트웨어 모듈들의 상태 값이 헥사 코드로 기록된 경우, 상태 출력부(120)에서 헥사 코드를 2진수 또는 10진수 또는 텍스트 메시지 형태로 포맷 변환하여 디스플레이부(110)에 디스플레이할 수 있다.
또한, 각 커널 소프트웨어 모듈(20a-20n)의 상태값의 디스플레이는 전체 모듈의 상태값을 동시에 디스플레이할 수 있으며, 라운드 로빈(Round Robin)방식으로 사용자가 상태 점검 요청부(150) 즉, 상태 점검 요청키를 한번 누를 때마다 순차적 으로 커널 소프트웨어 모듈(20a-20n)의 상태값을 판독하여 디스플레이할 수도 있는 것이다. 이때 디스플레이되는 정보로는 해당 커널 소프트웨어 모듈의 ID 정보 및 해당 소프트웨어모듈의 현재 상태값이 디스플레이되어 사용자가 어떤 소프트웨어 모듈인지 그리고 그 모듈의 현재 상태값이 어떤지를 용이하게 확인할 수 있는 것이다.
이하, 상기한 본 발명에 따른 임베디드 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치의 동작과 상응하는 본 발명에 따른 운영체제의 소프트웨어 모듈 상태 감시 방법에 대하여 첨부한 도면을 참조하여 단계적으로 설명해 보자.
도 5는 본 발명에 따른 임베디드 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 방법에 대한 동작 플로우챠트를 나타낸 도면이다.
도 5에 도시된 바와 같이, 먼저 운영체제(10) 내에서 스케쥴러(30)는 자체 알고리즘을 통하여 다음에 실행될 커널 소프트웨어 모듈(20a~20n)을 결정한다 (S201).
현재 동작 중인 커널 소프트웨어 모듈(20a~20n)이 이미 할당된 시간이 경과된 경우, 해당 커널 소프트웨어 모듈(20a~20n)의 실행을 중지하고, 상기 결정된 다음 실행 커널 소프트웨어 모듈(20a~20n)을 실행시킨 후, 실행시킨 커널 소프트웨어 모듈(20a-20n)에 실행 시간을 할당한다(S202).
실행된 커널 소프트웨어 모듈(20a~20n)이 자신의 현재 상태 정보를 도 3에 도시된 상태 기록부(140)의 해당 영역에 기록하게 된다(S203). 여기서, 상태 기록부(140)의 해당 영역에 각 커널 소프트웨어 모듈(20a-20n)의 상태 정보를 기록하기 위해서는 커널 소프트웨어 모듈(20a-20n)의 초기화시 자신의 상태 정보를 기록하기위한 상태 정보 기록 영역 및 기록 영역의 크기를 도 4에 도시된 바와 같이 결정하여야 한다. 이러한 상태 정보 기록 영역 및 영역의 크기를 결정하는 방법에 대하여는 후술하기로 한다.
해당 커널 소프트웨어 모듈(20a-20n)의 상태 정보를 기록한 후, 스케쥴러(30)는 현재 실행되고 있는 커널 소프트웨어 모듈(20a~20n)에 할당된 실행 시간이 경과되었는지를 판단하고, 할당된 실행 시간이 경과된 경우, 다음 실행될 커널 소프트웨어 모듈(20a-20n)을 결정한 후, 상기한 동작과 동일한 과정을 반복적으로 수행하게 된다(S204).
상기한 실행중인 해당 커널 소프트웨어 모듈(20a-20n)의 상태 정보를 상태 기록부(140)에 기록하기 위하여 도 3에 도시된 상태 기록 설정부(50)에서 기록 영역(어드레스) 및 기록 영역의 크기를 결정하는 방법에 대하여 첨부한 도 6 및 도 7을 참조하여 살펴보기로 한다.
도 6은 도 4에 도시된 커널 소프트웨어 모듈들이 자신의 상태를 상태 기록부(140)에 기록할 어드레스와 크기를 결정하는 데이터 흐름을 나타낸 도면이고, 도 7은 본 발명에 따른 커널 소프트웨어 모듈들이 자신의 상태를 상태 기록부에 기록할 어드레스와 크기를 결정하는 방법에 대한 동작 플로우챠트를 나타낸 도면이다.
커널 소프트웨어 모듈(20a-20n) 들이 자신의 상태 정보를 상태 기록부(140)에 기록할 어드레스와 크기를 결정하는 과정은 각 커널 소프트웨어 모듈(20a~20n)의 초기화 과정에서 반드시 이루어져야 하며, 이 과정을 정확히 수행해야만 하드웨어 로직(100)에서 정확한 상태 정보의 판독 및 디스플레이가 가능한 것이다.
먼저, 커널 소프트웨어 모듈의 초기화 시에 운영체제(10)의 상태 기록 설정부(50는 초기화되는 커널 소프트웨어 모듈(20a-20n)의 상태 정보 기록을 위한 어드레스와 상태 정보 기록을 위한 영역의 크기를 결정한다(S301).
상태 기록 설정부(50)는 상기 결정된 어드레스와 상태 정보 기록 영역의 크기 정보를 상태 기록부(140)에 기록하기 위해서 관련된 함수인 상태기록 설정함수를 호출한다(S302).
상태 기록 설정부(50)의 상태기록 설정함수는 각 커널 소프트웨어 모듈(20a-20n)으로부터 넘겨받은 상태 정보를 도 6과 같이 상태 기록부(140)의 두 번째 영역(142)의 해당 영역에 기록한다(S303). 여기서 기록된 값들은 상태 기록부(140)의 두 번째 영역(142)의 실제 소프트웨어 모듈의 상태 정보 기록 영역을 가리키고 있다.즉, 도 6에 도시된 도면 참조 부호 60은, 상태 기록부(140)의 첫 번째 영역(141)내 상위 니블값(어드레스)과 하위니블(크기)값인 "0X00000004"에 상응하는 커널 소프트웨어 모듈의 상태 정보가 기록되는 실제 영역을 가리키고, 도면 부호 "61"은 상위 니블 값(어드레스)과 하위 니블(기록 영역 크기)값인 "0X00040004"에 상응하는 커널 소프트웨어 모듈의 상태 정보가 기록되는 실제 영역을 나타내고 있는 것이다.
상기와 같이 일 커널 소프트웨어 모듈의 초기화가 이루어져 해당 커널 소프트웨어 모듈의 상태 정보 기록을 위한 상태 정보 기록 초기 설정 및 상태 정보의 기록이 완료되면, 스케쥴러(30)는 다음에 초기화를 위한 커널 소프트웨어 모듈(20a-20n)이 존재하는지를 확인하고 초기화할 커널 소프트웨어 모듈(20a-20n)이 존재하면 상기와 동일한 과정을 반복적으로 수행하게 된다(S304).
이와 같이, 각 커널 소프트웨어 모듈(20a-20n)들의 상태 정보가 상태 기록부(140)에 기록된 상태에서, 사용자의 요청에 따라 기록된 커널 소프트웨어 모듈들(20a-20n)의 상태 정보를 판독하고 디스플레이부(110)에 디스플레이하는 과정에 대하여 도 8 및 도 9를 참조하여 단계적으로 설명하기로 한다.
도 8은 도 4에 도시된 하드웨어 로직 내에서 각 커널 소프트웨어 모듈들이 상태 기록부에 기록한 상태값을 사용자의 요청에 따라 외부의 디스플레이장치로 출력하는 데이터의 흐름을 나타낸 도면이고, 도 9는 도 8의 데이터 흐름에 따라 도 4에 도시된 하드웨어 로직 내 상태 기록부에 기록된 커널 소프트웨어 모듈의 상태 값을 사용자의 요청에 따라 외부의 디스플레이부로 출력하는 방법에 대한 동작 플로우챠트를 나타낸 도면이다.
먼저, 사용자가 현재 시스템의 상태가 비정상이라고 판단이 되어 상태 점검 요청부(150)로부터 상태 점검 요청 신호가 입력되는 경우, 상태 판독부(130)는 상태 점검 요청에 관련된 인터럽트를 발생한다(S401). 여기서, 상태 점검 요청부(150)는 하드웨어적인 버튼(키)을 의미한다.
상태 판독부(130)는 상태 점검 요청부(150)로부터 입력되는 상태점검 요청 신호에 따라 외부 디스플레이부(110)에 디스플레이할 상태정보를 찾기 위해서 현재 어느 커널 소프트웨어 모듈(20a~20n)의 상태 정보를 출력할지를 결정한다. 이 과정은 라운드 로빈(round-robin)과 같은 방법에 의해서 커널 소프트웨어 모듈(20a~20n)을 정할 수 있다.
이러한 방법에 의해서 상태 점검 요청이 발생할 때마다 현재 이용된 커널 소프트웨어 모듈(20a~20n)을 기록해 두면, 다음 상태 점검 요청이 있을 때는 그 다음 커널 소프트웨어 모듈(20a~20n)을 이용하면 된다. 즉, 사용자가 상태 점검 요청 키를 한번 누를 때마다 순차적으로 상태 기록부(140)에 기록된 커널 소프트웨어 모듈(20a-20n)에 대한 상태 정보를 판독(Reading)한다는 것이다. 또 다른 방법으로 상태 점검 요청부(150)의 요청 신호가 있는 경우 즉, 키를 한번 누르게 되면, 상태 기록부(140)에 기록된 커널 소프트웨어 모듈(20a-20n)의 모든 상태 정보를 순차적으로 판독하여 출력할 수도 있다.
이렇게 해서 현재 출력될 커널 소프트웨어 모듈(20a~20n)에 해당되는 어드레스를 찾고, 해당 어드레스에 저장된 커널 소프트웨어 모듈(20a-20n)의 상태 정보를 판독하여 도 3에 도시된 상태 출력부(120)로 제공한다(S402).
상태 출력부(120)는 상태 판독부(130)로부터 판독된 커널 소프트웨어 모듈(20a-20n)의 상태 정보를 사용자가 용이하게 확인 가능하도록 한 포맷으로 변환한다(S403). 여기서, 포맷 변환은 상태 기록부(140)에 커널 소프트웨어 모듈(20a-20n)의 상태 정보가 헥사 코드로 저장된 경우, 핵사 코드값을 2진수 또는 10진수 형태로 변환하고, 또는 해당 상태 정보에 상응하는 텍스트 메시지 포맷으로 변환할 수도 있다.
이렇게 포맷 변환된 커널 소프트웨어 모듈의 상태 정보를 도 3에 도시된 디스플레이부(110)에 디스플레이하게 되는 것이다(S404). 여기서, 디스플레이부(110)는 상기 포맷 변환된 상태 정보 값 예를 들면, 2진수, 10진수 또는 텍스트 메시지를 디스플레이하는 캐릭터 LED, LCD를 포함할 수 있다.
이어, 사용자에 의해서 추가적인 상태 점검 요청부(150)를 통해 상태 정보 출력 요구가 있는 경우, 라운드 로빈 방식으로 상기한 방법과 동일한 과정을 통해 기록된 커널 소프트웨어 모듈(20a-20n)의 상태 정보를 판독하여 디스플레이부(110)에 디스플레이하게 되는 것이다(S405).
또 다른 방법으로, 사용자가 상태 점검 요청키를 이용하여 상태 점검 요청 신호를 입력하는 경우, 상태 기록부(140)에 기록된 모든 커널 소프트웨어 모듈(20a-20n)의 상태 정보를 순차적으로 리드하여 디스플레이부(110)에 모두 디스플레이할 수도 있음은 이 분야의 통상의 지식을 가진자라면 누구나 이해할 수 있는 부분이다.
상기한 소프트웨어 부분에 속하는 과정(도 5 및 도 7)과 하드웨어적인 과정(도 9)에 속하는 동작들은 서로 무관하게 이루어지게 된다. 따라서, 특정 커널 소프트웨어 모듈(20a~20n)이 비정상적인 동작을 수행하여 운영체제(10)의 상태가 이상해지거나, 특정 커널 소프트웨어 모듈(20a~20n)의 독점적인 리소스 사용이 일어날 경우, 하드웨어 로직(100)을 통하여 언제든지 상태를 확인할 수 있게 되는 것이다.
이것은 도 3에 도시된 상태 기록부(140)에는 특정 커널 소프트웨어 모듈(20a~20n)이 가장 마지막에 기록한 내용을 항상 갖고 있기 때문에 추적이 가능한 것이다.
이와 같은 심각한 상황이 발생하였을 경우 외부 디스플레이부(110)에 디스플레이되는 상태 정보는 특정 커널 소프트웨어 모듈(20a~20n)의 최종 상태를 디스플레이하기 때문에 문제 해결에 용이하게 접근할 수 있는 것이다.
결국, 본 발명에 따른 임베디드 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치 및 그 방법은, 운영체제내 다수의 소프트웨어 모듈의 상태정보를 하드웨어로직에 기록하고, 기록된 소프트웨어 모듈의 상태 정보를 하드웨어 로직을 통해 판독하여 사용자가 확인하기 용이하도록 디스플레이하는 것이다.
즉, 운영체제내 다수의 소프트웨어 모듈의 상태 정보를 하드웨어 로직의 상태 기록 영역에 순차적으로 기록하고, 사용자의 상태 정보 확인 요청에 따라 상태 기록 영역에 기록된 소프트웨어 모듈의 상태 정보를 순차적으로 하드웨어 로직을 통해 판독하여 사용자가 용이하게 확인할 수 있도록 디스플레이하여 줌으로써, 운영체제내의 소프트웨어와 서로 동작이 무관하게 소프트웨어 모듈의 상태 정보를 감시 및 확인이 가능한 것이다.
상기한 바와 같은 본 발명에 따른 임베디드 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치 및 그 방법은, 운영체제내 다수의 소프트웨어 모듈의 상태 정보를 하드웨어 로직의 상태 기록 영역에 순차적으로 기록하고, 사용자의 상태 정보 확인 요청에 따라 상태 기록 영역에 기록된 소 프트웨어 모듈의 상태 정보를 순차적으로 하드웨어 로직을 통해 판독하여 사용자가 용이하게 확인할 수 있도록 디스플레이하여 줌으로써, 운영체제내의 소프트웨어와 서로 동작이 무관하게 소프트웨어 모듈의 상태 정보를 감시 및 확인이 가능한 것으로, 어떤 경우의 소프트웨어적인 예외 상황이라도 상태 점검이 가능한 것이다.
또한, 실제로 많은 시스템이 이러한 예외적인 상황을 겪고 있으며 여기에 대해서 문제점을 해결하기 위해서 많은 노력을 들이고 있는데, 이것이 가능한 것은 본 발명의 실시예에서 언급된 서로 동작상태에 영향을 주지 않는 소프트웨어와 하드웨어의 설계가 가능함에 따라서 이루어지는 것이다.
또한, 종래의 기술에서는 운영체제가 상기에서 나온 심각한 상황인 행(hang) 상태에 빠지면 문제점 파악이 어려웠고 여기에 많은 시간과 인력 리소스가 요구되었다. 그러나, 본 발명에서는 초기 시스템 설계시 적용함으로써 이러한 낭비를 줄일 수 있는 효과를 가진 것이다.

Claims (34)

  1. 멀티태스크 운영체제를 사용하는 시스템에서 운영체제내 적어도 하나 이상의 소프트웨어 모듈의 상태를 감시하는 장치에 있어서,
    a) 상기 운영 체제와 인터페이싱되어 상기 운영 체제내 적어도 하나 이상의 소프트에어 모듈의 상태 정보를 기록하기 위한 기록 영역과 기록 영역의 크기를 결정하고, 실행중인 소프트웨어 모듈의 상태 정보를 해당 영역에 순차적으로 기록하고,
    b) 상태정보 요청 이벤트가 발생된 경우, 상기 기록된 각 소프트웨어 모듈의 상태 정보를 판독하여 출력하는 하드웨어 로직을 포함하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치.
  2. 제1항에 있어서,
    상기 운영체제는,
    상기 적어도 하나 이상의 소프트웨어 모듈 초기화시 각 소프트웨어 모듈 별 상태 정보를 기록할 기록 영역 어드레스와, 해당 어드레스의 크기를 결정하고, 결정된 어드레스와 기록될 각 소프트웨어 모듈의 상태 정보에 대한 크기를 상기 하드웨어 로직의 상태 정보 기록 영역에 각각 기록하는 상태 정보 기록 설정 모듈을 포함하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치.
  3. 제2항에 있어서,
    상기 어드레스 크기는,
    상기 하드웨어 로직에 기록할 상기 운영체제 내 각 소프트웨어 모듈의 상태 정보의 크기에 따라 결정되는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치.
  4. 제1항에 있어서,
    상기 운영체제는,
    상기 적어도 하나 이상의 소프트웨어 모듈중 다음에 실행할 소프트웨어 모듈을 결정하고, 현재 동작중인 소프트웨어 모듈의 할당 시간이 경과되면, 상기 결정된 소프트웨어 모듈을 실행시킨 후, 해당 소프트웨어 모듈에 실행 시간을 할당하여 실행중인 소프트웨어 모듈이 자신의 상태 정보를 하드웨어 로직의 소프트웨어 상태 정보 기록 영역에 기록할 수 있도록 각 소프트웨어 모듈의 스케쥴을 제어하는 스케쥴링 모듈을 포함하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치.
  5. 제4항에 있어서,
    상기 현재 실행중인 소프트웨어 모듈은 상기 스케쥴링 모듈에 의해 자신에 할당된 실행 시간 중 마지막으로 실행한 자신의 상태 정보를 상기 하드웨어 로직의 자신의 상태정보 기록 영역에 기록하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치.
  6. 제1항에 있어서,
    상기 하드웨어 로직은,
    상기 운영 체제의 각 소프트웨어 모듈 초기화시 결정된 소프트웨어 모듈 상태 기록 영역 어드레스와, 해당 어드레스 크기 정보에 따라 실행중인 상기 운영 체제의 소프트웨어 모듈의 상태 정보를 해당 영역에 기록하는 상태 정보 기록부;
    상기 상태 정보 기록부에 기록된 운영 체제내 적어도 하나 이상의 소프트웨어 모듈의 상태 정보를 확인하기 위한 키 입력신호를 제공하는 상태 정보 요청부;
    상기 상태 정보 요청부로부터 상태 정보 확인 요청 신호가 입력되는 경우, 상기 상태 정보 기록부에 기록된 각 소프트웨어 모듈의 상태 정보를 리드하고, 리드된 소프트웨어 모듈의 상태 정보를 디스플레이가능한 데이터로 출력하는 상태 정보 판독부;
    상기 상태 정보 판독부로부터 출력되는 소프트웨어 모듈의 상태 정보에 상응 하는 데이터를 디스플레이하는 디스플레이부를 포함하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치.
  7. 제6항에 있어서,
    상기 상태 정보 기록부는,
    상기 운영체제내 각 소프트웨어 모듈의 상태 정보를 기록할 어드레스와, 상기 각 소프트웨어 모듈의 상태 정보에 대한 크기 정보를 상기 어드레스에 대응되게 기록하는 제1 기록영역과,
    상기 제1 기록영역에 기록된 운용 체제 내 각 소프트웨어 모듈의 상태 정보에 대한 크기 정보에 따라 해당 소프트웨어 모듈의 상태 정보를 기록하는 제2 기록영역을 포함하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치.
  8. 제7항에 있어서,
    상기 제1 기록 영역의 범위는,
    적어도 상기 운영체제내 소프트웨어 모듈의 개수와 동일한 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치.
  9. 제7항에 있어서,
    상기 제2 기록영역에 기록되는 운영체제내 각 소프트웨어 모듈의 상태 정보는 헥사코드 형태로 기록하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치.
  10. 제6항에 있어서,
    상기 상태 정보 판독부는,
    상기 상태 정보 기록부로부터 리드된 소프트웨어 모듈의 상태정보를 사용자가 용이하게 확인 가능하도록 디스플레이 데이터 포맷으로 변환하는 포맷 변환부를 포함하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치.
  11. 제10항에 있어서,
    상기 포맷 변환부는,
    상기 상태 정보 기록부에 기록된 운영체제 내 각 소프트웨어 모듈의 상태정보를 2진수, 10진수, 텍스트 메시지 중 적어도 하나의 포맷으로 변환하여 디스플레이부에 디스플레이하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치.
  12. 제6항에 있어서,
    상기 상태 정보 판독부는,
    상기 상태 정보 요청부로부터 요청신호가 입력될 때마다 라운드 로빈 방식으로 각 소프트웨어 모듈의 상태정보를 상기 상태 정보 기록부로부터 순차적으로 리드하여 상기 디스플레이부에 디스플레이하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치.
  13. 제6항에 있어서,
    상기 상태 정보 판독부는,
    상기 상태 정보 요청부로부터 상태 정보 요청신호가 입력되는 경우, 상기 정보 기록부에 기록된 각 소프트웨어 모듈의 상태 정보를 순차적으로 리드하여 모든 소프트웨어 모듈의 상태 정보를 상기 디스플레이부에 디스플레이하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치.
  14. 제6항에 있어서,
    상기 디스플레이부는,
    캐릭터 LED, LCD 중 적어도 하나를 포함하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치.
  15. 제1항에 있어서,
    상기 하드웨어 로직은,
    FPGA(Field Programmable Gate Array) 형태로 구현하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치.
  16. 제1항에 있어서,
    상기 하드웨어 로직의 상태 정보 요청 이벤트는, 사용자에 의한 상태 정보 요청 이벤트, 실행중인 소프트웨어 모듈의 에러 발생 이벤트, 실행중인 소프트웨어 모듈의 동작 종료 이벤트 중 적어도 하나의 이벤트를 포함하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치.
  17. 제16항에 있어서,
    상기 하드웨어 로직은,
    현재 실행중인 소프트웨어 모듈의 에러 이벤트가 발생된 경우, 에러가 발생 된 시점에서의 동작 상태 정보를 해당 영역에 기록하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치.
  18. 멀티태스크 운영체제를 사용하는 시스템에 있어서,
    서로 다른 동작을 수행하는 적어도 하나 이상의 소프트웨어 모듈을 구비하고, 각 소프트웨어 모듈 별 상태 정보를 기록할 기록 영역 어드레스와, 상기 상태 정보 기록 영역의 크기를 결정하고, 결정된 어드레스 및 상태 정보 크기 정보를 발생하는 운영체제;
    a) 상기 운영 체제와 인터페이싱되어 상기 운영 체제로부터 발생되는 소프트웨어 모듈별 상태 정보를 기록하기 위한 어드레스 및 상태 정보 크기 정보를 일 영역에 기록하고, 실행중인 운영체제내 소프트웨어 모듈의 현재 상태 정보를 상기 어드레스 및 상태 정보 크기정보에 상응하는 다른 영역에 순차적으로 기록하며,
    b) 상태정보 요청 이벤트가 발생된 경우, 상기 기록된 각 소프트웨어 모듈의 상태 정보를 판독하여 디스플레이가능한 포맷으로 변환한 후, 변환된 각 소프트웨어모듈의 상태 정보를 디스플레이장치에 디스플레이하는 하드웨어 로직을 포함하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치.
  19. 제18항에 있어서,
    상기 운영체제는,
    서로 다른 동작을 수행하는 적어도 하나 이상의 소프트웨어 모듈;
    상기 적어도 하나 이상의 소프트웨어 모듈들 각각에 실행 시간을 할당하고, 할당된 시간에 따라 해당 소프트웨어 모듈의 실행을 제어하는 스케쥴링 모듈;
    상기 적어도 하나 이상의 소프트웨어 모듈 초기화시 각 소프트웨어 모듈 별 상태 정보를 기록할 기록 영역 어드레스와, 해당 어드레스의 크기를 결정하고, 결정된 어드레스와 기록될 각 소프트웨어 모듈의 상태 정보에 대한 크기 값 및 각 소프트웨어 모듈의 현재 상태 정보를 상기 하드웨어 로직으로 인터페이싱하는 상태 정보 기록 설정부를 포함하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치.
  20. 제18항에 있어서,
    상기 하드웨어 로직은,
    상기 운영 체제의 각 소프트웨어 모듈 초기화시 결정된 소프트웨어 모듈 상태 기록 영역 어드레스와, 해당 어드레스 크기 정보에 따라 상기 운영 체제의 각 소프트웨어 모듈의 상태 정보를 해당 영역에 기록하는 상태 정보 기록부;
    상기 상태 정보 기록부에 기록된 운영 체제내 적어도 하나 이상의 소프트웨어 모듈의 상태 정보를 확인하기 위한 키 입력신호를 제공하는 상태 정보 요청부;
    상기 상태 정보 요청부로부터 상태 정보 확인 요청 신호가 입력되는 경우, 상기 상태 정보 기록부에 기록된 각 소프트웨어 모듈의 상태 정보를 리드하고, 리드된 소프트웨어 모듈의 상태 정보를 디스플레이가능한 데이터로 출력하는 상태 정보 판독부;
    상기 상태 정보 판독부로부터 출력되는 소프트웨어 모듈의 상태 정보에 상응하는 데이터를 디스플레이하는 디스플레이부를 포함하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치.
  21. 제18항에 있어서,
    상기 하드웨어 로직의 상태 정보 요청 이벤트는, 사용자에 의한 상태 정보 요청 이벤트, 실행중인 소프트웨어 모듈의 에러 발생 이벤트, 실행중인 소프트웨어 모듈의 동작 종료 이벤트 중 적어도 하나의 이벤트를 포함하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치.
  22. 제21항에 있어서,
    상기 하드웨어 로직은,
    현재 실행중인 소프트웨어 모듈의 에러 이벤트가 발생된 경우, 에러가 발생된 시점에서의 동작 상태 정보를 해당 영역에 기록하는 멀티태스크 운영체제를 사 용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치.
  23. 멀티태스크 운영체제를 사용하는 시스템에서 운영체제내 적어도 하나 이상의 소프트웨어 모듈의 상태를 감시하는 장치에 있어서,
    상기 운영 체제내 적어도 하나 이상의 소프트웨어 모듈 초기화시 결정된 소프트웨어 모듈 상태 기록 영역 어드레스와, 해당 어드레스 크기 정보에 따라 상기 운영 체제의 각 소프트웨어 모듈의 상태 정보를 해당 영역에 기록하는 상태 정보 기록부;
    상기 상태 정보 기록부에 기록된 운영 체제내 적어도 하나 이상의 소프트웨어 모듈의 상태 정보를 확인하기 위한 키 입력신호를 제공하는 상태 정보 요청부;
    상기 상태 정보 요청부로부터 상태 정보 확인 요청 신호가 입력되는 경우, 상기 상태 정보 기록부에 기록된 각 소프트웨어 모듈의 상태 정보를 리드하고, 리드된 소프트웨어 모듈의 상태 정보를 디스플레이가능한 데이터로 출력하는 상태 정보 판독부;
    상기 상태 정보 판독부로부터 출력되는 소프트웨어 모듈의 상태 정보에 상응하는 데이터를 디스플레이하는 디스플레이부를 포함하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치.
  24. 제23항에 있어서,
    상기 상태 정보 기록부는,
    상기 운영체제내 각 소프트웨어 모듈의 상태 정보를 기록할 어드레스와, 상기 각 소프트웨어 모듈의 상태 정보에 대한 크기 정보를 상기 어드레스에 대응되게 기록하는 제1 기록영역과,
    상기 제1 영역의 운용 체제내 각 소프트웨어 모듈의 상태 정보에 대한 크기 정보에 따라 해당 소프트웨어 모듈의 상태 정보를 기록하는 제2 기록영역을 포함하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 장치.
  25. 멀티태스크 운영체제를 사용하는 시스템에서 운영체제내 적어도 하나 이상의 소프트웨어 모듈의 상태를 감시하는 방법에 있어서,
    상기 운영 체제내 적어도 하나 이상의 소프트에어 모듈의 상태 정보를 기록하기 위한 기록 영역과 기록 영역의 크기를 결정하고, 결정된 기록영역과 크기 정보에 따라 실행중인 소프트웨어 모듈의 상태 정보를 해당 영역에 순차적으로 기록하는 단계;
    상태 정보 요청 이벤트가 발생된 경우, 상기 기록된 각 소프트웨어 모듈의 상태 정보를 판독하여 판독한 상태 정보를 출력하는 단계를 포함하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시방법.
  26. 제25항에 있어서,
    상기 기록하는 단계에서,
    상기 운영체제내 각 소프트웨어 모듈의 상태 정보를 기록할 어드레스와, 상기 각 소프트웨어 모듈의 상태 정보에 대한 크기 정보는 상기 어드레스에 대응되도록 제1 기록영역에 기록하고,
    상기 제1 기록 영역에 기록된 운용 체제내 각 소프트웨어 모듈의 상태 정보에 대한 크기 정보에 따라 해당 소프트웨어 모듈의 상태 정보를 제2 기록영역에 기록하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시방법.
  27. 제26항에 있어서,
    상기 제2 기록영역에 기록되는 운영체제내 각 소프트웨어 모듈의 상태 정보는 헥사코드 형태로 기록하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시방법.
  28. 제25에 있어서,
    상기 상태 정보를 출력하는 단계에서,
    사용자의 상태 정보 요청신호가 입력될 때마다 라운드 로빈 방식으로 상기 기록된 각 소프트웨어 모듈의 상태정보를 순차적으로 리드하여 상기 디스플레이장치에 디스플레이하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 방법.
  29. 제25항에 있어서,
    상기 상태 정보 요청 이벤트는, 사용자에 의한 상태 정보 요청 이벤트, 실행중인 소프트웨어 모듈의 에러 발생 이벤트, 실행중인 소프트웨어 모듈의 동작 종료 이벤트 중 적어도 하나의 이벤트를 포함하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 방법.
  30. 제25항에 있어서,
    상기 실행중인 소프트웨어 모듈의 상태 정보를 해당 영역에 순차적으로 기록하는 단계에서, 현재 실행중인 소프트웨어 모듈의 에러 이벤트가 발생된 경우, 에러가 발생된 시점에서의 동작 상태 정보를 해당 영역에 기록하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 방법.
  31. 멀티태스크 운영체제를 사용하는 시스템에서 운영체제내 적어도 하나 이상의 소프트웨어 모듈의 상태를 감시하는 방법에 있어서,
    상기 운영 체제내 적어도 하나 이상의 소프트웨어 모듈 초기화시 결정된 소프트웨어 모듈 상태 기록 영역 어드레스와, 해당 어드레스 크기 정보에 따라 상기 운영 체제의 각 소프트웨어 모듈의 상태 정보를 상태 정보 기록 영역에 각각 기록하는 단계;
    상기 기록된 운영 체제내 적어도 하나 이상의 소프트웨어 모듈의 상태 정보를 확인하기 위한 요구신호가 있는 경우, 상기 상태 정보 기록 영역에 기록된 각 소프트웨어 모듈의 상태 정보를 리드하고, 리드된 소프트웨어 모듈의 상태 정보를 디스플레이가능한 데이터로 출력하는 단계;
    상기 출력되는 소프트웨어 모듈의 상태 정보에 상응하는 데이터를 디스플레이하는 단계를 포함하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시방법.
  32. 제31항에 있어서,
    상기 상태 정보를 기록하는 단계는,
    상기 운영체제내 각 소프트웨어 모듈의 상태 정보를 기록할 어드레스와, 상기 각 소프트웨어 모듈의 상태 정보에 대한 크기 정보를 상기 어드레스에 대응되게 상태 정보 기록 영역의 제1 영역에 기록하고,
    상기 제1 영역에 기록된 운용 체제내 각 소프트웨어 모듈의 상태 정보에 대한 크기 정보에 따라 해당 소프트웨어 모듈의 상태 정보를 상기 상태 정보 기록 영역의 제2 영역에 기록하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시방법.
  33. 제31항에 있어서,
    상기 디스플레이 가능한 데이터로 출력하는 단계는,
    상기 상태 정보 기록 영역으로부터 리드된 소프트웨어 모듈의 상태정보를 사용자가 용이하게 확인 가능하도록 2진수, 10진수, 텍스트 메시지 중 적어도 하나의 포맷으로 변환하는 단계를 포함하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상태 감시 방법.
  34. 제31항에 있어서,
    상기 디스플레이 가능한 데이터로 출력하는 단계에서,
    사용자로부터 상태 정보 요청신호가 입력될 때마다 라운드 로빈 방식으로 각 소프트웨어 모듈의 상태정보를 상기 상태 정보 기록 영역으로부터 순차적으로 리드하는 멀티태스크 운영체제를 사용하는 시스템에서 운영체제의 소프트웨어 모듈 상 태 감시방법.
KR1020040005153A 2004-01-27 2004-01-27 임베디드 멀티태스크 운영체제를 사용하는 시스템에서운영체제의 소프트웨어 모듈 상태 감시 장치 및 그 방법 KR100636268B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020040005153A KR100636268B1 (ko) 2004-01-27 2004-01-27 임베디드 멀티태스크 운영체제를 사용하는 시스템에서운영체제의 소프트웨어 모듈 상태 감시 장치 및 그 방법
US11/004,850 US20050177776A1 (en) 2004-01-27 2004-12-07 Apparatus and method for monitoring software module state in a system using an embedded multitasking OS

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040005153A KR100636268B1 (ko) 2004-01-27 2004-01-27 임베디드 멀티태스크 운영체제를 사용하는 시스템에서운영체제의 소프트웨어 모듈 상태 감시 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20050077201A KR20050077201A (ko) 2005-08-01
KR100636268B1 true KR100636268B1 (ko) 2006-10-19

Family

ID=34825038

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040005153A KR100636268B1 (ko) 2004-01-27 2004-01-27 임베디드 멀티태스크 운영체제를 사용하는 시스템에서운영체제의 소프트웨어 모듈 상태 감시 장치 및 그 방법

Country Status (2)

Country Link
US (1) US20050177776A1 (ko)
KR (1) KR100636268B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080065800A (ko) * 2007-01-10 2008-07-15 삼성전자주식회사 로그데이터 관리기능을 구비한 전자장치 및 관리방법
US8185783B2 (en) * 2007-11-22 2012-05-22 Microsoft Corporation Split user-mode/kernel-mode device driver architecture
US7934128B2 (en) * 2008-06-05 2011-04-26 International Business Machines Corporation Methods, systems and computer program products for fault tolerant applications
CN104636212A (zh) * 2014-12-29 2015-05-20 漳州科能电器有限公司 一种嵌入式操作系统看门狗实现方法
CN109597383B (zh) * 2018-12-08 2021-10-08 顾满洲 一种轻量化小系统可靠性结构设计
CN111522703B (zh) * 2019-02-01 2023-08-11 伊姆西Ip控股有限责任公司 监控访问请求的方法、设备和计算机程序产品
CN112612672B (zh) * 2020-12-18 2022-03-01 四川九洲电器集团有限责任公司 一种嵌入式软件实时运行状态监控方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816877B2 (ja) * 1991-06-10 1996-02-21 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システム用資源データの実時間捕獲及び減縮方法及びシステム
US6263488B1 (en) * 1993-12-03 2001-07-17 International Business Machines Corporation System and method for enabling software monitoring in a computer system
US6718482B2 (en) * 1997-09-12 2004-04-06 Hitachi, Ltd. Fault monitoring system
US6148387A (en) * 1997-10-09 2000-11-14 Phoenix Technologies, Ltd. System and method for securely utilizing basic input and output system (BIOS) services
US6269460B1 (en) * 1998-09-01 2001-07-31 International Business Machines Corporation Dynamic enhancement of error condition handling and displayed error messages in computer operations
JP2001101033A (ja) * 1999-09-27 2001-04-13 Hitachi Ltd オペレーティングシステム及びアプリケーションプログラムの障害監視方法
GB2369902B (en) * 2000-12-07 2004-11-03 Ibm Log storage management in a data processing system using key-pointing
US6745346B2 (en) * 2000-12-08 2004-06-01 Intel Corporation Method for efficiently identifying errant processes in a computer system by the operating system (OS) for error containment and error recovery
US6751753B2 (en) * 2001-02-27 2004-06-15 Sun Microsystems, Inc. Method, system, and program for monitoring system components
US7028229B2 (en) * 2002-09-30 2006-04-11 Sun Microsystems, Inc. Kernel event subscription and publication system and method
US7107497B2 (en) * 2002-09-30 2006-09-12 Sun Microsystems, Inc. Method and system for event publication and subscription with an event channel from user level and kernel level
US7293201B2 (en) * 2003-01-17 2007-11-06 Microsoft Corporation System and method for active diagnosis and self healing of software systems
US7302613B2 (en) * 2003-11-12 2007-11-27 Microsoft Corporation System and method for capturing kernel-resident information
US8024544B2 (en) * 2004-05-13 2011-09-20 International Business Machines Corporation Free resource error/event log for autonomic data processing system

Also Published As

Publication number Publication date
US20050177776A1 (en) 2005-08-11
KR20050077201A (ko) 2005-08-01

Similar Documents

Publication Publication Date Title
US9384035B2 (en) Virtual computer system, management computer, and virtual computer management method
EP1691287A1 (en) Information processing device, process control method, and computer program
CN101458812B (zh) 用于检测图像信息的更新的装置和方法
KR100636268B1 (ko) 임베디드 멀티태스크 운영체제를 사용하는 시스템에서운영체제의 소프트웨어 모듈 상태 감시 장치 및 그 방법
US4621319A (en) Personal development system
CN103210381A (zh) 访问方法以及多核处理器系统
US11860718B2 (en) Register reading method and apparatus, device, and medium
US7168075B1 (en) Automation device and updating method
CN117234729B (zh) 动态内存保护方法、装置、计算机设备及存储介质
US20060203740A1 (en) Method and related apparatus for monitoring system bus
US6044477A (en) System and method for auditing buffer usage in a data processing system
JP5133649B2 (ja) 電子機器およびメモリ管理プログラム
US7114066B1 (en) Method, apparatus, and computer-readable medium for ensuring compatibility between an operating system and a BIOS redirection component
JP2006252429A (ja) コンピュータシステム、コンピュータシステムの診断方法およびコンピュータシステムの制御プログラム
JP2543640B2 (ja) 仮想計算機システム
US6710620B2 (en) Bus interface for I/O device with memory
CA1172381A (en) Process and device for selectively assigning the resources of a control unit to a selected user among a plurality of potential users
CN117272412B (zh) 中断控制寄存器保护方法、装置、计算机设备及存储介质
JPH11312138A (ja) 割込み制御システム及びその制御方法
CN113360294B (zh) 多进程核间通信建立方法、系统、终端及存储介质
CN117412059A (zh) 基于虚拟化的视频编解码系统、设备及方法
JP5053002B2 (ja) ハードウェア監視ユニット
JP2004213178A (ja) 計算機システム
KR20010036590A (ko) 인터럽트 및 폴링 방식 겸용으로 메모리를 엑세스하는 장치 및 그 방법
JPH07118827B2 (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: 20090929

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee