KR100953099B1 - 소형 저전력 임베디드 시스템 및 그의 선점 회피 방법 - Google Patents

소형 저전력 임베디드 시스템 및 그의 선점 회피 방법 Download PDF

Info

Publication number
KR100953099B1
KR100953099B1 KR1020070137951A KR20070137951A KR100953099B1 KR 100953099 B1 KR100953099 B1 KR 100953099B1 KR 1020070137951 A KR1020070137951 A KR 1020070137951A KR 20070137951 A KR20070137951 A KR 20070137951A KR 100953099 B1 KR100953099 B1 KR 100953099B1
Authority
KR
South Korea
Prior art keywords
task
aperiodic
periodic
execution
queue
Prior art date
Application number
KR1020070137951A
Other languages
English (en)
Other versions
KR20090070071A (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 KR1020070137951A priority Critical patent/KR100953099B1/ko
Priority to US12/193,875 priority patent/US20090172684A1/en
Publication of KR20090070071A publication Critical patent/KR20090070071A/ko
Application granted granted Critical
Publication of KR100953099B1 publication Critical patent/KR100953099B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)

Abstract

본 발명은 태스크들의 동시 동작을 보장하면서 이중 우선순위 스케쥴링 기반으로 태스크의 선점을 회피하여 스택 메모리를 사용하지 않도록 할 수 있는 소형 저전력 임베디드 시스템 및 그의 선점 회피 방법을 제공하는 것으로, 본 발명의 소형 저전력 임베디드 시스템의 선점 회피 방법은, 주기적 실행 큐에서 찾은 주기적 태스크를 실행시키는 단계; 상기 주기적 태스크의 실행된 결과 값에 따라, 실행된 주기적 태스크의 필드를 실행 대기 상태로 바꾼 후 주기적 태스크를 한 개 감소시키거나 태스크 변환을 수행하는 단계; 비주기적 실행 큐에서 찾은 비주기적 태스크를 가져오고 시스템클럭을 획득하는 단계; 최악 조건에서의 수행 시간에 따라 상기 가져온 비주기적 태스크를 실행시키는 단계; 상기 비주기적 태스크의 실행된 결과 값에 따라, 실행된 비주기적 태스크의 필드를 실행 대기 상태로 바꾼 후 비주기적 태스크를 한 개 감소시키거나 이벤트 변환을 수행하는 단계;를 포함하는 것을 특징으로 한다.
선점, 회피, 스케쥴링, 임베디드시스템

Description

소형 저전력 임베디드 시스템 및 그의 선점 회피 방법{Small Low-Power Embedded System and Preemption Avoidance Method Thereof}
본 발명은 소형 저전력 임베디드 시스템 및 그의 선점 회피 방법에 관한 것으로, 특히 태스크들의 동시 동작을 보장하면서 이중 우선순위 스케쥴링(DPS: Dual Priority Scheduling) 기반으로 태스크의 선점을 회피하여 스택 메모리를 사용하지 않도록 할 수 있는 소형 저전력 임베디드 시스템 및 그의 선점 회피 방법에 관한 것이다.
센서 네트워크 노드들은 소형 저전력 장치에서 동작하며 동시에 MAC/Network 프로토콜과 같은 복잡한 구조의 소프트웨어를 수행해야 한다. 또한 응용에 따라 하드웨어 장치의 제어에 있어서 빠른 응답성을 요구한다. 이처럼 서로 상반된 것처럼 보이는 요구조건을 만족시키기 위해서 효율적인 구조의 최적화된 운영체제가 필요하다.
최근 몇 년 동안 컴퓨팅 아키텍쳐(architecture)에서 event-driven 방식과 multi-thread 방식 간에 논쟁이 있어왔다. 센서 네트워크를 위한 소형 컴퓨팅 장치를 위한 컴퓨팅 구조는 전원관리 및 메모리 요구사항의 제약으로 인해 단순한 구조를 가진 event-driven 방식의 스케쥴가 TinyOS에서 구현되었다. TinyOS는 nesC의 전처리기를 통한 개발환경에 event-driven 방식의 선입선출 기반 스케쥴링(FIFO based scheduling)을 수행하여 작은 코드 사이즈와 빠른 태스크 전환을 장점으로 한다. 그러나, event-driven 구조의 단순한 스케쥴링 없이 종료까지의 실행(run-to-completion) 방식은 태스크의 컨커런시(concurrency)가 보장되지 않아서 시스템 자원의 효율적인 관리가 어렵다. 이러한 약점을 보완하기 위해 종래 운영체제의 스케쥴링 방식을 센서 노드를 위해 최적화시킨 multi-thread 방식의 운영체제가 구현되었다. multi-thread 방식의 대표적인 운영체제인 MANTIS OS에서는 타임 슬라이스(time-slice)를 통한 타임 쉐어링(time sharing)이 가능한 스레드(thread) 기반의 라운도 로빈 스케쥴링(round-robin scheduling)으로 시스템을 동작시켰다. 이러한 구조를 통해 컨커런시(concurrency)를 보장하여 시스템 자원의 사용에서 효율성을 높이고, 실시간 적인 작업들에 대해 우선순위(priority) 기반 선점(preemption)을 통해 보장할 수 있다.
multi-thread 방식을 센서 노드에 적용하는데 있어서 몇 가지 단점 또한 존재한다. 먼저 가장 큰 문제점은 메모리의 문제이다. multi-thread 방식의 구현에 있어서, 메모리 큰 부분을 차지하는 것은 태스크 스택(task stack)이다. 일반적으로 4~8Kbytes 메모리에서 태스크 단위로 수백 bytes 이상의 스택(stack)을 할당하는 것은 효율성에 있어서 고민할 문제이다. 센서 노드는 MAC과 네트워크(Network) 를 위한 자료구조 및 라우팅을 위한 테이블과 같은 데이터를 위해 상당 크기의 메모리를 확보하여야 한다. 또한 응용에 따라 필요한 데이터들의 공간 역시 필요하다. 이러한 제약 때문에 multi-thread 방식에서 메모리 용량은 한계를 갖는다. 그리고, 타임 슬라이스(time-slice)를 통한 스케쥴링으로 시스템 자원의 효율적 사용 및 컨커런시(concurrency)는 높일 수 있지만, 인터럽트 또는 이벤트에 대한 반응속도를 떨어트릴 여지가 있다. 또한, 시스템은 항시 바로 응답할 수 있는 상태를 유지하여야 하기 때문에 시스템의 전원관리에 있어서 인액티브(inactive) 상태에서의 전원 소모를 최소화시키는 것에서 어려움이 있다.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로, 본 발명의 목적은 태스크들의 동시 동작을 보장하면서 이중 우선순위 스케쥴링 기반으로 태스크의 선점을 회피하여 스택 메모리를 사용하지 않도록 할 수 있는 소형 저전력 임베디드 시스템 및 그의 선점 회피 방법을 제공하는 데 있다.
본 발명의 다른 목적은 태스크들의 동시 동작을 보장하면서 이중 우선순위 스케쥴링 기반으로 태스크의 선점을 회피하여 스택 메모리를 사용하지 않음으로써, 시스템의 메모리 사용량을 줄일 수 있는 소형 저전력 임베디드 시스템 및 그의 선점 회피 방법을 제공하는 데 있다.
이와 같은 목적을 달성하기 위한 본 발명의 소형 저전력 임베디드 시스템은, 하나 이상의 주기적 태스크가 등록되는 주기적 실행 큐; 하나 이상의 비주기적 태스크가 등록되는 비주기적 실행 큐; 상기 주기적 태스크 및 상기 비주기적 태스크의 실행에 이용되는 하나 이상의 디바이스; 및 상기 주기적 실행 큐의 주기적 태스크를 일정 주기로 실행시키고 상기 비주기적 실행 큐의 비주기적 태스크를 일정 주기로 실행시키는 스케쥴러를 포함하되, 상기 스케쥴러는 멀티태스킹(Multi-tasking)을 보장하면서 이중 우선순위 스케쥴링 기반으로 태스크의 선점을 회피하여 상기 주기적 태스크와 상기 비주기적 태스크를 실행시키는 것을 특징으로 한다.
본 발명의 소형 저전력 임베디드 시스템의 선점 회피 방법은, 주기적 실행 큐에서 찾은 주기적 태스크를 실행시키는 단계; 상기 주기적 태스크의 실행된 결과 값에 따라, 실행된 주기적 태스크의 필드를 실행 대기 상태로 바꾼 후 주기적 태스크를 한 개 감소시키거나 태스크 변환을 수행하는 단계; 비주기적 실행 큐에서 찾은 비주기적 태스크를 가져오고 시스템클럭을 획득하는 단계; 최악 조건에서의 수행 시간에 따라 상기 가져온 비주기적 태스크를 실행시키는 단계; 상기 비주기적 태스크의 실행된 결과 값에 따라, 실행된 비주기적 태스크의 필드를 실행 대기 상태로 바꾼 후 비주기적 태스크를 한 개 감소시키거나 이벤트 변환을 수행하는 단계;를 포함하는 것을 특징으로 한다.
상기 구성을 갖는 본 발명은, 태스크들의 동시 동작을 보장하면서 이중 우선순위 스케쥴링 기반으로 태스크의 선점을 회피함으로써, 스택 메모리를 사용하지 않고, 이로 인해 시스템의 메모리 사용량을 줄일 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명한다.
도 1은 본 발명의 실시예에 따른 소형 저전력 임베디드 시스템의 구성도이다.
도 1을 참조하면, 본 발명의 소형 저전력 임베디드 시스템(100)은, 주기적 실행 큐(PRQ: Periodic Run Queue)(110), 비주기적 실행 큐(SRQ: Sporadic Run Queue)(120), 다수의 디바이스들(130-1 내지 130-n)(n은 2이상의 자연수), 타이머(140), 그리고 스케쥴러(150)를 구비한다.
주기적 실행 큐(110)에는 시간에 따라 동작하는(time triggered) 하나 이상의 주기적 태스크(PAT: Periodic Atomic Task)가 등록되며, 이 주기적 태스크는 스케쥴러(150)에 의해 실행된다.
비주기적 실행 큐(120)에는 이벤트에 의해 동작하는(event triggered) 하나 이상의 비주기적 태스크(SAT : Sporadic Atomic Task)가 등록되며, 이 비주기적 태스크는 스케쥴러(150)에 의해 실행된다.
즉, 아토믹 태스크(Atomic Task)가 주기적 태스크와 비주기적 태스크로 분류되어 서로 다른 태스크 컨트롤 블록(TCB: Task Control Block)으로 정의된다. 이러한 이벤트에 의해 동작하는 아토믹 태스크들은 CPU의 선점으로 인한 스케쥴링 없이 종료까지의 실행(run-to-completion)을 보장받는 작은 코드로 정의된다. 결과적으로 아토믹 태스크들로 구현된 시스템에서는 선점을 통한 컨텍스트 스위칭을 하지 않기 때문에 스텍 메모리를 공유할 수 있어서, 메모리의 요구사항에서 큰 장점을 얻을 수 있다.
디바이스들(130-1 내지 130-n)은 주기적 태스크 또는 비주기적 태스크의 실행에 이용된다.
타이머(140)는 시스템클럭(SYSCLK)을 발생한다.
스케쥴러(150)는 주기적 실행 큐(110)의 주기적 태스크를 일정 주기로 실행시키고 비주기적 실행 큐(120)의 비주기적 태스크를 일정 주기로 실행시키되, 태스크들의 동시 동작을 보장하면서 이중 우선순위 스케쥴링 기반으로 태스크의 선점을 회피하여 태스크를 실행시킨다.
이와 같은 구성을 갖는 본 발명의 소형 저전력 임베디트 시스템의 선점 회피 과정을 흐름도를 참조하여 설명하면 다음과 같다.
도 2는 본 발명의 실시예에 따른 소형 저전력 임베디드 시스템의 선점 회피 방법을 나타낸 흐름도이다.
도 2를 참조하면, 먼저 스케쥴러(150)는 주기적 실행 큐(110)에 실행할 주기적 태스크가 있는지를 확인하여(S101), 확인결과 주기적 태스크가 있으면, 주기적 실행 큐(110)에서 찾은 주기적 태스크를 가져온다(S102). 이 과정(S102)에서, 스케쥴러(150)는 주기적 태스크를 태스크 컨트롤 블록의 포인터(RUNNABLE_PAT(p))로 가져온다.
주기적 태스크를 가져온 스케쥴러(150)는 주기적 태스크(T(p).taskptr())를 실행하고, 그 실행된 결과 값(retval)을 가져온 후(S103), 실행된 결과 값(retval)이 '0'보다 큰지를 판단한다(S104). 판단결과 실행된 결과 값(retval)이 '0'보다 크면, 스케쥴러(150)는 실행된 주기적 태스크의 필드(T(p).state)를 실행 대기 상태(WAIT)로 바꾼다(S105). 그리고, 스케쥴러(150)는 주기적 실행 큐(110)에 있는 주기적 태스크를 한 개 감소시킨다(S106). 여기서, 실행된 결과 값(retval)이 '0'보다 큰 경우는 주기적 태스크가 정상적으로 수행된 경우이다.
판단 과정(S104)에서의 판단결과 실행된 결과 값(retval)이 '0'보다 크지 않으면, 스케쥴러(150)는 태스크 변환을 수행하여 주기적 태스크(Ti +1(a))를 대기 이벤트(eready)를 기다리는 비주기적 태스크로 변환한다(S107). 즉, 스케쥴러(150)는 주기적 실행 큐(110)에 있는 주기적 태스크를 주기적 실행큐(110)에서 실행된 것으로 간주하면서 비주기적 실행 큐(120)로 옮겨와서, 대기 이벤트(eready)가 발생될 때 실행되도록 한다. 여기서, 실행된 결과 값(retval)이 '0'보다 크지 않은 경우는 주기적 태스크가 정상적으로 수행되지 않은 경우이다.
한편, 확인 과정(S101)에서의 확인 결과 주기적 실행 큐(110)에 실행할 주기적 태스크가 없으면, 스케쥴러(150)는 비주기적 실행 큐(120)에 실행할 비주기적 태스크가 있는지를 확인한다(S108). 확인결과 비주기적 태스크가 없으면, 스케쥴러(150)는 태스크 실행을 종료한다.
확인 과정(S108)에서의 확인결과 비주기적 태스크가 있으면, 스케쥴러(150)는 비주기적 실행 큐(120)에서 찾은 비주기적 태스크를 가져온다(S109). 이 과정(S109)에서, 스케쥴러(150)는 비주기적 태스크를 태스크 컨트롤 블록의 포인터(RUNNABLE_SAT(s))로 가져온다.
이때, 스케쥴러(150)는 타이머(140)로부터 시스템클럭(SYSCLK)을 획득한 후(S110), 최악 조건에서의 수행 시간(T(s).ws)이 획득한 시스템클럭 인터럽트의 발생까지 남은 시간보다 큰지를 판단한다(S111). 판단결과 최악 조건에서의 수행 시간이 더 크지 않으면, 스케쥴러(150)는 태스크 실행을 종료한다.
판단 과정(S111)에서의 판단결과 최악 조건에서의 수행시간이 더 크면, 스케쥴러(150)는 비주기적 태스크(T(s).linkptr())를 실행하고, 그 실행된 결과 값(retval)을 가져온 후(S112), 실행된 결과 값(retval)이 '0'보다 큰지를 판단한다(S113). 판단결과 실행된 결과 값(retval)이 '0'보다 크면, 스케쥴러(150)는 실행된 비주기적 태스크의 필드(T(s).state)를 실행 대기 상태(WAIT)로 바꾼다(S114). 그리고, 스케쥴러(150)는 비주기적 실행 큐(110)에 있는 비주기적 태스크를 한 개 감소시킨다(S115). 여기서, 실행된 결과 값(retval)이 '0'보다 큰 경우는 비주기적 태스크가 정상적으로 수행된 경우이다.
판단 과정(S113)에서의 판단결과 실행된 결과 값(retval)이 '0'보다 크지 않으면, 스케쥴러(150)는 이벤트 변환을 수행하여 본래 이벤트(ex)를 대기 이벤트(eready)로 변환시켜, 변환된 대기 이벤트(eready)에 의해 비주기적 태스크가 실행되도록 한다(S116). 여기서, 실행된 결과 값(retval)이 '0'보다 크지 않은 경우는 비주기적 태스크가 정상적으로 수행되지 않은 경우이다.
도 3은 본 발명에 따른 소형 저전력 임베디드 시스템의 시리얼라이즈드 엑세스(serialized access) 과정, 즉 도 2에 도시된 태스크 변환(S107)을 설명하기 위한 예시도이다.
도 3을 참조하면, 태스크(Ti (a))와 태스크(Tj (b))가 순차적으로 수행되고 나면, 태스크(Ti +1(a))는 디바이스(D(g2))를 엑세스, 즉 실행 요청한다. 실행 요청받은 디바 이스(D(g2))가 태스크(Tj (b))에 의해 사용 중이면, 태스크(Ti +1(a))는 '0'을 반환한다. 이때, 스케쥴러(150)는 태스크 변환을 수행하여 주기적 태스크(Ti +1(a))를 대기 이벤트(eready)를 기다리는 태스크(Ti +2(a))로 변환한다. 이렇게 태스크 변환이 되고 난 후, 디바이스(D(g2))의 동작이 끝나고 대기 이벤트(eready)가 발생되면, 스케쥴러(150)는 비주기적 태스크(T(n)의 실행 후 변환된 태스크(Ti +2(a))를 실행시킨다. 이 경우, 변환된 태스크(Ti +2(a))는 해당 디바이스(D(g3))에게 실행 요청한다.
비주기적 태스크들(Ti (a), Tj (b), Ti +1(a))은 시스템클럭 인터럽트(CLKINT)가 발생될 때 실행되고 해당 디바이스에게 실행 요청한다. 디바이스들(D(g1), D(g2), D(g3))은 해당 태스크의 실행에 의한 동작이 끝나면 컨펌 이벤트(econfirm)를 발생시켜 디바이스의 수행이 종료되었음을 알리고 해당 비주기적 태스크(T(m), T(n))가 실행되도록 한다.
도 3에 도시된 바와 같이, 비주기적 태스크들은 일정한 실행 주기(Pa, Pb)를 갖는다. 그리고, Cn, Cn +1 및 Cn +2는 시스템클럭 인터럽트(CLKINT)의 발생 주기를 나타낸다.
도 4는 본 발명에 따른 소형 저전력 임베디드 시스템의 다이나믹 시리얼라이제이션(dynamic serialization) 과정, 도 2에 도시된 과정들(S11 내지 S16)을 설명하기 위한 예시도이다.
도 4를 참조하면, 주기적 태스크(Ti (a))는 비주기적 태스크(T(m))의 수행을 위해 이벤트(em)를 발생한다. 스케쥴러(150)는 비주기적 태스크(T(m))를 수행하려고 할 때, 최악 조건에서의 수행 시간(wm)이 n번째 시스템클럭 인터럽트의 발생까지 남은 시간(cn)보다 큰지를 판단한다. 판단결과 최악 조건에서의 수행 시간(wm)이 더 크지 않으면, 스케쥴러(150)는 비주기적 태스크(T(m))를 그대로 수행한다. 만일, 판단결과 최악 조건에서의 수행 시간(wm)이 더 크면, 스케쥴러(150)는 주기적 태스크(Ti (a))의 정상적인 수행을 위해 비주기적 태스크(T(m))의 수행을 연기하고, 주기적 태스크(Ti (a))의 수행이 완료된 후 비주기적 태스크(T(m))를 수행시킨다.
본 발명의 기술사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며, 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술분야의 통상의 전문가라면 본 발명의 기술사상의 범위에서 다양한 실시예가 가능함을 이해할 수 있을 것이다.
도 1은 본 발명의 실시예에 따른 소형 저전력 임베디드 시스템의 구성도.
도 2는 본 발명의 실시예에 따른 소형 저전력 임베디드 시스템의 선점 회피 방법을 나타낸 흐름도.
도 3은 본 발명에 따른 소형 저전력 임베디드 시스템의 시리얼라이즈드 엑세스 과정을 설명하기 위한 예시도.
도 4는 본 발명에 따른 소형 저전력 임베디드 시스템의 다이나믹 시리얼라이제이션 과정을 설명하기 위한 예시도.

Claims (15)

  1. 하나 이상의 주기적 태스크가 등록되는 주기적 실행 큐;
    하나 이상의 비주기적 태스크가 등록되는 비주기적 실행 큐;
    상기 주기적 태스크 및 상기 비주기적 태스크의 실행에 이용되는 하나 이상의 디바이스; 및
    상기 주기적 실행 큐의 주기적 태스크를 일정 주기로 실행시키고 상기 비주기적 실행 큐의 비주기적 태스크를 일정 주기로 실행시키는 스케쥴러를 포함하되,
    상기 스케쥴러는 멀티태스킹(Multi-tasking)을 보장하면서 이중 우선순위 스케쥴링 기반으로 태스크의 선점을 회피하여 상기 주기적 태스크와 상기 비주기적 태스크를 실행시키는 것을 특징으로 하는 소형 저전력 임베디드 시스템.
  2. 제 1 항에 있어서, 상기 스케쥴러는,
    상기 주기적 실행 큐에서 찾은 주기적 태스크를 실행시키고, 실행된 결과 값이 '0'보다 크면 실행된 주기적 태스크의 필드를 실행 대기 상태로 바꾼 후 주기적 태스크를 한 개 감소시키는 것을 특징으로 하는 소형 저전력 임베디드 시스템.
  3. 제 1 항에 있어서, 상기 스케쥴러는,
    상기 주기적 실행 큐에서 찾은 주기적 태스크를 실행시키고, 실행된 결과 값이 '0'보다 크지 않으면, 태스크 변환을 수행하여 주기적 태스크를 대기 이벤트를 기다리는 비주기적 태스크로 변환하는 것을 특징으로 하는 소형 저전력 임베디드 시스템.
  4. 제 1 항에 있어서, 상기 스케쥴러는,
    상기 비주기적 실행 큐에서 찾은 비주기적 태스크를 가져오고 시스템클럭을 획득한 후, 최악 조건에서의 수행 시간이 획득한 시스템클럭 인터럽트의 발생까지 남은 시간보다 크지 않으면 찾은 상기 비주기적 태스크를 실행시키는 동작을 종료하는 것을 특징으로 하는 소형 저전력 임베디드 시스템.
  5. 제 1 항에 있어서, 상기 스케쥴러는,
    상기 비주기적 실행 큐에서 찾은 비주기적 태스크를 가져오고 시스템클럭을 획득한 후, 최악 조건에서의 수행 시간이 획득한 시스템클럭 인터럽트의 발생까지 남은 시간보다 크면 비주기적 태스크를 실행시키고 실행된 결과 값을 가져오는 것을 특징으로 하는 소형 저전력 임베디드 시스템.
  6. 제 5 항에 있어서, 상기 스케쥴러는,
    상기 비주기적 태스크의 실행된 결과 값이 '0'보다 크면, 실행된 비주기적 태스크의 필드를 실행 대기 상태로 바꾼 후 비주기적 태스크를 한 개 감소시키고,
    상기 비주기적 태스크의 실행된 결과 값이 '0'보다 크지 않으면, 이벤트 변 환을 수행하여 본래 이벤트를 비주기적 태스크의 실행에 이용되는 대기 이벤트로 변환시키는 것을 특징으로 하는 소형 저전력 임베디드 시스템.
  7. 주기적 실행 큐에서 찾은 주기적 태스크를 실행시키는 단계;
    상기 주기적 태스크의 실행된 결과 값에 따라, 실행된 주기적 태스크의 필드를 실행 대기 상태로 바꾼 후 주기적 태스크를 한 개 감소시키거나 태스크 변환을 수행하는 단계;
    비주기적 실행 큐에서 찾은 비주기적 태스크를 가져오고 시스템클럭을 획득하는 단계;
    최악 조건에서의 수행 시간에 따라 상기 가져온 비주기적 태스크를 실행시키는 단계; 및
    상기 비주기적 태스크의 실행된 결과 값에 따라, 실행된 비주기적 태스크의 필드를 실행 대기 상태로 바꾼 후 비주기적 태스크를 한 개 감소시키거나 이벤트 변환을 수행하는 단계;를 포함하는 것을 특징으로 하는 소형 저전력 임베디드 시스템의 선점 회피 방법.
  8. 제 7 항에 있어서, 상기 주기적 태스크를 실행시키는 단계에서,
    주기적 태스크를 태스크 컨트롤 블록의 포인터로 가져오는 것을 특징으로 하는 소형 저전력 임베디드 시스템의 선점 회피 방법.
  9. 제 7 항에 있어서, 상기 주기적 태스크를 감소시키거나 변환시키는 단계는,
    상기 주기적 태스크의 실행된 결과 값이 '0'보다 큰지를 판단하는 단계;
    판단결과 상기 실행된 결과 값이 '0'보다 크면, 실행된 주기적 태스크의 필드를 실행 대기 상태로 바꾼 후 상기 주기적 실행 큐에 있는 주기적 태스크를 한 개 감소시키는 단계; 및
    판단결과 상기 실행된 결과 값이 '0'보다 크지 않으면, 태스크 변환을 수행하는 단계;를 포함하는 것을 특징으로 하는 소형 저전력 임베디드 시스템의 선점 회피 방법.
  10. 제 9 항에 있어서, 상기 태스크 변환 단계에서,
    주기적 태스크를 대기 이벤트를 기다리는 비주기적 태스크로 변환하는 것을 특징으로 하는 소형 저전력 임베디드 시스템의 선점 회피 방법.
  11. 제 7 항에 있어서, 상기 획득하는 단계는,
    상기 주기적 실행 큐에 실행할 주기적 태스크가 없으면, 상기 비주기적 실행 큐에 실행할 비주기적 실행 큐가 있는지를 확인하는 단계;
    확인결과 비주기적 실행 큐가 있으면, 상기 비주기적 실행 큐에서 찾은 비주기적 태스크를 가져오고 시스템클럭을 획득하는 단계; 및
    확인결과 비주기적 실행 큐가 없으면, 태스크를 실행시키는 동작을 종료하는 단계;를 포함하는 것을 특징으로 하는 소형 저전력 임베디드 시스템의 선점 회피 방법.
  12. 제 11 항에 있어서,
    비주기적 태스크를 태스크 컨트롤 블록의 포인터로 가져오는 것을 특징으로 하는 소형 저전력 임베디드 시스템의 선점 회피 방법.
  13. 제 7 항에 있어서, 상기 비주기적 태스크를 실행시키는 단계는,
    최악 조건에서의 수행 시간이 획득한 시스템클럭 인터럽트의 발생까지 남은 시간보다 큰지를 판단하는 단계;
    판단결과 최악 조건에서의 수행 시간이 더 크지 않으면, 찾은 상기 비주기적 태스크를 실행시키는 동작을 종료하는 단계; 및
    판단결과 최악 조건에서의 수행시간이 더 크면, 비주기적 태스크를 실행시키고 실행된 결과 값을 가져오는 단계;를 포함하는 것을 특징으로 하는 소형 저전력 임베디드 시스템의 선점 회피 방법.
  14. 제 7 항에 있어서, 상기 비주기적 태스크를 감소시키거나 이벤트 변환을 수행하는 단계는,
    비주기적 태스크의 실행된 결과 값이 '0'보다 큰지를 판단하는 단계;
    판단결과 실행된 결과 값이 '0'보다 크면, 실행된 비주기적 태스크의 필드를 실행 대기 상태로 바꾼 후 상기 비주기적 실행 큐에 있는 비주기적 태스크를 한 개 감소시키는 단계; 및
    판단결과 실행된 결과 값이 '0'보다 크지 않으면, 이벤트 변환을 수행하는 단계;를 포함하는 것을 특징으로 하는 소형 저전력 임베디드 시스템의 선점 회피 방법.
  15. 제 14 항에 있어서, 상기 이벤트 변환 단계에서,
    본래 이벤트를 비주기적 태스크를 실행시키는데 이용되는 대기 이벤트로 변환시키는 것을 특징으로 하는 소형 저전력 임베디드 시스템의 선점 회피 방법.
KR1020070137951A 2007-12-26 2007-12-26 소형 저전력 임베디드 시스템 및 그의 선점 회피 방법 KR100953099B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070137951A KR100953099B1 (ko) 2007-12-26 2007-12-26 소형 저전력 임베디드 시스템 및 그의 선점 회피 방법
US12/193,875 US20090172684A1 (en) 2007-12-26 2008-08-19 Small low power embedded system and preemption avoidance method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070137951A KR100953099B1 (ko) 2007-12-26 2007-12-26 소형 저전력 임베디드 시스템 및 그의 선점 회피 방법

Publications (2)

Publication Number Publication Date
KR20090070071A KR20090070071A (ko) 2009-07-01
KR100953099B1 true KR100953099B1 (ko) 2010-04-19

Family

ID=40800314

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070137951A KR100953099B1 (ko) 2007-12-26 2007-12-26 소형 저전력 임베디드 시스템 및 그의 선점 회피 방법

Country Status (2)

Country Link
US (1) US20090172684A1 (ko)
KR (1) KR100953099B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104699533B (zh) * 2013-12-09 2017-11-28 中国航空工业集团公司第六三一研究所 一种多个周期任务的调度方法
CN109978357B (zh) * 2019-03-15 2023-06-20 中国科学技术大学 一种基于预估的以总路程最短为指标的导弹车调度方法
KR102436160B1 (ko) * 2020-09-29 2022-08-24 엘에스일렉트릭(주) 이벤트 기반 전력기기 제어장치
US11647420B2 (en) * 2021-02-18 2023-05-09 Charter Communications Operating, Llc Downlink and uplink data handling in a wireless device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990003117A (ko) * 1997-06-24 1999-01-15 김영환 시디엠에이(cdma) 이동통신 교환기의 타임 스케줄링(scheduling)장치
JP2000047884A (ja) 1998-07-28 2000-02-18 Toshiba Corp スケジューリング解析装置、スケジューリング解析方法及びスケジューリング解析用プログラムを記録した媒体
KR20020022049A (ko) * 1999-05-14 2002-03-23 추후보정 태스크 스케줄링 및 메시지 패싱
KR20070038384A (ko) * 2005-10-05 2007-04-10 엘지전자 주식회사 이동통신단말기의 운영체제의 태스크 스케줄링방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619409A (en) * 1995-06-12 1997-04-08 Allen-Bradley Company, Inc. Program analysis circuitry for multi-tasking industrial controller
US6110220A (en) * 1997-02-24 2000-08-29 Lucent Technologies Inc. Concurrent hardware-software co-synthesis of hard real-time aperiodic and periodic specifications of embedded system architectures
US6490611B1 (en) * 1999-01-28 2002-12-03 Mitsubishi Electric Research Laboratories, Inc. User level scheduling of inter-communicating real-time tasks
GB2392515B (en) * 2002-08-28 2005-08-17 Livedevices Ltd Improvements relating to stack usage in computer-related operating systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990003117A (ko) * 1997-06-24 1999-01-15 김영환 시디엠에이(cdma) 이동통신 교환기의 타임 스케줄링(scheduling)장치
JP2000047884A (ja) 1998-07-28 2000-02-18 Toshiba Corp スケジューリング解析装置、スケジューリング解析方法及びスケジューリング解析用プログラムを記録した媒体
KR20020022049A (ko) * 1999-05-14 2002-03-23 추후보정 태스크 스케줄링 및 메시지 패싱
KR20070038384A (ko) * 2005-10-05 2007-04-10 엘지전자 주식회사 이동통신단말기의 운영체제의 태스크 스케줄링방법

Also Published As

Publication number Publication date
KR20090070071A (ko) 2009-07-01
US20090172684A1 (en) 2009-07-02

Similar Documents

Publication Publication Date Title
Gaur et al. Operating systems for IoT devices: A critical survey
TWI502511B (zh) 用於管理多核心架構之資源的方法和設備
US10268609B2 (en) Resource management in a multicore architecture
Davis et al. How embedded applications using an RTOS can stay within on-chip memory limits
KR100953099B1 (ko) 소형 저전력 임베디드 시스템 및 그의 선점 회피 방법
Eriksson et al. Real-time for the masses, step 1: Programming API and static priority SRP kernel primitives
Hofmeijer et al. AmbientRT-real time system software support for data centric sensor networks
Saraswat et al. A comparative analysis of wireless sensor network operating systems
Parikh et al. Performance parameters of RTOSs; comparison of open source RTOSs and benchmarking techniques
Zhou et al. An event-driven multi-threading real-time operating system dedicated to wireless sensor networks
Gregorek et al. A scalable hardware implementation of a best-effort scheduler for multicore processors
Tianzhou et al. A real-time scheduling algorithm for embedded systems with various resource requirements
Karnakanti A Survey on Different Real Time Operating Systems
De Sensi et al. State-aware concurrency throttling
Cheour et al. EDF scheduler technique for wireless sensors networks: case study
Farooq et al. State of the art in wireless sensor networks operating systems: a survey
Zhang Schedulability analysis of real time system
Dai et al. Delayed processing technique in critical sections for real-time linux
YongXian et al. Scheduling for non-real time applications of ORTS based on two-level scheduling scheme
Duffy The TinyOS-2. x Priority Level Scheduler
Khushu et al. Scheduling and Synchronization in Embedded Real-Time Operating Systems
Han et al. Fast real-time job selection with Resource constraints under earliest deadline first
Takeyama et al. HI8: A Realtime Operating System with μITRON Specifications for the H8/500
Khezri et al. Simplifying concurrent programming of networked embedded systems
Hong et al. New Scheme of Implementing Real-Time Linux

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: 20130111

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131231

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150109

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151224

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180406

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee