KR101674324B1 - 실시간 제어 응용에 적용되는 태스크 스케쥴링 장치 및 방법 - Google Patents

실시간 제어 응용에 적용되는 태스크 스케쥴링 장치 및 방법 Download PDF

Info

Publication number
KR101674324B1
KR101674324B1 KR1020150168405A KR20150168405A KR101674324B1 KR 101674324 B1 KR101674324 B1 KR 101674324B1 KR 1020150168405 A KR1020150168405 A KR 1020150168405A KR 20150168405 A KR20150168405 A KR 20150168405A KR 101674324 B1 KR101674324 B1 KR 101674324B1
Authority
KR
South Korea
Prior art keywords
task
time
tasks
phase
execution
Prior art date
Application number
KR1020150168405A
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 KR1020150168405A priority Critical patent/KR101674324B1/ko
Application granted granted Critical
Publication of KR101674324B1 publication Critical patent/KR101674324B1/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
    • 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
    • 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
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Abstract

실시간 제어 응용에 적용되는 태스크 스케쥴링 장치 및 방법이 개시된다. 개시된 태스크 스케쥴링 장치는 시스템에서 수행되는 N개의 태스크를 스케쥴링하는 장치에 있어서, 상기 N개의 태스크 각각에 대해, 상기 태스크의 단독 수행의 활성화 지터 및 종단간 지연시간을 산출하는 산출부; 상기 N개의 태스크를 상기 시스템에 포함된 M개의 프로세서로 분배하는 분배부; 상기 분배된 상기 N개의 태스크의 위상을 설정하는 위상 설정부;를 포함하되, 상기 위상 설정부는 상기 N개의 태스크의 순서에 따라 위상을 설정하되, 상기 N개의 태스크 중 i번째 태스크에 대해, 기설정된 시간 간격에 따라 시간을 앞당기면서 충돌여부 검사를 수행하되, 상기 충돌이 발생한 최초의 시간이 검출되는 경우 상기 최초 검출된 시간의 이전 시간을 상기 i번째 태스크의 위상으로 설정하고, 상기 충돌여부 검사는 상기 단독 수행의 활성화 지터 및 종단간 지연시간과, 상기 N개의 태스크 모두를 수행할 때의 태스크 수행의 활성화 지터 및 종단간 지연시간을 이용하여 수행된다.

Description

실시간 제어 응용에 적용되는 태스크 스케쥴링 장치 및 방법{Task scheduling device and method for real-time control applications}
본 발명의 실시예들은 공유 자원 사용 충돌을 회피하여 실시간 제어 시스템의 성능을 최대로 할 수 있고, 동적으로 위상과 주기를 설정하는 태스크 스케쥴링 장치 및 방법에 관한 것이다.
임베디드 시스템(Embedded System)은 시스템을 동작시키는 소프트웨어를 하드웨어에 내장하여 특수한 기능만을 수행하도록 한 컴퓨터 시스템을 의미한다. 이러한 임베디드 시스템은 개인용 컴퓨터와는 달리 특정한 요구 사항을 가지고 있으며, 미리 정의된 태스크(Task)만을 수행한다. 이 때, 태스크는 하나 이상일 수 있으며, 하나 이상의 태스크는 주기적으로 반복되어 수행될 수 있다.
이러한 임베디드 시스템에서는 보다 적은 시스템 자원을 소모하면서 빠른 속도로 태스크를 수행할 수 있도록 태스크들의 실행 시간 내지 주기들을 스케쥴링하는 것이 중요하다.
한편, 종래의 실시간 제어 응용 기술은 응용의 동작 전에 제어 시스템의 자원 사용량을 파악하여 태스크 수행의 스케줄을 결정지어 정적으로 태스크 스케줄링이 된다. 따라서, 실시간 제어 응용을 설계할 당시에 제어 시스템의 자원 사용량을 파악하여야 한다. 또한, 실시간 제어 시스템마다 실시간 제어 응용을 작성해야 한다.
그러나, 종래의 기술의 경우, 실시간 제어 응용이 실시간 제어 시스템에 종속되는 문제점을 가지고 있다.
보다 상세하게, 실시간 제어 시스템은 자원 사용의 충돌이 발생하면 실시간 성능을 보장할 수 없게 되기 때문에, 자원 사용량을 측정하고 이를 바탕으로 태스크 수행을 스케줄링하여 공유자원 사용충돌을 회피해야 한다. 또한, 주기를 최소화하여 실시간 제어 시스템의 성능을 높여야 한다. 이를 위해서는 실시간 제어 시스템의 자원 사용량 파악해야 하며, 이를 바탕으로 태스크 수행의 스케줄링을 설정하여야 한다.
하지만, 종래의 기술은 실시간 제어 응용 동작 전에 제어 시스템의 자원 사용량을 미리 파악하여야 하기 때문에 실시간 제어 응용이 제어 시스템에 종속된다. 이로 인하여, 제어 시스템마다 응용을 따로 작성해야 하는 비효율성 문제가 발생한다. 또한, 제어 응용이 동작하며 발생할 수 있는 추가적인 상황을 반영할 수 없으며, 그로 인해 실시간 성능이 떨어지게 되고 실시간 시스템의 전체 성능을 떨어뜨리게 되는 문제점이 있다.
상기한 바와 같은 종래기술의 문제점을 해결하기 위해, 본 발명에서는 공유 자원 사용 충돌을 회피하여 실시간 제어 시스템의 성능을 최대로 할 수 있고, 동적으로 위상과 주기를 설정하는 태스크 스케쥴링 장치 및 방법을 제안하고자 한다.
본 발명의 다른 목적들은 하기의 실시예를 통해 당업자에 의해 도출될 수 있을 것이다.
상기한 목적을 달성하기 위해 본 발명의 바람직한 일 실시예에 따르면, 시스템에서 수행되는 N개의 태스크를 스케쥴링하는 장치에 있어서, 상기 N개의 태스크 각각에 대해, 상기 태스크의 단독 수행의 활성화 지터 및 종단간 지연시간을 산출하는 산출부; 상기 N개의 태스크를 상기 시스템에 포함된 M개의 프로세서로 분배하는 분배부; 상기 분배된 상기 N개의 태스크의 위상을 설정하는 위상 설정부;를 포함하되, 상기 위상 설정부는 상기 N개의 태스크의 순서에 따라 위상을 설정하되, 상기 N개의 태스크 중 i번째 태스크에 대해, 기설정된 시간 간격에 따라 시간을 앞당기면서 충돌여부 검사를 수행하되, 상기 충돌이 발생한 최초의 시간이 검출되는 경우 상기 최초 검출된 시간의 이전 시간을 상기 i번째 태스크의 위상으로 설정하고, 상기 충돌여부 검사는 상기 단독 수행의 활성화 지터 및 종단간 지연시간과, 상기 N개의 태스크 모두를 수행할 때의 태스크 수행의 활성화 지터 및 종단간 지연시간을 이용하여 수행되는 것을 특징으로 하는 태스크 스케쥴링 장치가 제공된다.
상기 위상 설정부는, 상기 N개의 태스크 모두를 수행할 때의 태스크 수행의 활성화 지터가 상기 단독 수행의 활성화 지터의 확률값 중 임계 확률값 이상이고, 상기 N개의 태스크 모두를 수행할 때의 태스크 수행의 종단간 지연시간이 상기 단독 수행의 종단간 지연시간 확률값 중 임계 확률값 이상인 경우 상기 충돌이 발생된 것으로 판단할 수 있다.
상기 태스크의 수행은 상기 태스크에 대한 메인 프로세스를 실행하는 제1 과정, 상기 실행된 메인 프로세스에 대한 I/O 메시지를 송수신하는 제2 과정 및 상기 실행된 메인 프로세스의 사후 프로세스를 실행하는 제3 과정을 포함할 수 있다.
상기 시스템은 하나의 추가 프로세서 및 하나의 시스템 버스를 포함하고, 상기 제1 과정은 상기 M개의 프로세서에서 수행되고, 상기 제2 과정은 상기 시스템 버스에서 수행되고, 상기 제3 과정은 상기 추가 프로세서에서 수행되고, 상기 제1 과정 이후 상기 제2 과정이 수행되고, 상기 제2 과정 이후 상기 제3 과정이 수행되고, 상기 활성화 지터는 상기 제1 과정의 예상 시작시간과 실제 시작시간과의 차이값이고, 상기 종단간 지연시간은 상기 제1 과정의 시작시간과 상기 제3 과정의 종료시간의 차이값일 수 있다.
상기 산출부는 상기 제1 과정의 수행시간, 상기 제2 과정의 수행시간 및 상기 제3 과정의 수행시간을 더 산출하되, 상기 활성화 지터, 상기 종단간 지연시간 및 상기 제1 과정의 수행시간은 시스템 함수에 의한 경과 시간의 측정을 통해 산출되고, 상기 제3 과정의 수행시간은, 수행시간을 알고 있는 더미 과정을 상기 제3 과정의 전후에 추가하여 더미 태스크를 생성하고, 상기 더미 태스크의 수행시간을 측정하며, 상기 측정된 더미 태스크의 수행시간에서 상기 전후의 더미 과정의 수행시간을 뺄셈 연산하여 산출될 수 있다.
상기 M개의 프로세서 각각에는 하나 이상의 태스크가 분배되고, 상기 분배부는 K번의 분배 과정을 통해 태스크를 분배하되, 상기 K번의 분배 과정 중 j번째 태스크 분배 과정의 경우 상기 제1 과정의 수행시간을 크기를 기준으로 오름차순에 따라 태스크를 분배하고, 상기 K번의 분배 과정 중 j+1번째 태스크 분배 과정의 경우 상기 제1 과정의 수행시간을 크기를 기준으로 내림차순에 따라 태스크를 분배하고, 상기 j번째 태스크 분배 과정에서의 상기 제1 과정의 수행시간의 최대값은 상기 j+1번째 태스크 분배 과정에서의 상기 제1 과정의 수행시간의 최소값보다 클 수 있다.
상기 위상 설정부는 상기 N개의 태스크의 초기 위상을 설정하고, 상기 초기 위상을 기설정된 시간 간격에 따라 시간을 앞당기면서 충돌여부 검사를 수행하되, i-1번째 태스크의 위상, 상기 i-1번째 태스크의 단독 수행의 종단간 지연시간의 최대값 및 기 설정된 시간값을 덧셈 연산하여 상기 i번째 태스크의 초기 위상을 설정할 수 있다.
상기 i번째 태스크에 대한 위상 설정 시 i+1 번째 태스크부터 N번째 태스크까지 N-(i+1)개의 태스크가 함께 위상이 앞당겨질 수 있다.
상기 N개의 태스크의 주기를 설정하는 주기 설정부;를 더 포함하되, 상기 주기 설정부는 상기 N개의 태스크의 위상이 모두 설정된 경우 상기 위상이 설정된 N개의 태스크를 포함하는 제1 태스크 집합을 생성하고, 상기 태스크 집합을 이후 시간 영역에 복사(replica)하여 제2 태스크 집합을 생성하고, 상기 제1 태스크 집합과 상기 제2 태스크 집합 사이의 주기를 설정할 수 있다.
또한, 본 발명의 다른 실시예에 따르면, 시스템에서 수행되는 N개의 태스크를 스케쥴링하는 방법에 있어서, 상기 N개의 태스크 각각에 대해, 상기 태스크의 단독 수행의 활성화 지터의 확률값 및 종단간 지연시간의 확률값을 산출하는 단계; 상기 N개의 태스크를 상기 시스템에 포함된 M개의 프로세서로 분배하는 단계; 상기 분배된 상기 N개의 태스크의 위상을 설정하는 단계;를 포함하되, 상기 위상을 설정하는 단계는 상기 N개의 태스크의 순서에 따라 위상을 설정하되, 상기 N개의 태스크 중 i번째 태스크에 대해, 기설정된 시간 간격에 따라 시간을 앞당기면서 충돌여부 검사를 수행하되, 상기 충돌이 발생한 최초의 시간이 검출되는 경우 상기 최초 검출된 시간의 이전 시간을 상기 i번째 태스크의 위상으로 설정하고, 상기 충돌여부 검사는 상기 단독 수행의 활성화 지터의 확률값 및 종단간 지연시간의 확률값과, 상기 N개의 태스크 모두를 수행할 때의 태스크 수행의 활성화 지터 및 종단간 지연시간을 이용하여 수행될 수 있다.
본 발명에 따르면, 공유 자원 사용 충돌을 회피하여 실시간 제어 시스템의 성능을 최대로 할 수 있고, 동적으로 위상과 주기를 설정할 수 있는 장점이 있다.
도 1은 본 발명의 일 실시예에 따른 적용되는 태스크 스케쥴링 장치의 개략적인 구성을 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 태스크 스케쥴링 방법의 전체적인 흐름도를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 태스크의 스케쥴링에 이용되는 정보들의 개념을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 태스크 분배부의 태스크 분배 방식의 개념을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 위상 설정부의 초기 위상을 설정하는 방식의 개념을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 위상 설정부의 위상 설정의 개념을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 주기 설정부의 주기 설정의 개념을 설명하기 위한 도면이다.
본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "구성된다" 또는 "포함한다" 등의 용어는 명세서상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
이하, 본 발명의 다양한 실시예들을 첨부된 도면을 참조하여 상술한다.
도 1은 본 발명의 일 실시예에 따른 적용되는 태스크 스케쥴링 장치의 개략적인 구성을 도시한 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 태스크 스케쥴링 장치(100)는 제어 시스템에서 수행되는 실시간 제어 응용에서 N(2 이상의 정수임)개의 태스크 수행을 스케쥴링하는 것으로서, 산출부(110), 분배부(120), 위상 설정부(130) 및 주기 설정부(140)를 포함한다. 여기서, 제어 시스템은 M+1의 프로세서 즉, M(1 이상의 정수)개의 프로세서 및 하나의 추가 프로세서와, 하나의 시스템 버스를 포함한다.
그리고, 도 2는 본 발명의 일 실시예에 따른 태스크 스케쥴링 방법의 전체적인 흐름도를 도시한 도면이다.
이하, 도 1 및 도 2를 참조하여 각 구성 요소 별 기능 및 각 단계 별로 수행되는 과정을 상세하게 설명하기로 한다.
먼저, 단계(210)에서, 산출부(110)는 태스크의 스케쥴링에 이용되는 정보들을 산출한다. 여기서, 정보들은 태스크가 단독으로 수행되는 경우에서의 제1 과정의 수행시간, 제2 과정의 수행시간, 제3 과정의 수행시간, 활성화 지터(activation jitter) 및 종단간 지연시간(end-to-end delay)을 포함한다.
도 3은 본 발명의 일 실시예에 따른 태스크의 스케쥴링에 이용되는 정보들의 개념을 설명하기 위한 도면이다.
도 3의 (a)를 참조하면, 태스크는 제1 과정(stage), 제2 과정 및 제3 과정을 포함한다.
여기서, 제1 과정은 태스크에 대한 메인 프로세스를 실행하는 과정이고, 제2 과정은 실행된 메인 프로세스에 대한 I/O 메시지를 송수신하는 과정(즉 메모리와 입출력 장치에서 수행되는 입출력 단계의 과정)이며, 제3 과정은 실행된 메인 프로세스의 사후 프로세스를 실행하는 과정(일례로, 인터럽트 처리 과정)이다. 이 때, 제1 과정은 M개의 프로세서 또는 코어에서 수행되고, 제2 과정은 시스템 버스에서 수행되며, 제3 과정은 추가 프로세서 또는 코어에서 수행된다. 또한, 제1 과정 이후 제2 과정이 수행되고, 제2 과정 이후 제3 과정이 수행된다.
즉, 태스크는 아래의 수학식 1과 같이 표현될 수 있다.
Figure 112015116594499-pat00001
여기서, Ti는 i번째 태스크, Φi는 i번째 태스크의 위상, ei , s1는 i번째 태스크의 제1 과정의 수행시간, ei , s2는 i번째 태스크의 제2 과정의 수행시간, ei , s3는 i번째 태스크의 제3 과정의 수행시간을 각각 의미한다.
그리고, 활성화 지터는 제1 과정의 예상 시작시간과 실제 시작시간과의 차이값(오차)을 의미하고, 종단간 지연시간은 제1 과정의 시작시간과 제3 과정의 종료시간의 차이값을 의미한다.
요컨대, 산출부(110)는 태스크가 단독으로 수행되는 경우에, N개의 태스크 각각에 대해, 제1 과정의 수행시간, 제2 과정의 수행시간, 제3 과정의 수행시간, 활성화 지터 및 종단간 지연시간 등과 같은 정보들을 산출한다. 이 때, 상기 정보들은 미리 설정된 환경에서 반복적으로 산출된 값일 수 있다. 즉, 상기 정보들은 도 3의 (b)에 도시된 바와 같은 확률값일 수 있다.
이 때, 제1 과정의 수행시간, 활성화 지터 및 종단간 지연시간은 사용자 수준에서 커널의 수정 없이 시스템 함수에 의한 경과 시간의 측정을 통해 산출할 수 있다.
그리고, 제3 과정의 수행시간은, 수행시간을 알고 있는 더미 과정을 제3 과정의 전후에 추가하여 더미 태스크를 생성하고, 더미 태스크의 수행시간을 측정하며, 측정된 더미 태스크의 수행시간에서 상기 전후의 더미 과정의 수행시간을 뺄셈 연산함으로써 산출될 수 있다.
더미 태스크의 실행시간을 측정함으로써 산출될 수 있다. 또한, 제2 과정의 수행시간은 종단간 지연시간에서 제1 과정의 수행시간 및 제3 과정의 수행시간을 뺄셈 연산하여 산출될 수 있다. 즉, 제2 과정 및 제3 과정은 커널 내부 동작이므로 직접 측정이 불가능하며, 상기에서 설명한 방식을 통해 산출될 수 있다.
다음으로, 단계(220)에서, 분배부(120)는 N개의 태스크를 M개의 프로세서로 분배한다. 보다 상세하게, 분배부(120)는 N개의 태스크의 제1 과정을 M개의 프로세서로 분배한다.
이 때, M개의 프로세서 각각에는 하나 이상의 태스크가 분배되는데, 본 발명의 일 실시예에 따르면, 분배부(120)는 M개의 프로세서 각각에 대해 태스크의 제1 과정이 가급적 균일하게 배당되도록 태스크의 제1 과정을 분배한다.
도 4는 본 발명의 일 실시예에 따른 분배부(120)의 태스크 분배 방식의 개념을 설명하기 위한 도면이다.
도 4을 참조하면, 분배부(120)는 화살표의 방향을 따라서 태스크를 분배할 수 있으며, 이를 통해 각각의 프로세서는 균일하게 태스크를 분배받을 수 있다.
이를 위해, 분배부(120)는 K(2 이상의 정수)번의 분배 과정을 통해 태스크를 분배할 수 있다. 이 경우, K번의 분배 과정 중 j번째 태스크 분배 과정의 경우 제1 과정의 수행시간을 크기를 기준으로 오름차순에 따라 태스크를 분배하고, K번의 분배 과정 중 j+1번째 태스크 분배 과정의 경우 제1 과정의 수행시간을 크기를 기준으로 내림차순에 따라 태스크를 분배할 수 있다. 이 때, j번째 태스크 분배 과정에서의 제1 과정의 수행시간의 최대값은 j+1번째 태스크 분배 과정에서의 제1 과정의 수행시간의 최소값보다 클 수 있다.
계속하여, 단계(230)에서, 위상 설정부(130)는 분배된 N개의 태스크에 대한 초기 위상을 설정한다. 여기서, 위상은 태스크의 제1 과정의 위상일 수 있다.
도 5는 본 발명의 일 실시예에 따른 위상 설정부(130)의 초기 위상을 설정하는 방식의 개념을 설명하기 위한 도면이다.
도 5를 참조하면, 위상 설정부(130)는 산출부(110)에서 산출된 정보들을 이용하여 충돌없이 태스크가 수행될 수 있도록 하여 초기 위상을 설정한다.
이 때, 첫번째 태스크의 초기 위상은 0으로 설정한다. 그리고, 본 발명의 일 실시예에 따르면, 위상 설정부(130)는 i번째 위상의 경우, i-1번째 태스크의 위상, i-1번째 태스크의 단독 수행의 종단간 지연시간의 최대값 및 기 설정된 시간값을 덧셈 연산하여 i번째 태스크의 초기 위상을 설정할 수 있다. 이 때, 기 설정된 시간값은 발생 가능한 충돌을 방지하기 위한 충분히 큰 값을 의미한다.
다음으로, 단계(240)에서, 위상 설정부(130)는 N개의 태스크의 순서에 따라 위상을 조정, 즉 초기 위상 이후의 위상을 설정한다.
보다 상세하게, 위상 설정부(130)는 N개의 태스크 중 i번째 태스크에 대해, 기설정된 시간 간격에 따라 시간을 앞당기면서 충돌여부 검사를 수행한다. 즉, 위상 설정부(130)는 N개의 태스크의 초기 위상을 설정하고, 초기 위상을 기설정된 시간 간격에 따라 시간을 앞당기면서 충돌여부 검사할 수 있다.
이 후, 위상 설정부(130)는 충돌이 발생한 최초의 시간이 검출되는 경우 최초 검출된 시간의 이전 시간을 i번째 태스크의 위상으로 설정할 수 있다. 이 때, i번째 태스크에 대한 위상 설정 시 i+1 번째 태스크부터 N번째 태스크까지 N-(i+1)개의 태스크가 함께 위상이 앞당겨질 수 있다.
또한, 충돌여부 검사는 태스크의 단독 수행의 활성화 지터 및 종단간 지연시간과, N개의 태스크 모두를 수행할 때의 태스크 수행의 활성화 지터 및 종단간 지연시간을 이용하여 수행될 수 있다. 즉, 위상 설정부(130)는 N개의 태스크 모두를 수행할 때의 태스크 수행의 활성화 지터가 태스크의 단독 수행의 활성화 지터의 확률값 중 임계 확률값 이상이고, N개의 태스크 모두를 수행할 때의 태스크 수행의 종단간 지연시간이 태스크의 단독 수행의 종단간 지연시간 확률값 중 임계 확률값 이상인 경우 충돌이 발생된 것으로 판단할 수 있다.
도 6은 본 발명의 일 실시예에 따른 위상 설정부(130)의 위상 설정의 개념을 설명하기 위한 도면이다.
먼저, 첫번째 위상의 경우 초기 위상과 동일한 위상으로 설정된다.
그리고, 첫번째 위상이 고정된 상태에서 두번째 위상이 설정된다. 이 때, 위상 설정부(130)는 두번째 위상의 기설정된 시간 간격에 따라 시간을 앞당기면서(Φ2←Φ2-d) 충돌 여부를 검출한다. 여기서, 세번째 위상 및 네번째 위상 모두가 동일하게 시간이 앞당겨진다.
이 때, 위상 설정부(130)는 4개의 태스크 모두를 수행할 때의 두번째 태스크 수행의 활성화 지터가 두번째 태스크의 단독 수행의 활성화 지터의 확률값 중 임계 확률값 이상이고, 4개의 태스크 모두를 수행할 때의 두번째 태스크 수행의 종단간 지연시간이 두번째 태스크의 단독 수행의 종단간 지연시간 확률값 중 임계 확률값 이상인 경우 충돌이 발생한 것으로 판단된다. 상기 충돌여부 검사에 따라 두번째 태스크의 위상이 설정된다.
다음으로, 첫번째 위상 및 두번째 위상이 고정된 상태에서 세번째 위상이 설정되고, 첫번째 위상, 두번째 위상 및 세번째 위상이 고정된 상태에서 네번째 위상이 설정된다. 이 때, 두번째 위상과 동일하게 세번째 위상 및 네번째 위상이 설정된다.
마지막으로, 단계(250)에서, 주기 설정부(140)는 N개의 태스크의 주기를 설정한다.
보다 상세하게, 주기 설정부(140)는 N개의 태스크의 위상이 모두 설정된 경우 위상이 설정된 N개의 태스크를 포함하는 제1 태스크 집합을 생성하고, 태스크 집합을 이후 시간 영역에 복사(replica)하여 제2 태스크 집합을 생성하고, 제1 태스크 집합과 제2 태스크 집합 사이의 주기를 설정할 수 있다.
도 7은 본 발명의 일 실시예에 따른 주기 설정부(140)의 주기 설정의 개념을 설명하기 위한 도면이다.
도 7를 참조하면, 동일한 위상의 동일한 태스크 집합이 공통 주기를 가지고 반복되며, 주기 설정부(140)는 공통 주기를 최소화하는 기능을 수행한다. 이 때, 앞서 설명한 바와 같이 제1 태스크 집합 및 제2 태스크 집합을 설정하고, 주기 조정은 앞서 설명한 위상 조정과 유사하게 동작할 수 있다.
이에 따라 N개의 태스크의 위상 및 주기가 확정된다.
요컨대, 본 발명의 일 실시예에 따른 태스크 스케쥴링 장치(100) 및 방법은 태스크 스케줄링을 동적으로 할 수 있다. 실시간 제어 응용이 동작을 하면서 태스크 스케줄링을 수행하기 때문에 실시간 제어 응용이 제어 시스템에 종속되는 문제를 해결할 수 있다. 또한, 실시간 제어 시스템에 가장 알맞은 태스크 스케줄링 결과를 검출할 수 있으므로, 제어 시스템의 성능을 최대로 높일 수 있게 된다.
또한 앞서 설명한 기술적 내용들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예들을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 하드웨어 장치는 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.

Claims (13)

  1. 시스템에서 수행되는 N개의 태스크를 스케쥴링하는 장치에 있어서,
    상기 N개의 태스크 각각에 대해, 상기 태스크의 단독 수행의 활성화 지터 및 종단간 지연시간을 산출하는 산출부;
    상기 N개의 태스크를 상기 시스템에 포함된 M개의 프로세서로 분배하는 분배부;
    상기 분배된 상기 N개의 태스크의 위상을 설정하는 위상 설정부;를 포함하되,
    상기 위상 설정부는 상기 N개의 태스크의 순서에 따라 위상을 설정하되, 상기 N개의 태스크 중 i번째 태스크에 대해, 기설정된 시간 간격에 따라 시간을 앞당기면서 충돌여부 검사를 수행하되, 상기 충돌이 발생한 최초의 시간이 검출되는 경우 상기 검출된 최초의 시간의 이전 시간을 상기 i번째 태스크의 위상으로 설정하고,
    상기 충돌여부 검사는 상기 단독 수행의 활성화 지터 및 종단간 지연시간과, 상기 N개의 태스크 모두를 수행할 때의 태스크 수행의 활성화 지터 및 종단간 지연시간을 이용하여 수행되며,
    상기 태스크의 수행은 상기 태스크에 대한 메인 프로세스를 실행하는 제1 과정, 상기 실행된 메인 프로세스에 대한 I/O 메시지를 송수신하는 제2 과정 및 상기 실행된 메인 프로세스의 사후 프로세스를 실행하는 제3 과정을 포함하는 것을 특징으로 하는 태스크 스케쥴링 장치.
  2. 제1항에 있어서,
    상기 위상 설정부는, 상기 N개의 태스크 모두를 수행할 때의 태스크 수행의 활성화 지터가 상기 단독 수행의 활성화 지터의 확률값 중 임계 확률값 이상이고, 상기 N개의 태스크 모두를 수행할 때의 태스크 수행의 종단간 지연시간이 상기 단독 수행의 종단간 지연시간 확률값 중 임계 확률값 이상인 경우 상기 충돌이 발생된 것으로 판단하는 것을 특징으로 하는 태스크 스케쥴링 장치.
  3. 삭제
  4. 제1항에 있어서,
    상기 시스템은 하나의 추가 프로세서 및 하나의 시스템 버스를 포함하고,
    상기 제1 과정은 상기 M개의 프로세서에서 수행되고, 상기 제2 과정은 상기 시스템 버스에서 수행되고, 상기 제3 과정은 상기 추가 프로세서에서 수행되고, 상기 제1 과정 이후 상기 제2 과정이 수행되고, 상기 제2 과정 이후 상기 제3 과정이 수행되고,
    상기 활성화 지터는 상기 제1 과정의 예상 시작시간과 실제 시작시간과의 차이값이고, 상기 종단간 지연시간은 상기 제1 과정의 시작시간과 상기 제3 과정의 종료시간의 차이값인 것을 특징으로 하는 태스크 스케쥴링 장치.
  5. 제4항에 있어서,
    상기 산출부는 상기 제1 과정의 수행시간, 상기 제2 과정의 수행시간 및 상기 제3 과정의 수행시간을 더 산출하되,
    상기 활성화 지터, 상기 종단간 지연시간 및 상기 제1 과정의 수행시간은 시스템 함수에 의한 경과 시간의 측정을 통해 산출되고,
    상기 제3 과정의 수행시간은, 수행시간을 알고 있는 더미 과정을 상기 제3 과정의 전후에 추가하여 더미 태스크를 생성하고, 상기 더미 태스크의 수행시간을 측정하며, 상기 측정된 더미 태스크의 수행시간에서 상기 전후의 더미 과정의 수행시간을 뺄셈 연산하여 산출되고,
    상기 제2 과정의 수행시간은 상기 종단간 지연시간에서 상기 제1 과정의 수행시간 및 상기 제3 과정의 수행시간을 뺄셈 연산하여 산출되는 것을 특징으로 하는 태스크 스케쥴링 장치.
  6. 제1항에 있어서,
    상기 M개의 프로세서 각각에는 하나 이상의 태스크가 분배되고, 상기 분배부는 K번의 분배 과정을 통해 태스크를 분배하되,
    상기 K번의 분배 과정 중 j번째 태스크 분배 과정의 경우 상기 제1 과정의 수행시간을 크기를 기준으로 오름차순에 따라 태스크를 분배하고, 상기 K번의 분배 과정 중 j+1번째 태스크 분배 과정의 경우 상기 제1 과정의 수행시간을 크기를 기준으로 내림차순에 따라 태스크를 분배하고, 상기 j번째 태스크 분배 과정에서의 상기 제1 과정의 수행시간의 최대값은 상기 j+1번째 태스크 분배 과정에서의 상기 제1 과정의 수행시간의 최소값보다 큰 것을 특징으로 하는 태스크 스케쥴링 장치.
  7. 제1항에 있어서,
    상기 위상 설정부는 상기 N개의 태스크의 초기 위상을 설정하고, 상기 초기 위상을 기설정된 시간 간격에 따라 시간을 앞당기면서 충돌여부 검사를 수행하되,
    i-1번째 태스크의 위상, 상기 i-1번째 태스크의 단독 수행의 종단간 지연시간의 최대값 및 기 설정된 시간값을 덧셈 연산하여 상기 i번째 태스크의 초기 위상을 설정하는 것을 특징으로 하는 태스크 스케쥴링 장치.
  8. 제1항에 있어서,
    상기 i번째 태스크에 대한 위상 설정 시 i+1 번째 태스크부터 N번째 태스크까지 N-(i+1)개의 태스크가 함께 위상이 앞당겨지는 것을 특징으로 하는 태스크 스케쥴링 장치.
  9. 제1항에 있어서,
    상기 N개의 태스크의 주기를 설정하는 주기 설정부;를 더 포함하되,
    상기 주기 설정부는 상기 N개의 태스크의 위상이 모두 설정된 경우 상기 위상이 설정된 N개의 태스크를 포함하는 제1 태스크 집합을 생성하고, 상기 태스크 집합을 이후 시간 영역에 복사(replica)하여 제2 태스크 집합을 생성하고, 상기 제1 태스크 집합과 상기 제2 태스크 집합 사이의 주기를 설정하는 것을 특징으로 하는 태스크 스케쥴링 장치.
  10. M개의 프로세서, 하나의 추가 프로세서 및 하나의 시스템 버스를 포함하는 시스템에서 수행되는 N개의 태스크를 스케쥴링하는 방법에 있어서,
    상기 N개의 태스크 각각에 대해, 상기 태스크의 단독 수행의 활성화 지터의 확률값 및 종단간 지연시간의 확률값을 산출하는 단계;
    상기 N개의 태스크를 상기 M개의 프로세서로 분배하는 단계;
    상기 분배된 상기 N개의 태스크의 위상을 설정하는 단계;를 포함하되,
    상기 위상을 설정하는 단계는 상기 N개의 태스크의 순서에 따라 위상을 설정하되, 상기 N개의 태스크 중 i번째 태스크에 대해, 기설정된 시간 간격에 따라 시간을 앞당기면서 충돌여부 검사를 수행하되, 상기 충돌이 발생한 최초의 시간이 검출되는 경우 상기 검출된 최초의 시간의 이전 시간을 상기 i번째 태스크의 위상으로 설정하고,
    상기 충돌여부 검사는 상기 단독 수행의 활성화 지터의 확률값 및 종단간 지연시간의 확률값과, 상기 N개의 태스크 모두를 수행할 때의 태스크 수행의 활성화 지터 및 종단간 지연시간을 이용하여 수행되며,
    상기 태스크의 수행은 상기 M개의 프로세서에서 수행되며 상기 태스크에 대한 메인 프로세스를 실행하는 제1 과정, 상기 시스템 버스에서 상기 실행된 메인 프로세스에 대한 I/O 메시지를 송수신하는 제2 과정 및 상기 추가 프로세서에서 수행되며 상기 실행된 메인 프로세스의 사후 프로세스를 실행하는 제3 과정을 포함하는 것을 특징으로 하는 태스크 스케쥴링 방법.
  11. 제10항에 있어서,
    상기 위상을 설정하는 단계는 상기 N개의 태스크 모두를 수행할 때의 태스크 수행의 활성화 지터가 상기 단독 수행의 활성화 지터의 확률값 중 임계 확률값 이상이고, 상기 N개의 태스크 모두를 수행할 때의 태스크 수행의 종단간 지연시간이 상기 단독 수행의 종단간 지연시간 확률값 중 임계 확률값 이상인 경우 상기 충돌이 발생된 것으로 판단하는 것을 특징으로 하는 태스크 스케쥴링 방법.
  12. 제10항에 있어서,
    상기 시스템은 하나의 추가 프로세서 및 하나의 시스템 버스를 포함하고,
    상기 산출하는 단계는 상기 제1 과정의 수행시간, 상기 제2 과정의 수행시간 및 상기 제3 과정의 수행시간을 더 산출하되, 상기 활성화 지터, 상기 종단간 지연시간 및 상기 제1 과정의 수행시간은 시스템 함수에 의한 경과 시간의 측정을 통해 산출되고, 상기 제3 과정의 수행시간은, 수행시간을 알고 있는 더미 과정을 상기 제3 과정의 전후에 추가하여 더미 태스크를 생성하고 상기 더미 태스크의 실행시간을 측정함으로써 산출되고, 상기 제2 과정의 수행시간은 상기 종단간 지연시간에서 상기 제1 과정의 수행시간 및 상기 제3 과정의 수행시간을 뺄셈 연산하여 산출되는 것을 특징으로 하는 태스크 스케쥴링 방법.
  13. 제10항 내지 제11항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
KR1020150168405A 2015-11-30 2015-11-30 실시간 제어 응용에 적용되는 태스크 스케쥴링 장치 및 방법 KR101674324B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150168405A KR101674324B1 (ko) 2015-11-30 2015-11-30 실시간 제어 응용에 적용되는 태스크 스케쥴링 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150168405A KR101674324B1 (ko) 2015-11-30 2015-11-30 실시간 제어 응용에 적용되는 태스크 스케쥴링 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101674324B1 true KR101674324B1 (ko) 2016-11-22

Family

ID=57540399

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150168405A KR101674324B1 (ko) 2015-11-30 2015-11-30 실시간 제어 응용에 적용되는 태스크 스케쥴링 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101674324B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101757886B1 (ko) 2017-01-11 2017-07-13 엘아이지넥스원 주식회사 태스크 분할 할당 시스템
KR101757882B1 (ko) 2017-01-11 2017-07-26 엘아이지넥스원 주식회사 태스크 분할 할당 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130024352A (ko) * 2011-08-31 2013-03-08 숭실대학교산학협력단 태스크 주기 스케쥴링 장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130024352A (ko) * 2011-08-31 2013-03-08 숭실대학교산학협력단 태스크 주기 스케쥴링 장치 및 방법

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
강형석 외 2명. 'M2M 기반 생산 시스템을 위한 응답 시간 분석'. 대한기계학회 2012년도 IT융합부문 춘계학술대회 논문집, 2012.6, pp.125-126. *
김도현 외 4명. ‘실시간 정밀 모션 제어를 위한 안드로이드 응용 설계 및 구현’. 정보과학회 컴퓨팅의 실제 논문지 제21권 제4호, 2015.04, pp.315-319.* *
최진영. ‘EtherCAT 기반 분산 실시간 시스템에서의 모션 제어 태스크의 응답 시간 분석 및 개선’. 숭실대학교 정보통신공학과 석사학위논문, 2013.12, pp.1-26.* *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101757886B1 (ko) 2017-01-11 2017-07-13 엘아이지넥스원 주식회사 태스크 분할 할당 시스템
KR101757882B1 (ko) 2017-01-11 2017-07-26 엘아이지넥스원 주식회사 태스크 분할 할당 방법

Similar Documents

Publication Publication Date Title
US20220027202A1 (en) Stream-based accelerator processing of computational graphs
US10789544B2 (en) Batching inputs to a machine learning model
Pellizzoni et al. Worst case delay analysis for memory interference in multicore systems
JP6539236B2 (ja) 効果的なニューラルネットワークの配置に用いるシステム及び方法
US9569262B2 (en) Backfill scheduling for embarrassingly parallel jobs
US10679132B2 (en) Application recommending method and apparatus
US10423442B2 (en) Processing jobs using task dependencies
Xie et al. Pandas: robust locality-aware scheduling with stochastic delay optimality
CN108205469B (zh) 一种基于MapReduce的资源分配方法及服务器
US9471387B2 (en) Scheduling in job execution
Belwal et al. Determining actual response time in P-FRP
Marinho et al. Limited pre-emptive global fixed task priority
US9542294B2 (en) Method to apply perturbation for resource bottleneck detection and capacity planning
KR101674324B1 (ko) 실시간 제어 응용에 적용되는 태스크 스케쥴링 장치 및 방법
Zhou et al. Improved carry-in workload estimation for global multiprocessor scheduling
Wu et al. Dynamic acceleration of parallel applications in cloud platforms by adaptive time-slice control
Zhang et al. Sensitivity analysis for edf scheduled arbitrary deadline real-time systems
Thekkilakattil et al. Multiprocessor fixed priority scheduling with limited preemptions
JP6627475B2 (ja) 処理リソース制御プログラム、処理リソース制御装置、および処理リソース制御方法
Gholami et al. Checkpoint scheduling for shared usage of burst-buffers in supercomputers
Kelly et al. Fixed-priority global scheduling for mixed-criticality real-time systems
CN113312167B (zh) 业务控制方法和装置、电子设备、计算机可读介质
JP5949245B2 (ja) 情報処理装置、実行プログラムおよび実行方法
Nguyen et al. Approximation scheme for real-time tasks under fixed-priority scheduling with deferred preemption
Trivedi Real time operating system (RTOS) with its effective scheduling techniques

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant