KR101349561B1 - Apparatus and method for scheduling partition based criticality - Google Patents

Apparatus and method for scheduling partition based criticality Download PDF

Info

Publication number
KR101349561B1
KR101349561B1 KR1020110113379A KR20110113379A KR101349561B1 KR 101349561 B1 KR101349561 B1 KR 101349561B1 KR 1020110113379 A KR1020110113379 A KR 1020110113379A KR 20110113379 A KR20110113379 A KR 20110113379A KR 101349561 B1 KR101349561 B1 KR 101349561B1
Authority
KR
South Korea
Prior art keywords
partition
period
execution time
cycle
task
Prior art date
Application number
KR1020110113379A
Other languages
Korean (ko)
Other versions
KR20130048504A (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 KR1020110113379A priority Critical patent/KR101349561B1/en
Publication of KR20130048504A publication Critical patent/KR20130048504A/en
Application granted granted Critical
Publication of KR101349561B1 publication Critical patent/KR101349561B1/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
    • 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/485Task life-cycle, e.g. stopping, restarting, resuming execution

Abstract

본 발명은 주기 별 실행 시간을 다르게 결정함으로써, 임계성 값에 대응하도록 파티션의 태스크 실행 순서를 결정하는 장치 및 방법이 개시된다.
파티션 스케줄링 장치는 파티션의 태스크의 주기를 기초로 파티션의 주기를 결정하는 파티션 주기 결정부; 및 파티션의 주기를 기초로 파티션의 주기 별 실행 시간을 결정하는 파티션 실행 시간 결정부를 포함할 수 있다.
The present invention discloses an apparatus and method for determining a task execution order of a partition to correspond to a threshold value by differently determining execution time for each cycle.
The partition scheduling apparatus may include: a partition period determination unit configured to determine a period of a partition based on a period of a task of the partition; And a partition execution time determiner configured to determine an execution time for each cycle of the partition based on a cycle of the partition.

Figure R1020110113379
Figure R1020110113379

Description

임계성에 기초한 파티션 스케쥴링 장치 및 방법{APPARATUS AND METHOD FOR SCHEDULING PARTITION BASED CRITICALITY}Partition scheduling apparatus and method based on criticality {APPARATUS AND METHOD FOR SCHEDULING PARTITION BASED CRITICALITY}

본 발명은 파티션 스케줄링 장치 및 방법에 관한 것으로, 보다 상세하게는 파티션의 주기 별 실행 시간을 다르게 결정함으로써, 임계성 값에 대응하도록 파티션의 주기 및 실행시간을 결정하는 파티션 스케줄링 장치 및 방법에 관한 것이다.The present invention relates to a partition scheduling apparatus and method, and more particularly, to a partition scheduling apparatus and method for determining the period and the execution time of the partition to correspond to the threshold value by differently determining the execution time for each period of the partition.

최근 들어 크기, 무게, 전원(Power)등의 이유로 다양한 실시간 어플리케이션(파티션)들이 하나의 컴퓨팅 보드에서 실행되도록 구성되는 시스템들이 개발되고 있다.Recently, various real-time applications (partitions) have been developed to be executed on a single computing board for reasons of size, weight, power, and the like.

그러나, 상기 시스템에 포함되는 복수의 어플리케이션들은 각각 다른 기업에서 제작되는 경우가 많으므로 단일 컴퓨팅 환경에서 다양한 어플리케이션을 통합하여 실시간성과 임계성을 보장하는 방법 및 장치가 필요한 실정이다.However, since a plurality of applications included in the system are often produced by different companies, there is a need for a method and apparatus for integrating various applications in a single computing environment to guarantee real time and criticality.

한국공개특허 제10-2007-0073916호(공개일 2007년 07월 10일)에는 컴퓨터 운영시스템(OS)에서, 서로 다른 임계성(criticality)을 가진 작업을 실행하는데 필요한 프로세서들이 수행되는 경우, 인터럽트가 크리티컬 인터럽트인지 여부에 따라 인터럽트의 수행 여부를 결정하는 기술이 개시되어 있다. 그러나, 종래의 기술은 크리티컬 인터럽트가 발생하는 경우 프로세스의 수행을 인터럽트 하는 것이므로, 최초에 스케줄링 한 프로세스의 실행 순서가 변경될 가능성이 높다.Korean Patent Publication No. 10-2007-0073916 (published Jul. 10, 2007) discloses that when a processor required to execute a task having different criticality is executed in a computer operating system (OS), an interrupt is generated. A technique for determining whether to perform an interrupt according to whether or not it is a critical interrupt is disclosed. However, since the prior art interrupts the execution of a process when a critical interrupt occurs, the execution order of the originally scheduled process is likely to be changed.

따라서, 임계성을 고려하여 파티션의 실행 순서와 실행 시간을 스케줄링 함으로써 인터럽트 없이도 실시간성과 임계성을 보장할 수 있는 방법이 요청되고 있다.Therefore, there is a demand for a method that can guarantee real time and criticality without interruption by scheduling an execution order and execution time of a partition in consideration of the criticality.

본 발명은 주기 별로 파티션의 실행 시간을 다르게 결정함으로써, 시스템의 사용률을 높이는 장치 및 방법을 제공한다.The present invention provides an apparatus and method for increasing the utilization of the system by differently determining the execution time of a partition for each cycle.

또한, 본 발명은 임계성 값(Criticality Level)이 높은 파티션의 태스크가 임계성 값이 낮은 파티션의 태스크 보다 먼저 실행되도록 파티션의 실행시간 및 주기를 결정함으로써 임계성 값이 낮은 파티션의 태스크가 임계성 값이 높은 파티션의 태스크를 선점하는 것을 방지하는 장치 및 방법을 제공한다. In addition, the present invention determines a partition's execution time and period so that tasks of a partition having a high criticality level are executed before tasks of a partition having a low criticality value, so that tasks of a partition having a low criticality value have a high threshold value. An apparatus and method for preventing preemption of a task are provided.

본 발명의 일실시예에 따른 파티션 스케줄링 장치는 파티션의 태스크가 갖는 의 주기를 기초로 파티션의 주기를 결정하는 파티션 주기 결정부; 및 파티션의 주기를 기초로 파티션의 주기 별 실행 시간을 결정하는 파티션 실행 시간 결정부를 포함할 수 있다.Partition partitioning apparatus according to an embodiment of the present invention includes a partition period determination unit for determining the period of the partition based on the period of the task of the partition; And a partition execution time determiner configured to determine an execution time for each cycle of the partition based on a cycle of the partition.

본 발명의 일실시예에 따른 파티션 스케줄링 장치의 실행 순서 결정부는 임계성 값이 높은 파티션의 태스크가 임계성 값이 낮은 파티션의 태스크 보다 먼저 실행되도록 파티션의 주기 및 실행시간을 결정할 수 있다.The execution order determination unit of the partition scheduling apparatus according to an embodiment of the present invention may determine the period and execution time of a partition so that a task of a partition having a high threshold value is executed before a task of a partition having a low threshold value.

본 발명의 일실시예에 따른 파티션 스케줄링 방법은 파티션의 태스크의 주기를 기초로 파티션의 주기를 결정하는 단계; 및 파티션의 주기를 기초로 파티션의 주기 별 실행 시간을 결정하는 단계를 포함할 수 있다.Partition partition method according to an embodiment of the present invention comprises the steps of determining the period of the partition based on the period of the task of the partition; And determining an execution time for each cycle of the partition based on the cycle of the partition.

본 발명의 일실시예에 의하면, 주기 별로 파티션의 실행 시간을 다르게 결정함으로써, 시스템의 사용률을 높일 수 있다. According to an embodiment of the present invention, the utilization rate of the system can be increased by differently determining the execution time of the partition for each cycle.

또한, 본 발명의 일실시예에 의하면, 임계성 값(Criticality Level)이 높은 파티션의 태스크가 임계성 값이 낮은 파티션의 태스크 보다 먼저 실행되도록 파티션의 실행시간 및 주기를 결정함으로써 임계성 값이 낮은 파티션의 태스크가 임계성 값이 높은 파티션의 태스크를 선점하는 것을 방지할 수 있다.Further, according to an embodiment of the present invention, a task of a partition having a low criticality value is determined by determining an execution time and a period of a partition such that a task of a partition having a high criticality level is executed before a task of a partition having a low criticality value. Can prevent preemption of tasks in partitions with high criticality values.

도 1은 본 발명의 일실시예에 따른 파티션 스케줄링 장치를 도시한 블록 다이어그램이다.
도 2는 본 발명의 일실시예에 따른 파티션 스케줄링 장치를 적용한 시스템의 일례이다.
도 3은 종래의 스케줄링에 따른 파티션 스케줄과 본 발명의 일실시예에 따른 파티션 스케줄의 일례이다.
도 4는 본 발명의 일실시예에 따른 파티션 스케줄링 방법을 도시한 플로우차트이다.
1 is a block diagram illustrating a partition scheduling apparatus according to an embodiment of the present invention.
2 is an example of a system to which a partition scheduling apparatus according to an embodiment of the present invention is applied.
3 is an example of a partition schedule according to a conventional scheduling and a partition schedule according to an embodiment of the present invention.
4 is a flowchart illustrating a partition scheduling method according to an embodiment of the present invention.

이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 본 발명의 일실시예에 따른 파티션 스케줄링 방법은 파티션 스케줄링 장치에 의해 수행될 수 있다. 이때, 파티션은 어플리케이션과 같이 복수의 프로세스로 구성된 프로그램이며, 파티션 별로 임계성 값(Criticality Level)이 설정될 수 있다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. The partition scheduling method according to an embodiment of the present invention may be performed by a partition scheduling apparatus. In this case, the partition is a program composed of a plurality of processes, such as an application, and a criticality level may be set for each partition.

이때, 임계성 값은 각 파티션의 중요도일 수 있다. 예를 들어 항공기 시스템에 비행을 유지시켜주는 비행 파티션과 특정 경로로 이동 시키는 미션 파티션이 있는 경우, 비행을 유지시켜주는 비행 파티션의 임계성 값이 미션 파티션보다 높을 수 있다.In this case, the criticality value may be the importance of each partition. For example, if an aircraft system has a flight partition for maintaining flight and a mission partition for moving to a specific path, the criticality value of the flight partition for maintaining flight may be higher than that of the mission partition.

도 1은 본 발명의 일실시예에 따른 파티션 스케줄링 장치를 도시한 블록 다이어그램이다. 1 is a block diagram illustrating a partition scheduling apparatus according to an embodiment of the present invention.

본 발명의 일실시예에 따른 파티션 스케줄링 장치(100)은 도 1에 도시된 바와 같이 파티션 주기 결정부(110)와 파티션 실행 시간 결정부(120)를 포함할 수 있다.The partition scheduling apparatus 100 according to an embodiment of the present invention may include a partition period determiner 110 and a partition execution time determiner 120 as shown in FIG. 1.

파티션 주기 결정부(110)는 파티션에 포함된 태스크의 주기를 기초로 파티션의 주기를 결정할 수 있다. 구체적으로, 파티션 주기 결정부(110)는 수학식 1을 사용하여 파티션의 주기를 결정할 수 있다.The partition period determiner 110 may determine a period of a partition based on a period of a task included in the partition. In detail, the partition period determiner 110 may determine a period of a partition using Equation 1.

Figure 112011086293857-pat00001
Figure 112011086293857-pat00001

이때,

Figure 112011086293857-pat00002
는 j번째 파티션의 주기이고,
Figure 112011086293857-pat00003
는 파티션 스케줄링 장치(100)가 스케줄링 하는 모든 파티션들에 포함된 태스크의 주기 값 중에서 가작 작은 주기 값일 수 있다. 예를 들어 파티션 주기 결정부(110)는 수학식 2를 사용하여
Figure 112011086293857-pat00004
를 계산할 수 있다.At this time,
Figure 112011086293857-pat00002
Is the period of the jth partition,
Figure 112011086293857-pat00003
May be a minimum period value among period values of a task included in all partitions scheduled by the partition scheduling apparatus 100. For example, the partition period determiner 110 may use Equation 2 below.
Figure 112011086293857-pat00004
Can be calculated.

또한, 파티션들에 포함된 태스크들의 주기는

Figure 112011086293857-pat00005
으로 나누어 지는 값일 수 있다.In addition, the period of tasks included in the partitions
Figure 112011086293857-pat00005
It can be a value divided by.

Figure 112011086293857-pat00006
Figure 112011086293857-pat00006

이때,

Figure 112011086293857-pat00007
는 j번째 파티션에 포함된 태스크의 주기 값 중에서 가장 작은 주기 값일 수 있다.At this time,
Figure 112011086293857-pat00007
May be the smallest period value among the period values of the task included in the j-th partition.

파티션 실행 시간 결정부(120)는 파티션 주기 결정부(110)가 결정한 파티션의 주기를 기초로 파티션의 주기 별 실행 시간을 결정할 수 있다. The partition execution time determiner 120 may determine an execution time for each cycle of a partition based on the cycle of the partition determined by the partition cycle determiner 110.

이때, 파티션 실행 시간 결정부(120)는 파티션의 실행 시간을 주기 별로 다르게 결정할 수 있다. 예를 들어 rth 번째 주기에서의 j번째 파티션의 실행 시간과 (r-1)th 번째 주기에서의 j번째 파티션의 실행 시간은 서로 다를 수 있다. 또한, 파티션 실행 시간 결정부(120)는 파티션의 주기 별 실행 시간이 일정 주기 마다 동일한 패턴으로 변화하도록 결정할 수 있다.In this case, the partition execution time determiner 120 may determine the execution time of the partition differently for each cycle. For example r th Execution time of the jth partition in the first period and (r-1) th The execution time of the jth partition in the first period may be different. In addition, the partition execution time determiner 120 may determine that the execution time of each partition cycle changes in the same pattern every predetermined period.

구체적으로 파티션 실행 시간 결정부(120)는 수학식 3을 사용하여 rth 번째 주기에서의 j번째 파티션의 실행 시간을 결정할 수 있다. 이때, r은 수학식 4를 만족할 수 있다.In more detail, the partition execution time determiner 120 uses r th to form r th. The execution time of the jth partition in the first period can be determined. In this case, r may satisfy Equation 4.

Figure 112011086293857-pat00008
Figure 112011086293857-pat00008

Figure 112011086293857-pat00009
Figure 112011086293857-pat00009

이때,

Figure 112011086293857-pat00010
는 rth 번째 주기에서의 j번째 파티션의 실행 시간이고,
Figure 112011086293857-pat00011
는 j 번째 파티션에 포함된 k 번째 태스크의 실행 시간이며,
Figure 112011086293857-pat00012
는 파티션 스케줄링 장치(100)가 스케줄링 하는 모든 파티션들에 포함된 태스크의 주기 값 중에서 가작 큰 주기 값일 수 있다.At this time,
Figure 112011086293857-pat00010
R th Execution time of the jth partition in the first cycle,
Figure 112011086293857-pat00011
Is the execution time of the kth task contained in the jth partition,
Figure 112011086293857-pat00012
May be the largest period value among period values of a task included in all partitions scheduled by the partition scheduling apparatus 100.

또한,

Figure 112011086293857-pat00013
는 j 번째 파티션에 포함된 k 번째 태스크인
Figure 112011086293857-pat00014
가 다른 태스크들의 실행 시간을 할당하고 난 후에 가장 작은 주기에 실행 시간이 할당되었는지 여부일 수 있다. 이때,
Figure 112011086293857-pat00015
는 불리언(Boolean) 값을 가질 수 있으며 파티션 실행 시간 결정부(120)는 수학식 5를 사용하여
Figure 112011086293857-pat00016
를 계산할 수 있다.Also,
Figure 112011086293857-pat00013
Is the k th task contained in the j th partition
Figure 112011086293857-pat00014
After allocating execution times of other tasks, the execution time may be allocated in the smallest period. At this time,
Figure 112011086293857-pat00015
May have a Boolean value and the partition execution time determiner 120 may use Equation 5
Figure 112011086293857-pat00016
Can be calculated.

Figure 112011086293857-pat00017
Figure 112011086293857-pat00017

이때,

Figure 112011086293857-pat00018
는 j 번째 파티션에 포함된 k 번째 태스크의 주기일 수 있다.At this time,
Figure 112011086293857-pat00018
May be a period of the k th task included in the j th partition.

그리고,

Figure 112011086293857-pat00019
은 (r-1)th 번째 주기에서 할당하지 못한 워크로드(workload)일 수 있다. 이때,
Figure 112011086293857-pat00020
Figure 112011086293857-pat00021
에 따라 rth 번째 이후의 주기에서 실행 시간을 할당할 수 있다. 또한, 파티션 실행 시간 결정부(120)는 수학식 6을 사용하여
Figure 112011086293857-pat00022
를 계산할 수 있다.And,
Figure 112011086293857-pat00019
May be a workload not allocated in the (r-1) th cycle. At this time,
Figure 112011086293857-pat00020
The
Figure 112011086293857-pat00021
According to r th The execution time can be allocated in the cycle after the second. In addition, the partition execution time determiner 120 uses Equation 6
Figure 112011086293857-pat00022
Can be calculated.

Figure 112011086293857-pat00023
Figure 112011086293857-pat00023

이때,

Figure 112011086293857-pat00024
은 rth 번째 주기의 유휴 시간(idle time)이며, 파티션 실행 시간 결정부(120)는 수학식 7을 사용하여
Figure 112011086293857-pat00025
를 계산할 수 있다. At this time,
Figure 112011086293857-pat00024
Is an idle time of the r th th cycle, and the partition execution time determiner 120 uses Equation 7 below.
Figure 112011086293857-pat00025
Can be calculated.

Figure 112011086293857-pat00026
Figure 112011086293857-pat00026

또한, 파티션 실행 시간 결정부(120)는 파티션의 주기 별 실행 시간을 결정하는 동안, 태스크 k의

Figure 112011086293857-pat00027
번째 주기마다의 워크 로드 값인
Figure 112011086293857-pat00028
과 유휴시간(idle time)인
Figure 112011086293857-pat00029
을 업데이트하여 스케줄 가능성(Schedulability) 테스트를 수행할 수도 있다.In addition, while the partition execution time determination unit 120 determines the execution time for each partition cycle, task k
Figure 112011086293857-pat00027
Which is the workload value for every
Figure 112011086293857-pat00028
And idle time
Figure 112011086293857-pat00029
You can update the scheduler to perform the scheduleability test.

이때, 파티션 실행 시간 결정부(120)는 수학식 8을 사용하여

Figure 112011086293857-pat00030
를 계산하고, 수학식 9를 사용하여
Figure 112011086293857-pat00031
를 계산할 수 있다.At this time, the partition execution time determiner 120 uses Equation 8
Figure 112011086293857-pat00030
, And using Equation 9
Figure 112011086293857-pat00031
Can be calculated.

Figure 112011086293857-pat00032
Figure 112011086293857-pat00032

Figure 112011086293857-pat00033
Figure 112011086293857-pat00033

파티션 실행 시간 결정부(120)는

Figure 112011086293857-pat00034
이고,
Figure 112011086293857-pat00035
인 경우 결정된 파티션의 주기 별 실행 시간으로는 스케줄링이 불가능하다고 판단할 수 있다. 이때, 파티션 실행 시간 결정부(120)는 파티션의 r을 증가시킨 파티션의 다음 주기 별 실행 시간을 재결정함으로써 스케줄링이 가능하도록 파티션의 주기 별 실행 시간을 결정할 수 있다. 그리고, 파티션 실행 시간 결정부(120)는 r이
Figure 112011086293857-pat00036
값과 같아지고도 스케줄링을 만족시키지 못하는 경우, 스케줄링이 가능한 파티션의 주기 별 실행 시간을 결정할 수 없다고 판단할 수 있다.Partition execution time determination unit 120
Figure 112011086293857-pat00034
ego,
Figure 112011086293857-pat00035
In this case, it can be determined that scheduling is not possible with the execution time for each partition of the determined partition. In this case, the partition execution time determiner 120 may determine the execution time of each partition to enable scheduling by re-determining the execution time of the next cycle of the partition where the partition r is increased. Then, the partition execution time determiner 120 is r
Figure 112011086293857-pat00036
If it is equal to the value but does not satisfy the scheduling, it may be determined that the execution time for each cycle of the partition that can be scheduled cannot be determined.

본 발명에 따른 파티션의 스케줄링 장치는 주기 별로 파티션의 실행 시간을 다르게 결정함으로써, 파티션의 사용률을 높일 수 있다. 또한, 임계성 값(Criticality Level)이 높은 파티션의 태스크가 임계성 값이 낮은 파티션의 태스크 보다 먼저 실행되도록 파티션의 태스크 실행 순서를 결정함으로써 임계성 값이 낮은 파티션의 태스크가 임계성 값이 높은 파티션의 태스크를 선점하는 것을 방지할 수 있다.The scheduling apparatus of a partition according to the present invention can increase the utilization rate of a partition by differently determining an execution time of the partition for each period. Also, by determining the task execution order of partitions so that tasks in partitions with a higher criticality level run before tasks in partitions with a lower criticality value, tasks in partitions with lower criticality preempt tasks in partitions with higher criticality. Can be prevented.

도 2는 본 발명의 일실시예에 따른 파티션 스케줄링 장치를 적용한 시스템의 일례이다.2 is an example of a system to which a partition scheduling apparatus according to an embodiment of the present invention is applied.

도 2는 리눅스에서 ARINC 653을 구현한 시스템에 본 발명의 일실시예에 따른 파티션 스케줄링 장치를 적용한 일례이다. 이때, ARINC 653은 주기적 파티션과 항공기를 위해서, 운영체제와 소프트웨어 간의 인터페이스를 정의해 놓은 표준이다. 2 is an example of applying a partition scheduling apparatus according to an embodiment of the present invention to a system implementing ARINC 653 in Linux. The ARINC 653 is a standard that defines the interface between the operating system and software for periodic partitions and aircraft.

이때, 파티션((210)들은 도 2에 도시된 바와 같이 복수의 프로세스(211)과 에러 핸들러(Error Handler)(212)를 포함할 수 있다. In this case, the partitions 210 may include a plurality of processes 211 and an error handler 212 as shown in FIG. 2.

또한, 상기 시스템은 유저 영역에 복수의 파티션((210), XML(220), 스타트용 프로세스(Startup press)(230) 및 ARINC 653 라이브러리(240)를 포함할 수 있다.In addition, the system may include a plurality of partitions 210, XML 220, a startup press 230, and an ARINC 653 library 240 in the user area.

그리고, 상기 시스템은 커널 영역에 EDF알고리즘을 사용하는 프로세스 스케줄러(251)를 포함한 리눅스 커널(250)과 데드라인 미스가 발생시 해당 파티션의 에러 핸들러(212)를 실행시키는 헬스 모니터(Health Monitor)(261)를 포함한 ARINC 653 커널(260)를 포함할 수 있다. In addition, the system monitors the Linux kernel 250 including the process scheduler 251 using the EDF algorithm in the kernel region, and a health monitor 261 which executes an error handler 212 of the corresponding partition when a deadline miss occurs. It may include the ARINC 653 kernel 260, including.

이때, 파티션의 스케줄링 장치(100) 중 하나인 파티션 스케줄러(200)은 리눅스 커널(250)과 ARINC 653 커널(260)에 공통으로 포함되어 파티션(210)들을 스케줄링 할 수 있다.In this case, the partition scheduler 200, which is one of the partition scheduling apparatus 100, may be commonly included in the Linux kernel 250 and the ARINC 653 kernel 260 to schedule the partitions 210.

도 3은 본 발명의 일실시예에 따른 파티션 스케줄의 일례이다.3 is an example of a partition schedule according to an embodiment of the present invention.

스케줄(310)은 파티션 스케줄링 장치가 표 1과 같은 파티션들에게 수학식 10을 사용하여 파티션의 주기를 계산하고, 수학식 11을 사용하여 파티션의 실행 시간을 계산하여 생성한 스케줄의 일례이다.The schedule 310 is an example of a schedule generated by the partition scheduling apparatus by calculating a period of a partition by using Equation 10 to partitions shown in Table 1 and by calculating an execution time of the partition by using Equation 11.

Figure 112011086293857-pat00037
Figure 112011086293857-pat00037

이때, i는 파티션에 포함된 태스크가 파티션의 몇 번째 태스크인지를 나타내는 식별 정보이고, p는 태스크의 주기이며, e는 태스크의 실행 시간일 수 있다.In this case, i is identification information indicating the task of the partition included in the task, p is the period of the task, e may be the execution time of the task.

Figure 112011086293857-pat00038
Figure 112011086293857-pat00038

Figure 112011086293857-pat00039
Figure 112011086293857-pat00039

이때, 파티션 스케줄링 장치는 수학식 10과 수학식 11을 사용하여 파티션 1인

Figure 112011086293857-pat00040
, 파티션 2인
Figure 112011086293857-pat00041
로 결정할 수 있다.At this time, the partition scheduling apparatus is partition 1 using equations (10) and (11).
Figure 112011086293857-pat00040
, Partition 2
Figure 112011086293857-pat00041
.

그러나, 스케줄(310)은 시간 6(311)에서 수행되어야 할

Figure 112011086293857-pat00042
가 임계성 값이 낮은
Figure 112011086293857-pat00043
에 의해 선점되는 임계성 역전(inversion) 현상이 발생하여
Figure 112011086293857-pat00044
가 시간 62(321)까지 실행이 지연되고 있다. 따라서, 스케줄(310)은 태스크의 오버런이 발생한 경우 더 높은 임계성을 갖는 파티션의 태스크 실행을 방해하여 시스템에 치명적 결함을 야기 할 수 있다. However, schedule 310 should be performed at time 6 311
Figure 112011086293857-pat00042
Has a low criticality value
Figure 112011086293857-pat00043
The critical inversion phenomenon preempted by
Figure 112011086293857-pat00044
Execution is delayed until the time 62 (321). Therefore, the schedule 310 may cause a fatal defect in the system by interrupting the task execution of a partition having a higher threshold when a task overrun occurs.

스케줄(320)은 파티션 스케줄링 장치가 표 1과 같은 파티션들에게 수학식 12를 사용하여 파티션의 주기를 계산하고, 수학식 13을 사용하여 파티션의 실행 시간을 계산하여 생성한 스케줄의 일례이다.The schedule 320 is an example of a schedule generated by the partition scheduling apparatus by calculating a period of a partition by using Equation 12 to partitions shown in Table 1 and by calculating an execution time of the partition using Equation 13.

Figure 112011086293857-pat00045
Figure 112011086293857-pat00045

Figure 112011086293857-pat00046
Figure 112011086293857-pat00046

이때,

Figure 112011086293857-pat00047
는 수학식 14를 만족하는 r 중에서 가장 작은 r일 수 있다.At this time,
Figure 112011086293857-pat00047
May be the smallest r among r satisfying Equation (14).

Figure 112011086293857-pat00048
Figure 112011086293857-pat00048

파티션 스케줄링 장치는 수학식 12과 수학식 13을 사용하여 임계성 값이 높은 파티션의 태스크의 실행 시간을 여유 있게 예약하여 임계성 값이 높은 파티션의 태스크가 임계성 값이 낮은 파티션의 태스크보다 먼저 실행되도록 함으로써, 임계성 역전 현상을 방지할 수 있다.By using Equation 12 and Equation 13, the partition scheduling apparatus reserves the execution time of a task of a partition with a high threshold value to allow the task of a partition with a high threshold value to run before a task of a partition with a low threshold value. Critical reversal can be prevented.

그러나, 파티션 스케줄링 장치는 수학식 12와 수학식 13을 사용하는 경우, 파티션 1인 P1=(20,18), 파티션 2인 P2=(40,20)로 결정하게 되므로, 리소스 효율성이 수학식 15을 만족하지 않는다. 따라서, 스케줄(320)는 시간 18(321), 시간 338(322)와 같이 파티션 2의 실행 시간이 짧으므로 데드라인 미스(323)이 발생할 수 있다.However, when the partition scheduling apparatus uses Equation 12 and Equation 13, the partition scheduling apparatus determines P1 = (20,18), which is Partition 1, and P2 = (40,20), which is Partition 2. Are not satisfied. Therefore, since the execution time of the partition 2 is short, such as the time 18 321 and the time 338 322, the schedule 320 may cause a deadline miss 323.

Figure 112011086293857-pat00049
Figure 112011086293857-pat00049

본 발명의 일실시예에 따른 파티션 스케줄링 장치(100)는 표 1과 같은 파티션들에게 수학식 3을 사용하여 표 2와 같이 주기 별 파티션의 실행 시간을 계산하여 생성한 스케줄(330)을 생성함으로써, 파티션의 사용률을 높이고, 임계성 값이 낮은 파티션의 태스크가 임계성 값이 높은 파티션의 태스크를 선점하는 것을 방지할 수 있다.Partition scheduling apparatus 100 according to an embodiment of the present invention by generating a schedule 330 generated by calculating the execution time of the partition for each cycle as shown in Table 2 using Equation 3 to the partitions shown in Table 1 In this case, it is possible to increase the utilization of the partition and prevent the task of the partition having a low threshold value from preempting the task of the partition having a high threshold value.

Figure 112011086293857-pat00050
Figure 112011086293857-pat00050

예를 들어,

Figure 112011086293857-pat00051
는 스케줄(310)에서는 시간 62(321)까지 실행이 지연되고 있으나 스케줄(330)에서는 시간 14(331)에 실행됨으로써, 태스크의 오버런이 발생했을 때 데드라인 미스 없이 태스크를 실행할 수 있다. E.g,
Figure 112011086293857-pat00051
Although the execution is delayed until the time 62 (321) in the schedule 310, it is executed at time 14 (331) in the schedule 330, it is possible to execute the task without a deadline miss when the overrun of the task occurs.

도 4는 본 발명의 일실시예에 따른 파티션 스케줄링 방법을 도시한 플로우차트이다.4 is a flowchart illustrating a partition scheduling method according to an embodiment of the present invention.

단계(S410)에서 파티션 주기 결정부(110)는 파티션의 태스크의 주기를 기초로 파티션의 주기를 결정할 수 있다. In operation S410, the partition period determining unit 110 may determine a period of a partition based on a period of a task of the partition.

단계(S420)에서 파티션 실행 시간 결정부(120)는 단계(S410)에서 결정된 파티션의 주기를 기초로 파티션의 주기 별 실행 시간을 결정할 수 있다. 이때, 파티션 실행 시간 결정부(120)는 파티션의 실행 시간을 주기 별로 다르게 결정할 수 있다. In operation S420, the partition execution time determiner 120 may determine an execution time of each partition period based on the period of the partition determined in operation S410. In this case, the partition execution time determiner 120 may determine the execution time of the partition differently for each cycle.

본 발명은 주기 별로 파티션의 실행 시간을 다르게 결정함으로써, 파티션의 사용률을 높일 수 있다. 또한, 임계성 값(Criticality Level)이 높은 파티션의 태스크가 임계성 값이 낮은 파티션의 태스크 보다 먼저 실행되도록 파티션의 태스크 실행 순서를 결정함으로써 임계성 값이 낮은 파티션의 태스크가 임계성 값이 높은 파티션의 태스크를 선점하는 것을 방지할 수 있다.The present invention can increase the utilization rate of a partition by differently determining the execution time of the partition for each cycle. In addition, by determining the task execution order of partitions so that tasks in partitions with high criticality levels run before tasks in partitions with low criticality values, tasks in partitions with low criticality preempt tasks in partitions with high criticality. Can be prevented.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.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.

100: 파티션 스케줄링 장치
110: 파티션 주기 결정부
120: 파티션 실행 시간 결정부
100: partition scheduling device
110: partition cycle determination unit
120: partition execution time determination unit

Claims (4)

파티션 주기 결정부와 파티션 실행 시간 결정부를 포함하는 파티션 스케줄링 장치가 수행하는 파티션 스케줄링 방법에 있어서,
상기 파티션 주기 결정부가 파티션의 태스크의 주기를 기초로 파티션의 주기를 결정하는 단계; 및
상기 파티션 스케줄링 장치가 상기 파티션의 주기를 기초로 파티션의 주기 별 실행 시간을 결정하는 단계
를 포함하고,
상기 주기 별 실행 시간은,
파티션이 실행되는 주기에 따라 일정 패턴으로 변화하는 파티션 스케줄링 방법.
A partition scheduling method performed by a partition scheduling apparatus including a partition period determining unit and a partition execution time determining unit,
Determining, by the partition period determiner, a period of a partition based on a period of a task of the partition; And
Determining, by the partition scheduling apparatus, an execution time for each cycle of a partition based on the cycle of the partition;
Lt; / RTI >
The execution time for each cycle is
Partition scheduling method that changes in a certain pattern according to the period in which partitions are executed.
삭제delete 파티션의 태스크의 주기를 기초로 파티션의 주기를 결정하는 파티션 주기 결정부; 및
상기 파티션 주기 결정부가 결정한 파티션의 주기를 기초로 파티션의 주기 별 실행 시간을 결정하는 파티션 실행 시간 결정부
를 포함하고,
상기 주기 별 실행 시간은,
파티션이 실행되는 주기에 따라 일정 패턴으로 변화하는 파티션 스케줄링 장치.
A partition period determination unit that determines a period of a partition based on a period of a task of the partition; And
Partition execution time determining unit for determining the execution time of each partition cycle based on the partition period determined by the partition period determination unit
Lt; / RTI >
The execution time for each cycle is
Partition scheduling device that changes in a certain pattern according to the period in which partitions are executed.
삭제delete
KR1020110113379A 2011-11-02 2011-11-02 Apparatus and method for scheduling partition based criticality KR101349561B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110113379A KR101349561B1 (en) 2011-11-02 2011-11-02 Apparatus and method for scheduling partition based criticality

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110113379A KR101349561B1 (en) 2011-11-02 2011-11-02 Apparatus and method for scheduling partition based criticality

Publications (2)

Publication Number Publication Date
KR20130048504A KR20130048504A (en) 2013-05-10
KR101349561B1 true KR101349561B1 (en) 2014-01-08

Family

ID=48659540

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110113379A KR101349561B1 (en) 2011-11-02 2011-11-02 Apparatus and method for scheduling partition based criticality

Country Status (1)

Country Link
KR (1) KR101349561B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102169869B1 (en) * 2014-05-13 2020-10-27 한국전자통신연구원 Partition control apparatus and method of operating system
KR102528130B1 (en) * 2018-02-27 2023-05-03 주식회사 알티스트 Method for scheduling partitions
KR102353602B1 (en) * 2021-07-13 2022-01-21 국방과학연구소 Apparatus and method for partition scheduling

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001513239A (en) * 1997-02-25 2001-08-28 セクスタン アビオニク Highly secure method and apparatus for performing multiple functions of different importance by a single processor
JP2002342097A (en) 2001-05-17 2002-11-29 Matsushita Electric Ind Co Ltd Task allocatable time deciding device and task allocatable time deciding method
JP2006268754A (en) 2005-03-25 2006-10-05 Toshiba Corp Scheduling possibility determination method, real-time system and program
KR20110061587A (en) * 2008-08-28 2011-06-09 엔이씨 유럽 리미티드 Method and system for scheduling periodic processes

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001513239A (en) * 1997-02-25 2001-08-28 セクスタン アビオニク Highly secure method and apparatus for performing multiple functions of different importance by a single processor
JP2002342097A (en) 2001-05-17 2002-11-29 Matsushita Electric Ind Co Ltd Task allocatable time deciding device and task allocatable time deciding method
JP2006268754A (en) 2005-03-25 2006-10-05 Toshiba Corp Scheduling possibility determination method, real-time system and program
KR20110061587A (en) * 2008-08-28 2011-06-09 엔이씨 유럽 리미티드 Method and system for scheduling periodic processes

Also Published As

Publication number Publication date
KR20130048504A (en) 2013-05-10

Similar Documents

Publication Publication Date Title
Delgado et al. Kairos: Preemptive data center scheduling without runtime estimates
Herman et al. RTOS support for multicore mixed-criticality systems
US9778943B2 (en) Timer based virtual processor scheduling and suspension on physical processor for use of physical processor by other processing
US20150058858A1 (en) Dynamic task prioritization for in-memory databases
US9298504B1 (en) Systems, devices, and techniques for preempting and reassigning tasks within a multiprocessor system
EP2581829B1 (en) Dynamic scheduling for frames representing views of a geographic information environment
JP2008186136A (en) Computer system
KR101703328B1 (en) Apparatus and method for optimizing data processing over the heterogeneous multi-processor environment
WO2019214608A1 (en) User space pre-emptive real-time task scheduler
Wang et al. Global fixed priority scheduling with preemption threshold: Schedulability analysis and stack size minimization
KR101349561B1 (en) Apparatus and method for scheduling partition based criticality
Bertout et al. Minimizing a real-time task set through task clustering
CN111597044A (en) Task scheduling method and device, storage medium and electronic equipment
Sousa et al. Unified overhead-aware schedulability analysis for slot-based task-splitting
US10853133B2 (en) Method and apparatus for scheduling tasks to a cyclic schedule
Agung et al. Preemptive parallel job scheduling for heterogeneous systems supporting urgent computing
Erickson et al. Recovering from overload in multicore mixed-criticality systems
EP2840513B1 (en) Dynamic task prioritization for in-memory databases
KR20130051076A (en) Method and apparatus for scheduling application program
US10761512B2 (en) Numerical controller
Liu et al. Leveraging dependency in scheduling and preemption for high throughput in data-parallel clusters
Capota et al. P_FENP: a multiprocessor real-time scheduling algorithm
Nosrati et al. Task scheduling algorithms introduction
Küttler et al. Probabilistic analysis of low-criticality execution
Souto et al. Overhead-aware schedulability evaluation of semi-partitioned real-time schedulers

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180102

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee