KR20060001509A - 버퍼를 이용한 실시간 다중 태스크 스케줄링에서의 동적전압 조정 시스템 및 방법 - Google Patents

버퍼를 이용한 실시간 다중 태스크 스케줄링에서의 동적전압 조정 시스템 및 방법 Download PDF

Info

Publication number
KR20060001509A
KR20060001509A KR1020040050643A KR20040050643A KR20060001509A KR 20060001509 A KR20060001509 A KR 20060001509A KR 1020040050643 A KR1020040050643 A KR 1020040050643A KR 20040050643 A KR20040050643 A KR 20040050643A KR 20060001509 A KR20060001509 A KR 20060001509A
Authority
KR
South Korea
Prior art keywords
task
time
queue
buffering
processor
Prior art date
Application number
KR1020040050643A
Other languages
English (en)
Other versions
KR100633576B1 (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 KR1020040050643A priority Critical patent/KR100633576B1/ko
Publication of KR20060001509A publication Critical patent/KR20060001509A/ko
Application granted granted Critical
Publication of KR100633576B1 publication Critical patent/KR100633576B1/ko

Links

Images

Classifications

    • 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/22Microcontrol or microprogram arrangements

Landscapes

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

Abstract

본 발명은 버퍼링을 이용한 실시간 다중 태스크 스케줄링에서의 동적 전압 조정 시스템 및 방법에 관한 것으로, 더욱 상세하게는 다중 태스크 스케줄링에 버퍼링(buffering)을 도입하여 태스크의 릴리스(release) 시간 도래 여부를 판단하고, 릴리스 시간이 도래한 태스크가 증가할 때마다 버퍼링 크기를 1씩 증가시키며, 버퍼링 크기를 소정의 최대값과 비교하여 상기 버퍼링 크기가 소정의 최대값과 같으면 태스크를 준비 큐로 이동시키고, 상기 버퍼링 크기가 소정의 최대값보다 작으면 태스크를 버퍼 큐로 이동시켜 상기 태스크를 수행시키되, 상기 준비 큐가 비어있으면 프로세서에 인가 전압 및 인가 주파수를 낮추어 인가하여 상기 버퍼 큐의 헤드에 위치한 액티브 태스크를 수행함으로써, 전력소비를 최소화시킬 수 있는 버퍼링을 이용한 실시간 다중 태스크 스케줄링에서의 동적 전압 조정 시스템 및 방법에 관한 것이다.
본 발명에 따르면, 태스크에 대한 버퍼 동작을 수행하면서, 실제 태스크를 실행시킴으로써, 높은 우선 순위의 태스크 실행이 종료된 시점에 실행시킬 수 있는 릴리스 시간이 도래한 태스크가 존재할 가능성을 높여 프로세서와 VST(workload-variation slack time)를 최대한 활용하고, DVS를 충분히 활용하여, 보다 적은 전력 소비로 해당 작업을 수행하는 효과를 얻을 수 있다.
버퍼링, DVS, 스케줄링, EDF, RM, 태스크

Description

버퍼를 이용한 실시간 다중 태스크 스케줄링에서의 동적 전압 조정 시스템 및 방법{DYNAMIC VOLTAGE SCALING SYSTEM AND METHOD FOR REAL-TIME MULTI-TASK SCHEDULING USING BUFFERS}
도 1은 종래기술에 따른 WCST(worst-case slack time)과 VST(workload-variation slack time)의 개념을 도시한 그래프.
도 2는 LPPS 스케줄링 알고리즘을 이용한 다중 태스크의 실행의 과정을 도시한 도면.
도 3은 본 발명에 따른 실시간 스케줄링에 있어서의 상태 전이를 도시한 상태도(status diagram).
도 4a 내지 도 4c는 본 발명의 바람직한 일실시예에 따른 실시간 다중 태스크 스케줄링 방법을 도시한 흐름도.
도 5는 본 발명의 바람직한 일실시예에 따른 실시간 다중 태스크 스케줄링 방법을 수행하기 위한 스케줄러를 구현한 프로그램의 일례를 도시한 도면.
도 6은 본 발명의 일실시예에 따라 버퍼링을 이용한 실시간 다중 태스크 스케줄링에서의 동적 전압 조정을 태스크의 수를 달리하여 실험하였을 경우 나타나는 에너지 소비량을 차이를 도시한 그래프.
도 7은 본 발명에 따른 버퍼링을 이용한 실시간 다중 태스크 스케줄링 시스 템의 구성을 도시한 블록도.
<도면의 주요 부분에 대한 부호의 설명>
710 : 버퍼링 크기 저장 수단
720 : 버퍼 큐
730 : 준비 큐
740 : 대기 큐
750 : 스케줄러
760 : 프로세서
본 발명은 버퍼링을 이용한 실시간 다중 태스크 스케줄링에서의 동적 전압 조정 시스템 및 방법에 관한 것으로, 더욱 상세하게는 다중 태스크 스케줄링에 버퍼를 도입하여 태스크의 릴리스 시간 도래 여부를 판단하고, 릴리스 시간이 도래한 태스크가 증가할 때마다 버퍼링 크기를 1씩 증가시키며, 버퍼링 크기를 소정의 최대값과 비교하여 상기 버퍼링 크기가 소정의 최대값과 같으면 태스크를 준비 큐로 이동시키고, 상기 버퍼링 크기가 소정의 최대값보다 작으면 상기 태스크를 버퍼 큐로 이동시켜 상기 태스크를 수행시키되, 상기 준비큐가 비어있으면 프로세서에 인가 전압 및 인가 주파수를 낮추어 인가하여 상기 버퍼큐의 헤드에 위치한 액티브 태스크를 수행함으로써, 전력소비를 최소화시킬 수 있는 버퍼링을 이용한 실시간 다중 태스크 스케줄링에서의 동적 전압 조정 시스템 및 방법에 관한 것이다.
정보통신 기술이 발달함에 따라 휴대전화나 개인용 휴대 단말기(PDA), 그리고 위성 동영상 단말기(DMB)와 같은 이동용 시스템(Mobile system)의 중요성은 날로 증가하고 있다. 한 번 배터리를 충전했을 때 얼마나 오랫동안 사용할 수 있는지를 나타내는 연속 동작 가능 시간은 상업적인 이동용 시스템에 있어서 가장 중요한 성능 척도의 하나이면, 이동용 시스템의 전력 소모를 줄이는 것은 VLSI 시스템 설계에서 중요한 요소로 부각되고 있다.
특히, VLSI(Very Large Scale Integrated Circuit : 초고밀도 집적회로) 시스템이 고성능, 고집적화 되어감에 따라 전력소모는 지수적으로 증가하는 반면에 배터리의 전력 용량은 산술적인 증가에 그치고 있어서, 배터리 자체 개량보다는 VLSI 시스템의 전력소모를 줄이는 저전력 기법이 중점적으로 연구되고 있는 추세이다. 물론 고성능 마이크로 프로세서와 같은 비 이동용 시스템에 있어서도 전력 소모는 중요한 설계 목표의 하나가 된다. 과도한 전력 소모는 VLSI 내부에서 많은 열을 발생시켜 반도체의 성능 저하나 기능 이상, 심지어는 시스템의 고장을 유발하기도 한다. 상기와 같은 문제점들 때문에 최근 들어 소프트웨어 및 하드웨어 측면에서 다양한 저전력 기법이 요구되고 있다.
동적 전압 조정, 즉, DVS(Dynamic Voltage Scaling)는 마이크로 프로세서 시스템에 적용되는 저전력 기법 중 가장 탁월한 효과를 보이는 저전력 기법으로서, 실시간 다중 스케줄링 분야에 널리 사용되고 있다. DVS는 실시간 다중 스케줄링의 동작에 따른 유휴시간(Slack Time)을 최대한 활용하고, 프로세서에 공급하는 인가 전압 및 인가 주파수를 소정치로 낮추어 인가함으로써, 시스템의 구동에 소요되는 전체 에너지의 소비를 감소시키는 효과를 유발한다.
도 1은 WCST(worst-case slack time)과 VST(workload-variation slack time)의 개념을 도시한 그래프이다.
본 발명에 따른 분야에 있어서 당업계의 종사자들에게 널리 사용되는 유휴시간(Slack Time)은 크게 WCST(worst-case slack time)과 VST(workload-variation slack time)로 구분하여 정의될 수 있다. WCST는 태스크의 릴리스 시간이 도래하여 태스크가 수행될 때, 상기 태스크를 수행하는 프로세서의 활용도가 100% 미만일 경우에 예상되는 WCET(worst-case execution time)에 따른 태스크 종료시간과 소정의 스케줄링 알고리즘에 의하여 상기 태스크의 실행에 주어진 마감시간(deadline time) 사이의 시간을 의미한다. 상기 WCST는 태스크가 실행되기 전에 소정의 스케줄링의 알고리즘에 의하여 예측이 가능한 것을 특징으로 한다.
VST는 태스크의 실행에 있어서 발생할 수 있는 여러 가지 변수에 의해 태스크가 WCET보다 빠른 시간 내에 수행될 경우 발생하는, 실제 태스크의 수행시간(AET : actual execution time)과 소정의 스케줄링 알고리즘에 의하여 상기 태스크의 실행에 주어진 마감시간(deadline time) 사이의 시간을 의미한다. 상기 VST는 태스크를 실행하는 프로세서의 활용도가 여러 가지 실제 환경에 따른 요인에 의하여 변화될 수 있으므로, 태스크의 실행 전에 예측이 불가능하고, 태스크의 실행이 종료된 후에 측정될 수 있다.
스케줄러는 태스크를 소정의 알고리즘에 따라 우선 순위에 근거하여 실행시 키고, 마감시간을 유지하여 태스크의 실행시간을 예측하고 관리하는 동작을 수행한다. 즉, 어떠한 시간에 어떤 태스크를 수행하는가를 결정하는 규칙을 나타내는 알고리즘으로 구성된다. 이러한 스케줄러의 스케줄링 방법으로는 여러 가지가 있는데, 이 중 고정된 우선 순위 방법인 RM(Rate Monotonic) 스케줄링 방식과, 동적 우선 순위 방법인 EDF(Earliest Deadline First) 스케줄링 방식이 있다. RM 스케줄링 방식은 태스크의 실행주기를 우선 순위로 정하여, 실행시간이 짧은 주기의 태스크를 우선하여 실행시키는 알고리즘으로 구성되고, EDF 스케줄링 방식은 태스크의 마감시간을 우선 순위로 정하여, 마감시간이 보다 빠른 태스크를 우선하여 실행시키는 알고리즘으로 구성된다. EDF 스케줄링 방식은 마감시간까지의 남은 시간이 우선 순위로 사용되므로 태스크가 실제 실행되는 시간이 변화함에 따라 각 태스크마다 마감시간까지의 남은 시간이 변하므로, 우선 순위가 시간에 따라 동적으로 변화하는 특성을 갖는다.
상기와 같은 EDF 스케줄링 또는 RM 스케줄링에 동적 전압 조정방식인 DVS를 적용하여, 저전력 우선 순위 스케줄링 방식인 LPPS(Low-Power Priority-based Scheduling) 스케줄링 알고리즘을 구현할 수 있다. LPPS 스케줄링 알고리즘은 스케줄링의 우선 순위에 따라 마감시간을 준수하여 태스크를 실행함과 함께, WCST 또는 VST를 활용함으로써, 가능한 낮은 수준의 인가 전압과 인가 주파수를 프로세서에 공급하여, 보다 적은 전력으로 태스크를 실행할 수 있는 알고리즘이다. LPPS 스케줄링 알고리즘은 우선 순위가 높은 태스크의 실행이 종료된 다음, 낮은 우선 순위의 태스크가 실행되기 전까지의 시간, 즉, VST 동안에 프로세서를 활용하는 것 에 포인트가 있는데, 높은 우선 순위의 태스크의 실행이 종료된 시점에서, 릴리스 시간이 도래한 낮은 우선 순위의 태스크를 계속하여 실행시킴으로써 VST를 활용하고, 낮은 우선 순위의 태스크는 DVS를 적용하여 실행시킴으로써, 보다 적은 전력으로 태스크를 실행시키는 동작을 수행한다.
그러나 상기와 같이 DVS와 EDF 스케줄링 또는 RM스케줄링만을 이용한 스케줄링 방식인 LPPS 스케줄링 알고리즘에서는 유휴시간(slack time), 즉, VST를 충분히 활용하지 못할 수 있다는 단점이 제기되는데, 예를 들어, 높은 우선 순위의 태스크 실행이 종료된 시점에, 릴리스 시간이 도래하여 곧바로 실행시킬 낮은 우선 순위의 태스크가 존재하지 않는다면, 프로세서는 파워다운 모드로 전환되어 프로세서의 시간을 효율적으로 활용할 수가 없고, 또한 이후 릴리스 시간이 도래한 태스크가 실행되더라도 높은 우선 순위의 태스크 실행이 종료된 시점으로부터 일정시간이 흐른 뒤이므로, 높은 우선 순위의 태스크에 따른 유휴시간인 VST를 활용할 수 없고, 또 DVS를 적용할 수 없기 때문에 전력 소비의 감소 효과 또한 작아진다는 단점이 있다.
도 2는 LPPS 스케줄링 알고리즘을 이용한 다중 태스크의 실행의 과정을 도시한 도면이다.
도 2에 따른 종래기술의 LPPS 스케줄링 알고리즘에서, 태스크 1이 정상 인가 전압과 정상 인가 주파수가 공급된 프로세서에 의해 마감시간 이내에, 실제 실행시간인 AET(actual execution time) 동안 수행된다. 태스크 1의 실행이 종료되는 시점에 릴리스 시간이 도래한 태스크 2가 존재하여 스케줄러는 태스크 2를 곧이어 실 행시키되, 준비 큐가 비어 있지 않으므로 DVS를 적용하지 않고 태스크 2를 실행시킨다.
태스크 2의 실행이 종료되면, 태스크 2의 실행 종료 시점에 릴리스 시간이 도래한 태스크 3을 실행시키되, 준비 큐가 비어 있고 태스크 2의 실제 실행 종료에 따른 마감시간까지의 유휴시간인 VST를 활용할 수 있으므로 DVS를 적용하여 태스크 2를 실행시킨다. 만일, VST를 활용할 수 있다 하더라도, 태스크 3의 마감시간이 DVS를 활용할 수 있을 만큼의 여유가 있지 않다면, 태스크 3은 정상 인가 전압과 정상 인가 주파수가 공급된 프로세서에 의해 마감시간 내에 최대한 신속하게 실행될 수 있도록 제어할 수 있다.
그러나 태스크 3의 실행이 종료되고, 상기 종료시점에 릴리스 시간이 도래한 태스크가 존재하지 않는다면, 프로세서는 실행시킬 태스크가 존재하지 않으므로, 파워다운 모드로 전환하게 되고, 일정 시간(210)동안 동작을 정지시키게 되어 활용을 할 수 없게 된다. 또, 태스크 4와 태스크 5의 실행 사이의 프로세서 파워다운 시간(220)과, 태스크 5와 태스크 6 사이의 프로세서 파워다운 시간(230), 태스크 7과 태스크 8과의 프로세서 파워다운 시간(240), 태스크 9와 다음 태스크 사이의 파워다운 시간(250)에도 VST와 프로세서를 활용할 수가 없다.
즉, 종래 기술에 따른 LPPS 스케줄링 알고리즘에서는 DVS를 사용한다 하더라도 릴리스 시간이 도래한 태스크가 외부로부터 주어지지 않는 한, 프로세서를 계속 활용할 수 없는 경우가 발생할 가능성이 높아서, VST를 충분히 활용하지 못하고 프로세서의 활용도를 저하시킬 수 있다는 단점이 꾸준히 제기되어 왔다.
본 발명은 상기와 같은 종래 기술을 개선하기 위해 안출된 것으로서, 동적 전압 조정을 이용한 실시간 다중 태스크 스케줄링 방법에서, 태스크에 대한 버퍼 동작을 수행하면서, 실제 태스크를 실행시킴으로써, 높은 우선 순위의 태스크 실행이 종료된 시점에 실행시킬 수 있는 릴리스 시간이 도래한 태스크가 존재할 가능성을 높여 프로세서와 VST(workload-variation slack time)를 최대한 활용하고, DVS를 충분히 활용하여, 보다 적은 전력 소비로 스케줄링 알고리즘을 수행하는 버퍼링을 이용한 실시간 다중 태스크 스케줄링에서의 동적 전압 조정 시스템 및 방법을 제공하는 것을 목적으로 한다.
또한, 본 발명에 따른 실시간 태스크 스케줄링 시스템 및 방법은 다수의 태스크가 실행되는 복잡한 환경에서 구현이 가능하고, 버퍼링 방식을 이용함으로써, 각 태스크들의 실행 시간이나 유휴 시간이 서로 크게 차이가 나더라도 예정된 시간 내의 태스크 실행을 가능하게 함으로써, 스케줄링 알고리즘을 보다 정확하고 신속하게 구현하는 것을 목적으로 한다.
상기의 목적을 이루고 종래기술의 문제점을 해결하기 위하여, 본 발명에 따른 버퍼링을 이용한 실시간 다중 태스크 스케줄링 방법은, 대기 큐 또는 버퍼 큐에 저장된 태스크의 릴리스 시간이 도래하였는지 여부를 판단하는 단계, 상기 대기 큐 또는 상기 버퍼 큐에 저장된 태스크 중 상기 릴리스 시간이 도래한 태스크가 존재하는 경우, 상기 릴리스 시간이 도래한 태스크를 선택하고 버퍼링 크기를 1 증가 시키는 단계, 상기 버퍼링 크기를 소정의 버퍼링 최대값과 비교하는 단계, 상기 버퍼링 크기가 상기 버퍼링 최대값과 일치하는 경우 상기 선택된 태스크를 준비 큐로 이동시키는 단계, 상기 버퍼링 크기가 상기 버퍼링 최대값보다 작은 경우 상기 선택된 태스크를 상기 버퍼 큐로 이동시키는 단계, 및 프로세서에 의하여 수행되는 액티브 태스크가 존재하고 준비 큐가 비어 있으면, 상기 프로세서에 인가 전압 및 인가 주파수를 낮추어 인가하고 상기 액티브 태스크를 수행시키는 단계를 수행하여 동작되는 것을 특징으로 한다.
또한, 본 발명에 따른 버퍼링을 이용한 실시간 다중 태스크 스케줄링 방법은, 액티브 태스크가 존재하고 준비 큐가 비어 있지 않으며 상기 준비 큐의 헤드에 위치한 태스크의 우선 순위가 상기 액티브 태스크의 우선 순위보다 높은 경우, 상기 액티브 태스크와 상기 준비 큐의 헤드에 위치한 상기 태스크를 문맥 교환하는 단계, 및 액티브 태스크가 존재하고 준비 큐가 비어 있지 않으면, 프로세서에 정상 인가 전압 및 정상 인가 주파수를 인가하고 상기 액티브 태스크를 수행시키는 단계를 더 포함할 수 있다.
본 명세서에서 널리 사용되는 DVS(Dynamic Voltage Scaling)는 실시간 스케줄링 알고리즘에 있어서, 프로세서에 낮은 전압과 주파수를 인가하여 전력 소비를 최소화시키는 방법이다. 실시간 시스템(real-time system)의 경우, 시스템의 최대 클락 속도는 모든 태스크를 주어진 마감 시간(deadline) 이내에 끝낼 수 있는 클락 속도보다 크거나 같아야 실시간 동작을 보장할 수 있다. 이 때, 각 태스크의 동작 상태를 살펴가면서 마감 시간 조건을 만족하는 가장 낮은 클락 속도까지 시스템의 클락 속도를 조절해가면서 낮출 수 있으며, 클락 속도에 따른 공급 전압도 함께 낮춤으로써 전력 소모를 크게 줄일 수 있는 것이 동적 전압 조정(dynamic voltage scaling : DVS) 방법이다.
일반적인 VLSI 시스템의 전력소모는 CMOS 회로의 동적 전력 소모(dynamic power)가 대부분이며, 이 때의 전력 소모는 CMOS 회로의 부하 커패시턴스(load capacitance)와 프로그램이 실행된 사이클 수(클락 속도)에 비례하며, 공급 전압의 제곱에 비례한다. 전력 소모가 공급 전압에 비례하므로 전력 소모를 줄이기 위해서는 프로세서에 공급되는 전압을 낮추는 것이 가장 효율적인 방법이다. 그러나 CMOS 회로의 지연시간(propagation delay)은 공급 전압에 반비례하므로, 공급 전압을 감소시키면 회로내의 지연시간이 증가하여 클락 속도를 낮추어야 회로가 안정적으로 동작하게 된다.
예를 들어 어떤 태스크가 50Mhz의 클락 속도와 5V의 공급 전압을 가진 프로세서 상에서 실행된다고 가정하자. 만약 이 태스크가 실행되는데 5×105 사이클이 걸리고 마감시간 조건이 25msec이라면, 프로세서는 주어진 태스크를 10msec만에 끝낼 수 있고 태스크의 마감 시간까지 15msec의 유휴 시간(slack time)을 가지게 된다. 그러나 클락 속도와 공급 전압이 20Mhz와 2V로 낮아지면 유휴 시간 없이 주어진 태스크를 마감 시간에 맞추어서 끝낼 수 있고 전력 소모는 2.02/5.02 = 16% 로써 낮아지게 되어 상당한 효율을 기대할 수 있다.
이하에서는 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다.
도 3은 본 발명에 따른 실시간 스케줄링에 있어서의 상태 전이를 도시한 상태도(status diagram)이다.
본 발명에 따른 스케줄러에 의하여 스케줄링되는 태스크의 상태에는, 태스크가 프로세서에 의해 실행되고 있는 상태인 액티브(Active) 상태(310), 릴리스 시간이 도래한 태스크에 의해 버퍼링 크기가 최대인 경우(즉, 더 이상 태스크를 버퍼링할 여유가 없는 경우) 실행되기 직전의 태스크로 구성된 준비(Ready) 상태(320), 릴리스 시간이 도래한 태스크들을 버퍼링하되, 버퍼링 크기가 최대값보다 작은 상태인 버퍼(Buffered) 상태(330), 및 릴리스 시간이 도래한 태스크는 존재하지 않고, 릴리스 시간이 도래하지 않은 태스크들로 구성된 대기(Waiting) 상태(340)의 4가지 상태가 존재한다.
본 발명의 스케줄링 알고리즘은 우선 버퍼링 크기가 0인 상태인 대기 상태(340)를 유지하며, 본 발명의 스케줄링 알고리즘에 의해 릴리스 시간이 도래한 태스크가 발생하기를 기다리게 된다. 대기 상태(340)는 버퍼링 크기가 0인 경우이므로, 준비 큐 또는 버퍼 큐에 저장된 태스크가 없는 상태이다. 따라서, 대기 상태(340)인 경우, 릴리스 태스크가 발생할 때까지 대기 상태(340)에 머무르게 된다.
릴리스 시간이 도래한 태스크가 발생하면, 버퍼링 크기에 따라 대기 상태(340)에서 준비 상태(320) 또는 버퍼 상태(330)로 천이하게 된다. 버퍼링 크기가 최대값에 도달한 경우(현재 준비 큐 및 버퍼 큐에 버퍼링된 태스크의 수가 최대값에 도달한 경우)에는 준비 상태(320)로 천이하고, 버퍼링 크기가 최대값에 도달하지 않은 경우에는 버퍼 상태(330)로 천이한다. 또한, 대기 상태(340)에서 준 비 상태(320) 또는 버퍼 상태(330)로 천이하면서, 버퍼링 크기는 1만큼 증가된다.
버퍼 상태(330)는 버퍼링 크기가 0보다 크고 최대값보다 작은 상태이다. 버퍼 상태(330)에서 대기 큐의 태스크가 릴리스 시간이 도래하게 되면, 버퍼링 크기는 1만큼 증가한다. 그리고, 버퍼링 크기가 최대값인지 판단한다. 버퍼링 크기가 최대값이면, 준비 상태(320)로 상태가 전이된다. 만약, 버퍼링 크기가 최대값이 아니면, 버퍼 상태(330)를 유지하게 된다.
준비 상태(320)는 버퍼링 크기가 최대값인 상태이다. 현재의 상태가 준비 상태(320)이면, 버퍼링된 태스크는 프로세서로 디스패치(dispatch)되어 실행되고, 액티브 상태(310)가 된다. 현재 버퍼링 크기가 최대값이 아니면, 버퍼 상태(330)의 태스크가 프로세서로 디스패치되어 수행된다.
또한, 스케줄러는 액티브 상태(310)의 태스크의 스케줄링 알고리즘에 따른 우선 순위와 준비 상태(320)의 태스크의 우선 순위를 비교하여, 준비 상태(320)의 태스크의 우선 순위가 액티브 상태(310)의 태스크의 우선 순위보다 높다고 판단될 경우, 액티브 상태(310)의 태스크의 실행을 중지시키고 준비 상태(320)의 태스크를 실행시켜 액티브 상태(310)로 유지하는 문맥교환의 동작을 수행한다.
도 4a 내지 도 4c는 본 발명의 바람직한 일실시예에 따른 버퍼링을 이용한 실시간 다중 태스크 스케줄링에서의 동적 전압 조정 방법을 도시한 흐름도이다.
본 발명의 동작을 수행하는 스케줄러는 대기 큐 또는 버퍼 큐에 있는 태스크의 릴리스 시간을 체크하여 각 태스크 별로 릴리스 시간이 도래하였는지를 판단한다(S401). 상기 대기 큐 또는 버퍼 큐에 릴리스 시간이 도래한 태스크가 존재하는 경우, 상기 릴리스 시간이 도래한 태스크를 선택하고 상기 태스크를 선택할 때마다 버퍼링 크기를 1씩 증가시킨다(S402). 버퍼링 크기가 증가될 때마다 현재 버퍼링 크기를 소정의 버퍼링 최대값과 비교를 하고(S403), 버퍼링 크기가 상기 버퍼링 최대값과 일치하는 경우에는 상기 선택된 태스크를 준비 큐로 이동시키고(S404), 버퍼링 크기가 상기 버퍼링 최대값보다 작은 경우에는 상기 선택된 태스크를 버퍼 큐로 이동시킨다(S405). 단계 S404와 단계 S405에서 각각 준비 큐 또는 버퍼 큐로 이동된 태스크는 스케줄링 알고리즘에 따라 프로세서에 의해 실행된다.
스케줄러는 현재 프로세서에 의해 실행 중인 액티브 태스크가 존재하고 준비 큐가 비어 있지 않는지를 판단하게 된다. 상기 액티브 태스크가 존재하고 있고, 상기 준비 큐에 릴리스 시간이 도래한 태스크가 존재하여 준비 큐가 비어 있지 않다면(S406), 상기 액티브 태스크의 우선 순위와 상기 준비 큐의 헤드에 위치하고 있는 태스크의 우선 순위를 비교하고, 상기 준비 큐의 헤드에 위치한 태스크의 우선 순위가 상기 액티브 태스크의 우선 순위보다 높은 경우(S407), 상기 액티브 태스크와 상기 준비 큐의 헤드에 위치한 태스크를 문맥 교환(context switch)한다(S408). 단계 S408의 문맥 교환에 따라 상기 액티브 태스크는 실행이 일시 정지되고, 상기 준비 큐의 헤드에 위치한 태스크가 실행되며, 상기 준비 큐의 헤드에 위치한 태스크의 실행이 종료된 다음, 우선 순위에 따라 상기 액티브 태스크가 다시 실행될 수 있다.
단계 S406에서 액티브 태스크가 존재하고 있고, 준비 큐가 비어 있지 않는 상태가 아니라면, 즉, 액티브 태스크가 존재하지 않거나 준비 큐가 비어 있는 상태 라면, 또는 단계 S407에서 준비 큐의 헤드에 위치한 태스크의 우선 순위가 액티브 태스크의 우선 순위보다 낮다면, 스케줄러는 단계 S408의 문맥 교환을 수행하지 않고 다음의 스케줄링 동작을 수행하게 된다.
준비 큐의 태스크들은 RM(Rate Monotonic) 스케줄링 방식 또는 EDF(Earliest Deadline First) 스케줄링 방식에 따른 우선 순위에 따라 우선 순위가 정하여진다. RM 스케줄링 방식은 태스크의 실행주기를 우선 순위로 정하여, 실행시간이 짧은 주기의 태스크를 우선하여 실행시키는 알고리즘으로 구성되고, EDF 스케줄링 방식은 태스크의 마감시간을 우선 순위로 정하여, 마감시간이 보다 빠른 태스크를 우선하여 실행시키는 알고리즘으로 구성된다. 한편 대기 큐는 릴리스 시간을 기준으로 우선 순위가 정하여 진다. 또한, 본 발명에서는 준비 큐 및 버퍼 큐에서 사용하는 우선 순위의 규칙이 서로 다를 수 있다. 이와 같이 우선 순위의 규칙을 서로 다르게 함으로써 본 발명의 스케줄링을 좀 더 효율적으로 수행할 수 있다. 본 발명의 일 실시예에 따르면, 버퍼 큐에 저장되는 태스크의 우선 순위는 예상 버퍼 풀 시간(next buffer full time)에 기초하여 정할 수 있다. 즉, 태스크 별로 버퍼를 준비하고, 각 버퍼에 각 태스크의 인스턴스를 버퍼링할 때 각 태스크 별 버퍼가 풀(full)이 되는 시각까지 남아 있는 시간을 기준으로 우선 순위를 결정하는 것이다.
현재 프로세서에 의해 실행 중인 액티브 태스크가 존재하지 않는다면(S409), 스케줄러는 프로세서에 디스패치(dispatched)할 태스크를 결정하여야 한다. 단계 S409에서처럼 액티브 태스크가 존재하지 않고, 준비 큐가 비어 있지 않다면(S410), 스케줄러는 상기 준비 큐에 존재하는 태스크를 프로세서에 디스패치한다(S411). 반면에, 액티브 태스크가 비어 있고(S409), 준비 큐가 비어 있으며(S410), 버퍼 큐가 비어 있지 않다면(S412), 스케줄러는 상기 버퍼 큐에 존재하는 태스크를 프로세서에 디스패치한다(S413).
그러나 준비 큐가 비어 있고, 버퍼 큐도 비어 있으며, 액티브 태스크 또한 존재하지 않아서(S414), 프로세서가 실행시킬 태스크가 존재하지 않는다면, 상기 프로세서는 소정의 타이머가 설정되고(S415), 파워다운 모드(power-down mode)로 설정되어(S416), 릴리스 시간이 도래한 태스크가 준비 큐 또는 버퍼 큐에 릴리스될 때, 파워다운 모드를 해제하고 다시 동작을 수행하게 된다.
단계 S414에서 액티브 태스크가 존재하고, 준비 큐에 태스크가 존재하지 않는다면(S417), 스케줄러는 DVS(Dynamic voltage scaling)를 적용하여 액티브 태스크를 실행시킨다. 즉, 준비 큐에 태스크가 존재하지 않는다는 것은, 버퍼링 크기가 최대값이 아닌 상태이어서 아직 버퍼링이 진행되고 있는 상태이고, 릴리스 시간 직전에 도달하여 급하게 실행시켜야 할 태스크가 존재하지 않는다는 의미이므로, 스케줄러는 스케줄링 알고리즘에 따른 태스크의 유휴시간인 VST(workload-variation slack time)를 이용하여 스케줄링 동작을 수행할 수 있다. 즉, VST를 이용하여 태스크가 최악 수행 시간인 WCET(worst-case execution time)에 여유를 가지고 태스크를 실행시킬 수 있으므로, 태스크를 실행하는 프로세서에 공급되는 인가 전압과 인가 주파수를 소정치로 낮추어 인가하고, 태스크를 실행시키는 DVS 동작을 수행하게 된다(S418).
공급되는 주파수는 프로세서의 작업 속도를 결정하는 클락 속도와 비례관계에 있으므로, 프로세서가 태스크를 수행하는 시간에 영향을 미친다. 또, 각 태스크들은 스케줄링 알고리즘에 따라 실행이 종료되어야 하는 시간인 마감시간이 정해져 있으므로, 프로세서에 인가되는 주파수는 상기 태스크의 마감시간을 고려하여 결정될 수 있다. 또, 인가되는 주파수에 따라 프로세서에 공급되는 인가 전압의 크기 또한 결정될 수 있다. 결국 인가 전압과 인가 주파수는 서로 비례하여 낮추어 공급될 수 있는데, 만일 인가 전압을 1/2로 낮추고, 인가 주파수를 1/2로 낮추어서 프로세서에 공급한다면, 전력은 전압의 제곱에 비례하고 주파수에 비례하므로, 결국 전력은 1/8로 줄어들게 되고, 또, 에너지는 전력과 시간의 곱으로 표현되고, 주파수가 1/2로 줄어든 만큼 태스크가 수행되는 시간은 2배로 늘어나게 되어, 결국 에너지는 1/4로 줄어들게 된다.
단계 S417에서 액티브 태스크가 존재하고 준비 큐가 존재하지 않는 상태가 아니라면, 즉, 현재 실행 중인 액티브 태스크가 존재하고, 준비 큐의 헤드에 릴리스 시간이 도래하여 실행되기를 기다리고 있는 태스크가 존재한다면, 현재 실행되고 있는 액티브 태스크를 보다 빠른 시간 내에 실행시키고, 준비 큐의 헤드에 위치한 태스크의 수행을 서두를 필요가 있으므로, 프로세서에 정상 인가 전압 및 정상 인가 주파수를 공급하여 액티브 태스크를 실행시킨다(S419).
액티브 태스크의 실행이 종료되면(S420), 버퍼링 크기는 액티브 태스크의 실행이 종료될 때마다 1씩 감소하게 된다(S421). 액티브 태스크의 실행이 모두 종료되면, 프로세서는 파워다운 모드로 전환하게 되고, 다시 시작단계로 돌아가 릴리스 시간이 도래한 태스크가 준비 큐 또는 버퍼 큐에 릴리스되기를 기다리게 된다.
도 5는 본 발명의 바람직한 일실시예에 따른 실시간 다중 태스크 스케줄링 방법을 수행하기 위한 스케줄러를 구현한 프로그램의 일례를 도시한 도면이다.
도 5에 도시된 알고리즘에서, L1부터 L7까지의 단계에서는 액티브 태스크의 실행이 종료되면, 외부로부터 전송된 태스크는 대기 큐(wait queue) 또는 버퍼 큐(buffer queue)로 이동되어 각 큐에 위치하게 된다.
L8부터 L15까지의 단계에서는, 스케줄러는 대기 큐 및 버퍼 큐에 위치한 모든 태스크들을 검색하여 상기 태스크들의 릴리스 시간이 도래하였는지를 조사한다. 만약 어떤 태스크의 릴리스 시간이 도래하였으면, 우선 버퍼링 크기를 1만큼 증가시키고, 상기 태스크들을 버퍼링 크기에 따라 준비 큐(ready queue) 또는 버퍼 큐로 이동시킨다. 즉, 버퍼링 크기가 소정의 최대값(예를 들어 5라고 한다)이면, 상기 태스크는 준비 큐로 이동되고, 버퍼링 크기가 소정의 최대값보다 작으면, 상기 태스크는 버퍼 큐로 이동된다. 즉, 예를 들어 이미 릴리스 시간이 도래한 태스크의 버퍼링 크기가 5가 되었다면, 정상 인가 전압과 정상 인가 주파수를 공급하여 최대의 속도로 프로세서를 동작시켜 태스크를 수행하여야 하므로, 상기 태스크는 준비 큐로 이동되어야 하고, 버피링 크기가 1부터 4까지라면 상기 태스크는 버퍼 큐로 이동된다.
L16부터 L20까지의 단계에서는, 준비 큐의 헤드에 위치한 태스크의 우선 순위와 현재 프로세서에 의해 실행되고 있는 액티브 태스크의 우선 순위를 비교하고, 만일 상기 준비 큐의 헤드에 위치한 태스크의 우선 순위가 상기 액티브 프로세서의 우선 순위보다 높다면, 현재 프로세서에 의해 실행 중인 액티브 태스크의 실행을 잠시 중단시키고, 상기 우선 순위가 높은 준비 큐의 헤드에 위치한 태스크를 먼저 실행시키는 문맥 교환(context switch)을 수행한다.
L21 이하의 단계에서는 프로세서에 디스패치할 태스크를 결정하고, DVS를 수행하는 과정이 도시되어 있다. 현재 프로세서에 의해 실행 중인 액티브 태스크가 없다면, 스케줄러는 프로세서에 디스패치할 태스크를 결정해야 한다. 만약, 준비 큐의 헤드에 태스크가 존재한다면, 상기 태스크를 액티브 태스크로 상기 프로세서에 디스패치한다. 또, 준비 큐가 비어 있고, 버퍼 큐에 태스크가 존재한다면, 즉, 버퍼링 크기가 최대값이 아니고, 릴리스 시간이 도래한 태스크가 존재하는 상태이라면, 상기 버퍼 큐에 위치한 태스크 중, 우선 순위가 가장 높은 태스크를 액티브 태스크로 상기 프로세서에 디스패치하게 된다. 이때에는 프로세서에 인가 전압과 인가 주파수를 소정치로 낮추어 공급하여 상기 태스크를 실행 시킴으로써, DVS의 동작을 수행하게 된다. 스케줄러는 준비 큐의 헤드에 태스크가 존재할 때까지, 즉, 버퍼링 크기가 최대값에 도달할 때까지 상기 DVS 동작을 계속 수행한다.
상기의 단계를 거쳐 액티브 태스크가 존재하지 않는다면, 즉 프로세서에 의해 실행되는 태스크가 존재하지 않고, 릴리스 시간이 도래한 태스크가 존재하지 않는다면, 스케줄러는 대기 큐의 릴리스 시간에 대한 타이머를 설정하고, 프로세서 파워다운 모드로 전환되도록 제어한다. 상기 대기 큐에 위치한 태스크의 릴리스 시간이 도래하면, 상기 태스크는 준비 큐 또는 버퍼 큐로 이동되고, 타이머에 의해 프로세서는 파워다운 모드를 중단하고 다시 태스크를 디스패치 받아 동작을 수행하 게 된다.
도 6은 본 발명의 일실시예에 따라 버퍼링을 이용한 실시간 다중 태스크 스케줄링에서의 동적 전압 조정을 태스크의 수를 달리하여 실험하였을 경우 나타나는 에너지 소비량을 차이를 도시한 그래프이다.
도 6의 그래프에서 lppsEDF, lppsRM, ccRM, ccEDF, laEDF, DRA, AGR, lpSHE, 및 lpWDA는 종래 기술에 따른 스케줄링 알고리즘이고, butEDF, bufRM은 본 발명에 따른 버퍼링을 이용한 실시간 다중 스케줄링 알고리즘이다. 상기 그래프에서 세로축은 스케줄링을 실시하였을 경우 소모되는 에너지의 소비량의 최대값을 1로 하였을 경우 나타나는 상대적인 에너지 소비량을 나타내는 값이고, 가로축은 스케줄링을 실시할 태스크의 수를 2개, 4개, 6개, 8개, 10개 별로 달리하였을 경우를 나타내는 값이다.
도 6의 그래프에서 본 발명의 일실시예인 bufEDF와 bufRM의 에너지 소비량을 살펴 보면, 태스크의 수에 관계 없이 상기 실험에 사용된 스케줄링 알고리즘들 중 가장 최상의 동작을 수행하여, bufEDF의 경우 약 44%의 에너지 감소 효과를 나타내고, bufRM의 경우 약 49%의 에너지 감소 효과를 나타내고 있다. 또한, 상기 실험에 사용된 스케줄링 알고리즘 중, lpSHE 또는 lpWDA의 에너지 소비량을 살펴보면, 본 발명의 일실시예에 따른 bufEDF와 bufRM의 에너지 감소량에는 미치지 못하지만 태스크의 수가 증가할수록 에너지 소비량이 더욱 감소되어 가는 것을 알 수 있다. 이를 응용하여, 본 발명의 또 다른 일실시예로서, 버퍼링 기법을 상기 lpSHE 또는 lpWDA 스케줄링 알고리즘에 적용하여 태스크를 실행할 경우, 에너지 소비량을 더욱 줄일 수 있는 효과를 기대할 수 있어, 바람직한 일실시예로서 본 발명에 적용될 수도 있다.
도 7은 본 발명에 따른 버퍼링을 이용한 실시간 다중 태스크 스케줄링에서의 동적 전압 조정 시스템의 구성을 도시한 블록도이다.
본 발명의 바람직한 일실시예에 따른 버퍼링을 이용한 실시간 다중 태스크 스케줄링에서의 동적 전압 조정 시스템은 크게 버퍼링 크기 저장 수단(710), 버퍼 큐(720), 준비 큐(730), 대기 큐(740), 스케줄러(750), 및 프로세서(760)로 구성될 수 있다.
버퍼링 저장 수단(710)은 릴리스 시간이 도래한 태스크의 수인 버퍼링 크기를 저장하고, 버퍼 큐(720)에서는 버퍼링 저장 수단(710)에 저장 되어 있는 버퍼링 크기가 소정의 버퍼링 최대값보다 작은 경우에 릴리스 시간이 도래한 태스크가 저장되고, 상기 버퍼링 크기가 상기 버퍼링 최대값과 일치하는 경우에는 릴리스 시간이 도래한 태스크를 준비 큐(730)에 저장하게 된다. 또한, 대기 큐(740)에는 아직 릴리스 시간이 도래하지 않은 태스크가 저장된다. 스케줄러(750)는 대기 큐(740)에 저장된 태스크의 릴리스 시간이 도래하면, 상기 버퍼링 크기를 1 증가시키고, 상기 버퍼링 크기와 상기 버퍼링 최대값을 비교하여 대기 큐(740)에 저장된 태스크를 버퍼 큐(720) 또는 준비 큐(730)로 이동시키고, 프로세서(760)에 의하여 수행되는 액티브 태스크가 존재하고 준비 큐(730)가 비어 있으면, 프로세서(750)에 인가 전압 및 인가 주파수를 낮추어 인가하고 상기 액티브 태스크를 수행시키는 역할을 한다.
이상에서는 본 발명을 LPPS 스케줄링 알고리즘을 이용한 방법을 중심으로 설명하였으나, 본 발명의 기술적 사상은 LPPS 스케줄링 알고리즘뿐 아니라 다른 저 전력 멀티태스크 스케줄링(low-power multitask scheduling)에도 모두 적용될 수 있다.
또한 본 발명의 실시예들은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있다.
본 발명의 버퍼링을 이용한 실시간 다중 태스크 스케줄링에서의 동적 전압 조정 시스템 및 방법에 따르면, 동적 전압 조정을 이용한 실시간 다중 태스크 스케줄링 알고리즘에 버퍼링(buffering)의 개념을 도입하여, 태스크에 대한 버퍼 동작을 수행하면서, 실제 태스크를 실행시킴으로써, 높은 우선 순위의 태스크 실행이 종료된 시점에 항상 실행시킬 수 있는 릴리스 시간이 도래한 태스크가 존재할 가능성을 높여 프로세서와 VST(workload-variation slack time)를 최대한 활용하고, DVS를 충분히 활용하여, 보다 적은 전력 소비로 스케줄링 알고리즘을 수행하는 효과를 얻을 수 있다.
또한 본 발명의 버퍼링을 이용한 실시간 다중 태스크 스케줄링에서의 동적 전압 조정 시스템 및 방법에 따르면, 다수의 태스크가 실행되는 복잡한 환경에서 구현이 가능하고, 버퍼링 방식을 이용함으로써, 각 태스크들의 실행 시간이나 유휴 시간이 서로 크게 차이가 나더라도 예정된 시간 내의 태스크 실행을 가능하게 함으로써, 스케줄링 알고리즘을 보다 정확하고 신속하게 구현할 수 있는 효과를 얻을 수 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다.

Claims (11)

  1. 실시간 태스크 스케줄링 방법에 있어서,
    대기 큐 또는 버퍼 큐에 저장된 태스크의 릴리스 시간이 도래하였는지 여부를 판단하는 단계;
    상기 대기 큐 또는 상기 버퍼 큐에 저장된 태스크 중 상기 릴리스 시간이 도래한 태스크가 존재하는 경우, 상기 릴리스 시간이 도래한 태스크를 선택하고 버퍼링 크기를 1 증가 시키는 단계;
    상기 버퍼링 크기를 소정의 버퍼링 최대값과 비교하는 단계;
    상기 버퍼링 크기가 상기 버퍼링 최대값과 일치하는 경우 상기 선택된 태스크를 준비 큐로 이동시키는 단계;
    상기 버퍼링 크기가 상기 버퍼링 최대값보다 작은 경우 상기 선택된 태스크를 상기 버퍼 큐로 이동시키는 단계;
    프로세서에 의하여 수행되는 액티브 태스크가 존재하고 준비 큐가 비어 있으면, 상기 프로세서에 인가 전압 및 인가 주파수를 낮추어 인가하고 상기 액티브 태스크를 수행시키는 단계
    를 포함하는 것을 특징으로 하는 실시간 태스크 스케줄링 방법.
  2. 제1항에 있어서,
    상기 프로세서에 의하여 수행되는 액티브 태스크가 존재하지 않는 경우, 상 기 프로세서에 디스패치할 태스크를 결정하는 단계
    를 더 포함하는 것을 특징으로 하는 실시간 태스크 스케줄링 방법.
  3. 제2항에 있어서,
    상기 프로세서에 디스패치할 태스크를 결정하는 단계는,
    상기 액티브 태스크가 존재하지 않고 상기 준비 큐가 비어 있지 않으면, 상기 준비 큐의 헤드에 위치한 태스크를 상기 액티브 태스크로 설정하는 단계
    를 포함하는 것을 특징으로 하는 실시간 태스크 스케줄링 방법.
  4. 제3항에 있어서,
    상기 프로세서에 디스패치할 태스크를 결정하는 단계는,
    상기 액티브 태스크가 존재하지 않고 상기 준비 큐가 비어 있으며 상기 버퍼 큐가 비어 있지 않으면, 상기 버퍼 큐의 헤드에 위치한 태스크를 상기 액티브 태스크로 설정하는 단계
    를 더 포함하는 것을 특징으로 하는 실시간 태스크 스케줄링 방법.
  5. 제1항에 있어서,
    상기 액티브 태스크가 존재하고 상기 준비 큐가 비어 있지 않으며 상기 준비 큐의 헤드에 위치한 태스크의 우선 순위가 상기 액티브 태스크의 우선 순위보다 높은 경우, 상기 액티브 태스크와 상기 준비 큐의 헤드에 위치한 상기 태스크를 문맥 교환하는 단계
    를 더 포함하는 것을 특징으로 하는 실시간 태스크 스케줄링 방법.
  6. 제5항에 있어서,
    상기 우선 순위는 EDF(Earilest Deadline Frist) 알고리즘 또는 RM(Rate Monotonic) 알고리즘에 의한 방법으로 구현되는 것을 특징으로 하는 실시간 태스크 스케줄링 방법.
  7. 제1항에 있어서,
    액티브 태스크가 존재하지 않으면, 상기 대기 큐의 헤드에 위치한 태스크의 릴리스 시간에 대한 타이머를 설정하고 파워다운 모드로 들어가는 단계
    를 더 포함하는 것을 특징으로 하는 실시간 태스크 스케줄링 방법.
  8. 제1항에 있어서,
    액티브 태스크가 존재하고 준비 큐가 비어 있지 않으면, 상기 프로세서에 정상 인가 전압 및 정상 인가 주파수를 인가하고 상기 액티브 태스크를 수행시키는 단계
    를 더 포함하는 것을 특징으로 하는 실시간 태스크 스케줄링 방법.
  9. 제1항에 있어서,
    상기 액티브 태스크의 실행이 종료되면, 상기 버퍼링 크기를 1 감소시키는 단계
    를 더 포함하는 것을 특징으로 하는 실시간 태스크 스케줄링 방법.
  10. 제1항 내지 제9항 중 어느 한 항의 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
  11. 실시간 태스크 스케줄링 시스템에 있어서,
    릴리스 시간이 도래한 태스크의 수인 버퍼링 크기를 저장하는 버퍼링 크기 저장 수단;
    상기 버퍼링 크기가 소정의 버퍼링 최대값보다 작은 경우 릴리스 시간이 도래한 태스크를 저장하는 버퍼 큐;
    상기 버퍼링 크기가 상기 버퍼링 최대값과 일치하는 경우 릴리스 시간이 도래한 태스크를 저장하는 준비 큐;
    릴리스 시간이 도래하지 않은 태스크를 저장하는 대기 큐; 및
    상기 대기 큐에 저장된 태스크의 릴리스 시간이 도래하면, 상기 버퍼링 크기를 1 증가시키고, 상기 버퍼링 크기와 상기 버퍼링 최대값을 비교하여 상기 대기 큐에 저장된 태스크를 상기 버퍼 큐 또는 상기 준비 큐로 이동시키고, 프로세서에 의하여 수행되는 액티브 태스크가 존재하고 상기 준비 큐가 비어 있으면, 상기 프로세서에 인가 전압 및 인가 주파수를 낮추어 인가하고 상기 액티브 태스크를 수행 시키는 스케줄러
    를 포함하는 것을 특징으로 하는 실시간 태스크 스케줄링 시스템.
KR1020040050643A 2004-06-30 2004-06-30 버퍼를 이용한 실시간 다중 태스크 스케줄링에서의 동적전압 조정 시스템 및 방법 KR100633576B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040050643A KR100633576B1 (ko) 2004-06-30 2004-06-30 버퍼를 이용한 실시간 다중 태스크 스케줄링에서의 동적전압 조정 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040050643A KR100633576B1 (ko) 2004-06-30 2004-06-30 버퍼를 이용한 실시간 다중 태스크 스케줄링에서의 동적전압 조정 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20060001509A true KR20060001509A (ko) 2006-01-06
KR100633576B1 KR100633576B1 (ko) 2006-10-16

Family

ID=37104643

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040050643A KR100633576B1 (ko) 2004-06-30 2004-06-30 버퍼를 이용한 실시간 다중 태스크 스케줄링에서의 동적전압 조정 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR100633576B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101384311B1 (ko) * 2007-12-14 2014-04-10 삼성전자주식회사 이동 통신 시스템에서 전력소비를 감소하기 위한 장치 및방법
EP2881839A1 (fr) 2013-12-03 2015-06-10 Thales Procédé de gestion des ressources de calcul d'applications logicielles
KR101655030B1 (ko) * 2015-05-21 2016-09-07 성균관대학교산학협력단 태스크 특성 기반의 여유시간 분배를 통한 동적 전압 주파수 스케일링 방법, 그 방법을 실행시키기 위하여 매체에 저장된 컴퓨터프로그램 및 그 매체
CN112231079A (zh) * 2020-09-27 2021-01-15 武汉物易云通网络科技有限公司 一种基于缓冲队列和哈希环的任务调度方法和装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101573781B1 (ko) 2014-04-25 2015-12-03 상명대학교서울산학협력단 우선 순위 기반 저전력 태스크 스케줄링 장치 및 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101384311B1 (ko) * 2007-12-14 2014-04-10 삼성전자주식회사 이동 통신 시스템에서 전력소비를 감소하기 위한 장치 및방법
EP2881839A1 (fr) 2013-12-03 2015-06-10 Thales Procédé de gestion des ressources de calcul d'applications logicielles
US9740259B2 (en) 2013-12-03 2017-08-22 Thales Method for managing software application computing resources
KR101655030B1 (ko) * 2015-05-21 2016-09-07 성균관대학교산학협력단 태스크 특성 기반의 여유시간 분배를 통한 동적 전압 주파수 스케일링 방법, 그 방법을 실행시키기 위하여 매체에 저장된 컴퓨터프로그램 및 그 매체
CN112231079A (zh) * 2020-09-27 2021-01-15 武汉物易云通网络科技有限公司 一种基于缓冲队列和哈希环的任务调度方法和装置
CN112231079B (zh) * 2020-09-27 2024-01-26 武汉物易云通网络科技有限公司 一种基于缓冲队列和哈希环的任务调度方法和装置

Also Published As

Publication number Publication date
KR100633576B1 (ko) 2006-10-16

Similar Documents

Publication Publication Date Title
CN108984282B (zh) 具有闭环性能控制器的amp体系结构的调度器
KR100864964B1 (ko) 연산처리시스템 및 연산처리 제어방법, 업무관리시스템 및업무관리방법과 기억매체
EP2771765B1 (en) System and method for managing clock speed based on task urgency
US5828568A (en) Information processing apparatus, processing method thereof, and power supply control method therefor
US8909962B2 (en) System and method for controlling central processing unit power with guaranteed transient deadlines
JP5312478B2 (ja) データ・プロセッサのパフォーマンス予測
JP5469940B2 (ja) 計算機システム、仮想計算機モニタ及び仮想計算機モニタのスケジューリング方法
JP4490298B2 (ja) プロセッサ電力制御装置及びプロセッサ電力制御方法
Bhatti et al. An inter-task real time DVFS scheme for multiprocessor embedded systems
Niu Energy efficient scheduling for real-time embedded systems with QoS guarantee
WO2023246044A1 (zh) 调度方法及装置、芯片、电子设备及存储介质
Quan et al. Fixed priority scheduling for reducing overall energy on variable voltage processors
CN109324891A (zh) 一种比例空闲时间分配的周期任务低功耗调度方法
KR100633576B1 (ko) 버퍼를 이용한 실시간 다중 태스크 스케줄링에서의 동적전압 조정 시스템 및 방법
El Ghor et al. Energy efficient scheduler of aperiodic jobs for real-time embedded systems
CN105706022B (zh) 一种预测处理器利用率的方法、处理装置和终端设备
KR20100065572A (ko) 정적 태스크 정의 기능을 가진 시스템을 위한 우선순위 재정의 및 대기큐 관리 방법과 상기 방법을 실행하는 시스템
Scordino Dynamic Voltage Scaling for Energy-Constrained Real-Time Systems.
Shieh et al. Energy-efficient tasks scheduling algorithm for dual-core real-time systems
Awan et al. Intra-task device scheduling for real-time embedded systems
Cheour et al. EDF scheduler technique for wireless sensors networks: case study
EP2595057B1 (en) Modified backfill scheduler and a method employing frequency control to reduce peak cluster power requirements
KR101075949B1 (ko) 모바일 내장형 시스템을 위한 전력 관리 시스템 및 그 방법
Sarkar et al. Erfair scheduler with processor shutdown
Saewong et al. Coexistence of real-time and interactive & batch tasks in DVS systems

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

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130925

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141001

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee