KR101335038B1 - Periodic and aperiodic task scheduling algorithm based on topological sort and residual time - Google Patents

Periodic and aperiodic task scheduling algorithm based on topological sort and residual time Download PDF

Info

Publication number
KR101335038B1
KR101335038B1 KR1020110085508A KR20110085508A KR101335038B1 KR 101335038 B1 KR101335038 B1 KR 101335038B1 KR 1020110085508 A KR1020110085508 A KR 1020110085508A KR 20110085508 A KR20110085508 A KR 20110085508A KR 101335038 B1 KR101335038 B1 KR 101335038B1
Authority
KR
South Korea
Prior art keywords
task
periodic
time
scheduling
tasks
Prior art date
Application number
KR1020110085508A
Other languages
Korean (ko)
Other versions
KR20130022707A (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 KR1020110085508A priority Critical patent/KR101335038B1/en
Priority to US13/430,549 priority patent/US8924976B2/en
Publication of KR20130022707A publication Critical patent/KR20130022707A/en
Application granted granted Critical
Publication of KR101335038B1 publication Critical patent/KR101335038B1/en

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
    • 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/44Arrangements for executing specific programs
    • 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/461Saving or restoring of program or task context
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명의 실시예들은 실시간 시스템에서 태스크들을 스케줄링하여 처리하는 기술에 관한 것으로, 특히 태스크들의 특성을 고려하여 태스크들 각각을 효율적으로 스케줄링하여 처리하는 알고리즘에 관련된다. 특히, 본 발명의 실시에에 의하면, 하나의 시스템에서 주기 태스크들 및 비주기 실시간 태스크를 함께 수행할 수 있고, 주기 태스크들 간의 선행 관계를 만족시키는 스케줄링 및 주기 태스크들의 스케줄링 시간에 의해 남는 잉여 시간에 비주기 실시간 태스크를 효율적으로 실행시킬 수 있는 스케줄링이 가능하다.Embodiments of the present invention relate to a technique for scheduling and processing tasks in a real-time system, and more particularly, to an algorithm for efficiently scheduling and processing each of tasks in consideration of characteristics of the tasks. In particular, according to the embodiment of the present invention, the surplus time remaining by the scheduling time of the scheduling and periodic tasks, which can perform periodic tasks and aperiodic real-time tasks together in one system, and satisfy the preceding relationship between the periodic tasks. Scheduling is possible to efficiently execute acyclic real-time tasks.

Description

위상 정렬 및 잉여 시간을 기반으로 하는 주기 및 비주기 실시간 태스크 스케줄링 알고리즘{PERIODIC AND APERIODIC TASK SCHEDULING ALGORITHM BASED ON TOPOLOGICAL SORT AND RESIDUAL TIME}Periodic and non-periodic real-time task scheduling algorithm based on phase alignment and surplus time {PERIODIC AND APERIODIC TASK SCHEDULING ALGORITHM BASED ON TOPOLOGICAL SORT AND RESIDUAL TIME}

아래 실시예에서는 실시간 시스템에서 태스크들을 스케줄링하여 처리하는 기술에 관한 것으로, 특히 태스크들의 특성을 고려하여 태스크들 각각을 효율적으로 스케줄링하여 처리하는 알고리즘에 관련된다.The following embodiment relates to a technique for scheduling and processing tasks in a real-time system, and more particularly, to an algorithm for efficiently scheduling and processing each task in consideration of characteristics of the tasks.

일반적인 실시간 시스템은 비주기 실시간 태스크, 주기 태스크 및 비실시간 태스크를 포함하는 태스크들을 처리한다. 특히, 주기 태스크는 특정 주기에 따라 수행되는 태스크로, 데이터를 생성하거나 다른 태스크로부터 태스크를 받아 처리한 후 다른 태스크로 전송하는 것 및 다른 태스크로부터 전송된 데이터를 처리만하는 것으로 구분될 수 있다.A typical real time system handles tasks including aperiodic real time tasks, periodic tasks and non real time tasks. In particular, the periodic task is a task performed according to a specific period, and may be divided into generating data, receiving a task from another task, processing the task, and transmitting the data to another task, and processing only data transmitted from another task.

이러한 주기 태스크는 그 동작에 있어서 선행관계가 존재하기 때문에, 가능한 한 그 주기 안에서 모두 수행될 필요가 있고, 또한 정해진 선행 제약에 따라서 데이터를 생성 및 사용해야할 필요가 있다. 따라서, 주기 태스크와 관련된 실시간 시스템의 스케줄링은 NP-Nard 문제로 알려져있기 때문에 휴리스틱(Heuristic) 방법을 이용하여 최적 보다는 차선의 해결책을 얻는 기법들이 연구되고 있다. 또한, 주기 태스크를, 알람과 같이 불특정한 시간에 발생하는 이벤트를 처리하는 비주기 실시간 태스크를 함께 처리하는 스케줄링 기법도 연구되고 있다.Since these periodic tasks have a predecessor in their operation, they need to be performed all within the period as much as possible, and also need to generate and use data in accordance with established prior constraints. Therefore, since scheduling of a real-time system related to a periodic task is known as an NP-Nard problem, techniques for obtaining a suboptimal solution rather than an optimum using a heuristic method have been studied. In addition, a scheduling technique for processing a periodic task together with an aperiodic real-time task that processes an event occurring at an unspecified time such as an alarm has also been studied.

한편, 실시간 시스템의 스케줄링은 스케줄링이 이루어지는 시점에 따라 온라인(on-line) 스케줄링 및 오프라인(off-line) 스케줄링으로 구분될 수 있다. 온라인 스케줄링은 유연성이라는 정점이 있지만, 태스크간 선행 제약 등의 문제를 해결하는데 한계가 있을 수 있다.Meanwhile, scheduling of a real-time system may be classified into on-line scheduling and off-line scheduling according to a time point at which scheduling is performed. Online scheduling is a matter of flexibility, but there may be limitations in solving problems such as precedence constraints between tasks.

또한, 오프라인 스케줄링 방법은 시스템의 수행 전에 주기 태스크들의 가동 시간 또는 우선순위를 미리 할당하는 것이기 때문에, 불특정한 시간에 발생하는 비주기 실시간 태스크를 스케줄링하기에는 적합하지 못할 수 있다.In addition, the offline scheduling method may not be suitable for scheduling non-periodic real-time tasks that occur at an unspecified time since the offline scheduling method preallocates the uptime or priority of periodic tasks prior to the performance of the system.

본 발명의 실시예에 의하면, 하나의 시스템에서 주기 태스크와 비주기 실시간 태스크를 함께 수행할 수 있는 위상 정렬 및 잉여 시간을 기반으로 하는 주기 및 비주기 실시간 태스크 스케줄링 알고리즘을 제공할 수 있다.According to an embodiment of the present invention, a periodic and aperiodic real time task scheduling algorithm based on phase alignment and surplus time that can perform a periodic task and an aperiodic real time task in one system can be provided.

특히, 본 발명의 실시예에 의하면, 주기 태스크들 간의 선행 관계를 만족시키는 스케줄링을 할 수 있으며, 주기 태스크들의 스케줄링 시간에 의해 남는 잉여 시간에 비주기 실시간 태스크를 실행할 수 있도록 스케줄링할 수 있는 위상 정렬 및 잉여 시간을 기반으로 하는 주기 및 비주기 실시간 태스크 스케줄링 알고리즘을 을 제공할 수 있다.In particular, according to an embodiment of the present invention, it is possible to schedule to satisfy the preceding relationship between the periodic tasks, phase alignment that can be scheduled to execute aperiodic real-time task in the surplus time remaining by the scheduling time of the periodic tasks And a periodic and aperiodic real-time task scheduling algorithm based on the surplus time.

본 발명의 일 실시예에 따른 스케줄링 알고리즘 수행 방법에 있어서, 복수의 주기 태스크들 및 적어도 하나의 비주기 실시간 태스크를 수행하는 시스템에서의 스케줄링 알고리즘 수행 방법으로서, 상기 복수의 주기 태스크들의 서로간의 선행 관계를 고려하여, 상기 복수의 주기 태스크들 각각의 스케줄링을 수행하는 단계와, 상기 시스템으로부터 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링이 요청되면, 상기 복수의 주기 태스크들의 스케줄링 시간의 잉여 시간(Residual Time)에 대한 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링을 수행하는 단계를 포함한다.A method of performing a scheduling algorithm according to an embodiment of the present invention, comprising: a method of performing a scheduling algorithm in a system for performing a plurality of periodic tasks and at least one aperiodic real-time task, the preceding relation of the plurality of periodic tasks In consideration of the above, performing the scheduling of each of the plurality of periodic tasks, and if the scheduling of the at least one aperiodic real-time task is requested from the system, a surplus time of the scheduling time of the plurality of periodic tasks Scheduling the at least one aperiodic real-time task for.

이때, 상기 복수의 주기 태스크들 각각의 스케줄링을 수행하는 단계는 상기 복수의 주기 태스크들 각각의 주기 및 수행 순서에 기초하여, 상기 복수의 주기 태스크들 중에서 그래프 구조상 에서 진입 차수가 적은 태스크를 우선적으로 스케줄링할 수 있다.In this case, the scheduling of each of the plurality of periodic tasks may be performed based on a period and an execution order of each of the plurality of periodic tasks. Can be scheduled.

또한, 상기 복수의 주기 태스크들 각각의 스케줄링을 수행하는 단계는 상기 복수의 주기 태스크들 중 그래프 구조 상에서 진입 차수가 0인 정점의 태스크를 반복하여 삭제하는 단계와, 상기 반복하여 삭제된 주기 태스크들을 삭제 순서에 따라 위상 정렬하여, 우선 순위를 할당하는 단계와, 상기 할당된 우선 순위를 고려하여, 상기 복수의 주기 태스크들의 스케줄링을 수행하는 단계를 포함할 수 있다.In addition, performing scheduling of each of the plurality of periodic tasks may include repeatedly deleting a task of a vertex having an entry order of zero on a graph structure among the plurality of periodic tasks, and periodically deleting the repeated periodic tasks. The method may include performing a phase alignment according to the deleting order, assigning priorities, and scheduling the plurality of periodic tasks in consideration of the assigned priorities.

또한, 상기 진입 차수가 0인 정점의 태스크가 복수인 경우, 상기 진입 차수가 0인 정점의 태스크를 반복하여 삭제하는 단계는 상기 정점의 복수의 태스크들의 주기를 비교하고, 상기 비교 결과에 따라 주기가 더 짧은 태스크를 먼저 삭제할 수 있다.In addition, when there are a plurality of tasks of a vertex having an entry order of 0, the step of repeatedly deleting the tasks of a vertex having an entry order of zero compares periods of a plurality of tasks of the vertices and performs a period according to the comparison result. Can delete the shorter task first.

또한, 상기 스케줄링 알고리즘 수행 방법은 상기 복수의 주기 태스크들의 스케줄링 시간에 의한 잉여 시간(Residual Time)과 상기 스케줄링이 요청된 비주기 실시간 태스크의 수행 시간보다 큰 지의 여부에 따라, 상기 스케줄링이 요청된 비주기 실시간 태스크의 실행을 수락하는 단계를 더 포함할 수 있다.In addition, the method of performing the scheduling algorithm may be configured to determine whether the scheduling is requested according to a residual time by a scheduling time of the plurality of periodic tasks and whether the scheduling is greater than an execution time of the requested aperiodic real-time task. The method may further include accepting execution of the periodic real-time task.

또한, 상기 스케줄링 알고리즘 수행 방법은 상기 스케줄링이 요청된 비주기 실시간 태스크의 실행이 수락되면, 상기 스케줄링이 요청된 비주기 실시간 태스크의 우선순위를 최상위로 할당하는 단계와, 상기 복수의 주기 태스크들의 임계 시간을 갱신하는 단계와, 상기 갱신에 의해 마감이 임박한 임계 시간의 주기 태스크가 있으면, 상기 마감이 임박한 주기 태스크를 상기 비주기 실시간 태스크보다 먼저 수행하는 단계를 더 포함할 수 있다.The scheduling algorithm may further include allocating a priority of the aperiodic realtime task for which the scheduling is requested to the highest level when execution of the aperiodic realtime task for which the scheduling is requested is accepted, and a threshold of the plurality of periodic tasks. The method may further include updating a time and, if there is a periodic task of a critical time at which the deadline is imminent by the updating, performing the periodic task of which the deadline is imminent before the aperiodic real-time task.

또한, 상기 마감이 임박한 주기 태스크를 상기 비주기 실시간 태스크보다 먼저 수행하는 단계는 상기 비주기 실시간 태스크의 우선 순위를 최하위로 설정하는 단계와, 상기 마감이 임박한 주기 태스크를 실행하는 단계와, 상기 마감이 임박한 주기 태스크를 실행이 끝나면, 상기 비주기 실시간 태스크의 우선 순위를 최상위로 재설정하는 단계를 포함할 수 있다.In addition, the performing of the periodic task near the end of the non-periodic real-time task is the step of setting the priority of the non-periodic real-time task to the lowest, executing the periodic task that is close to the deadline, the deadline When execution of the impending periodic task is finished, resetting the priority of the aperiodic real-time task to the highest level.

본 발명의 다른 실시예에 따른 스케줄링 장치는 복수의 주기 태스크들 및 적어도 하나의 비주기 실시간 태스크를 수행하는 시스템에서의 스케줄링 장치에 있어서, 상기 복수의 주기 태스크들의 서로간의 선행 관계를 고려하여, 상기 복수의 주기 태스크들 각각의 스케줄링을 수행하는 주기 태스크 스케줄러와, 상기 시스템으로부터 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링 요청을 수신하는 스케줄링 요청 수신부와, 상기 복수의 주기 태스크들의 스케줄링 시간의 잉여 시간(Residual Time)에 대하여 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링을 수행하는 비주기 실시간 태스크 스케줄러를 포함한다.According to another aspect of the present invention, there is provided a scheduling apparatus in a system for performing a plurality of periodic tasks and at least one aperiodic real-time task, in consideration of a preceding relationship between the plurality of periodic tasks. A periodic task scheduler performing scheduling of each of the plurality of periodic tasks, a scheduling request receiver configured to receive a scheduling request of the at least one aperiodic real-time task from the system, and an excess time of a scheduling time of the plurality of periodic tasks ( And aperiodic real time task scheduler for performing scheduling of the at least one aperiodic real time task with respect to a residual time.

이때, 상기 주기 태스크 스케줄러는 상기 복수의 주기 태스크들 각각의 주기 및 수행 순서에 기초하여, 상기 복수의 주기 태스크들 중에서 그래프 구조상 에서 진입 차수가 적은 태스크를 우선적으로 스케줄링할 수 있다.In this case, the periodic task scheduler may preferentially schedule a task having a small entry order in the graph structure among the plurality of periodic tasks based on the period and the execution order of each of the plurality of periodic tasks.

또한, 상기 주기 태스크 스케줄러는 상기 복수의 주기 태스크들 중 그래프 구조 상에서 진입 차수가 0인 정점의 태스크를 반복하여 삭제하고, 상기 반복하여 삭제된 주기 태스크들을 삭제 순서에 따라 위상 정렬하여, 우선 순위를 할당하고, 상기 할당된 우선 순위를 고려하여, 상기 복수의 주기 태스크들의 스케줄링을 수행할 수 있다.In addition, the periodic task scheduler repeatedly deletes a task of a vertex having an entry order of zero on a graph structure among the plurality of periodic tasks, and phase-aligns the repeatedly deleted periodic tasks according to an order of deletion, thereby improving priority. Allocate and schedule the plurality of periodic tasks in consideration of the assigned priority.

또한, 상기 진입 차수가 0인 정점의 태스크가 복수인 경우, 상기 주기 태스크 스케줄러는 상기 정점의 복수의 태스크들의 주기를 비교하고, 상기 비교 결과에 따라 주기가 더 짧은 태스크를 먼저 삭제할 수 있다.In addition, when there are a plurality of tasks of a vertex having an entry order of zero, the periodic task scheduler may compare the periods of a plurality of tasks of the vertices and delete a task having a shorter period according to the comparison result.

또한, 상기 비주기 실시간 태스크 스케줄러는 상기 복수의 주기 태스크들의 스케줄링 시간에 의한 잉여 시간(Residual Time)과 상기 스케줄링이 요청된 비주기 실시간 태스크의 수행 시간보다 큰 지의 여부를 판단하고, 그 판단 결과, 상기 잉여 시간이 상기 스케줄링이 요청된 비주기 실시간 태스크의 수행 시간보다 더 큰 경우에 상기 스케줄링이 요청된 비주기 실시간 태스크의 실행을 수락할 수 있다.In addition, the aperiodic real time task scheduler determines whether the scheduling time is greater than the residual time due to the scheduling time of the plurality of periodic tasks and the execution time of the requested aperiodic real time task, and as a result of the determination, When the surplus time is greater than the execution time of the aperiodic real time task for which the scheduling is requested, the execution of the aperiodic real time task for which the scheduling is requested may be accepted.

또한, 상기 비주기 실시간 태스크 스케줄러는 상기 스케줄링이 요청된 비주기 실시간 태스크의 실행이 수락되면, 상기 스케줄링이 요청된 비주기 실시간 태스크의 우선순위를 최상위로 할당하고, 상기 복수의 주기 태스크들의 임계 시간을 갱신하고, 상기 갱신에 의해 마감이 임박한 임계 시간의 주기 태스크가 있으면, 상기 마감이 임박한 주기 태스크를 상기 비주기 실시간 태스크보다 먼저 수행할 수 있다.The aperiodic real time task scheduler may assign the priority of the aperiodic real time task for which scheduling is requested to the highest level when the execution of the aperiodic real time task for which the scheduling is requested is accepted, and the threshold time of the plurality of periodic tasks. If there is a periodic task of a critical time when the deadline is imminent by the update, the periodic task that is imminent due to the deadline may be performed before the aperiodic real-time task.

또한, 상기 비주기 실시간 태스크 스케줄러는 상기 마감이 임박한 주기 태스크를 상기 비주기 실시간 태스크보다 먼저 수행하기 위하여, 상기 비주기 실시간 태스크의 우선 순위를 최하위로 설정하고, 상기 마감이 임박한 주기 태스크를 실행하고, 상기 마감이 임박한 주기 태스크를 실행이 끝나면, 상기 비주기 실시간 태스크의 우선 순위를 최상위로 재설정할 수 있다.The non-periodic real-time task scheduler may set the priority of the non-periodic real-time task to the lowest level and execute the periodic task that is near the deadline, in order to perform the periodic task with the deadline ahead of the aperiodic real-time task. When the execution of the periodic task that is about to be completed is finished, the priority of the aperiodic real time task may be reset to the highest level.

본 발명의 또 다른 실시예에 따른 스케줄링 알고리즘은 복수의 주기 태스크들 및 적어도 하나의 비주기 실시간 태스크를 수행하는 시스템을 위한 스케줄링 알고리즘\으로서, 상기 복수의 주기 태스크들의 서로간의 선행 관계를 고려하여, 상기 복수의 주기 태스크들 각각의 스케줄링을 수행하는 주기 태스크 스케줄링 알고리즘과, 상기 시스템으로부터 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링 요청이 수신됨에 따라, 상기 복수의 주기 태스크들의 스케줄링 시간의 잉여 시간(Residual Time)에 대하여 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링을 수행하는 비주기 실시간 태스크 스케줄링 알고리즘을 포함한다.Scheduling algorithm according to another embodiment of the present invention is a scheduling algorithm for a system for performing a plurality of periodic tasks and at least one aperiodic real-time task, in consideration of the preceding relationship of the plurality of periodic tasks, A periodic task scheduling algorithm that performs scheduling of each of the plurality of periodic tasks, and as the scheduling request of the at least one aperiodic real-time task is received from the system, a surplus time of the scheduling time of the plurality of periodic tasks. And aperiodic real time task scheduling algorithm for performing scheduling of the at least one aperiodic real time task with respect to Time.

도 1은 본 발명의 일 실시예에 따른 스케줄링 알고리즘에서 주기 태스크들의 선행 관계를 설명하기 위한 도면.
도 2는 본 발명의 일 실시예에 따른 스케줄링 알고리즘에서 인접 리스트를 기초로 한 주기 태스크들의 그래프 구조 예시를 보여주는 도면.
도 3은 본 발명의 일 실시예에 따른 스케줄링 알고리즘에서, 주기 태스크들에게 우선 순위를 할당하는 알고리즘.
도 4는 도 3에서 보여주는 우선 순위 할당 알고리즘에 의해 우선 순위가 할당되는 과정을 설명하기 위한 도면.
도 5는 본 발명의 일 실시예에 따른 스케줄링 알고리즘에서 위상 정렬 기반 우선 순위 할당 알고리즘에 의한 스케줄링 결과 예시를 보여주는 도면.
도 6은 본 발명의 다른 실시예에 따른 스케줄링 방법을 수행할 수 있는 스케줄링 장치의 구성을 보여주는 도면.
도 7은 상기의 스케줄링 장치에 의해 스케줄링된 결과를 예시한 도면.
도 8은 도 6에 도시된 비주기 실시간 태스크 스케줄러의 동작을 간략하게 보여주는 도면.
1 is a view for explaining the precedence of periodic tasks in a scheduling algorithm according to an embodiment of the present invention.
2 is a diagram illustrating an example of a graph structure of periodic tasks based on a neighbor list in a scheduling algorithm according to an exemplary embodiment of the present invention.
3 is an algorithm for assigning priorities to periodic tasks in a scheduling algorithm according to an embodiment of the present invention.
FIG. 4 is a view for explaining a process of assigning priority by a priority assignment algorithm shown in FIG.
5 is a diagram illustrating an example of a scheduling result by a phase alignment based priority allocation algorithm in a scheduling algorithm according to an embodiment of the present invention.
6 is a diagram illustrating a configuration of a scheduling apparatus capable of performing a scheduling method according to another embodiment of the present invention.
7 is a diagram illustrating a result scheduled by the scheduling apparatus.
FIG. 8 is a simplified view of the operation of the aperiodic real time task scheduler shown in FIG.

이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 발명의 스케줄링 알고리즘은 주기 태스크에 대한 오프라인 스케줄링 방법 및 비주기 실시간 태스크에 대한 온라인 스케줄링 방법을 제공한다. The scheduling algorithm of the present invention provides an offline scheduling method for periodic tasks and an online scheduling method for aperiodic real-time tasks.

여기서, 오프라인 스케줄링 방법은 주기 태스크들의 주기 및 위상 정렬(topological sort)에 기초하여, 오프라인 상에서의 우선 순위에 따른 주기 태스크들의 선행 관계를 고려하여 주기 태스크들을 스케줄링하는 방법이다. 온라인 스케줄링 방법은 오프라인 스케줄링에 의해 스케줄링된 주기 태스크들의 잉여시간(Residual Time)을 사용하여 비주기 실시간 태스크의 수락 여부를 결정하고, 우선 순위를 할당하는 방법이다.Here, the offline scheduling method is a method of scheduling periodic tasks in consideration of the prior relationship of the periodic tasks according to the priority on the offline based on the periodic and topological sort of the periodic tasks. The online scheduling method is a method of determining whether to accept an aperiodic real time task using residual time of periodic tasks scheduled by offline scheduling and assigning a priority.

나아가, 본 발명의 스케줄링 알고리즘은 실시예로서, 동일 주기의 주기 태스크들을 하나의 집합으로 표현할 수 있다. 또한, 본 발명의 스케줄링 알고리즘은 슬랙 테이블을 이용하는 대신에, 주기 태스크 집합의 파라메터(주기, 수행 시간, 발생 빈도)를 동적으로 갱신하여 주기 태스크의 잉여시간을 산출할 수 있다. 이에 따라, 본 발명은 슬렉 테이블의 생성에 필요한 메모리 낭비를 줄일 수 있으며, 주기 태스크 집합을 이용함을 통해 이전보다 계산량을 줄일 수 있다.Furthermore, according to an embodiment of the present invention, the scheduling algorithm may represent the periodic tasks of the same period as a set. In addition, instead of using the slack table, the scheduling algorithm of the present invention can dynamically calculate the surplus time of the periodic task by dynamically updating the parameters (period, execution time, frequency of occurrence) of the periodic task set. Accordingly, the present invention can reduce the memory waste required for the generation of the slack table, it is possible to reduce the amount of calculation than before by using a periodic task set.

본 발명의 스케줄링 알고리즘은 실시예로서, 태스크의 임계 시간을 사용하여 비주기 실시간 태스크의 빠른 응답 시간을 만족시킬 수 있다.According to an embodiment of the present invention, the scheduling algorithm may satisfy the fast response time of the aperiodic real time task using the threshold time of the task.

나아가, 본 발명의 스케줄링 알고리즘의 시스템 모델은 아래와 같이 구현될 수 있다. 시스템 모델은 실시예로서, 주기 태스크

Figure 112011066407199-pat00001
는 본 발명의 일 실시예에 따라
Figure 112011066407199-pat00002
의 각각의 요소에 따라 그 특성이 표현될 수 있다. 여기서,
Figure 112011066407199-pat00003
는 주기 태스크
Figure 112011066407199-pat00004
의 수행 시간을 나타내고,
Figure 112011066407199-pat00005
는 주기 태스크
Figure 112011066407199-pat00006
의 주기를 나타내고,
Figure 112011066407199-pat00007
는 우선 순위를 나타내고,
Figure 112011066407199-pat00008
는 주기 태스크
Figure 112011066407199-pat00009
에서 생산되는 데이터를 소비하는 태스크로 연결되는 간선들을 나타내고,
Figure 112011066407199-pat00010
는 주기 태스크
Figure 112011066407199-pat00011
가 사용하는 데이터를 생산하는 생산자 태스크의 집합을 나타낸다.Furthermore, the system model of the scheduling algorithm of the present invention can be implemented as follows. System model is an embodiment, the periodic task
Figure 112011066407199-pat00001
According to one embodiment of the present invention
Figure 112011066407199-pat00002
Depending on each element of, its characteristics can be expressed. here,
Figure 112011066407199-pat00003
Cycle task
Figure 112011066407199-pat00004
Represents the execution time of,
Figure 112011066407199-pat00005
Cycle task
Figure 112011066407199-pat00006
Represents the period of,
Figure 112011066407199-pat00007
Indicates priority,
Figure 112011066407199-pat00008
Cycle task
Figure 112011066407199-pat00009
Represents edges that lead to tasks that consume data produced by
Figure 112011066407199-pat00010
Cycle task
Figure 112011066407199-pat00011
Represents a set of producer tasks that produce data for use.

주기 태스크 집합 및 각 주기 태스크들의 선행 관계는 방향성을 가지는 비순환 그래프(Direct Acyclic Graph, DAG)의 특성을 가질 수 있으며, 실시예로서, G(V, E)로 표현될 수 있다. 여기서, V는 시스템 상의 모든 주기 태스크

Figure 112011066407199-pat00012
의 집합이고, E는 시스템상의 모든 간선들
Figure 112011066407199-pat00013
의 집합이다. The periodic relationship between the periodic task set and each periodic task may be characterized by a direct acyclic graph (DAG) having a directionality, and may be represented by G (V, E). Where V is all periodic tasks on the system
Figure 112011066407199-pat00012
Is the set of, and E is all the edges in the system
Figure 112011066407199-pat00013
.

도 1은 본 발명의 일 실시예에 따른 스케줄링 알고리즘에서 주기 태스크들의 선행 관계를 설명하기 위한 도면이다. 주기 태스크들은 복수의 생산자 태스크들 및 복수의 소비자 태스크들을 포함할 수 있다. 여기서, 소비자 태스크들은 선행 관계에 의해서 자신의 생산자 태스크가 수행된 후에 수행될 수 있고, 그 생산자 태스크가 수행되지 않으면 자신도 수행되지 못한다.1 is a view for explaining the precedence of periodic tasks in a scheduling algorithm according to an embodiment of the present invention. Periodic tasks may include a plurality of producer tasks and a plurality of consumer tasks. Here, the consumer tasks may be performed after their producer tasks are performed by the predecessor, and if the producer tasks are not performed, they may not be performed.

도 1을 참조하면, 예컨대

Figure 112011066407199-pat00014
(105)는 소비자 태스크로서,
Figure 112011066407199-pat00015
(105)의 생산자 태스크들인
Figure 112011066407199-pat00016
(102) 및
Figure 112011066407199-pat00017
(103)이 모두 수행되어야, 자신의 태스크가 수행될 수 있다. Referring to FIG. 1, for example
Figure 112011066407199-pat00014
105 is a consumer task,
Figure 112011066407199-pat00015
Producer tasks of 105
Figure 112011066407199-pat00016
102 and
Figure 112011066407199-pat00017
Once all of 103 has been performed, its task can be performed.

생산자와 소비자간의 이러한 관계에서 주기 태스크의 샘플링에 대한 동기화 제약을 만족하기 위해서, 각 주기 태스크들의 주기는 하모닉스 관계를 가지도록 할당될 수 있다. 여기서, 동기화 제약이란 소비자 태스크가 자신의 주기 안에서 생산자 태스크의 데이터를 사용해야 하는 제약 사항을 의미한다. 따라서, 스케줄링 알고리즘은 실시예로서, 소비자 태스크의 주기를 생산자의 태스크 주기의 정수 배로 설정함으로써, 소비자 태스크가 자신의 주기 안에서 생산되는 생산자의 데이터를 더 많이 사용할 수 있도록 할 수 있다.In order to satisfy the synchronization constraints on the sampling of periodic tasks in this relationship between the producer and the consumer, the period of each periodic task may be assigned to have a harmonic relationship. Here, the synchronization constraint means a constraint that the consumer task must use the data of the producer task in its own cycle. Thus, the scheduling algorithm can, by way of example, set the period of the consumer task to be an integer multiple of the producer's task period, thereby enabling the consumer task to use more of the producer's data produced in its own cycle.

본 발명의 시스템 모델은 불특정한 시간 t에 발생하는 비주기 실시간 태스크를 A(t)로 표현할 수 있다. 또한, 본 발명의 시스템 모델은 수행 시간을 가지는 비주기 실시간 태스크를

Figure 112011066407199-pat00018
로 표현하고, 우선 순위를 가지는 비주기 실시간 태스크를
Figure 112011066407199-pat00019
로 표현할 수 있다. 본 발명에서 사용되는 비주기 실시간 태스크는 다른 비주기 실시간 태스크와 동시에 발생하지 않으며, 이전에 발생된 비주기 실시간 태스크의 수행이 종료된 후에 다음 비주기 실시간 태스크가 처리되는 것을 가정하도록 한다.
The system model of the present invention can represent aperiodic real-time task occurring at an unspecified time t as A (t). In addition, the system model of the present invention provides aperiodic real-time tasks with execution time.
Figure 112011066407199-pat00018
Aperiodic real-time tasks with priorities
Figure 112011066407199-pat00019
. The aperiodic real time task used in the present invention does not occur simultaneously with other aperiodic real time tasks, and assumes that the next aperiodic real time task is processed after the execution of the previously generated aperiodic real time task is finished.

본 발명의 스케줄링 알고리즘의 오프라인 스케줄링 방법은 실시예로서, 위상 정렬(Topological Sort)을 기반으로 수행될 수 있다. 여기서, 위상 정렬은 그래프에 존재하는 각 정점들의 선행 순서를 위배하지 않으면서 모든 정점을 나열하는 것을 말한다.The offline scheduling method of the scheduling algorithm of the present invention may be performed based on a topological sort as an embodiment. Here, phase alignment refers to listing all vertices without violating the preceding order of each vertex present in the graph.

위상 정렬에 관련된 알고리즘은 일반적으로, 진입 차수(Input Degree)가 0인 정점을 선택하고, 그 선택된 정점에 연결된 모든 간선들을 삭제한다. 그리고, 위상 정렬에 관련된 알고리즘은 이러한 선택 동작 및 삭제 동작을 반복하여, 모든 정점이 선택되고 그 간선들이 삭제된 경우에 알고리즘을 종료한다. 위상 정렬에 관련된 알고리즘에서는 이들 반복 과정에 의해 삭제된 순서대로 위상 정렬이 이루어 진다. 본 발명의 스케줄링 알고리즘은 이러한 위상 정렬을 이용하기 위해 인접 리스트를 사용할 수 있다. Algorithms related to phase alignment generally select a vertex with an input degree of zero and delete all edges connected to the selected vertex. The algorithm related to phase alignment then repeats this selection and deletion operations, ending the algorithm when all vertices are selected and their edges are deleted. In the algorithm related to the phase alignment, the phase alignment is performed in the order of deletion by these iterations. The scheduling algorithm of the present invention may use a neighbor list to take advantage of such phase alignment.

1. 주기 태스크 스케줄링 알고리즘1. Periodic task scheduling algorithm

도 2는 본 발명의 일 실시예에 따른 스케줄링 알고리즘에서 인접 리스트를 기초로 한 주기 태스크들의 그래프 구조 예시를 보여주는 도면이다.2 is a diagram illustrating an example of a graph structure of periodic tasks based on a neighbor list in a scheduling algorithm according to an embodiment of the present invention.

도 2를 참조하면, 주기 테스크들(201 내지 206) 각각은 자신의 데이터를 사용하는 소비자 태스크의 주소를 인접 노드로서 가지며, 자신의 진입차수 즉 사용하는 데이터를 생산하는 생산자 태스크의 수 및 주기를 요소로서 가질 수 있다.Referring to FIG. 2, each of the periodic tasks 201 to 206 has an address of a consumer task using its data as an adjacent node, and indicates the number and period of producer tasks producing its entry order, i.e., the data to use. It can have as an element.

예컨대, 주기 테스크

Figure 112011066407199-pat00020
는 소비자 태스크들
Figure 112011066407199-pat00021
Figure 112011066407199-pat00022
의 주소를 인접 노드로서 가지고, 값이 0인 진입 차수
Figure 112011066407199-pat00023
를 가지고, 값이 50인 주기
Figure 112011066407199-pat00024
를 요소로서 가지고 있다.For example, periodic task
Figure 112011066407199-pat00020
Consumer tasks
Figure 112011066407199-pat00021
And
Figure 112011066407199-pat00022
Entry order with the address of as 0 and having a value of 0
Figure 112011066407199-pat00023
With a value of 50
Figure 112011066407199-pat00024
Has as element

주기 태스크 그래프의 위상 정렬 알고리즘은 일반적인 위상 정렬 알고리즘을 사용하지만, 진입 차수(생산자 태스크의 개수)가 0인 주기 태스크의 선택에서는 해당 주기 태스크의 주기를 비교하는 방식이 추가될 수 있다.The phase alignment algorithm of the periodic task graph uses a general phase alignment algorithm, but a method of comparing the periods of the corresponding periodic tasks may be added to the selection of the periodic task whose entry order (number of producer tasks) is zero.

도 3은 본 발명의 일 실시예에 따른 스케줄링 알고리즘에서, 주기 태스크들에게 우선 순위를 할당하는 알고리즘을 보여준다. 상기의 실시예에서, 주기 태스크들은 FIFS(First In First Service) 큐 구조로 저장될 수 있다.3 illustrates an algorithm for assigning priorities to periodic tasks in a scheduling algorithm according to an embodiment of the present invention. In the above embodiment, periodic tasks may be stored in a First In First Service (FIFS) queue structure.

도 3을 참조하면, 우선 순위 할당 알고리즘에서, Ls는 진입 차수가 0인 주기 태스크들의 주기를 비교하기 위한 리스트이고, Lp는 주기 태스크들이 저장되는 리스트이다.Referring to FIG. 3, in the priority allocation algorithm, Ls is a list for comparing periods of periodic tasks having an entry order of 0, and Lp is a list in which periodic tasks are stored.

우선 순위 할당 알고리즘에 의해, 주기 태스크들은 주기가 작은 순서대로 정렬될 수 있으며, 그 정렬된 주기 태스크는 각각의 우선 순위가 부여되어 FIFS에 저장될 수 있다.By the priority allocation algorithm, the periodic tasks can be sorted in order of decreasing order, and the sorted periodic tasks can be assigned to each priority and stored in the FIFS.

도 4는 도 3에서 보여주는 우선 순위 할당 알고리즘에 의해 우선 순위가 할당되는 과정을 설명하기 위한 도면이다.FIG. 4 is a diagram for describing a process of assigning priority by a priority assignment algorithm shown in FIG. 3.

도 4를 참조하면, 본 발명의 일 실시예에 따른 스케줄링 알고리즘의 위상 정렬 기반 우선 순위 할당 알고리즘이 아래의 표 1에 기초하여 수행됨에 따라, 도 3의 우선 순위 할당 알고리즘이 주기 태스크들에게 우선 순위를 부여하는 과정을 볼 수 있다.Referring to FIG. 4, as the phase alignment based priority allocation algorithm of the scheduling algorithm according to an embodiment of the present invention is performed based on Table 1 below, the priority allocation algorithm of FIG. 3 is given priority to periodic tasks. You can see the process of granting.

[표 1][Table 1]

Figure 112011066407199-pat00025
Figure 112011066407199-pat00025

먼저, 위상 정렬 기반 우선 순위 할당 알고리즘은 도 4에 도시된 초기 상태(400)의 그래프 구조의 주기 테스크들로부터 진입 차수가 0인 정점을 차례로 삭제한다. 상기의 삭제로 인해 그래프 구조는 초기 상태(400)에서,

Figure 112011066407199-pat00026
가 제거된 상태(410),
Figure 112011066407199-pat00027
가 제거된 상태(420),
Figure 112011066407199-pat00028
가 제거된 상태(430),
Figure 112011066407199-pat00029
가 제거된 상태(440),
Figure 112011066407199-pat00030
가 제거된 상태(450) 등으로 변경될 것이다.First, the phase alignment based priority allocation algorithm sequentially deletes vertices of entry order zero from the periodic tasks of the graph structure of the initial state 400 shown in FIG. Due to the deletion of the graph structure in the initial state (400),
Figure 112011066407199-pat00026
Is removed (410),
Figure 112011066407199-pat00027
Is removed (420),
Figure 112011066407199-pat00028
Is removed (430),
Figure 112011066407199-pat00029
Is removed (440),
Figure 112011066407199-pat00030
Will be changed to the removed state 450 or the like.

우선 순위 할당 알고리즘은 주기 태스크들을 그 삭제되는 순서대로 우선 순위를 부여할 수 있다. 이 결과 우선 순위가 부여된 태스크들은 아래의 표2와 같이 도시할 수 있다.The priority assignment algorithm may prioritize periodic tasks in the order in which they are deleted. As a result, the tasks given priority may be shown in Table 2 below.

[표 2][Table 2]

Figure 112011066407199-pat00031
Figure 112011066407199-pat00031

여기서, 상기 부여된 우선 순위

Figure 112011066407199-pat00032
는 각 주기 태스크들이 도 4에서 삭제된 순서대로 부여된 것을 볼 수 있다. Where the priority given above
Figure 112011066407199-pat00032
It can be seen that the periodic tasks are assigned in the order of deletion in FIG.

도 5는 본 발명의 일 실시예에 따른 스케줄링 알고리즘에서 위상 정렬 기반 우선 순위 할당 알고리즘에 의한 스케줄링 결과 예시를 보여주는 도면이다.5 is a diagram illustrating an example of a scheduling result by a phase alignment based priority allocation algorithm in a scheduling algorithm according to an embodiment of the present invention.

도 5를 참조하면, 각 주기 테스크들은 스케줄링 알고리즘에 의해 할당된 우선 순위에 따라서, 자신의 주기를 위배하지 않고 수행될 수 있다. 특히, 500 및 510의 경우와 같이, 주기 태스크들의 초기 기동 시간을 설정하지 않더라도 또는 다르더라도 주기 태스크들간의 선행 관계를 만족하면서 태스크가 수행될 수 있음을 알 수 있다.
Referring to FIG. 5, each periodic task may be performed without violating its own period, according to the priority assigned by the scheduling algorithm. In particular, as in the case of 500 and 510, it can be seen that the task can be performed even if the initial starting time of the periodic tasks is not set or different, while satisfying the preceding relationship between the periodic tasks.

2. 2. 비주기Aperiodic 실시간 태스크 스케줄링 알고리즘 Real-time task scheduling algorithm

한편, 본 발명의 스케줄링 알고리즘은 앞서 설명한 위상 정렬 기반 우선 순위 할당 알고리즘에 의해 주기 태스크들에게 부여된 우선 순위에 기초하여, 온라인으로부터 도착하는 비주기 실시간 태스크를 스케줄링할 수 있다. 이러한 비주기 실시간 태스크 스케줄링은 주기 태스크의 초월 주기(Hyper Period)를 먼저 산출하고, 그 산출된 초월 주기 내에서 주기 태스크가 수행된 후 남는 잉여 시간(Residual Time)에, 비주기 실시간 태스크의 실행을 수락하고 제어할 수 있다.Meanwhile, the scheduling algorithm of the present invention may schedule an aperiodic real-time task arriving from online based on the priority given to the periodic tasks by the phase alignment based priority allocation algorithm described above. Such aperiodic real-time task scheduling calculates the hyper period of the periodic task first, and executes the aperiodic real-time task at the residual time remaining after the periodic task is performed within the calculated transcendental period. Can accept and control

또한, 비주기 실시간 태스크 스케줄링 알고리즘은 비주기 실시간 태스크의 응답 시간을 최소화하기 위하여, 임계 시간에 있는 주기 태스크가 없을 때까지 비주기 실시간 태스크의 우선순위를 최상위로 할당할 수 있다.In addition, the aperiodic real time task scheduling algorithm may assign the priority of the aperiodic real time task to the highest level until there is no periodic task at a threshold time in order to minimize the response time of the aperiodic real time task.

초월 주기는 본 발명의 시스템에 속한 모든 주기 태스크의 최소 공배수가 될 수 있다. 특히, 초월 주기는 아래의 수학식 1을 통해 표현될 수 있다.The transcendental period may be the least common multiple of all periodic tasks belonging to the system of the present invention. In particular, the transcendental period may be expressed through Equation 1 below.

[수학식 1][Equation 1]

Figure 112011066407199-pat00033
Figure 112011066407199-pat00033

여기서, H는 초월 주기이고,

Figure 112011066407199-pat00034
는 주기 태스크들의 주기들이며, LCM은 최소 공배수(Least Common Multiple)이다.Where H is the transcendental cycle,
Figure 112011066407199-pat00034
Is the periods of the periodic tasks, and LCM is the least common multiple.

한편, 본 발명의 위상 정렬 기반 우선 순위 할당 알고리즘은 앞서 설명한 바와 같이 주기 태스크들을 주기의 크기순으로 정렬하였다. 따라서, 동일한 주기의 주기 태스크들은 연속하여 수행될 것이다. Meanwhile, the phase alignment based priority allocation algorithm of the present invention sorts the periodic tasks in the order of the period size as described above. Thus, periodic tasks of the same period will be performed continuously.

이에 따라, 본 발명에서는 동일한 주기의 주기 태스크들을 하나의 집합(group)로 정의하여, 주기 태스크의 수행 전 계산 시간을 절약할 수 있다. 본 발명에서, 동일 주기의 주기 태스크들은 Sj라 칭할 수 있다.Accordingly, in the present invention, it is possible to save the calculation time before performing the periodic task by defining the periodic tasks of the same period as a group (group). In the present invention, periodic tasks of the same period may be referred to as Sj.

본 발명에서 동일 주기의 주기 태스크들 Sj는

Figure 112011066407199-pat00035
에 따른 각 요소들을 가질 수 있다. 본 발명에서 상기의 요소는 Xj로 표시하도록 하며, 그 X에는
Figure 112011066407199-pat00036
의 각 요소들이 될 수 있다.In the present invention, the periodic tasks Sj of the same period are
Figure 112011066407199-pat00035
Each element may be in accordance with. In the present invention, the above element is represented by Xj, and X is
Figure 112011066407199-pat00036
Each element can be

Figure 112011066407199-pat00037
는 주기 태스크들 Sj에 속하는 주기 태스크들 각각의 주기이다. Nj는 초월 주기 H 안에서 주기 태스크들 Sj이 발생하는 횟수로서 아래의 수학식 3을 통해 계산될 수 있다.
Figure 112011066407199-pat00037
Is a period of each of the periodic tasks belonging to the periodic tasks Sj. Nj is the number of times periodic tasks Sj occur in the transcendental period H and may be calculated by Equation 3 below.

[수학식 3]&Quot; (3) "

Figure 112011066407199-pat00038
Figure 112011066407199-pat00038

여기서,

Figure 112011066407199-pat00039
는 초월 주기의 시작 시간이다. 상기의 횟수 Nj는 주기 태스크들 Sj의 주기가 끝나는 시점에서 1이 감소될 수 있다. 또한, 주기 태스크들 Sj의 수행 시간의 합은
Figure 112011066407199-pat00040
로서 아래의 수학식 4를 통해 계산될 수 있다.here,
Figure 112011066407199-pat00039
Is the start time of the transcendental cycle. The number Nj may be decreased by 1 at the end of the period of the periodic tasks Sj. Also, the sum of the execution times of the periodic tasks Sj is
Figure 112011066407199-pat00040
It can be calculated through Equation 4 below.

[수학식 4]&Quot; (4) "

Figure 112011066407199-pat00041
Figure 112011066407199-pat00041

또한, 주기 태스크들 Sj에 속하는 태스크들이 현재까지 수행된 시간은 Pj로서, 아래의 수학식 5를 통해 계산될 수 있다.In addition, the time at which tasks belonging to the periodic tasks Sj have been performed so far is Pj, which can be calculated through Equation 5 below.

[수학식 5]&Quot; (5) "

Figure 112011066407199-pat00042
Figure 112011066407199-pat00042

이때,

Figure 112011066407199-pat00043
는 Sj의 주기 시작 시간에 t까지의 수행 시간을 의미한다.At this time,
Figure 112011066407199-pat00043
Denotes the execution time up to t at the start time of the cycle of Sj.

한편, Cj는 임계 시간(Critical Time)으로서, Sj가 자신의 주기가 시작된 후 초기 임계 시간까지의 값을 나타낸다. 여기서, 임계 시간이란 주기 태스크가 자신의 주기를 만족하며 수행될 수 있는 경계의 시간이다. 주기 태스크가 자신의 임계 시간을 오버하게 되면, 자신의 주기를 벗어나게 된다. Meanwhile, Cj is a critical time, and Sj represents a value up to an initial threshold time after the start of its cycle. Here, the threshold time is a boundary time at which the periodic task may be performed while satisfying its period. If a periodic task exceeds its threshold time, it is out of its own cycle.

이러한 임계 시간 Cj는 EDL 알고리즘에서 유휴 시간 테이블을 생성하는 방법과 같이 산출될 수 있다. 특히,

Figure 112011066407199-pat00044
는 비주기 실시간 태스크가 온라인으로부터 도착하거나 또는 자신보다 우선 순위가 높은 주기 태스크에 의해 선점이 발생한 경우, 재산출되는 임계 시간이다. 상기의
Figure 112011066407199-pat00045
은 비주기 실시간 태스크의 도착이 일어나지 않거나 선점이 발생하지 않으면, Cj값과 동일할수 있다. 따라서, 시간 t에 비주기 실시간 태스크가 도착하거나 우선 순위가 높은 주기 태스크에 의한 선점이 발생한 경우, 아래의 수학식 6을 이용하여
Figure 112011066407199-pat00046
을 갱신할 수 있다.This threshold time Cj may be calculated as in the method for generating an idle time table in the EDL algorithm. Especially,
Figure 112011066407199-pat00044
Is the threshold time that is recalculated if the aperiodic real-time task arrives online or is preempted by a periodic task that is higher than itself. The above
Figure 112011066407199-pat00045
May be equal to the Cj value if no arrival of the aperiodic real-time task occurs or no preemption occurs. Therefore, when the non-periodic real-time task arrives at time t or the preemption occurs due to the high priority periodic task, Equation 6 below is used.
Figure 112011066407199-pat00046
Can be updated.

[수학식 6]&Quot; (6) "

Figure 112011066407199-pat00047
Figure 112011066407199-pat00047

나아가,

Figure 112011066407199-pat00048
의 갱신 이후, 자신의 Cj보다 빠른
Figure 112011066407199-pat00049
을 가지는 Sk의
Figure 112011066407199-pat00050
값도 다시 갱신할 필요가 있다. 그 갱신 과정은 아래의 수학식 7을 이용할 수 있다.Furthermore,
Figure 112011066407199-pat00048
Since its renewal, faster than their Cj
Figure 112011066407199-pat00049
Of Sk
Figure 112011066407199-pat00050
You also need to update the value again. The update process may use Equation 7 below.

[수학식 7][Equation 7]

Figure 112011066407199-pat00051
Figure 112011066407199-pat00051

본 발명의 실시간 비주기 실시간 태스크 스케줄링 알고리즘은 시간 t에 도착한 비주기 실시간 태스크의 수락을 검증하기 위하여, t시간에 주기 태스크의 수행 후 남는 잉여 시간을 산출한다. 여기서, 잉여 시간을 R(t)로 표현하면, 상기 실시간 비주기 실시간 태스크 스케줄링 알고리즘은 실시예로서, 아래의 수학식 8을 이용하여, 잉여시간 R(t)를 구할 수 있다.The real-time aperiodic real time task scheduling algorithm of the present invention calculates the surplus time remaining after the execution of the periodic task at time t to verify acceptance of the aperiodic real time task arriving at time t. If the surplus time is expressed as R (t), the real-time aperiodic real-time task scheduling algorithm is an embodiment, and the surplus time R (t) can be obtained using Equation 8 below.

[수학식 8][Equation 8]

Figure 112011066407199-pat00052
Figure 112011066407199-pat00052

나아가, 실시간 비주기 실시간 태스크 스케줄링 알고리즘은 시간 t에 도착한 비주기 실시간 태스크 A(t)의 실행 여부를 아래의 수학식 9의 조건에 따라 수락할 수 있다. 즉, 실시간 비주기 실시간 태스크 스케줄링 알고리즘은 온라인으로부터 도착한 비주기 실시간 태스크 A(t)에 기초하여 아래의 수학식 9이 만족하는 지에 따라, 상기 도착한 비주기 실시간 태스크 A(t)를 선택적으로 수행할 수 있다. Furthermore, the real-time aperiodic real time task scheduling algorithm may accept whether or not to execute the aperiodic real time task A (t) arriving at time t according to the condition of Equation 9 below. That is, the real-time aperiodic real-time task scheduling algorithm may selectively perform the arrived aperiodic real-time task A (t) based on the non-period real-time task A (t) arriving from online according to Equation 9 below. Can be.

[수학식 9]&Quot; (9) "

Figure 112011066407199-pat00053

Figure 112011066407199-pat00053

도 6은 본 발명의 다른 실시예에 따른 스케줄링 방법을 수행할 수 있는 스케줄링 장치의 구성을 보여주는 도면이고, 도 7은 상기의 스케줄링 장치에 의해 스케줄링된 결과를 예시한 도면이다. 상기의 스케줄링 장치는 복수의 주기 태스크들 및 적어도 하나의 비주기 실시간 태스크를 수행하는 시스템을 위한 스케줄링 장치이다.FIG. 6 is a diagram illustrating a configuration of a scheduling apparatus capable of performing a scheduling method according to another embodiment of the present invention, and FIG. 7 is a diagram illustrating a result scheduled by the scheduling apparatus. The scheduling apparatus is a scheduling apparatus for a system that performs a plurality of periodic tasks and at least one aperiodic real-time task.

도 6을 참조하면, 상기 스케줄링 장치(600)는 주기 태스크 스케줄러(610), 스케줄링 요청 수신부(620) 및 비주기 실시간 태스크 스케줄러(630)를 포함한다.Referring to FIG. 6, the scheduling apparatus 600 includes a periodic task scheduler 610, a scheduling request receiver 620, and an aperiodic real time task scheduler 630.

주기 태스크 스케줄러(610)는 상기 복수의 주기 태스크들의 서로간의 선행 관계를 고려하여, 상기 복수의 주기 태스크들 각각의 스케줄링을 수행한다. 여기서, 주기 태스크 스케줄러(610)는 앞서 설명된 위상 정렬 기반 우선 순위 할당 알고리즘에 기초하여, 복수의 주기 태스크들의 스케줄링을 수행한다.The periodic task scheduler 610 performs scheduling of each of the plurality of periodic tasks in consideration of a preceding relationship between the plurality of periodic tasks. Here, the periodic task scheduler 610 performs scheduling of the plurality of periodic tasks based on the phase alignment based priority assignment algorithm described above.

스케줄링 요청 수신부(620)는 상기 시스템으로부터 상기 시스템이 송신한 비주기 실시간 태스크의 스케줄링 요청을 수신한다.The scheduling request receiver 620 receives a scheduling request of an aperiodic real time task transmitted by the system.

비주기 실시간 태스크 스케줄러(630)는 상기 복수의 주기 태스크들의 스케줄링 시간의 잉여 시간(Residual Time)에 대하여 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링을 수행한다.The aperiodic real time task scheduler 630 performs scheduling of the at least one aperiodic real time task with respect to a residual time of the scheduling time of the plurality of periodic tasks.

비주기 실시간 태스크 스케줄러(630)는 앞서 설명된 비주기 실시간 태스크 스케줄링 알고리즘에 기초하여 상기 시스템이 요청한 비주기 실시간 태스크의 스케줄링을 수행한다.The aperiodic real time task scheduler 630 performs scheduling of the aperiodic real time task requested by the system based on the aperiodic real time task scheduling algorithm described above.

특히, 비주기 실시간 태스크 스케줄러(630)의 동작은 도 8에 도시된 바와 같이 간략화할 수 있다. 도 8을 참조하면, 비주기 실시간 태스크 스케줄링 알고리즘을 간략하게 설명한 데이터(800)를 볼 수 있다.In particular, the operation of the aperiodic real time task scheduler 630 can be simplified as shown in FIG. 8. Referring to FIG. 8, it can be seen that the data 800 briefly describes an aperiodic real-time task scheduling algorithm.

여기서, t시간에 비주기 실시간 태스크가 도착한 경우는 스케줄링 요청 수신부(620)가 상기 시스템으로부터 t시간에 비주기 실시간 태스크에 대한 스케줄링 요청을 수신한 것을 의미하고, t시간에 비주기 실시간 태스크가 도착하지 않은 경우는 스케줄링 요청 수신부(620)가 상기 스케줄링 요청을 수신하지 못한 것을 의미한다.Here, when the aperiodic real time task arrives at time t, the scheduling request receiver 620 receives a scheduling request for the aperiodic real time task at time t from the system, and the aperiodic real time task arrives at time t. If not, it means that the scheduling request receiver 620 did not receive the scheduling request.

따라서, 비주기 실시간 태스크 스케줄러(630)는 t시간에 비주기 실시간 태스크가 도착한 경우에 비주기 실시간 태스크 스케줄링 알고리즘에 기초하여 비주기 실시간 태스크를 스케줄링할 수 있다.Accordingly, the aperiodic real time task scheduler 630 may schedule the aperiodic real time task based on the aperiodic real time task scheduling algorithm when the aperiodic real time task arrives at time t.

비주기 실시간 태스크 스케줄러(630)의 동작을 보다 상세하게 살펴보면, 비주기 실시간 태스크 스케줄러(630)는 수학식 9의 조건을 이용하여, 시스템이 상기 스케줄링 요청한 비주기 실시간 태스크의 스케줄성(schedulability)을 검사한다. 즉, 비주기 실시간 태스크 스케줄러(630)는 수학식 9의 조건이 성립되는 지의 여부에 따라서 비주기 실시간 태스크의 실행 여부를 결정할 것이다.Looking at the operation of the aperiodic real time task scheduler 630 in detail, the aperiodic real time task scheduler 630 uses the condition of Equation 9 to determine the scheduleability of the aperiodic real time task requested by the system. Check it. That is, the aperiodic real time task scheduler 630 may determine whether to execute the aperiodic real time task according to whether the condition of Equation 9 is established.

즉, 수학식 9의 조건이 만족하지 않았다면, 비주기 실시간 태스크 스케줄러(630)는 상기의 비주기 실시간 태스크 A(t)의 실행을 수락하지 않는다. 반면, 수학식 9의 조건이 만족한다면, 비주기 실시간 태스크 스케줄러(630)는 비주기 실시간 태스크 A(t)의 실행을 수락한다.That is, if the condition of Equation 9 is not satisfied, the aperiodic real time task scheduler 630 does not accept the execution of the aperiodic real time task A (t). On the other hand, if the condition of Equation 9 is satisfied, the aperiodic real time task scheduler 630 accepts the execution of the aperiodic real time task A (t).

비주기 실시간 태스크 A(t)의 실행이 수락되면, 비주기 실시간 태스크 스케줄러(630)는 상기의 스케줄성 검사가 통과하면, 비주기 실시간 태스크 A(t)의 우선 순위를 최상위로 할당하여, 응답 시간이 빨라지도록 할 수 있다.When the execution of the aperiodic real time task A (t) is accepted, the aperiodic real time task scheduler 630 assigns the priority of the aperiodic real time task A (t) to the highest level when the scheduling check passes, and responds. You can make time faster.

또한, 비주기 실시간 태스크 스케줄러(630)는 주기 태스크의

Figure 112011066407199-pat00054
를 갱신하고, 우선 순위에 따른 주기 및 비주기 태스크를 수행할 수 있다.In addition, the aperiodic real time task scheduler 630 may be configured to perform periodic tasks.
Figure 112011066407199-pat00054
It can update and perform periodic and aperiodic tasks according to the priority.

또한, 비주기 실시간 태스크 스케줄러(630)는

Figure 112011066407199-pat00055
가 임박한 주기 태스크가 있으면, 비주기 실시간 태스크 A(t)의 우선 순위를 최하위로 할당할 수 있다. 이는
Figure 112011066407199-pat00056
가 임박한 주기 태스크를 먼저 실행하기 위함이다. 그리고, 비주기 실시간 태스크 스케줄러(630)는
Figure 112011066407199-pat00057
가 임박한 주기 태스크의 수행이 끝나면, 비주기 실시간 태스크 A(t)의 우선 순위를 최상위로 다시 할당할 수 있다.In addition, the aperiodic real time task scheduler 630
Figure 112011066407199-pat00055
If there is an impending periodic task, the priority of the non-periodic real-time task A (t) may be assigned to the lowest. this is
Figure 112011066407199-pat00056
This is to execute the impending cycle task first. In addition, the aperiodic real time task scheduler 630
Figure 112011066407199-pat00057
After the execution of the impending periodic task, the priority of the non-periodic real-time task A (t) may be reassigned to the highest level.

이에 따라, 비주기 실시간 태스크 스케줄러(630)는 임계 시간이 임박한 주기태스크가 있으면, 비주기 실시간 태스크의 우선 순위를 최하위로 설정하여, 임계시간이 임박한 주기 태스크의 수행이 끝날 때까지 비주기 실시간 태스크의 수행을 지연시킬 수 있다.Accordingly, the non-periodic real-time task scheduler 630 sets the priority of the non-periodic real-time task to the lowest level when there is a periodic task that has a critical time imminent, until the end of the execution of the periodic task whose critical time is imminent. Can delay the performance of.

한편, 앞서 언급한 표 2의 태스크를 사용하여 시간 110에서의 태스크의 집합

Figure 112011066407199-pat00058
Figure 112011066407199-pat00059
를 이용하면 아래의 표 3과 같은 태스크 집합이 나올 수 있다.On the other hand, a set of tasks at time 110 using the aforementioned tasks of Table 2
Figure 112011066407199-pat00058
Figure 112011066407199-pat00059
If you use, you can get a task set as shown in Table 3 below.

[표 3][Table 3]

Figure 112011066407199-pat00060
Figure 112011066407199-pat00060

만약, 시간 110에 수행 시간이 30인 비주기 실시간 태스크 A가 도착 했을때 R(t)를 구하면 30이고 A의 수행 시간과 R(t)가 같으므로 A(t)의 스케줄링이 가능하다. 따라서 S1의 값을 아래의 표 4과 같이 135로 갱신하고 온라인 스케줄링을 실시할 수 있다.If R (t) is obtained when the aperiodic real-time task A with the execution time of 30 arrives at time 110, it is 30, and the execution time of A is equal to R (t), so that scheduling of A (t) is possible. Therefore, the value of S1 can be updated to 135 as shown in Table 4 below and online scheduling can be performed.

[표 4][Table 4]

Figure 112011066407199-pat00061
Figure 112011066407199-pat00061

도 7을 참조하면, 시간 135에서 실시간 비주기 태스크 A는 임계시간이 임박한 그룹 S1의

Figure 112011066407199-pat00062
Figure 112011066407199-pat00063
의 주기를 보장하기 위하여 우선순위가 최하위로 할당된다. 이에 따라, 실시간 비주기 태스크 A의 수행이 지연되고, 주기 태스크들
Figure 112011066407199-pat00064
Figure 112011066407199-pat00065
가 수행할 수 있다. 이후,
Figure 112011066407199-pat00066
Figure 112011066407199-pat00067
의 수행외 남은 시간에서 실시간 비주기 태스크 A가 수행될 수 있음을 볼 수 있다.Referring to FIG. 7, at time 135, the real-time aperiodic task A is assigned to the group S1 where the threshold time is imminent.
Figure 112011066407199-pat00062
And
Figure 112011066407199-pat00063
Priorities are assigned at the lowest to ensure a period of. Accordingly, the performance of the real-time aperiodic task A is delayed, and the periodic tasks
Figure 112011066407199-pat00064
And
Figure 112011066407199-pat00065
Can be done. after,
Figure 112011066407199-pat00066
And
Figure 112011066407199-pat00067
It can be seen that the real-time aperiodic task A can be performed at the remaining time other than that of.

한편, 도 9는 본 발명의 또 다른 실시예에 따른 스케줄링 알고리즘 수행 방법을 보여준다. 상기의 방법은 900 단계에서, 상기 복수의 주기 태스크들의 서로간의 선행 관계를 고려하여, 상기 복수의 주기 태스크들 각각의 스케줄링을 수행할 수 있다. 또한, 상기의 방법은 910 단계에서, 상기 시스템으로부터 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링이 요청되었는 지를 판단할 수 있다.On the other hand, Figure 9 shows a method of performing a scheduling algorithm according to another embodiment of the present invention. In operation 900, the scheduling of each of the plurality of periodic tasks may be performed in consideration of a preceding relationship between the plurality of periodic tasks. In operation 910, the method may determine whether scheduling of the at least one aperiodic real-time task is requested from the system.

910 단계의 판단 결과, 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링이 요청된 경우, 상기의 방법은 920 단계에서, 상기 복수의 주기 태스크들의 스케줄링 시간의 잉여 시간(Residual Time)에 대한 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링을 수행할 수 있다.If it is determined in step 910 that the scheduling of the at least one aperiodic real-time task is requested, the method may include the at least one of the residual time of the scheduling time of the plurality of periodic tasks in step 920. Scheduling of aperiodic real-time tasks can be performed.

930 단계에서, 상기의 방법은 920 단계에 의해 스케줄링된 결과로, 주기 태스크 및 비주기 태스크를 우선 순위에 따라 차례로 수행한다.In step 930, the method performs the periodic task and the non-periodic task in order according to the priority, as a result of the scheduling in step 920.

한편, 910 단계의 판단 결과, 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링이 요청되지 않았다면, 상기의 방법은 900 단계에서 스케줄링된 주기 태스크들을 각각의 우선 순위에 따라 수행할 것이다.On the other hand, if it is determined in step 910 that the scheduling of the at least one aperiodic real-time task is not requested, the method will perform the periodic tasks scheduled in step 900 according to their respective priorities.

본 발명의 실시 예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. The methods according to embodiments of the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above embodiments, and those skilled in the art to which the present invention pertains various modifications and variations from such descriptions. This is possible.

그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the equivalents of the claims, as well as the claims.

Claims (15)

복수의 주기 태스크들 및 불특정한 시간에 발생하는 이벤트를 처리하는 적어도 하나의 비주기 실시간 태스크를 수행하는 시스템에서의 스케줄링 알고리즘 수행 방법에 있어서,
상기 복수의 주기 태스크들의 서로간의 선행 관계를 고려하여, 상기 복수의 주기 태스크들 각각의 스케줄링을 수행하는 단계; 및
상기 시스템으로부터 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링이 요청되면, 상기 복수의 주기 태스크들의 스케줄링 시간의 잉여 시간(Residual Time)에 대한 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링을 수행하는 단계
를 포함하고,
상기 적어도 하나의 비주기 실시간 태스크의 스케줄링을 수행하는 단계는,
상기 복수의 주기 태스크의 초월 주기(Hyper Period)를 먼저 산출하고, 상기 산출된 초월 주기 내에서 상기 복수의 주기 태스크가 수행된 후, 상기 잉여 시간에 상기 적어도 하나의 비주기 실시간 태스크의 실행을 수락하고 제어하는 단계
를 포함하는 스케줄링 알고리즘 수행 방법.
A method of performing a scheduling algorithm in a system for performing a plurality of periodic tasks and at least one aperiodic real-time task for processing an event occurring at an unspecified time,
Performing scheduling of each of the plurality of periodic tasks in consideration of a preceding relationship between the plurality of periodic tasks; And
If scheduling of the at least one aperiodic real time task is requested from the system, performing scheduling of the at least one aperiodic real time task with respect to a residual time of a scheduling time of the plurality of periodic tasks
Lt; / RTI >
The scheduling of the at least one aperiodic real time task may include:
Computing a Hyper Period of the plurality of periodic tasks first, and after the plurality of periodic tasks are performed within the calculated transcendental period, accept the execution of the at least one aperiodic real-time task at the surplus time And steps to control
Scheduling algorithm performing method comprising a.
제1항에 있어서,
상기 복수의 주기 태스크들 각각의 스케줄링을 수행하는 단계는
상기 복수의 주기 태스크들 각각의 주기 및 수행 순서에 기초하여, 상기 복수의 주기 태스크들 중에서 그래프 구조상 에서 진입 차수가 적은 태스크를 우선적으로 스케줄링하는
스케줄링 알고리즘 수행 방법.
The method of claim 1,
Performing scheduling of each of the plurality of periodic tasks
Based on a period and an execution order of each of the plurality of periodic tasks, preferentially scheduling a task having a low entry order on a graph structure among the plurality of periodic tasks;
How to perform a scheduling algorithm.
제2항에 있어서,
상기 복수의 주기 태스크들 각각의 스케줄링을 수행하는 단계는
상기 복수의 주기 태스크들 중 그래프 구조 상에서 진입 차수가 0인 정점의 태스크를 반복하여 삭제하는 단계;
상기 반복하여 삭제된 주기 태스크들을 삭제 순서에 따라 위상 정렬하여, 우선 순위를 할당하는 단계; 및
상기 할당된 우선 순위를 고려하여, 상기 복수의 주기 태스크들의 스케줄링을 수행하는 단계
를 포함하는 스케줄링 알고리즘 수행 방법.
3. The method of claim 2,
Performing scheduling of each of the plurality of periodic tasks
Repeatedly deleting a task of a vertex having an entry order of zero on a graph structure among the plurality of periodic tasks;
Phase-aligning the repeatedly deleted periodic tasks according to a deletion order and assigning priorities; And
Performing scheduling of the plurality of periodic tasks in consideration of the assigned priority;
Scheduling algorithm performing method comprising a.
제3항에 있어서,
상기 진입 차수가 0인 정점의 태스크가 복수인 경우,
상기 진입 차수가 0인 정점의 태스크를 반복하여 삭제하는 단계는
상기 정점의 복수의 태스크들의 주기를 비교하고, 상기 비교 결과에 따라 주기가 더 짧은 태스크를 먼저 삭제하는
스케줄링 알고리즘 수행 방법.
The method of claim 3,
When there are a plurality of tasks of vertices having the order of zero,
Iteratively deleting the task of the vertex of the entry order is 0
Comparing periods of a plurality of tasks of the vertices, and first deleting a task having a shorter period according to the comparison result
How to perform a scheduling algorithm.
제1항에 있어서,
상기 복수의 주기 태스크들의 스케줄링 시간에 의한 잉여 시간(Residual Time)과 상기 스케줄링이 요청된 비주기 실시간 태스크의 수행 시간보다 큰 지의 여부에 따라, 상기 스케줄링이 요청된 비주기 실시간 태스크의 실행을 수락하는 단계
를 더 포함하는 스케줄링 알고리즘 수행 방법.
The method of claim 1,
Accepting execution of the scheduled aperiodic real-time task according to the residual time by the scheduling time of the plurality of periodic tasks and whether the scheduling is greater than the execution time of the requested aperiodic real-time task. step
A scheduling algorithm performing method further comprising.
제5항에 있어서,
상기 스케줄링이 요청된 비주기 실시간 태스크의 실행이 수락되면, 상기 스케줄링이 요청된 비주기 실시간 태스크의 우선순위를 최상위로 할당하는 단계;
상기 복수의 주기 태스크들의 임계 시간을 갱신하는 단계;
상기 갱신에 의해 마감이 임박한 임계 시간의 주기 태스크가 있으면, 상기 마감이 임박한 주기 태스크를 상기 비주기 실시간 태스크보다 먼저 수행하는 단계
를 더 포함하는 스케줄링 알고리즘 수행 방법.
The method of claim 5,
If the execution of the aperiodic realtime task for which the scheduling is requested is accepted, allocating a priority of the aperiodic realtime task for which the scheduling is requested to the highest level;
Updating a threshold time of the plurality of periodic tasks;
If there is a periodic task of a critical time that the deadline is imminent due to the update, performing the periodic task of which the deadline is imminent before the aperiodic real-time task
A scheduling algorithm performing method further comprising.
제6항에 있어서,
상기 마감이 임박한 주기 태스크를 상기 비주기 실시간 태스크보다 먼저 수행하는 단계는
상기 비주기 실시간 태스크의 우선 순위를 최하위로 설정하는 단계;
상기 마감이 임박한 주기 태스크를 실행하는 단계; 및
상기 마감이 임박한 주기 태스크를 실행이 끝나면, 상기 비주기 실시간 태스크의 우선 순위를 최상위로 재설정하는 단계
를 포함하는 스케줄링 알고리즘 수행 방법.
The method according to claim 6,
The step of performing the periodic task near the end of the non-periodic real-time task is
Setting a priority of the aperiodic real-time task to the lowest level;
Executing a periodic task in which the deadline is imminent; And
Resetting the priority of the non-periodic real-time task to the highest level after executing the periodic task that is about to finish.
Scheduling algorithm performing method comprising a.
복수의 주기 태스크들 및 불특정한 시간에 발생하는 이벤트를 처리하는 적어도 하나의 비주기 실시간 태스크를 수행하는 시스템에서의 스케줄링 장치에 있어서,
상기 복수의 주기 태스크들의 서로간의 선행 관계를 고려하여, 상기 복수의 주기 태스크들 각각의 스케줄링을 수행하는 주기 태스크 스케줄러;
상기 시스템으로부터 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링 요청을 수신하는 스케줄링 요청 수신부;
상기 복수의 주기 태스크들의 스케줄링 시간의 잉여 시간(Residual Time)에 대하여 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링을 수행하는 비주기 실시간 태스크 스케줄러
를 포함하고,
상기 비주기 실시간 태스크 스케줄러는,
상기 주기 태스크 스케줄러에 의하여 상기 복수의 주기 태스크의 초월 주기(Hyper Period)가 먼저 산출되고, 상기 산출된 초월 주기 내에서 상기 복수의 주기 태스크가 수행된 후, 상기 잉여 시간에 상기 적어도 하나의 비주기 실시간 태스크의 실행을 수락하고 제어하는 스케줄링 장치.
A scheduling apparatus in a system for performing a plurality of periodic tasks and at least one aperiodic real-time task for processing an event occurring at an unspecified time,
A periodic task scheduler configured to perform scheduling of each of the plurality of periodic tasks in consideration of a preceding relationship between the plurality of periodic tasks;
A scheduling request receiver configured to receive a scheduling request of the at least one aperiodic real time task from the system;
Aperiodic real time task scheduler for performing scheduling of the at least one aperiodic real time task with respect to a residual time of the scheduling time of the plurality of periodic tasks.
Lt; / RTI >
The aperiodic real time task scheduler,
The periodic period of the plurality of periodic tasks is calculated by the periodic task scheduler first, and after the plurality of periodic tasks are performed within the calculated transcendental period, the at least one aperiodic at the surplus time. Scheduling device that accepts and controls the execution of real-time tasks.
제8항에 있어서,
상기 주기 태스크 스케줄러는
상기 복수의 주기 태스크들 각각의 주기 및 수행 순서에 기초하여, 상기 복수의 주기 태스크들 중에서 그래프 구조상 에서 진입 차수가 적은 태스크를 우선적으로 스케줄링하는
스케줄링 장치.
9. The method of claim 8,
The periodic task scheduler
Based on a period and an execution order of each of the plurality of periodic tasks, preferentially scheduling a task having a low entry order on a graph structure among the plurality of periodic tasks;
Scheduling device.
제9항에 있어서,
상기 주기 태스크 스케줄러는
상기 복수의 주기 태스크들 중 그래프 구조 상에서 진입 차수가 0인 정점의 태스크를 반복하여 삭제하고, 상기 반복하여 삭제된 주기 태스크들을 삭제 순서에 따라 위상 정렬하여, 우선 순위를 할당하고, 상기 할당된 우선 순위를 고려하여, 상기 복수의 주기 태스크들의 스케줄링을 수행하는
를 포함하는 스케줄링 장치.
10. The method of claim 9,
The periodic task scheduler
Among the plurality of periodic tasks, a task of a vertex having an entry order of 0 is repeatedly deleted on a graph structure, and the repeatedly deleted periodic tasks are phase-aligned according to the deletion order, the priority is assigned, and the assigned priority is assigned. In consideration of a rank, the scheduling of the plurality of periodic tasks is performed.
.
제10항에 있어서,
상기 진입 차수가 0인 정점의 태스크가 복수인 경우,
상기 주기 태스크 스케줄러는
상기 정점의 복수의 태스크들의 주기를 비교하고, 상기 비교 결과에 따라 주기가 더 짧은 태스크를 먼저 삭제하는
스케줄링 장치.
The method of claim 10,
When there are a plurality of tasks of vertices having the order of zero,
The periodic task scheduler
Comparing periods of a plurality of tasks of the vertices, and first deleting a task having a shorter period according to the comparison result
Scheduling device.
제8항에 있어서,
상기 비주기 실시간 태스크 스케줄러는
상기 복수의 주기 태스크들의 스케줄링 시간에 의한 잉여 시간(Residual Time)과 상기 스케줄링이 요청된 비주기 실시간 태스크의 수행 시간보다 큰 지의 여부를 판단하고, 그 판단 결과, 상기 잉여 시간이 상기 스케줄링이 요청된 비주기 실시간 태스크의 수행 시간보다 더 큰 경우에 상기 스케줄링이 요청된 비주기 실시간 태스크의 실행을 수락하는
스케줄링 장치.
9. The method of claim 8,
The aperiodic real time task scheduler
It is determined whether the residual time by the scheduling time of the plurality of periodic tasks and whether the scheduling is greater than the execution time of the requested aperiodic real-time task, and as a result of the determination, the surplus time is Accepting execution of the requested aperiodic realtime task if the scheduling is greater than the execution time of the aperiodic realtime task
Scheduling device.
제12항에 있어서,
상기 비주기 실시간 태스크 스케줄러는
상기 스케줄링이 요청된 비주기 실시간 태스크의 실행이 수락되면, 상기 스케줄링이 요청된 비주기 실시간 태스크의 우선순위를 최상위로 할당하고, 상기 복수의 주기 태스크들의 임계 시간을 갱신하고, 상기 갱신에 의해 마감이 임박한 임계 시간의 주기 태스크가 있으면, 상기 마감이 임박한 주기 태스크를 상기 비주기 실시간 태스크보다 먼저 수행하는
스케줄링 장치.
The method of claim 12,
The aperiodic real time task scheduler
If the execution of the non-periodic real-time task for which the scheduling is requested is accepted, assign the priority of the non-periodic real-time task for which the scheduling is requested, update the threshold time of the plurality of periodic tasks, and close by the update. If there is a periodic task of this impending threshold time, performing the periodic task of which the deadline is imminent before the aperiodic real time task
Scheduling device.
제13항에 있어서,
상기 비주기 실시간 태스크 스케줄러는
상기 마감이 임박한 주기 태스크를 상기 비주기 실시간 태스크보다 먼저 수행하기 위하여, 상기 비주기 실시간 태스크의 우선 순위를 최하위로 설정하고, 상기 마감이 임박한 주기 태스크를 실행하고, 상기 마감이 임박한 주기 태스크를 실행이 끝나면, 상기 비주기 실시간 태스크의 우선 순위를 최상위로 재설정하는
스케줄링 장치.
The method of claim 13,
The aperiodic real time task scheduler
In order to perform the periodic task near the deadline before the aperiodic real-time task, the priority of the non-periodic real-time task is set to the lowest level, the periodic task near the deadline is executed, and the periodic task near the deadline is executed. After this, to reset the priority of the aperiodic real-time task to the highest level
Scheduling device.
삭제delete
KR1020110085508A 2011-08-26 2011-08-26 Periodic and aperiodic task scheduling algorithm based on topological sort and residual time KR101335038B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110085508A KR101335038B1 (en) 2011-08-26 2011-08-26 Periodic and aperiodic task scheduling algorithm based on topological sort and residual time
US13/430,549 US8924976B2 (en) 2011-08-26 2012-03-26 Task scheduling method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110085508A KR101335038B1 (en) 2011-08-26 2011-08-26 Periodic and aperiodic task scheduling algorithm based on topological sort and residual time

Publications (2)

Publication Number Publication Date
KR20130022707A KR20130022707A (en) 2013-03-07
KR101335038B1 true KR101335038B1 (en) 2013-11-29

Family

ID=48175307

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110085508A KR101335038B1 (en) 2011-08-26 2011-08-26 Periodic and aperiodic task scheduling algorithm based on topological sort and residual time

Country Status (1)

Country Link
KR (1) KR101335038B1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101716182B1 (en) * 2012-04-16 2017-03-14 한화테크윈 주식회사 Apparatus and method for management of database
CN110888728B (en) * 2019-12-03 2022-06-28 中电工业互联网有限公司 Task scheduling method of button cluster server
KR102307445B1 (en) * 2020-01-22 2021-09-30 단국대학교 산학협력단 Device and Method for Schedulability Verification of Security Reinforcement Techniques in Real time Devices
KR102436160B1 (en) * 2020-09-29 2022-08-24 엘에스일렉트릭(주) Apparatus for controlling electric power equipment based on event

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010043794A (en) * 1998-06-05 2001-05-25 샌제이브 사이두 Computer implemented scheduling system and process using abstract local search technique
KR20040058299A (en) * 2001-11-19 2004-07-03 코닌클리케 필립스 일렉트로닉스 엔.브이. Method and system for allocating a budget surplus to a task
KR20110061587A (en) * 2008-08-28 2011-06-09 엔이씨 유럽 리미티드 Method and system for scheduling periodic processes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010043794A (en) * 1998-06-05 2001-05-25 샌제이브 사이두 Computer implemented scheduling system and process using abstract local search technique
KR20040058299A (en) * 2001-11-19 2004-07-03 코닌클리케 필립스 일렉트로닉스 엔.브이. Method and system for allocating a budget surplus to a task
KR20110061587A (en) * 2008-08-28 2011-06-09 엔이씨 유럽 리미티드 Method and system for scheduling periodic processes

Also Published As

Publication number Publication date
KR20130022707A (en) 2013-03-07

Similar Documents

Publication Publication Date Title
CN113254178B (en) Task scheduling method and device, electronic equipment and readable storage medium
US8924976B2 (en) Task scheduling method and apparatus
CN107291548B (en) Task resource scheduling method and device
US8397235B2 (en) User tolerance based scheduling method for aperiodic real-time tasks
US20060288346A1 (en) Job scheduling system and method
US20080066070A1 (en) Method and system for the dynamic scheduling of jobs in a computing system
CN107193655B (en) Big data processing-oriented fair resource scheduling method based on utility function
CN111381950A (en) Task scheduling method and system based on multiple copies for edge computing environment
CN108154317B (en) Workflow group scheduling method based on example self-adaptive distribution integration in multi-cloud environment
CN104765640A (en) Intelligent service scheduling method
KR101335038B1 (en) Periodic and aperiodic task scheduling algorithm based on topological sort and residual time
Falzon et al. Enhancing list scheduling heuristics for dependent job scheduling in grid computing environments
CA2433379A1 (en) Modulo scheduling of multiple instruction chains
US20210141667A1 (en) Information processing apparatus, job scheduling method, and non-transitory computer-readable storage medium
CN111026519A (en) Distributed task priority scheduling method and system and storage medium
CN105389204A (en) Multiple-resource partial order scheduling policy
CN106919455A (en) A kind of main path filling dispatching method based on directed acyclic graph
CN115033357A (en) Micro-service workflow scheduling method and device based on dynamic resource selection strategy
US20070129929A1 (en) System simulation using multi-tasking computer code
CN110088730B (en) Task processing method, device, medium and equipment
JP5482442B2 (en) Job management apparatus, job management method, and job management program
CN111143063A (en) Task resource reservation method and device
Monot et al. PASA: Framework for partitioning and scheduling automation applications on multicore controllers
JP2020173622A (en) Parallel task scheduling method
CN109298917A (en) A kind of self-adapting dispatching method suitable for real-time system hybrid task

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190110

Year of fee payment: 6