KR101211817B1 - 태스크 주기 스케쥴링 장치 및 방법 - Google Patents

태스크 주기 스케쥴링 장치 및 방법 Download PDF

Info

Publication number
KR101211817B1
KR101211817B1 KR1020100126965A KR20100126965A KR101211817B1 KR 101211817 B1 KR101211817 B1 KR 101211817B1 KR 1020100126965 A KR1020100126965 A KR 1020100126965A KR 20100126965 A KR20100126965 A KR 20100126965A KR 101211817 B1 KR101211817 B1 KR 101211817B1
Authority
KR
South Korea
Prior art keywords
tasks
task
period
probability
deadline
Prior art date
Application number
KR1020100126965A
Other languages
English (en)
Other versions
KR20120065699A (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 KR1020100126965A priority Critical patent/KR101211817B1/ko
Publication of KR20120065699A publication Critical patent/KR20120065699A/ko
Application granted granted Critical
Publication of KR101211817B1 publication Critical patent/KR101211817B1/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • 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
    • 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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)

Abstract

태스크 주기 스케쥴링 장치 및 방법이 개시된다. 개시된 태스크 주기 스케쥴링 장치는 주기적으로 실행되는 복수의 태스크들을 스케쥴링하는 장치에 있어서, 상기 복수의 태스크들 각각의 마감시간 위반확률을 연산하는 마감시간 위반확률 연산부; 상기 연산된 복수의 태스크들 각각의 마감시간 위반확률과 기 설정된 임계치를 비교하여 상기 임계치보다 큰 마감시간 위반확률을 가지는 태스크가 존재하는 경우, 주기의 증가에 따른 태스크 실행 시의 시스템 자원 이용률의 감소량이 큰 상위 N1(1 이상의 정수임)개의 태스크를 상기 복수의 태스크들 중에서 선택하는 태스크 선택부; 및 상기 상위 N1개의 태스크의 주기를 증가시키는 주기 설정부를 포함한다. 본 발명에 따르면, 주기적으로 실행되는 복수의 태스크들이 마감시간을 위반할 확률을 낮추면서 시스템 자원의 이용률을 최소화할 수 있도록 복수의 태스크들의 주기를 설정할 수 있게 된다.

Description

태스크 주기 스케쥴링 장치 및 방법{APPARATUS AND METHOD FOR SCHEDULING TASK PERIOD}
본 발명의 실시예들은 태스크 주기 스케쥴링 장치 및 방법에 관한 것으로서, 더욱 상세하게는 임베디드 시스템(Embedded System) 등에서 주기적으로 실행되는 복수의 태스크(Task)들의 주기를 설정할 수 있는 태스크 주기 스케쥴링 장치 및 방법에 관한 것이다.
임베디드 시스템(Embedded System)은 시스템을 동작시키는 소프트웨어를 하드웨어에 내장하여 특수한 기능만을 수행하도록 한 컴퓨터 시스템을 의미한다. 이러한 임베디드 시스템은 개인용 컴퓨터와는 달리 특정한 요구 사항을 가지고 있으며, 미리 정의된 태스크(Task)만을 수행한다. 이 때, 태스크는 하나 이상일 수 있으며, 하나 이상의 태스크는 주기적으로 반복되어 수행될 수 있다.
이러한 임베디드 시스템에서는 보다 적은 시스템 자원을 소모하면서 빠른 속도로 태스크를 수행할 수 있도록 태스크들의 실행 시간 내지 주기들을 스케쥴링하는 것이 중요하다. 이와 관련하여, 각 태스크마다 요구되는 마감시간 위반확률(Deadline Miss Probability)의 임계치를 넘지 않으면서 복수의 태스크들의 실행 시 요구되는 시스템 자원의 이용량(일례로, 메모리 사용량)을 최소화하는 알고리즘(태스크 스케쥴링 방법)이 종래에 제안되었다.
상기의 종래의 태스크 스케쥴링 방법은 모든 태스크들이 고정된 주기를 갖는 것으로 가정하고, 시스템 자원의 사용량을 감소시키는 경우 태스크들의 평균 실행 시간이 증가한다는 사실에 기초하여, 각 태스크가 기 설정된 임계 마감시간 위반확률을 넘지 않는 조건에서 평균 실행 시간을 얼마나 증가시킬 수 있는지를 판단하고, 판단 결과에 따라 각 태스크의 평균 실행 시간을 결정한다. 이 과정에서 각 태스크의 실행 시간은 실행 시간 분포로서 확률적 응답 시간 분석기(Probabilistic Response Time Analyzer)에 입력되며, 확률적 응답 시간 분석기는 각 태스크의 응답 시간 분포를 계산하여 각 태스크에 대한 마감시간 위반확률을 연산한다. 따라서 종래의 태스크 스케쥴링 방법은 각 태스크의 계산된 마감시간 위반확률이 임계 마감시간 위반확률을 넘지 않는다는 조건을 만족하는지 확인하면서 평균 실행 시간을 점차적으로 증가시켜서 각 태스크가 가질 수 있는 최대의 평균 실행 시간을 해당 태스크의 실행 시간으로 결정함으로써 태스크 스케쥴링을 수행한다.
한편, 임베디드 시스템은 센서 입력 또는 기타 외부 입력을 받아들이는 태스크들이 얼마나 자주 입력을 받아들일 수 있는가가 해당 임베디드 시스템의 정밀도를 결정하는 요소가 될 수 있다. 예를 들어, 고정밀 다축 모터 시스템의 경우 모터 제어 명령을 얼마나 짧은 주기에 받아들일 수 있는가에 따라 시스템의 제어 정밀도가 결정될 수 있다. 다시 말해, 모터 제어 명령을 수신하고 처리하는 태스크의 주기가 짧을수록 모터 제어 명령에 대한 고정밀 다축 모터 시스템의 반응 시간이 더 짧아지므로, 보다 정밀하게 모터를 제어할 수 있게 된다.
그런데, 일반적으로 태스크의 주기가 짧아지면 시스템 자원 이용률이 높아져서 각 태스크가 마감시간을 위반할 확률이 높아진다. 따라서 임베디드 시스템의 정밀도를 높이기 위해서는 각 태스크에게 허용되는 마감시간 위반확률의 임계치(임계 마감시간 위반확률)를 넘지 않는 조건에서 태스크의 주기를 최소로 결정할 수 있어야 한다.
그러나, 앞서 설명한 종래의 태스크 스케쥴링 방법은 태스크들의 주기가 고정되어 있는 것으로 가정하고 있으므로, 센서 입력 또는 기타 외부 입력에 빠른 시간에 반응해야 하는 임베디드 시스템에서의 태스크들의 주기를 결정하는 방법으로 사용될 수 없는바, 임베디드 시스템의 제어 정밀도를 높이고자 하는 경우에는 활용될 수 없다는 문제점이 있었다.
상기한 바와 같은 종래기술의 문제점을 해결하기 위해, 본 발명에서는 주기적으로 실행되는 복수의 태스크(Task)들이 마감시간을 위반할 확률을 낮추면서 시스템 자원의 이용률을 최소화할 수 있도록 복수의 태스크들의 주기를 설정하기 위한 태스크 주기 스케쥴링 장치 및 방법을 제안하고자 한다.
또한, 본 발명에서는 복수의 태스크들이 주기적으로 실행되는 임베디드 시스템의 제어 정밀도를 높일 수 있도록 하는 태스크 주기 스케쥴링 장치 및 방법을 제안하고자 한다.
본 발명의 다른 목적들은 하기의 실시예를 통해 당업자에 의해 도출될 수 있을 것이다.
상기한 목적을 달성하기 위해 본 발명의 바람직한 일실시예에 따르면, 주기적으로 실행되는 복수의 태스크들을 스케쥴링하는 장치에 있어서, 상기 복수의 태스크들 각각의 마감시간 위반확률을 연산하는 마감시간 위반확률 연산부; 상기 연산된 복수의 태스크들 각각의 마감시간 위반확률과 기 설정된 임계치를 비교하여 상기 임계치보다 큰 마감시간 위반확률을 가지는 태스크가 존재하는 경우, 주기의 증가에 따른 태스크 실행 시의 시스템 자원 이용률의 감소량이 큰 상위 N1(1 이상의 정수임)개의 태스크를 상기 복수의 태스크들 중에서 선택하는 태스크 선택부; 및 상기 상위 N1개의 태스크의 주기를 증가시키는 주기 설정부를 포함하는 태스크 주기 스케쥴링 장치가 제공된다.
상기 임계치보다 큰 마감시간 위반확률을 가지는 태스크가 존재하지 않는 경우, 상기 태스크 선택부는 상기 N1개의 태스크를 선택하지 않고, 상기 주기 설정부는 상기 복수의 태스크들의 주기를 유지할 수 있다.
상기 시스템 자원 이용률의 감소량은 아래의 수학식에 따라 결정될 수 있다.
Figure 112010081933504-pat00001
여기서,
Figure 112010081933504-pat00002
는 상기 복수의 태스크들 중에서 k번째 태스크의 시스템 자원 이용률의 감소량,
Figure 112010081933504-pat00003
는 상기 k번째 태스크의 주기,
Figure 112010081933504-pat00004
는 상기 k번째 태스크의 실행시간에 대한 확률함수의 평균(상기 k번째 태스크의 평균 실행시간),
Figure 112010081933504-pat00005
는 상기 k번째 태스크의 주기의 변경량(0보다 큼)을 각각 의미함.
상기 복수의 태스크들 중에서 일부의 태스크의 주기는 변경될 수 없고, 상기 주기가 변경될 수 없는 일부의 태스크에 대한 상기 시스템 자원 이용률의 감소량은 0으로 강제 설정될 수 있다.
상기 주기 설정부는 상기 복수의 태스크들 각각에 할당 가능한 최소의 주기를 상기 복수의 태스크들 각각의 초기 주기로 설정할 수 있다.
또한, 본 발명의 다른 실시예에 따르면, 주기적으로 실행되는 복수의 태스크들을 스케쥴링하는 장치에 있어서, 상기 복수의 태스크들 각각의 마감시간 위반확률을 연산하는 마감시간 위반확률 연산부; 상기 연산된 복수의 태스크들 각각의 마감시간 위반확률과 기 설정된 임계치를 비교하여 상기 임계치보다 작은 마감시간 위반확률을 가지는 태스크가 존재하는 경우, 주기의 감소에 따른 태스크 실행 시의 시스템 자원 이용률의 증가량이 작은 하위 N2(1 이상의 정수임)개의 태스크를 상기 복수의 태스크들 중에서 선택하는 태스크 선택부; 및 상기 하위 N2개의 태스크의 주기를 감소시키는 주기 설정부를 포함하는 태스크 주기 스케쥴링 장치가 제공된다.
또한, 본 발명의 또 다른 실시예에 따르면, 주기적으로 실행되는 복수의 태스크들을 스케쥴링하는 방법에 있어서, 상기 복수의 태스크들 각각의 마감시간 위반확률을 연산하는 단계; 상기 연산된 복수의 태스크들 각각의 마감시간 위반확률과 기 설정된 임계치를 비교하는 단계; 상기 임계치보다 큰 마감시간 위반확률을 가지는 태스크가 존재하는 경우, 주기의 증가에 따른 태스크 실행 시의 시스템 자원 이용률의 감소량이 큰 상위 N1(1 이상의 정수임)개의 태스크를 상기 복수의 태스크들 중에서 선택하는 단계; 및 상기 상위 N1개의 태스크의 주기를 증가시키는 단계를 포함하는 태스크 주기 스케쥴링 방법이 제공된다.
본 발명에 따르면, 주기적으로 실행되는 복수의 태스크들이 마감시간을 위반할 확률을 낮추면서 시스템 자원의 이용률을 최소화할 수 있도록 복수의 태스크들의 주기를 설정할 수 있게 된다.
또한, 본 발명에 따르면, 복수의 태스크들이 주기적으로 실행되는 임베디드 시스템의 제어 정밀도를 높일 수 있게 된다.
도 1은 본 발명의 일 실시예에 따른 태스크 주기 스케쥴링 장치의 상세한 구성을 도시한 블록도이다.
도 2는 본 발명의 제1 실시예에 따른 태스크 주기 스케쥴링 방법의 전체적인 흐름을 도시한 순서도이다.
도 3은 본 발명의 제2 실시예에 따른 태스크 주기 스케쥴링 방법의 전체적인 흐름을 도시한 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 태스크 주기 스케쥴링 장치의 상세한 구성을 도시한 블록도이다.
도 1에 도시된 태스크 주기 스케쥴링 장치(100)는 임베디드 시스템 등과 같이 주기적으로 복수의 태스크를 수행하는 장치에 적용되어 복수의 태스크의 주기를 설정하는데 이용될 수 있는 장치로서, 도 1을 참조하면 태스크 주기 스케쥴링 장치(100)는 주기 설정부(110), 마감시간 위반확률 연산부(120), 및 태스크 선택부(130)를 포함할 수 있다. 이하, 각 구성 요소 별로 그 기능을 상술하기로 한다.
주기 설정부(110)는 특정 시점 간격으로 복수의 태스크들의 주기를 설정한다. 이 때, 주기 설정부(110)는 시작 시점에서 복수의 태스크들의 초기 주기를 설정하고(즉, 복수의 태스크들의 주기를 초기화하고), 시작 시점의 이후 시점부터는 아래에서 설명하는 바와 같이 매 시점 마다 복수의 태스크들 중 하나 이상의 태스크의 주기를 갱신(증가 또는 감소)하고, 나머지 태스크의 주기를 이전 시점에서의 해당 태스크 주기로 유지함으로써 복수의 태스크들의 주기를 설정할 수 있다.
마감시간 위반확률(Deadline Miss Probability) 연산부(120)는 복수의 태스크 각각에 대한 마감시간의 위반확률을 연산한다. 여기서, 마감시간이란 복수의 태스크 각각이 완료되어야 하는 최종 완료 시간을 의미하고, 마감시간 위반확률은 소정의 태스크가 수행되는 경우, 해당 태스크의 완료시간이 마감시간을 넘길 확률을 의미한다.
주기 설정부(110)의 주기 설정에 따라 복수의 태스크들이 수행된다고 가정하면, 마감시간 위반확률 연산부(120)는 이전 시점에서 주기 설정부(110)에 의해 설정된 복수의 태스크들의 주기, 복수의 태스크들 각각에 대해 설정된 우선순위 및 복수의 태스크들 각각의 실행시간에 대한 확률질량함수(Probability Mass Function)에 기초하여 복수의 태스크들 각각에 대한 마감시간 위반확률을 연산할 수 있다.
보다 상세하게, 마감시간 위반확률 연산부(120)는 주기적으로 실행되는 복수의 태스크들 각각의 응답 시간 분포를 정확히 계산할 수 있는 "확률적 응답 시간 분석기(Probabilistic Response Time Analyzer)"를 이용하여 복수의 태스크들의 주기, 우선순위, 및 실행시간에 대한 확률질량함수를 토대로 각 태스크의 마감시간 위반확률을 연산할 수 있다. 여기서, 확률적 응답 시간 분석기는 여러 가지가 있을 수 있으며, 일례로 2005년 11월에 IEEE Transactions on Computers 저널에 발표된 "An exact stochastic analysis of priority-driven periodic real-time systems and its approximations" 논문에서 제시된 방법에 따른 확률적 응답 시간 분석기가 사용될 수 있다. 상기의 논문에 따른 확률적 응답 시간 분석기는 각 태스크에 대해 우선순위를 부여하고 우선순위가 높은 태스크를 우선적으로 서비스하는 우선순위 스케줄링을 사용할 때, 각 태스크의 정확한 응답 시간 분포를 계산해 준다.
그러나, 마감시간 위반확률 연산부(120)에서 이용되는 확률적 응답 시간 분석기는 이에 한정되지 않으며, 본 발명의 일 실시예에 따른 태스크 주기 스케쥴링 장치(100)가 적용되는 시스템의 태스크 모델과 스케줄링 알고리즘에 따라서 적합한 확률적 응답 시간 분석기가 이용될 수 있다. 즉, 본 발명은 확률적 응답 시간 분석기에 제한을 두지 않는다.
태스크 선택부(130)는 연산된 복수의 태스크들 각각의 마감시간 위반확률이 기 설정된 기준 마감시간 위반확률 범위에 포함되는지를 판단한다.
그리고, 태스크 선택부(130)는 기준 마감시간 위반확률 범위에 포함되는 마감시간 위반확률을 가지는 태스크가 하나 이상 존재하는 경우, 주기를 변경할 태스크를 하나 이상 선택한다. 여기서, 주기를 변경할 태스크는 주기의 변경에 따른 태스크 실행 시의 시스템 자원 이용률의 변경 정도에 따라 선택될 수 있다.
즉, 소정 태스크의 주기가 변경되는 경우, 전체 시스템 자원 이용률은 변경되는데, 태스크 선택부(130)는 복수의 태스크 각각의 주기 변경에 따라 다른 태스크들의 이용 가능한 시스템 자원양이 어떻게 변화하는지를 파악하고, 이용 가능한 시스템 자원양이 최대가 되도록 하기 위해 주기를 변경할 태스크를 적어도 하나 이상 선택한다.
이 경우, 주기 설정부(110)는 선정된 하나 이상의 태스크의 주기를 변경(증가 또는 감소)시킨다.
이하에서는 도 2 및 도 3을 참조하여 본 발명의 일 실시예에 따른 태스크 주기 스케쥴링 장치(100)의 태스크 주기 스케쥴링 동작(태스크 주기 스케쥴링 방법)을 보다 상세히 설명하기로 한다.
먼저, 도 2는 본 발명의 제1 실시예에 따른 태스크 주기 스케쥴링 방법의 전체적인 흐름을 도시한 순서도이다. 이하, 각 단계 별로 수행되는 과정을 상술하기로 한다.
먼저, 단계(S210)에서 주기 설정부(110)는 복수의 태스크들의 주기를 초기화한다.
여기서, 주기 설정부(110)는 복수의 태스크에 할당 가능한 최소의 주기를 복수의 태스크들의 초기 주기로 설정할 수 있다. 즉, 주기 설정부(110)는 각 태스크가 마감시간 위반확률을 무시하고 주기로서 가질 수 있는 최소의 주기를 복수의 태스크들 각각의 초기 주기로 설정할 수 있다.
일례로서, 본 발명의 일 실시예에 따른 태스크 주기 스케쥴링 장치(100)가 적용되는 시스템이 주기적인 타이머 인터럽트에 의해서 태스크들을 깨우고 실행시키는 임베디드 시스템인 경우, 하나의 태스크의 주기는 타이머 인터럽트의 주기보다 작아질 수 없으므로, 이러한 시스템에서 주기 설정부(110)는 타이머 인터럽트의 주기와 동일하도록 복수의 태스크들 각각의 초기 주기를 설정할 수 있다.
다른 일례로서, 본 발명의 일 실시예에 따른 태스크 주기 스케쥴링 장치(100)가 적용되는 시스템이 모터 제어 시스템의 경우 모터 제어 주기는 모터의 물리적인 제약 사항으로 인해 소정의 임계치보다 작아질 수 없으므로, 이러한 시스템에서 주기 설정부(110)는 물리적 제약에 따른 상기의 소정 임계치를 복수의 태스크들 각각의 초기 주기로 설정할 수 있다.
다음으로, 단계(S220)에서 마감시간 위반확률 연산부(120)는 주기 설정부(110)에서 설정된 복수의 태스크들 각각의 주기, 복수의 태스크들 각각의 우선 순위 및 복수의 태스크들 각각의 실행시간의 확률질량함수에 기초하여 복수의 태스크들 각각의 마감시간 위반확률을 연산한다. 이 경우, 앞서 설명한 바와 같이 다양한 종류의 확률적 응답 시간 분석기가 마감시간 위반확률의 연산을 위해 사용될 수 있다.
계속하여, 단계(S230)에서 태스크 선택부(130)는 복수의 태스크들 각각에 대해 연산된 마감시간 위반확률과 기 설정된 임계치를 비교하여 임계치보다 큰 마감시간 위반확률을 가지는 태스크가 존재하는지를 판단한다. 즉, 단계(S230)에서는 0보다 크고 임계치보다 작은 범위로 설정되는 기준 마감시간 위반확률 범위에 포함되는 마감시간 위반확률을 가지는 태스크가 존재하는지를 판단한다.
만약, 단계(S230)에서 임계치보다 큰 마감시간 위반확률을 가지는 태스크가 존재하지 않는 것으로 판단된 경우, 이전 시점(즉, 초기 시점)에 설정된 복수의 태스크들 각각의 주기가 현재 시점의 복수의 태스크들 각각의 주기로서 그대로 유지된다. 즉, 임계치보다 큰 마감시간 위반확률을 가지는 태스크가 존재하지 않는 경우, 이전에 설정된 태스크들의 주기가 그대로 유지되고, 태스크 주기 스케쥴링은 종료된다.
즉, 상기의 경우는 복수의 태스크들의 주기가 최소로 설정되어 이용 가능한 시스템 자원량이 최대임에도 각 태스크들이 마감시간을 위반할 확률이 기준값보다 낮음을 의미(다시 말해, 주기가 작으면서도 최대 시스템 자원 이용량을 확보할 수 있음을 의미)하므로, 해당 시스템의 제어 정밀도를 충분히 높일 수 있게 되는바, 주기 설정부(110)는 복수의 태스크들 각각의 주기를 변경시키지 않는다.
반대로, 단계(S230)에서 임계치보다 큰 마감시간 위반확률을 가지는 태스크가 존재하는 것으로 판단된 경우, 단계(S240)에서 태스크 선택부(130)는 주기의 증가에 따른 태스크 실행 시의 시스템 자원 이용률의 감소량이 큰 상위 N1(1 이상의 정수임)개의 태스크(일례로서, 주기의 증가에 따른 태스크 실행시의 시스템 자원 이용률의 감소량이 최대인 하나의 태스크)를 복수의 태스크들 중에서 선택한다. 계속하여, 단계(S250)에서는 선택된 N1개의 태스크들의 주기를 증가시키고 나머지 태스크들의 주기를 그대로 유지한다. 이는 소정의 태스크의 주기를 감소시켜 모든 태스크들이 마감시간 내에 수행될 수 있도록 함과 동시에 주기의 감소에 따라 확보되는 여분의 시스템 자원량을 가능한 많이 확보하기 위함이다.
본 발명의 일 실시예에 따르면, 시스템 자원 이용률의 감소량은 아래의 수학식 1에 따라 결정될 수 있다.
Figure 112010081933504-pat00006
여기서,
Figure 112010081933504-pat00007
는 복수의 태스크들 중에서 k번째 태스크의 시스템 자원 이용률의 감소량,
Figure 112010081933504-pat00008
는 k번째 태스크의 주기,
Figure 112010081933504-pat00009
는 k번째 태스크의 실행시간에 대한 확률함수의 평균(즉, 상기 k번째 태스크의 평균 실행시간),
Figure 112010081933504-pat00010
는 k번째 태스크의 주기의 변경량(0보다 큼)을 각각 의미한다.
그리고, 특정 태스크는 물리적인 제약으로 인해 주기를 변경할 수 없을 수 있는데, 이러한 태스크는 상기 수학식 1과 상관없이 시스템 자원 이용률의 감소량이 0으로 강제 설정될 수 있다. 따라서, 주기의 변경이 불가능한 태스크는 주기를 변경시킬 태스크로 선정될 가능성이 없게 된다.
한편, 위와 같이 시스템 자원 이용률이 설정되는 경우, 단계(S260)에서는
Figure 112010081933504-pat00011
만큼 k번째 태스크의 주기를 증가시킬 수 있다.
이 후, 다시 단계(S220) 및 단계(S230)이 수행되고, 임계치보다 큰 마감시간 위반확률을 가지는 태스크가 존재하지 않는 것으로 판단된 경우, 단계(S240) 및 단계(S250)가 반복되어 수행된다. 즉, 임계치보다 큰 마감시간 위반확률을 가지는 태스크가 존재하지 않는 시점까지 단계(S220) 내지 단계(S250)가 반복되어 수행된다.
요컨대, 본 발명의 제1 실시예에 따른 태스크 주기 스케쥴링 방법은 모든 태스크에 대한 마감시간 위반확률이 임계치보다 작도록 하기 위한 각 태스크의 최소 주기를 찾기 위해, 역설적으로 각 태스크가 마감시간 위반확률을 무시할 때 가질 수 있는 최소의 주기를 갖는다는 가정에서 출발하여 주기를 증가시킬 때 수반되는 시스템 자원 이용률의 감소(저하)가 가장 큰 태스크를 매번 선택하여 그 주기를 증가시킴으로써, 각 태스크의 주기 증가 횟수를 최소화한다. 선택된 태스크의 시스템 자원 이용률의 저하가 크면 클수록 다른 태스크들의 마감시간 위반확률은 더 빨리 개선되기 때문에 각 태스크가 마감시간 위반확률이 임계치보다 작아지는 순간이 보다 빨리 도래하게 되어 각 태스크의 주기 증가 횟수는 최소화되는 것이다. 결과적으로 본 발명의 제1 실시예에 따른 태스크 주기 스케쥴링 방법은 주어진 마감시간 위반확률의 임계치를 만족시키는 각 태스크의 최소 주기값을 항상 찾아낸다는 장점이 있다.
다음으로, 도 3은 본 발명의 제2 실시예에 따른 태스크 주기 스케쥴링 방법의 전체적인 흐름을 도시한 순서도이다. 이하, 각 단계 별로 수행되는 과정을 상술하기로 한다.
먼저, 단계(S310)에서 주기 설정부(110)는 복수의 태스크들의 주기를 초기화한다.
여기서, 주기 설정부(110)는 복수의 태스크에 할당 가능한 최대의 주기를 복수의 태스크들의 초기 주기로 설정할 수 있다.
다음으로, 단계(S320)에서 마감시간 위반확률 연산부(120)는 주기 설정부(110)에서 설정된 복수의 태스크들 각각의 주기, 복수의 태스크들 각각의 우선 순위 및 복수의 태스크들 각각의 실행시간의 확률질량함수에 기초하여 복수의 태스크들 각각의 마감시간 위반확률을 연산한다. 이 경우에도 앞서 설명한 바와 같이 다양한 종류의 확률적 응답 시간 분석기가 사용될 수 있다.
계속하여, 단계(S330)에서 태스크 선택부(130)는 복수의 태스크들 각각에 대해 연산된 마감시간 위반확률과 기 설정된 임계치를 비교하여 임계치보다 작은 마감시간 위반확률을 가지는 태스크가 존재하는지를 판단한다. 즉, 단계(S330)에서는 임계치보다 크고 1보다 작은 범위로 설정되는 기준 마감시간 위반확률 범위에 포함되는 마감시간 위반확률을 가지는 태스크가 존재하는지를 판단한다.
만약, 단계(S330)에서 임계치보다 작은 마감시간 위반확률을 가지는 태스크가 존재하지 않는 것으로 판단된 경우, 이전 시점(즉, 초기 시점)에 설정된 복수의 태스크들 각각의 주기가 현재 시점의 복수의 태스크들 각각의 주기로서 그대로 유지되고, 태스크 주기 스케쥴링은 종료된다.
반대로, 단계(S330)에서 임계치보다 작은 마감시간 위반확률을 가지는 태스크가 존재하는 것으로 판단된 경우, 단계(S340)에서 태스크 선택부(130)는 주기의 감소에 따른 태스크 실행 시의 시스템 자원 이용률의 증가량이 작은 하위 N2(1 이상의 정수임)개의 태스크(일례로서, 주기의 감소에 따른 태스크 실행시의 시스템 자원 이용률의 증가량이 최소인 하나의 태스크)를 복수의 태스크들 중에서 선택한다. 계속하여, 단계(S350)에서는 선택된 N2개의 태스크들의 주기를 감소시키고 나머지 태스크들의 주기를 그대로 유지한다.
본 발명의 일 실시예에 따르면, 시스템 자원 이용률의 증가량은 아래의 수학식 2에 따라 결정될 수 있다.
Figure 112010081933504-pat00012
여기서,
Figure 112010081933504-pat00013
는 복수의 태스크들 중에서 k번째 태스크의 시스템 자원 이용률의 증가량,
Figure 112010081933504-pat00014
는 k번째 태스크의 주기의 변경량(0보다 큼)을 각각 의미한다.
그리고, 특정 태스크는 물리적인 제약으로 인해 주기를 변경할 수 없을 수 있는데, 이러한 태스크는 상기 수학식 2와 상관없이 시스템 자원 이용률의 감소량이 0으로 강제 설정될 수 있다.
한편, 위와 같이 시스템 자원 이용률이 설정되는 경우, 단계(S360)에서는
Figure 112010081933504-pat00015
만큼 k번째 태스크의 주기를 감소시킬 수 있다.
이 후, 다시 단계(S320) 및 단계(S330)이 수행되고, 임계치보다 작은 마감시간 위반확률을 가지는 태스크가 존재하지 않는 것으로 판단된 경우, 단계(S340) 및 단계(S350)가 반복되어 수행된다. 즉, 임계치보다 작은 마감시간 위반확률을 가지는 태스크가 존재하지 않는 시점까지 단계(S320) 내지 단계(S350)가 반복되어 수행된다.
지금까지 본 발명에 제2 실시예에 따른 태스크 주기 스케쥴링 방법에 대하여 설명하였고, 이에 대해서는 앞서 도 2에서 설명한 본 발명의 제1 실시예에 따른 태스크 주기 스케쥴링 방법에 대한 구성이 대응되어 적용될 수 있다. 즉, 도 2에서 설명한 제1 실시예는 각 태스크가 최초 주기값을 매우 작은 값으로 갖는다는 가정에서 출발하여 각 태스크의 주기를 증가시킬 때 수반되는 시스템 자원 이용률의 저하가 가장 큰 태스크를 매번 선택하는 방식으로 동작하고, 도 3에서 설명한 제2 실시예는 각 태스크가 최초 주기값을 매우 큰 값으로 갖는다는 가정에서 출발하여 각 태스크의 주기를 감소시킬 때 수반되는 시스템 자원 이용률의 상승이 가장 작은 태스크를 매번 선택하는 방식으로 동작한다. 이에, 본 제2 실시예의 상세한 동작은 앞서 설명한 제1 실시예로부터 유추 가능하므로 보다 상세한 설명은 생략하기로 한다.
또한, 본 발명의 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical), 및 롬(ROM), 램(RAM), 플래시 메모리 등을 포함하며 같은 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 일실시예들의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
100: 태스크 주기 스케쥴링 장치
110: 주기 설정부
120: 마감시간 위반확률 연산부
130: 태스크 선택부

Claims (11)

  1. 주기적으로 실행되는 복수의 태스크들을 스케쥴링하는 장치에 있어서,
    상기 복수의 태스크들 각각의 마감시간 위반확률을 연산하는 마감시간 위반확률 연산부;
    상기 연산된 복수의 태스크들 각각의 마감시간 위반확률과 기 설정된 임계치를 비교하여 상기 임계치보다 큰 마감시간 위반확률을 가지는 태스크가 존재하는 경우, 주기의 증가에 따른 태스크 실행 시의 시스템 자원 이용률의 감소량이 큰 상위 N1(1이상의 정수임)개의 태스크를 상기 복수의 태스크들 중에서 선택하는 태스크 선택부; 및
    상기 상위 N1개의 태스크가 선택된 경우 상기 상위 N1개의 태스크의 주기를 증가시키고, 상기 상위 N1개의 태스크가 선택되지 않은 경우 상기 복수의 태크스들의 주기를 유지하는 주기 설정부를 포함하는 것을 특징으로 하는 태스크 주기 스케쥴링 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 시스템 자원 이용률의 감소량은 아래의 수학식에 따라 결정되는 것을 특징으로 하는 태스크 주기 스케쥴링 장치.

    Figure 112010081933504-pat00016

    여기서,
    Figure 112010081933504-pat00017
    는 상기 복수의 태스크들 중에서 k번째 태스크의 시스템 자원 이용률의 감소량,
    Figure 112010081933504-pat00018
    는 상기 k번째 태스크의 주기,
    Figure 112010081933504-pat00019
    는 상기 k번째 태스크의 실행시간에 대한 확률함수의 평균(상기 k번째 태스크의 평균 실행시간),
    Figure 112010081933504-pat00020
    는 상기 k번째 태스크의 주기의 변경량(0보다 큼)을 각각 의미함.
  4. 제3항에 있어서,
    상기 복수의 태스크들 중에서 일부의 태스크의 주기는 변경될 수 없고, 상기 주기가 변경될 수 없는 일부의 태스크에 대한 상기 시스템 자원 이용률의 감소량은 0으로 강제 설정되는 것을 특징으로 하는 태스크 주기 스케쥴링 장치.
  5. 제1항에 있어서,
    상기 주기 설정부는
    상기 복수의 태스크들 각각에 할당 가능한 최소의 주기를 상기 복수의 태스크들 각각의 초기 주기로 설정하는 것을 특징으로 하는 태스크 주기 스케쥴링 장치.
  6. 주기적으로 실행되는 복수의 태스크들을 스케쥴링하는 장치에 있어서,
    상기 복수의 태스크들 각각의 마감시간 위반확률을 연산하는 마감시간 위반확률 연산부;
    상기 연산된 복수의 태스크들 각각의 마감시간 위반확률과 기 설정된 임계치를 비교하여 상기 임계치보다 작은 마감시간 위반확률을 가지는 태스크가 존재하는 경우, 주기의 감소에 따른 태스크 실행 시의 시스템 자원 이용률의 증가량이 작은 하위 N2(1이상의 정수임)개의 태스크를 상기 복수의 태스크들 중에서 선택하는 태스크 선택부; 및
    상기 하위 N2개의 태스크가 선택된 경우 상기 하위 N2개의 태스크의 주기를 감소시키고, 상기 하위 N2개의 태스크를 선택되지 않은 경우 상기 복수의 태크스들의 주기를 유지하는 주기 설정부를 포함하는 것을 특징으로 하는 태스크 주기 스케쥴링 장치.
  7. 삭제
  8. 제6항에 있어서,
    상기 시스템 자원 이용률의 증가량은 아래의 수학식에 따라 결정되는 것을 특징으로 하는 태스크 주기 스케쥴링 장치.

    Figure 112010081933504-pat00021

    여기서,
    Figure 112010081933504-pat00022
    는 상기 복수의 태스크들 중에서 k번째 태스크의 시스템 자원 이용률의 증가량,
    Figure 112010081933504-pat00023
    는 상기 k번째 태스크의 주기,
    Figure 112010081933504-pat00024
    는 상기 k번째 태스크의 실행시간에 대한 확률함수의 평균(상기 k번째 태스크의 평균 실행시간),
    Figure 112010081933504-pat00025
    는 k번째 태스크의 주기의 변경량(0보다 큼)을 각각 의미함.
  9. 제8항에 있어서,
    상기 복수의 태스크들 중에서 일부의 태스크의 주기는 변경될 수 없고, 상기 주기가 변경될 수 없는 일부의 태스크에 대한 상기 시스템 자원 이용률의 감소 정도는 0으로 강제 설정되는 것을 특징으로 하는 태스크 주기 스케쥴링 장치.
  10. 제6항에 있어서,
    상기 주기 설정부는
    상기 복수의 태스크들 각각에 할당 가능한 최대의 주기를 상기 복수의 태스크들 각각의 초기 주기로 설정하는 것을 특징으로 하는 태스크 주기 스케쥴링 장치.
  11. 주기적으로 실행되는 복수의 태스크들을 스케쥴링하는 방법에 있어서,
    상기 복수의 태스크들 각각의 마감시간 위반확률을 연산하는 단계;
    상기 연산된 복수의 태스크들 각각의 마감시간 위반확률과 기 설정된 임계치를 비교하는 단계;
    상기 임계치보다 큰 마감시간 위반확률을 가지는 태스크가 존재하는 경우, 주기의 증가에 따른 태스크 실행 시의 시스템 자원 이용률의 감소량이 큰 상위 N1(1이상의 정수임)개의 태스크를 상기 복수의 태스크들 중에서 선택하는 단계; 및
    상기 상위 N1개의 태스크가 선택된 경우 상기 상위 N1개의 태스크의 주기를 증가시키고, 상기 상위 N1개의 태스크가 선택되지 않은 경우 상기 복수의 태크스들의 주기를 유지하는 단계를 포함하는 것을 특징으로 하는 태스크 주기 스케쥴링 방법.
KR1020100126965A 2010-12-13 2010-12-13 태스크 주기 스케쥴링 장치 및 방법 KR101211817B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100126965A KR101211817B1 (ko) 2010-12-13 2010-12-13 태스크 주기 스케쥴링 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100126965A KR101211817B1 (ko) 2010-12-13 2010-12-13 태스크 주기 스케쥴링 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20120065699A KR20120065699A (ko) 2012-06-21
KR101211817B1 true KR101211817B1 (ko) 2012-12-12

Family

ID=46685328

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100126965A KR101211817B1 (ko) 2010-12-13 2010-12-13 태스크 주기 스케쥴링 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101211817B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101399758B1 (ko) * 2012-11-27 2014-05-27 숭실대학교산학협력단 다수의 슬레이브 장치에서 실행되는 태스크의 주기 스케쥴링 장치 및 방법

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
논문1:IEEE
논문2:정보과학회논문지
논문3:정보과학회논문지

Also Published As

Publication number Publication date
KR20120065699A (ko) 2012-06-21

Similar Documents

Publication Publication Date Title
CN108829521B (zh) 任务处理方法、装置、计算机设备及存储介质
CN113254178B (zh) 一种任务调度方法、装置、电子设备及可读存储介质
US9990229B2 (en) Scheduling method and apparatus for applying laxity correction based on task completion proportion and preset time
US7904894B2 (en) Automatically optimize performance of package execution
US8756600B2 (en) Judging apparatus, method, and recording medium of program for estimating the effect of deployment of an application in a virtual machine environment
CN102081555B (zh) 调整时钟中断周期的方法和装置
Wan et al. Fuzzy feedback scheduling algorithm based on central processing unit utilization for a software-based computer numerical control system
JPWO2005106623A1 (ja) Cpuクロック制御装置、cpuクロック制御方法、cpuクロック制御プログラム、記録媒体、及び伝送媒体
US20160132359A1 (en) Abnormality detection apparatus, control method, and program
US20170206111A1 (en) Managing processing capacity provided to threads based upon load prediction
KR101770736B1 (ko) 응용프로그램의 질의 스케쥴링을 이용한 시스템의 소모전력 절감 방법 및 그 방법을 이용하여 소모전력을 절감하는 휴대단말기
JP5181121B2 (ja) タスク数制御装置、タスク数制御方法、及びコンピュータプログラム
CN104932933A (zh) 一种获取自旋锁的方法及装置
CN114217966A (zh) 基于资源调整的深度学习模型动态批处理调度方法和系统
CN103218219A (zh) 紧凑函数跟踪
US20180217875A1 (en) Data processing system and data processing method
KR101271854B1 (ko) 태스크 주기 스케쥴링 장치 및 방법
KR101211817B1 (ko) 태스크 주기 스케쥴링 장치 및 방법
US20050182747A1 (en) Method and system for executing multiple tasks at adaptively controlled resource utilization rates to achieve equal QoS levels
CN112416596A (zh) 一种节点调度方法、装置及设备
KR101399758B1 (ko) 다수의 슬레이브 장치에서 실행되는 태스크의 주기 스케쥴링 장치 및 방법
Okamura et al. Optimal trigger time of software rejuvenation under probabilistic opportunities
KR100981017B1 (ko) 정적 태스크 정의 기능을 가진 시스템을 위한 우선순위 재정의 및 대기큐 관리 방법과 상기 방법을 실행하는 시스템
US10275015B2 (en) Power source control method, power source control apparatus, and storage medium
JP2009048358A (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: 20161024

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee