KR20130071989A - 선점형 RTOS 시스템에서 WatchDog 타이머 제어 방법 - Google Patents

선점형 RTOS 시스템에서 WatchDog 타이머 제어 방법 Download PDF

Info

Publication number
KR20130071989A
KR20130071989A KR1020110139515A KR20110139515A KR20130071989A KR 20130071989 A KR20130071989 A KR 20130071989A KR 1020110139515 A KR1020110139515 A KR 1020110139515A KR 20110139515 A KR20110139515 A KR 20110139515A KR 20130071989 A KR20130071989 A KR 20130071989A
Authority
KR
South Korea
Prior art keywords
watchdog timer
task
count value
context switching
controlling
Prior art date
Application number
KR1020110139515A
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 KR1020110139515A priority Critical patent/KR20130071989A/ko
Publication of KR20130071989A publication Critical patent/KR20130071989A/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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 선점형 RTOS 시스템에서 WatchDog 타이머 제어 방법에 관한 것으로서, 본 발명에 따른 WatchDog 타이머 제어 방법은 선점형 RTOS를 사용한 멀티 태스크 시스템에서 WatchDog 타이머를 이용하여 프로그램 수행 오류가 감지되면 시스템을 재 부팅시켜 시스템을 안정화시키는 것을 특징으로 하고, 본 발명에 따르면, 선점형 RTOS에서의 WatchDog 타이머의 오류 체크능력을 강화시킬 수 있다.

Description

선점형 RTOS 시스템에서 WatchDog 타이머 제어 방법{Method Controlling WatchDog Timer in Preemptive Real Time Operating System}
본 발명은 WatchDog 타이머 제어 방법에 관한 것으로서, 보다 구체적으로는 선점형 실시간 운영 체제를 사용하는 멀티 태스크 시스템에서 WatchDog 타이머를 제어하는 방법에 관한 것이다.
종래 기술은 시스템이 WatchDog 타이머에 의해 재부팅되거나 다운되는 증상을 방지하도록 개발된 것으로서, 이는 WatchDog 타이머 본연의 기능을 모두 무시하고 WatchDog 타이머의 역할에 대해 전혀 이해하지 못한 채 원인 모를 이유로 WatchDog에 의해 시스템이 계속 리셋되는 것을 단순히 방지하기 위해 개발된 것이다.
그러나, WatchDog 타이머 본연의 역할은 시스템이 오동작할 경우 최후의 수단으로 시스템을 리셋시켜 프로그램 초기화에 의한 시스템 동작을 정상화시키는 것으로서, WatchDog 리셋을 강제적으로 방지하는 것은 시스템에 심각한 데미지를 야기시킬 수 있다.
즉, 종래에는 WatchDog 타이머를 clear시키는 TASK의 우선순위를 가장 높게 설정함으로써, 그보다 우선순위가 낮은 TASK의 동작 이상으로 인해 발생한 locking으로 실제 시스템 전체(프로그램)에 이상이 생긴다 하더라도, WatchDog 타이머를 clear시키는 TASK는 가장 높은 우선순위로 인해 정상동작하여 Watchdog 타이머를 클리어 시키므로, 시스템 오동작에 따른 WatchDog 리셋이 발생하지 않아 시스템에 치명적인 데미지를 입힐 수 있는 문제점이 있다.
전술한 바를 보다 구체적으로 설명하면, 우선순위가 Task 1, Task 2, Task 3, Task 4 순이라 하고, Task 1은 50ms 주기를 가지며 지속적으로 수행하고, Task 2는 100ms 주기를 가지고 지속적으로 수행할 경우, 동시에 특정 조건에 부합되면 Task4로 메세지 Q를 전송하여 Task4가 수행될 수 있도록 트리거링하고, 외부 인터럽트에 의해 트리거된 interrupt루틴은 Task3가 수행되도록 메세지 Q를 전송한다.
전술한 바와 같이, 가장 높은 우선순위를 가진 TASK1이 WatchDog 타이머를 clear할 경우, 어떤 요인에 의해 TASK2의 주기적 수행이 멈춰도 가장 높은 우선순위를 갖는 TASK1만 정상적으로 수행되면 시스템은 WatchDog 리셋이 발생하지 않게 된다.
즉, interrupt 루틴에서 메세지 Q를 전송하는 루틴이 정상적으로 수행됐음에도 불구 하고 어떤 요인에 의해 TASK3가 그 메세지 Q를 수신하지 못하는 상황이 발생하더라도 가장 높은 우선순위를 갖는 TASK1만 정상적으로 수행되면 시스템은 WatchDog 리셋이 발생하지 않는다.
전술한 바와 같이, 종래의 기술은 WatchDog의 본연 기능인 시스템 리셋을 방지하기 위해 WatchDog 타이머를 클리어하고 재실행시키는 TASK의 우선순위를 가장 높게 설정하여 다른 TASK들이 정상동작하지 않더라도 가장 높은 우선순위를 갖는 TASK에 의해 WatchDog 타이머가 클리어 되어 재실행됨으로써, 시스템이 오동작하더라도 시스템에 WaatchDog 리셋이 발생하지 않는 문제점이 있다.
본 발명은 상기와 같은 문제점을 감안하여 창출한 것으로서, 선점형 RTOS를 사용한 멀티 태스크 시스템에서 WatchDog 타이머를 이용하여 프로그램 수행 오류가 감지되면 시스템을 재 부팅시켜 시스템을 안정화시키는 선점형 RTOS 시스템에서 WatchDog 타이머 제어 방법을 제공하는 데 그 목적이 있다.
전술한 목적을 달성하기 위하여, 본 발명의 일면에 따른 선점형 RTOS를 사용하는 멀티 태스크 시스템에서 WatchDog 타이머를 제어하는 방법은 우선순위가 가장 높은 태스크가 나머지 태스크들의 Context Switching 카운트 값에 따라 상기 나머지 태스크들의 정상 동작 여부를 판단하고, 판단결과에 따라 상기 WatchDog 타이머를 제어하는 단계; 및 상기 우선순위가 가장 높은 태스크가 기능 수행 중 문제가 발생한 경우 상기 WatchDog 타이머가 타임아웃 되도록 리셋시키지 않는 단계를 포함한다.
본 발명에 따르면, 선점형 RTOS에서의 WatchDog 타이머의 오류 체크능력을 강화시킬 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 선점형 RTOS 시스템에서 WatchDog 타이머 제어 방법을 설명하기 위한 각 TASK를 도시한 도면.
도 2는 TASK1의 동작을 설명하기 위한 도면.
도 3 및 도 4는 Context Switching의 정상 유무 판단 과정을 설명하기 위한 도면.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 용이하게 이해할 수 있도록 제공되는 것이며, 본 발명은 청구항의 기재에 의해 정의된다. 한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자 이외의 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하, 도 1 내지 도 4를 참조하여 본 발명의 일 실시예에 따른 선점형 RTOS 시스템에서 WatchDog 타이머 제어 방법을 설명한다. 도 1은 본 발명의 일 실시예에 따른 선점형 RTOS 시스템에서 WatchDog 타이머 제어 방법을 설명하기 위한 각 TASK를 도시한 도면이고, 도 2는 TASK1의 동작을 설명하기 위한 도면이며, 도 3 및 도 4는 Context Switching의 정상 유무 판단 과정을 설명하기 위한 도면이다.
먼저 Context Switching을 설명하면, Context Switching은 OS의 스케줄러가 계산한 우선순위에 따라 실행하는 TASK에 의해 시스템의 프로그램 수행이 천이되는 것이다.
예컨대, 도 1에 도시된 바와 같이, TASK1의 우선순위가 TASK4보다 높게 설정된 경우, 설정된 우선순위에 따라 TASK1이 기능을 수행한 후 50ms 동안 슬립상태에 머물게 되면, 그 기간 동안 TASK4가 기능을 수행하고, TASK4가 기능을 수행하는 중 TASK1의 50ms 슬립 상태가 해제되면, TASK4는 기능 수행을 즉시 멈추고 현재의 모든 상태를 STACK에 저장한 후 프로그램 제어권을 TASK1에 넘기는데 이와 같은 일련의 과정을 context switching이라 한다.
본 발명의 선점형 RTOS는 Task Control Block(TCB)의 자료구조(Structure)를 활용하여 TASK1, TASK2, TASK3, TASK4를 제어한다.
즉, 본 발명의 선점형 RTOS는 TCB에 저장된 정보를 토대로 각 TASK에 의해 Context Swiching이 처음 프로그램 실행 이후 몇 번 행해 졌는지를 카운트할 수 있고, 카운트된 값을 토대로 각 TASK에 의해 Context Switching이 정상적으로 수행되는지를 판단할 수 있다.
예컨대, 가장 높은 우선순위를 갖는 TASK1은 기설정된 주기(50ms)마다 호출되고, 도 2에 도시된 바와 같은 소스 코드(Block 1, Block 2)가 포함된다.
Block 1 : 조건에 따라 WatchDog 타이머를 클리어/재 실행 시킬 수 있는 Block
if(조건 value == 1)
{
watchdog_clear_restart();
}
Block 2 : 생성된 모든 TASK가 Context Switching이 발생하고 있는지를 체크하는 Block
if(Some Context Switching == 비정상)
{
조건 value = 0;
}
TASK1은 기능 수행 중 문제가 발생할 경우 Block 1을 실행시키지 않고, 이 때문에 WatchDog 타이머는 타임 아웃되며, 마이크로 프로세서는 WatchDog 타이머가 타임 아웃된 것을 시스템 오류로 판단하여 시스템을 재부팅 시킨다.
TASK1은 기능 수행 중 Block 2를 실행시켜 자신을 제외한 나머지 TASK의 정상 동작 여부를 Context Switching 수행 여부로 판단하고, Context Switching 수행에 이상이 있다고 판단한 경우 Block 1을 실행시키지 않는다.
Block 2는 TASK 1을 제외한 나머지 TASK의 특성에 따라 구현된다.
예컨대, TASK2는 100ms의 주기를 갖는 TASK임으로 100ms 마다 Context Switching Count가 증가한다. TASK1의 주기성은 50ms 임으로 TASK1이 4번 기능 수행을 하는 동안 TASK2는 최소한 1번 이상의 Context Switching을 수행해야 한다.
따라서, TASK1은 프로그램 시작 후 4번째의 기능수행을 하는 동안 TASK2의 Context Switching Count를 확인하고 확인결과 Context Switching Count가 0일 경우 TASK2의 동작에 문제가 발생한 것으로 판단한다.
보다 구체적으로 설명하면, 도 3에 도시된 바와 같이, TASK1은 Block 2를 실행시켜 TASK2의 Context Switching의 정상 유무를 판단한다.
예컨대, TASK1은 시간(T)이 50ms인 지점에서 TASK2의 Context Switching Count 값을 저장하고, 시간(T)이 250ms인 지점에서 TASK2의 Context Switching Count 값을 확인하며, 확인된 카운트 값과 저장된 카운트 값을 비교하여 동일한 경우, WatchDog 타이머가 리셋될 수 있도록 Block 2의 조건 value에 0을 대입하고, 동일하지 않을 경우, WatchDog 타이머가 리셋되지 않도록 조건 value에 1을 대입한다.
또한, 도 4에 도시된 바와 같이, TASK1은 BLOCK 2를 실행시켜 TASK3의 Context Switching의 정상 유무를 판단한다.
예컨대, TASK1은 TASK3의 Context Switching Count 값을 저장하고, 인터럽트가 발생한 경우, 200ms 정도 후 임계시간 내에 TASK3가 수행되는지 여부를 판단하기 위해 TASK3의 Context Switching Count 값을 확인하며, 확인된 카운트 값과 저장된 카운트 값을 비교하여 동일한 경우, WatchDog 타이머가 리셋될 수 있도록 Block 2의 조건 value에 0을 대입하고, 동일하지 않을 경우, WatchDog 타이머가 리셋되지 않도록 조건 value에 1을 대입한다.
전술한 바와 같이, 본 발명의 TASK1은 확인하고자 하는 Task의 특성(주기 등)에 따라 이전 Context Switching의 카운트 값과 현재 Context Switchiing의 카운트 값을 비교하여 전체 task의 이상 여부를 판단함으로써 선점형 RTOS에서의 WatchDog 타이머의 오류 체크능력을 강화시킬 수 있다.
이상 바람직한 실시예와 첨부도면을 참조하여 본 발명의 구성에 관해 구체적으로 설명하였으나, 이는 예시에 불과한 것으로 본 발명의 기술적 사상을 벗어나지 않는 범주내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (5)

  1. 선점형 RTOS를 사용하는 멀티 태스크 시스템에서 WatchDog 타이머를 제어하는 방법에 있어서,
    우선순위가 가장 높은 태스크가 나머지 태스크들의 Context Switching 카운트 값에 따라 상기 나머지 태스크들의 정상 동작 여부를 판단하고, 판단결과에 따라 상기 WatchDog 타이머를 제어하는 단계; 및
    상기 우선순위가 가장 높은 태스크가 기능 수행 중 문제가 발생한 경우 상기 WatchDog 타이머가 타임아웃 되도록 리셋시키지 않는 단계
    를 포함하는 WatchDog 타이머 제어 방법.
  2. 제1항에 있어서, 상기 WatchDog 타이머를 제어하는 단계는,
    특정 시점에서 확인된 각 태스크의 Context Switching 카운트 값을 저장하는 단계;
    인터럽트가 발생하지 않은 경우 상기 특정 시점으로부터 시간 경과 후 상기 각 태스크의 Context Switching 카운트 값을 확인하고, 확인된 카운트 값과 저장된 카운트 값을 비교하는 단계; 및
    비교결과 두 카운트 값이 일치하면, 상기 WatchDog 타이머가 타임아웃 되지 않도록 리셋시키는 단계
    를 포함하는 WatchDog 타이머 제어 방법.
  3. 제2항에 있어서, 상기 WatchDog 타이머를 제어하는 단계는,
    상기 비교결과 상기 두 카운트 값이 일치하지 않으면, 상기 WatchDog 타이머가 타임아웃 되도록 리셋시키지 않는 단계를 더 포함하는 것
    인 WatchDog 타이머 제어 방법.
  4. 제2항에 있어서, 상기 WatchDog 타이머를 제어하는 단계는,
    상기 인터럽트가 발생한 경우 상기 특정 시점으로부터 상기 각 태스크의 기설정된 주기 경과 후 상기 각 태스크의 Context Switching 카운트 값을 확인하고, 확인된 카운트 값과 저장된 카운트 값을 비교하는 단계를 더 포함하는 것
    인 WatchDog 타이머 제어 방법.
  5. 제4항에 있어서, 상기 WatchDog 타이머를 제어하는 단계는,
    상기 비교결과 상기 두 카운트 값이 일치하지 않을 경우, 상기 WatchDog 타이머가 타임아웃 되도록 리셋시키지 않는 단계를 더 포함하는 것
    인 WatchDog 타이머 제어 방법.
KR1020110139515A 2011-12-21 2011-12-21 선점형 RTOS 시스템에서 WatchDog 타이머 제어 방법 KR20130071989A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110139515A KR20130071989A (ko) 2011-12-21 2011-12-21 선점형 RTOS 시스템에서 WatchDog 타이머 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110139515A KR20130071989A (ko) 2011-12-21 2011-12-21 선점형 RTOS 시스템에서 WatchDog 타이머 제어 방법

Publications (1)

Publication Number Publication Date
KR20130071989A true KR20130071989A (ko) 2013-07-01

Family

ID=48986848

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110139515A KR20130071989A (ko) 2011-12-21 2011-12-21 선점형 RTOS 시스템에서 WatchDog 타이머 제어 방법

Country Status (1)

Country Link
KR (1) KR20130071989A (ko)

Similar Documents

Publication Publication Date Title
AU2010307632B2 (en) Microcomputer and operation method thereof
EP3039543B1 (en) A monitoring unit as well as method for predicting abnormal operation of time-triggered computer systems
JP2001154885A (ja) コンピュータシステムのロックアップ防止方法及びコンピュータシステムをモニターする方法
CN105550057B (zh) 嵌入式软件系统故障检测恢复方法和系统
US20070180322A1 (en) Debug support device, and program for directing computer to perform debugging method
US20120198464A1 (en) Safety controller and safety control method
CN109558227B (zh) 一种基于任务执行预算的单调速率任务调度方法
CN110865900A (zh) 增强嵌入式系统健壮性的一种方法
JP2007323631A (ja) Cpu暴走判定回路
US8099637B2 (en) Software fault detection using progress tracker
CN106528276B (zh) 一种基于任务调度的故障处理方法
KR20130071989A (ko) 선점형 RTOS 시스템에서 WatchDog 타이머 제어 방법
CN111290872A (zh) 应用程序及应用程序的异常处理方法
KR102023164B1 (ko) 알티오에스 마이컴의 오에스 태스크의 모니터링 방법
JP5633501B2 (ja) 制御装置および制御方法
KR101300806B1 (ko) 다중 프로세스 시스템에서 오동작 처리 장치 및 방법
JP5906584B2 (ja) 制御装置及び制御方法
JPWO2018211865A1 (ja) 車両制御装置
JP2006227962A (ja) アプリケーションタスク監視システムおよび方法
JP5018140B2 (ja) マルチプロセッサシステム、タスクスケジューリング方法およびタスクスケジューリングプログラム
JP2008204013A (ja) スレッド動作異常検知方法、マルチスレッドシステム
CN104268027A (zh) 嵌入式实时操作系统的故障处理方法和装置
JP2008077388A (ja) マルチプロセッサ制御システム、方法、およびプログラム
JP4387863B2 (ja) 擾乱発生検出プログラムおよび擾乱発生検出方法
GB2526082A (en) A monitoring unit as well as method for predicting abnormal operation of time-triggered computer systems

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination