KR102261021B1 - 실시간 태스크 시퀀스 플랜을 구성하고 실행하는 방법 - Google Patents

실시간 태스크 시퀀스 플랜을 구성하고 실행하는 방법 Download PDF

Info

Publication number
KR102261021B1
KR102261021B1 KR1020167019504A KR20167019504A KR102261021B1 KR 102261021 B1 KR102261021 B1 KR 102261021B1 KR 1020167019504 A KR1020167019504 A KR 1020167019504A KR 20167019504 A KR20167019504 A KR 20167019504A KR 102261021 B1 KR102261021 B1 KR 102261021B1
Authority
KR
South Korea
Prior art keywords
frame
time
sequence
deadline
action
Prior art date
Application number
KR1020167019504A
Other languages
English (en)
Other versions
KR20160100377A (ko
Inventor
뱅생 다비드
아드리앙 바르보
Original Assignee
크로노-세이프
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 크로노-세이프 filed Critical 크로노-세이프
Publication of KR20160100377A publication Critical patent/KR20160100377A/ko
Application granted granted Critical
Publication of KR102261021B1 publication Critical patent/KR102261021B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • 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

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)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)
  • Advance Control (AREA)

Abstract

시분할 방식으로 2개의 태스크를 실행하는 방법으로서, 각 태스크를 상기 태스크와 연관된 시간 베이스에서 연속적인 프레임들의 반복 시퀀스로 오프라인에서 분해하는 단계로서, 각 프레임은 실행 요구를 가지는 원자 동작과 연관되고, 각 프레임은 상기 동작이 시작할 수 있는 시작 날짜와, 상기 동작이 종료하여야 하는 데드라인을 한정하고, 이에 의해 각 프레임은 상기 동작이 시작할 수 있는 시간 마진을 한정하는, 상기 분해하는 단계; 상기 동작의 상기 시작 날짜와 데드라인을 고려하면서, 상기 반복 시퀀스들 중 제1 반복 시퀀스의 각 프레임에 대해, 상기 제1 반복 시퀀스의 프레임(Fai)과 오버랩하는 제2 반복 시퀀스의 프레임의 그룹 중 임의의 2개의 연속적인 동작들 사이에 대응하는 동작이 수행될 수 있는지 여부를 검증하는 단계; 및 상기 검증이 만족되면, 상기 2개의 태스크의 실행을 허락하는 단계를 포함하는 방법이 제공된다. 상기 2개의 태스크의 동작은 각 키 날짜에서 평가된 다음 경우에 따라 스케줄되는데, 즉, 2개의 동작이 시작할 수 있는 경우, 더 짧은 데드라인을 가지는 동작이 실행되고; 단일 동작이 시작할 수 있는 경우, 그 실행 요구가 다른 시퀀스의 그 다음 프레임의 시작 날짜까지 남아 있는 시간에 상기 다른 시퀀스의 상기 그 다음 프레임과 연관된 시간 마진을 더한 것보다 더 작은 경우에만 이 단일 동작이 실행된다, 여기서 키 날짜는 각 데드라인, 각 시작 날짜, 및 각 동작 종료에서 일어난다.

Description

실시간 태스크 시퀀스 플랜을 구성하고 실행하는 방법{METHOD FOR COMPOSING AND EXECUTING A REAL-TIME TASK-SEQUENCING PLAN}
본 발명은 수송(자동차, 철도, 해상, 항공우주), 산업 자동화, 에너지 분야에서 사용되는 제어 및 모니터링 시스템, 통신 네트워크와 같이 자원의 제어된 할당이 중요한 시스템과 같은 다중-태스킹 실시간 임계 시스템(multi-tasking real-time critical system)에 관한 것이다. 본 발명은 높은 레벨의 성능 구현이 요구되는 실시간 시스템, 및 시스템에서 각 태스크에 할당되는 하드웨어 자원의 사용과 관련하여 높은 레벨의 보증이 요구되는 임계 시스템에 관한 것이다.
임계 실시간 시스템에서, 즉 동작의 실행이 늦어 데드라인(deadline)을 위반하는 것을 허용하지 않는 시스템에서, 태스크는 종종 정적 스케줄 방법(static scheduling method)을 통해 실행된다. 실행 자원의 요구를 정적인 시간으로 할당하는 것은 오프라인에서 구성되는데, 이는 자원과 특히 프로세서의 사용과 관련하여 실행 자원들 사이에 태스크의 시간적 독립성을 입증한다. 이 접근법은, 예를 들어, 논문["A method and a technique to model and ensure timeliness in safety critical real-time systems", C. Aussagu
Figure 112016069532309-pct00001
s, V. David, Fourth IEEE International Conference on Engineering of Complex Computer Systems, 1998]과 특허 출원 WO2006-050967 및 US2010-0199280에서 설명된다.
그러나, 이 접근법은 모든 활동(activity)에 단일 시퀀스 플랜만을 고려할 것을 요구하여, 데드라인을 결정하는데 단일 시간 베이스만을 고려한다. 이것은, 클록을 사용하여 데드라인을 결정하는 태스크와, 속력이 가변적인 물체의 위치를 사용하여 데드라인을 결정하는 태스크와 같이 상관성이 없는 시간 베이스를 갖는 태스크를 단일 프로세서에서 간섭 없이 구현하는 것을 곤란하게 한다. 이것은, 2개의 시퀀스 플랜이 공통 시간 베이스에서 클록되어 2개의 시퀀스 플랜이 태스크들 사이에 간섭 없이 단일 시퀀스 플랜으로 구성될 수 있다는 것을 의미할 수 있다. 이것은 자원들이 크게 오버 사이즈(oversized)되어 각 상황에서 최악의 경우의 시나리오를 고려할 수 있는 경우에만 실제로 달성가능하다.
특정한 마진(margin) 내에서 데드라인 위반을 허용할 수 있어서 "임계"로서 한정되지 않은 높은 레벨의 성능을 가지는 일부 실시간 시스템에서, 2개의 시퀀스 플랜을 상이한 시간 베이스에 의해 클록되는 것으로 구성하는 것은 동적 스케줄 알고리즘(dynamic scheduling algorithm)으로 수행된다. 이러한 알고리즘은, 예를 들어, ["Scheduling algorithms for multiprogramming in a hard real-time environment", C. Liu, J. Layland, Journal of the ACM, vol. 20, no. 1, pp. 46-61] 및 ["Foundations of Real-Time Computing: Scheduling and Resource Management", edited by Andr
Figure 112016069532309-pct00002
M. Van Tilborg, Gary M. Koob, 1991, Kluwer Academic Publishers] 및 또한 ["A method and a technique to model and ensure timeliness in safety critical real-time systems", C. Aussagu
Figure 112016069532309-pct00003
s, V. David, Fourth IEEE International Conference on Engineering of Complex Computer Systems, 1998]에서 설명된다.
이런 알고리즘에서는 선점방식(preemption)이 불가피한데, 즉 운영 시스템이 진행 중인 동작을 인터럽트하고 더 긴급한 동작을 실행할 수 있다. 스케줄이 동적인 경우, 선점방식의 수와 지속시간은 결정될 수 없고, 각 선점방식은 오버헤드를 도입하여 상황 스위칭을 수행한다. 이것은 태스크들 간에 간섭을 야기하여, 시스템이 복잡한 프로세서 아키텍처에 대해서는 사이즈를 정하는 것을 보다 곤란하게 하고, 예측성이 떨어지고, 재현가능성이 없다. 이러한 시스템의 설계자는 또한 2개의 상이한 시간 베이스를 갖는 시스템에서 태스크 우선순위 또는 데드라인을 적절히 설정하는 데 곤란성을 겪는다. 적용 파라미터의 값에 따라 실행 요구의 변동과 같은 선택된 옵션은 이런 방식으로 구성된 시스템이 매우 복잡하고 제어불가능하게 만든다.
따라서 2개의 플랜의 시간 베이스들이 상이한 경우에도 간섭없이 2개의 시퀀스 플랜을 시간 공유하며 실행할 수 있는 기술이 요구된다.
이 요구는, 시분할 방식으로 2개의 태스크를 실행하는 방법으로서, 각 태스크를 상기 태스크와 연관된 시간 베이스에서 연속적인 프레임들의 반복 시퀀스로 오프라인에서 분해하는 단계로서, 각 프레임은 실행 요구를 가지는 원자 동작(atomic operation)과 연관되고, 각 프레임은 상기 동작이 시작할 수 있는 시작 날짜와, 상기 동작이 종료하여야 하는 데드라인을 한정하고, 이에 의해 각 프레임은 상기 동작이 시작할 수 있는 시간 마진을 한정하는, 상기 분해하는 단계; 상기 동작의 상기 시작 날짜와 데드라인을 고려하면서, 상기 반복 시퀀스들 중 제1 반복 시퀀스의 각 프레임에 대해, 상기 제1 반복 시퀀스의 프레임과 오버랩하는 제2 반복 시퀀스의 프레임의 그룹의 임의의 2개의 연속적인 동작들 사이에 대응하는 동작이 수행될 수 있는지 여부를 검증(verify)하는 단계; 및 상기 검증(verification)이 만족된 경우, 상기 2개의 태스크의 실행을 허용하는 단계를 포함하는 방법을 제공하는 것에 의해 해결된다.
상기 2개의 태스크의 동작들은 이후 각 키 날짜(key date)에서 평가된 다음 경우에 따라 스케줄되는데, 즉: 2개의 동작이 시작할 수 있는 경우, 더 짧은 데드라인을 가지는 동작이 실행되고; 단일 동작이 시작할 수 있는 경우, 그 실행 요구가 다른 시퀀스의 그 다음 프레임의 시작 날짜까지 남아 있는 시간에 상기 다른 시퀀스의 상기 그 다음 프레임과 연관된 시간의 마진을 더한 것보다 더 작은 경우에만 단일 동작이 실행되며, 여기서 키 날짜는 각 데드라인, 각 시작 날짜, 및 각 동작 종료에서 일어난다.
각 프레임은, 상기 프레임의 데드라인 후에 또는 상기 프레임의 시작 날짜 전에 위치된, 0일 수 있는 예비 시간 간격을 더 포함할 수 있고, 여기서 상기 반복 시퀀스들 중 임의의 시퀀스의 예비 시간 간격을 사용하여 다른 반복 시퀀스의 동작을 실행할 수 있다.
상기 검증 단계는 다음 단계, 즉:
Figure 112016069532309-pct00004
상기 제1 반복 시퀀스의 각 프레임(Fai)에 대해, 상기 제2 반복 시퀀스의 각 프레임(Fbj)에 대해 다음 조건, 즉:
[A.1] Dai ≤ Tbj+1
[B.1] Dai ≤ Rbj + Tbj+1
및 Dbj ≤ Tai, 및
[C.1] Dbj ≤ Tai 를 평가하는 단계
여기서 D, T 및 R은 실행 요구, 시간 마진, 및 시퀀스에 있는 반복 시퀀스 식별자와 프레임 수로 색인된 예비 시간이다. ;
Figure 112016069532309-pct00005
상기 프레임(Fai 및 Fbj)을 교환하고 상기 조건 평가를 반복하는 단계; 및
Figure 112016069532309-pct00006
상기 3개의 조건 [A.1], [B.1] 및 [C.1]이 임의의 쌍(i, j)에 대해 만족된 경우 상기 태스크의 실행을 허가하는 단계를 포함할 수 있다.
상기 검증 단계는 다음 추가적인 단계, 즉:
Figure 112016069532309-pct00007
상기 조건 [A.1]이 거짓인 경우, 다음 조건, 즉:
[A.2] Dai ≤ Tbj+1 + Rbj+1 + Tbj+2
및 Dai + Dbj+1 ≤ Tai + Tbj+1 을 평가하는 단계;
Figure 112016069532309-pct00008
상기 조건 [B.1]이 거짓인 경우, 다음 조건, 즉:
[B.2] Dai ≤ Tbj+1 + Rbj+1 + Tbj+2
및 Dbj + Dai + Dbj +1 ≤ Tai + Tbj + 1 을 평가하는 단계;
Figure 112016069532309-pct00009
상기 조건 [C.1]이 거짓인 경우, 다음 조건, 즉:
[C.2] Dbj ≤ Tai + min[ Tbj-Dai, Ra i , Rai -1 ]을 평가하는 단계; 및
Figure 112016069532309-pct00010
상기 조건 [A.1] 또는 [A.2] 및 [B.1] 또는 [B.2] 및 [C.1] 또는 [C.2]이 각 쌍(i, j)에 대해 충족된 경우 상기 태스크의 실행을 허가하는 단계를 포함할 수 있다.
상기 프레임들의 지속시간을 결정하는 시간 베이스는, 상기 시간 마진(T)과 상기 예비 시간(R)이 상기 프레임(Fa)에 대해 팩터 1에서 za까지 변하고, 상기 프레임(Fb)에 대해 팩터 1에서 zb까지 변하도록 가변적일 수 있다. 상기 검증 단계는 다음 단계, 즉:
Figure 112016069532309-pct00011
상기 조건 [A.1]이 거짓인 경우, 다음 조건, 즉:
[A.2] Dai ≤ Tbj+1 + Rbj+1 + Tbj+2
및 min[ ql(zb
Figure 112016069532309-pct00012
(Tbj + Rbj) + (zb-1)Dbj), Dai ] + Dbj +1 ≤ Tai 을 평가하는 단계
여기서 ql = (Dai - Tbj +1)/(Tbj + Rbj) ;
Figure 112016069532309-pct00013
상기 조건 [B.1]이 거짓인 경우, 다음 조건, 즉:
[B.2] Dai ≤ Tbj+1 + Rbj+1 + Tbj+2
및 Dbj + min[ ql(zb
Figure 112016069532309-pct00014
Tbj + (zb-1)Dbj) + zb
Figure 112016069532309-pct00015
Rbj, Dai ] + Dbj +1 ≤ Tai 을 평가하는 단계
여기서 ql = (Dai - Rbj - Tbj +1)/Tbj ;
Figure 112016069532309-pct00016
상기 조건 [C.1]이 거짓인 경우, 다음 조건, 즉:
[C.2] Dbj ≤ Tai + min[ Tbj-Dai, Rai, Rai -1 ] 을 평가하는 단계; 및
Figure 112016069532309-pct00017
상기 조건 [A.1] 또는 [A.2] 및 [B.1] 또는 [B.2] 및 [C.1] 또는 [C.2]이 각 쌍(i, j)에 대해 충족된 경우 상기 태스크의 실행을 허가하는 단계를 더 포함할 수 있다.
상기 검증 단계는 다음 단계, 즉:
Figure 112016069532309-pct00018
상기 조건 [B.1]이 거짓인 경우, 상기 조건 [B.2] 전에 다음 조건, 즉:
[B.1.1] Dai ≤ Tbj + Rbj + Tbj+1
및 Dbj-1 ≤ Tl + min[ Tbj-1 + Dbj-1 + Rbj-1 - Tl - Dai-1, Rai-2 ]을 평가하는 단계
여기서 ql = (Dai - Rbj - Tbj +1)/Tbj 및 Tl = Tai -1 - (1-ql)Tbj + Rai - 1 ; 및
Figure 112016069532309-pct00019
상기 조건 [A.1] 또는 [A.2] 및 [B.1] 또는 [B.1.1] 및 [C.1] 또는 [C.2]이 각 쌍(i, j)에 대해 충족된 경우 상기 태스크의 실행을 허가하는 단계를 포함할 수 있다.
다른 잇점과 특징은 단지 예시적인 목적을 위해 제공되고 첨부 도면에 도시된 본 발명의 특정 실시예의 이하의 상세한 설명으로부터 보다 명확히 드러날 것이다.
도 1은 태스크의 시퀀스 플랜을 구성하는데 사용되는 프레임들의 반복 시퀀스의 일례를 도시하는 도면;
도 2는 프레임의 반복 시퀀스의 구조와 프레임에서 동작을 시작하는 상이한 가능성을 도시하는 도면;
도 3a 내지 도 3c는 시간을-공유하는 프레임의 2개의 반복 시퀀스의 상이한 가능성을 도시하는 도면, 여기서 도 3c는 에러 조건을 도시한다;
도 4a 내지 도 4c는 2개의 시퀀스를 구성하는 타당성 검증 기준(validation criteria)을 수립하는 제1 가정에 따라 2개의 시퀀스의 시간을 공유하는 상황을 도시하는 도면;
도 5a 및 도 5b는 2개의 시퀀스를 구성하는 타당성 검증 기준을 수립하는 제2 가정에 따라 2개의 시퀀스의 시간을 공유하는 상황을 도시하는 도면;
도 6은 2개의 시퀀스를 구성하는 타당성 검증 기준을 수립하는 제3 가정에 따라 2개의 시퀀스의 시간을 공유하는 상황을 도시하는 도면;
도 7은 도 5a의 상황에서 다른 유효성 조건(validity condition)을 수립하는, 프레임이 연속하는 일례를 도시하는 도면; 및
도 8은 대안적인 유효성 조건을 수립할 수 있는 제3 가정에 따라 2개의 시퀀스의 추가적인 실행 상황을 도시하는 도면.
실시간 태스크는 잇따라 수행되는 기본 처리 또는 동작의 시퀀스로 고려될 수 있고, 여기서 각 동작은 태스크와 연관된 시간 베이스에서 데드라인을 가지고 있다. 임계 실시간 시스템에서, 데드라인은 강제적인 것이고, 즉 그 데드라인을 초과하는 동작은 예를 들어 에러 조건과 시스템 셧다운(system shut-down)을 야기할 수 있다. 아래에 설명된 기술은 이러한 시스템에 적용되어, 상관성이 없는 시간 베이스를 가질 수 있는 다수의 태스크들이 이 시스템에서 시간을-공유하며 실행될 수 있다는 점에서 성능 레벨을 개선시킬 수 있다.
도 1은 태스크를 프레임의 반복 시퀀스(RSF)로 분해하는 것을 도시하고, 여기서 각 프레임(F)은 태스크의 순차 동작에 할당된다. 이 태스크는 루프에서 반복 시퀀스(RSF)를 실행하는 것에 의해 구현된다.
도 2는 프레임(F)의 시간 구조를 도시한다. 프레임의 시작은 동작이 시작할 수 있는 날짜이다. 이 프레임은 동작이 완료되어야 하는 데드라인(E)을 한정한다. 이 동작은 원자(atomic)인 것으로 가정되고, 즉 이 동작은 다른 동작을 수행하기 위해 보류될 수 없다. 데드라인(E)은 0일 수 있는 선택적인 예비 시간 슬롯(R)만큼 프레임의 종료시보다 선행할 수 있다. 시간 간격(D)은 프레임과 연관된 동작의 실행 요구이다. 실행 요구(D)는, 예를 들어, 동작을 실행하는데 요구되는 프로세서 클록 사이클의 수에 대응하고 - 이것은 타깃 시스템의 프로세서의 특성에 따라 고정된 시간으로 표현될 수 있다. 간격(T)은 프레임의 시작과, 동작 실행의 데드라인(E) 사이의 시간 마진에 대응한다.
따라서, 도 2에 도시된 바와 같이, 이 동작은, 프레임의 시작과, 프레임의 시작 후의 시간(T) 사이의 어디에선가에서 시작할 수 있는데, 여기서 간격(T)은 동작의 종료와 데드라인 사이에 놓여 있고, 이 동작은 데드라인(E)에서 바로 종료한다. 중간 상황에서, qT는 동작의 종료와 데드라인 사이의 간격을 나타내고, 여기서 0 ≤ q ≤ 1이고, (1- q)T는 프레임의 시작과 동작의 시작 사이의 보완 간격(complementary interval)을 나타낸다.
예비 간격(R)의 합계는, 예를 들어, 프로그래머가 입력/출력과 같이 비-실시간 동작을 수행하기 위해 시스템에 할당하는 시간이다.
이에 따라 임계 실시간 시스템에서 시간을-공유하며 수행되어야 하는 2개의 태스크는 프레임의 반복 시퀀스로 분해된다. 간섭 없이, 즉 동작의 원자성을 고려하여 태스크를 실행하기 위해, 하나의 시퀀스의 각 동작이, 2개의 시퀀스의 프레임의 제약(constraint), 즉 데드라인과 프레임 시작을 고려하여, 다른 시퀀스의 2개의 연속적인 동작들 사이의 임의의 시간에서 실행될 수 있도록 시퀀스를 구성하는 것이 추구된다.
도 3a 내지 도 3c는 2개의 시퀀스(RSFa 및 RSFb)를 언폴딩(unfolding)하는 동안 나타날 수 있는 여러 상황을 도시한다. 간략화를 위해, 예비 간격(R)은 0인 것으로 가정된다.
도 3a에서, 일례로서, 시퀀스(RSFa)는 각 파라미터(Da1 = 3, Ta1 = 6), (Da2 = 4, Ta2 = 1), 및 (Da3 = 1, Ta3 = 1)의 3개의 프레임(Fa1 내지 Fa3)을 포함하고, 여기서 시간 값은 정규화된 단위로 표현된다. 시퀀스(RSFb)는 프레임(Fa1)의 시작시로부터 3개의 단위 후에 시작하고, 이 시퀀스는 각 파라미터((Db1 = 4, Tb1 = 5) 및 (Db2 = 3, Tb2 = 4))의 2개의 프레임(Fb1 및 Fb2)을 포함한다.
동작(Da1)은 대응하는 프레임의 시작시로부터 하나의 단위를 시작한다. 동작(Da1)의 종료시에, 동작(Da2)은 아직 시작될 수 없으나, 동작(Db1)은 시작될 수 있다. 동작(Db1)의 종료시에, 실행 준비된 동작은 없다. 프레임(Fa2)의 시작, 여기서 데드라인(Ea1)은 동작(Da2)을 시작하기 위해 대기한다. 동작(Da2)의 종료시에, 동작(Db2)은 실행가능하지만, 이 동작은 시작되어서는 안된다. 실제, 동작(Db2)이 바로 론칭(launched)되었다면, 이 동작은 데드라인(Ea3)에서 바로 종료될 수 있고, 이에 의해 동작(Da3)은 이 데드라인 전에 실행될 수 없다. 이 상황에서, 프레임(Fa3)의 시작이 동작(Da3)을 론칭하기 위해 대기한다. 마지막으로, 동작(Db2)은 동작(Da3)의 종료시 시작할 수 있다.
도 3b에서, 동작(Da1)이 프레임의 시작시로부터 3개의 단위를 시작하는 것을 제외하고는 동일한 파라미터들이 유지된다. 동작(Db1 및 Da2)은, 대응하는 프레임의 제약을 고려하면서, 도 3a에 비해 2개의 단위만큼 지연된다. 동작(Da2)은 그 데드라인(Ea2)에서 바로 종료한다.
도 3c에서, 동작(Da1)이 이제 프레임의 시작시로부터 4개의 단위를 시작하는 것을 제외하고는 동일한 파라미터들이 유지된다. 동작(Db1 및 Da2)은 도 3a에 비해 3개의 단위만큼 지연된다. 동작(Db1)은, 그 데드라인(Eb1)을 고려하면서, 여전히 실행될 수 있으나, 동작(Da2)은 그 데드라인(Ea2)을 위반한다.
본 명세서에서 언급된 기술에 공통인 제1 단계는, 시퀀스의 시작들 사이의 지연에 상관없이, 시간을-공유하며 실행할 2개의 태스크에 대해, 도 3a 또는 도 3b의 조건에서 풀릴(unwound) 수 있는 2개의 반복 시퀀스(RSFa 및 RSFb)를 구성하는 단계를 포함한다. 이 구성을 하는 것은 정적(static)이고, 다시 말해, 프로그래머에 의해 오프라인으로 달성된다.
제2 단계는 임의의 2개의 시퀀스들이 호환가능(compatible)한지 여부, 즉 도 3a 및 도 3b에서와 같이 이들 2개의 시퀀스들이 풀려 각 동작이 그 제약 내에서 실행될 수 있는지 여부를 검증하는 것을 포함한다.
이 호환성 검증(compatibility verification)은 시행 착오(trial and error)에 의해 프로그래머가 시퀀스들을 구성하도록 설계된 개발 도구에서 구현될 수 있다. 이것은 바람직하게는 또한 2개의 반복 시퀀스에 의해 한정된 실행 시퀀스 플랜을 로딩할 때 실시간 시스템 그 자체에서 수행된다. 이 시스템은 시퀀스들이 호환가능하지 않은 것으로 검출되면 동작을 거부하도록 구성될 수 있다.
제3 단계는 실시간 시스템에서 2개의 시퀀스의 동작을 스케줄하는 것을 포함한다. 도면에 도시된 바와 같이, 제1 시퀀스의 동작을 제2 시퀀스의 동작과 교대하는 것이나 또는 동작이 실행 준비될 때 이 동작을 시작하는 것으로는 올바른 동작을 달성하는데 충분치 않다. 스케줄은 각 키(key) 날짜에서 평가된 다음 경우에 따라 달성될 수 있다. 키 날짜는 2개의 시퀀스에서 프레임의 시작, 데드라인과 동작 종료로 한정될 수 있다. 제시된 예에서와 같이 예비 시간 슬롯(R)(도 2)이 0일 때, 데드라인은 프레임 시작과 일치한다. 시퀀스들 중 제1 시퀀스와 연관된 주어진 키 날짜에서, "동시 프레임(concurrent frame)"이라는 용어는 제2 시퀀스의 현재 프레임을 나타낸다.
1) 시작할 수 있는 동작이 없다. 이것은, 동작이 (도 3a의 데드라인(Eb1)에서와 같이) 이미 진행 중에 있을 때, 또는 도 3a의 동작(Db1)에 대해서와 같이 동시 프레임의 동작과 그 데드라인 사이에서 실행되는 동작이 종료할 때 일어난다. 이 경우에, 그 다음 키 날짜는 대기한다.
2) 2개의 동작이 시작할 수 있다. 이것은, 동작이 도 3a 및 도 3b의 데드라인(Ea2)의 경우와 같이 동시 프레임에서 대기하고 있는 동안 프레임을 시작할 때 통상 일어난다. 이때 가장 짧은 데드라인을 가지는 동작(도 3a 및 도 3b에서 Da3)이 실행된다. 이 경우는 또한 2개의 동시 프레임이 동시에 시작할 때에도 일어난다.
3) 단일 동작이 시작할 수 있다. 이것은, 동작(Da1)의 종료시에, 또는 동시 프레임의 동작이 종료(도 3a에서 Ea1)되었을 때 프레임의 시작시에 통상 일어난다. 이 동작은, 그 실행 요구가 그 다음 동시 프레임의 시작까지 남아 있는 시간에 이 동시 프레임과 연관된 시간 마진을 더한 것보다 더 작은 경우에서만 실행된다. 예를 들어, 도 3a에서, 동작(Da2)은 데드라인(Ea1)에서 시작할 준비가 되고, 프레임(Fb2)의 시작까지 3개의 단위가 남아 있고 Tb2 = 4이다. 동작(Da2)은 Da2 = 4 < 3 + 4이기 때문에 시작된다.
그렇지 않은 경우, 그 다음 키 날짜를 기다리고 상황을 재평가한다. 예를 들어, 도 3a에서, 동작(Da2)의 종료시에 동작(Db2)이 실행 준비가 된다. 그러나, 프레임(Fa3)의 시작까지 하나의 단위가 남아 있고 Ta3 = 1이어서, 그리하여 Db2 = 3 > 1 + 1이다.
이제 실시간 시스템에 대한 시퀀스 플랜에 사용되는 임의의 2개의 반복 시퀀스(RSFa 및 RSFb)들 사이에 호환성 기준이 한정된다.
전수(exhaustive) 호환성 체크는 하나의 클록 사이클의 입도(granularity)로 그 프레임에서 동작의 위치와, 서로에 대해 시퀀스의 모든 가능한 위치의 모든 가능한 조합을 조사하여, 부과된 제약에 따라 동시 동작이 실행될 수 있는지 여부를 평가하는 것을 수반할 수 있다.
이러한 전수 검증은 적절한 시간에 달성하는 것이 곤란할 수 있다. 태스크에 대해 실행가능한 코드를 수반하는 시퀀스 플랜을 로딩할 때 실시간 시스템에서 온라인으로 평가될 수 있는 간략화된 기준이 추구된다. 이를 위해, 시퀀스들 중 하나의 시퀀스의 각 프레임이 다른 시퀀스의 각 프레임에 대해 위치하는 것에 관해 3개의 일반적인 가정이 고려된다. 각 가정에 대해, 주어진 프레임(Fai)의 동작이 프레임(Fai)과 오버랩하는 동시 프레임(Fbj, Fbj+1, ...)에 남아 있는 이용가능한 슬롯 내에서 실행될 수 있는지 여부가 검증된다. 2개의 프레임(Fai 및 Fbj)은 검증이 3개의 가정들 각각에 대해 만족된 경우 호환가능한 것으로 고려된다.
Figure 112016069532309-pct00020
가정 (A): 제1 동시 프레임(Fbj)의 동작(Dbj)이 실행 완료될 때 주어진 프레임(Fai)이 시작된다.
Figure 112016069532309-pct00021
가정 (B): 제1 동시 프레임의 동작이 실행되고 있다.
Figure 112016069532309-pct00022
가정 (C): 동시 프레임의 동작이 시작되지 않았다.
각 가정에 대해, 프레임의 상대적인 위치에 독립적인 기준이 추구된다. 이를 위해, 일반적으로, 동작을 수행할 슬롯을 찾는데 사용되는 미지의 시간 간격은 과소평가(underestimated)되고, 데드라인을 준수하는지를 체크하는데 사용되는 미지의 시간 간격은 과대평가(overestimated)된다.
도 4a 내지 도 4c는 가정 (A)에 기초하여 호환성 기준을 개발하는데 사용될 수 있는 예시적인 프레임을 도시한다. 동시 프레임(Fbj)의 동작(Dbj)이 완료되었을 때 주어진 프레임(Fai)이 이 동시 프레임(Fbj) 동안 시작된다. 프레임(Fai)은 그 다음 동시 프레임(Fbj+1)과 오버랩한다. 프레임(Fai)의 시작에 대해 알려진 모든 것은 이 프레임이 동작(Dbj)의 종료 후 간격(qTbj)에 할당된다는 것이고, 여기서 0 ≤ q ≤ 1이다.
도 4a에서, 프레임(Fai)은 프레임(Fbj+1) 전에 종료한다. 동작(Dai)은 간격(qTbj + Tbj+1)에서 동작(Dbj)의 종료로부터 론칭될 수 있다. 그러나, q는 미지이고 임의이므로, 최악의 경우의 시나리오는 q = 0인 것으로 고려되고, 이에 의해 동작(Dai)은 프레임(Fbj+1)의 시작시에 시작된다. 따라서, 동작(Dai)은 다음 조건, 즉:
Dai < Tbj + 1 [A.1]
이 만족되는 경우 실행될 수 있다. 도 4b에서, 동작(Dai)은 요구조건 A.1을 충족하지 않는다. 프레임(Fbj +1 및 Fbj + 2)에 걸쳐 동작(Dai)을 실행하는 것이 시도되는데, 이는 프레임(Fai)이 3개의 프레임(Fbj 내지 Fbj+2)과 오버랩하는 것을 의미한다. 이것은, 간격(Tbj+1 및 Tbj+2)의 합계가 충분하다는 것을 보장하는 조건, 및 데드라인(Eai)이 충족된다는 것을 보장하는 조건을 모두 만족하는 것을 의미한다:
Dai ≤ Tbj+1 + Tbj+2
qTbj + Dbj+1 + Dai ≤ Dai + Tai, 그리하여 qTbj + Dbj+1 ≤ Tai
데드라인을 고려하는 최악의 경우는 q = 1이고, 이에 의해 부등식의 좌측 부분이 증가된다. 그리하여 데드라인(Eai)은 다음 조건, 즉:
Tbj + Dbj+1 ≤ Tai
인 경우, 모든 경우에 충족된다.
그러나, 동일한 변수의 2개의 극값을 사용하여 동일한 상황에서 최악의 경우의 상황을 고려하는 것은 현실적이지 않다. 실제, 변수 q에 대한 특정 값의 범위는 도 4a의 상황에서 실제 시스템의 거동을 고려할 때 배제될 수 있다.
도 4c는 도 4a의 상황에서 실제 시스템의 거동을 도시한다. 동작(Dbj)이 종료하면, 프레임 파라미터의 온라인(on-line) 지식을 가지는 시스템은, 다음 조건, 즉:
Dai ≤ qTbj + Tbj+1
이 성립하는 한, 다시 말해, 스케줄 방법의 조건 3)이 충족되는 경우, 프레임(Fai)의 시작시에 동작(Dai)을 론칭한다.
여기서 ql을 상기 부등식에서 등식을 달성하는 q의 한계 값이라고 하자:
Dai = qlTbj + Tbj+1, 그리하여 ql = (Dai - Tbj+1)/Tbj
만약 q ≥ ql인 경우, 실제 시스템의 실행이 도 4c에 따라 일어나고, 도 4b의 상황은 배제되는 것이 확실하다. 도 4b에 대한 최악의 경우는 q = ql이고, 이에 의해
qlTbj + Dbj+1 ≤ Tai 이 되고, 그리하여, ql을 그 값으로 대체하는 것에 의해,
Dai - Tbj+1 + Dbj+1 ≤ Tai, 또는 Dai + Dbj+1 ≤ Tai + Tbj+1
이 된다. 이 값 ql을 계산하는데 사용되는 표현은 1로 제한되지 않는다. 만약 ql이 1을 초과하면, 이것은 실제적인 의미를 갖지 않는다. 값 ql은 1에 캡핑(capped)된다.
도 4b의 상황으로부터 초래되는 조건은, 이에 따라,
Dai ≤ Tbj+1 + Tbj+2
및 [A.2]
qlTbj + Dbj+1 ≤ Tai
이다. 조건 A.1은, 프레임(Fai)이 적어도 2개의 연속적인 프레임(Fb)과 오버랩하는 상황에서 검증가능(verifiable)하다. 조건 A.2는, 프레임(Fai)이 적어도 3개의 연속적인 프레임(Fb)과 오버랩하는 상황에서 검증가능하다. 유사한 방식으로, 조건 A.3 및 이하는, 프레임(Fai)이 적어도 4개 이상의 연속적인 프레임(Fb)과 오버랩하지만, 이러한 조건을 만족하는 가능성이 신속히 감소하는 상황에서 검증가능한 것으로 발견될 수 있다. 조건 A.1 및 A.2(및, 적용가능한 경우, A.3 및 이하)는 대안적인 것이고, 다시 말해, 이들 조건들 중 임의의 조건이 다른 가정들의 타당성 검증으로 점프할만큼 만족된다면 충분하다.
도 5a 및 도 5b는 가정 (B)에 기초하여 호환성 기준을 개발하는데 사용될 수 있는 프레임의 예를 도시한다. 동시 프레임(Fbj)의 동시 동작(Dbj)이 진행 중인 동안 프레임(Fai)은 동시 프레임(Fbj) 동안 시작한다. 최악의 경우에서, 도시된 바와 같이, 동작(Dbj)은 바로 시작된다. 지속시간(Dbj)이 데드라인(Eai)을 준수하는지 여부를 검증하는데 고려되는 것을 제외하고는 이 상황은 도 4a 및 도 4b의 것과 유사하다.
도 5a에 따르면:
Dai ≤ Tbj+1 이고, 또 데드라인(Eai)을 고려하기 위해, Dbj + Dai ≤ Dai + Tai 이어서, 그리하여 Dbj ≤ Tai 이다.
도 4b의 상황으로부터 초래되는 조건은, 그리하여,
Dai ≤ Tbj+1
및 [B.1]
Dbj ≤ Tai
이다. 도 5b로부터, 도 4b에서와 동일한 이유에 따라:
Dai ≤ Tbj+1 + Tbj+2
및 [B.2]
Dbj + qlTbj + Dbj+1 ≤ Tai
이다. 조건 A.1에 대해서와 같이, 조건 B.1은, 프레임(Fai)이 적어도 2개의 연속적인 프레임(Fb)과 오버랩하는 상황에서 검증가능하다. 조건 B.2은, 프레임(Fai)이 적어도 3개의 연속적인 프레임(Fb)과 오버랩하는 상황에서 검증가능하다. 유사한 방식에서, 조건 B.3 및 이하는, 프레임(Fai)이 적어도 4개 이상의 연속적인 프레임(Fb)과 오버랩하지만, 이러한 조건을 만족하는 가능성은 신속히 감소하는 상황에서 검증가능한 것으로 발견될 수 있다. 조건 B.1 및 B.2(및, 적용가능한 경우, A.3 및 이하)는 대안적인 것이고, 다시 말해, 이들 조건 중 임의의 하나의 조건이 다른 가정들의 타당성 검증으로 점프할만큼 만족된다면 충분하다.
도 6은 가정 (C)에 기초하여 호환성 기준을 개발하는데 사용될 수 있는 예시적인 프레임을 도시한다. 가정 (C)의 상황에서 동작(Dbj)은 아직 실행되지 않은 것으로 가정된다. 프레임(Fai)의 데드라인이 프레임(Fbj)의 데드라인 후에 도달하면, 도 5a 및 도 5b의 것과 동일한 상황이 나타나고, 여기서 동작(Dbj)은 바로 시작된다. 따라서, 가정 (C) 하에서는, 프레임(Fai)의 데드라인이 프레임(Fbj)의 데드라인 전에 일어나는 경우만이 분석된다.
두 동작(Dai 및 Dbj)은 모두 프레임(Fai)의 시작시에 실행 준비가 된다. 동작(Dai-1)이 프레임(Fai)의 시작시에 그 데드라인에서 종료될 때, 예를 들어, 도시된 바와 같이, 스케줄 조건 3)이 충족되지 않았기 때문에, 동작(Dbj)은 그 프레임의 시작시에는 시작되지 않은 것으로 가정될 수 있다. 데드라인(Eai)이 가장 짧은 것이라면, 동작(Dai)이 제일 먼저 론칭된다. 동작(Dbj)은 동작(Dai)의 종료시에 론칭된다. 가정 (C)의 한계 내에서 최악의 경우에, 프레임(Fai 및 Fbj)의 데드라인은 일치하는데, 이는 다음을 의미한다:
Dbj ≤ Tai [C.1]
이 동일한 부등식은, 동작(Dbj)이 프레임(Fai)의 시작시에 시작하는 것을 가정하여 획득된 것이지만, 제공된 스케줄 공정은 이런 방식으로 처리하지 않을 수 있다. 동작(Dai)이 그 데드라인 전에 종료하기 위하여, 부등식 Dbj + Dai ≤ Dai + Tai, 즉 상기와 동일한 부등식이 검증된다.
이에 따라 각 프레임(Fai)은 각 프레임(Fbj)과 비교되어, 프레임(Fbj)의 데드라인이 충족되는지 여부를 검증함이 없이, 프레임(Fai)의 데드라인이 충족되는 것을 보장한다. 이것은 제1 검증 통과(verification pass)를 형성한다. 이 검증을 완료하는 제2 통과는 각 프레임(Fbj)을 각 프레임(Fai)과 비교하는 상기 동작을 반복하는 것에 의해 프레임(Fbj)의 데드라인이 충족되는 것을 보장하는 것이다.
Na 프레임과 Nb 프레임을 각각 구비하는 2개의 반복 시퀀스(RSFa 및 RSFb)의 호환성을 검증하는 것은 다음의 의사 코드(pseudo-code)로 요약될 수 있다. 이 의사 코드에서, 대안적인 조건은 부등식의 좌측에 있는 min(x, y)과 부등식의 우측에 있는 max(x, y) 표현으로 압축되고, 필요한 조건들은 부등식의 우측에 있는 min(x, y)과 부등식의 좌측에 있는 max(x, y)으로 압축된다. 조건 A.3 및 B.3은, 프레임(Fai)이 4개의 프레임(Fbj 내지 Fbj + 3)과 오버랩하는 경우를 반영하기 위해, 전술된 바와 같이, 제공된다. 프레임 시퀀스들은 무기한 반복될 수 있기 때문에, 색인(i 및 j)에 대한 동작은 색인의 최대값(i에 대해 Na , j에 대해 Nb)을 규칙(module)으로 수행된다.
0 내지 Na -1에서 각 i에 대해 다음을 수행:
0 내지 Nb -1에서 각 j에 대해 다음을 수행:
[A.1]
만약 Da i Tb j + 1 인 경우 , [B. 1]에서 계속된다
[A.2]
ql := ( Da i - Tb j +1 )/ Tb j
만약 ql > 1 또는 Tb j = 0 이면 , ql := 1
만약 Da i Tb j +1 + Tb j + 2 이고 ,
그리고 qlTb j + Db j +1 ≤ Ta i 인 경우 ,
[B. 1]에서 계속된다
[A.3]
만약 Da i Tb j +2 + Tb j + 3 이고 ,
그리고 qlTb j + Db j +1 + Db j +2 + min[ Tb j +1 , Da i ] ≤ Ta i 인 경우 ,
[B. 1]에서 계속된다
실패 코드에서 루프를 빠져나간다
[B.1]
만약 Da i Tb j + 1 이고 ,
그리고 Db j ≤ Ta i 인 경우 ,
[D]에서 계속된다
[B.1.1]
ql := ( Da i - Tb j +1 )/ Tb j
만약 ql > 1 또는 Tb j = 0 인 경우 , ql := 1이고, 그리고 [B. 2]에서 계속된다
Tl := Ta i-1 - (1- ql ) Tb j
만약 Db j -1 Tl인 경우,
[C. 1]에서 계속된다
[B.2]
만약 Da i Tb j +1 + Tb j + 2 이고 ,
그리고 Db j + qlTb j + Db j +1 ≤ Ta i 인 경우 ,
[C. 1]에서 계속된다
[B.3]
만약 Da i Tb j +2 + Tb j + 3 이고 ,
그리고 Db j + qlTb j + Db j +1 + min[ Tb j +1 , Da i ] + Db j +2 ≤ Ta i 인 경우 ,
[C. 1]에서 계속된다
실패 코드에서 루프를 빠져나간다
[C.1]
만약 Db j ≤ Ta i 인 경우 ,
[D]에서 계속된다
실패 코드에서 루프를 빠져나간다
[D] 그 다음 j
그 다음 i
검증을 완료하기 위해, 이전에 언급된 바와 같이, 이 루프는 프레임(Fa 및 Fb)을 스위칭하는 것이 반복될 수 있다.
이 루프에서, 전술된 것에 대한 대안에 따라, 조건 B.2의 평가로 진행하기 전에, 조건 B.1.1이 평가된다.
도 7은 조건 B.1.1을 수립하는 것을 예시하는 프레임의 예시적인 연속을 도시한다. 프레임(Fai 및 Fbj)은 도 4a에서와 동일한 조건에 있지만, 프레임(Fbj+1)의 시작시에 동작(Dai)을 시작하는 대신에, 이것이 동작(Dbj) 직후에 시작할 수 있고, q = ql에서 이것을 허용하는 일반적인 조건은 이전의 프레임(Fai-1 및 Fbj-1)에서 추구되는 것으로 가정된다. 조건 B.1과 같이 조건 B.1.1은, 프레임(Fai)이 3개 이상의 프레임과 오버랩하는 상황보다 일어날 가능성이 더 높은 상황에 대응하는, 프레임(Fai)이 2개의 프레임(Fbj 및 Fbj+1)과 오버랩한다는 가정에 기초한다.
이전에 언급된 바와 같이, 프레임은, 비-실시간 태스크를 수행하기 위해 시스템에 의해 취해질 수 있는 예비 시간(R)을 포함할 수 있다. 이러한 예비 시간을 사용하여 실시간 동작을 수행할 수 있다. 이 예비 시간은 하나의 시퀀스의 시간 마진(T)에 추가되어, 다른 시퀀스의 동작(D)의 실행을 제공하지만, 이것은 데드라인을 충족하는 조건을 강화(harden)시킬 수 있다.
0이 아닌 예비 시간(R)은 특히 조건 C.1을 완화(relax)시킬 수 있다.
도 8은, 조건 C.1이 만족되지 않을 때, 다시 말해, Dbj > Tai 인 경우 완화된 제약을 수립하는 프레임의 예시적인 연속을 도시한다. 가정 C 하에서 프레임(Fai)의 시작시에 동작(Dbj)은 아직 시작되지 않은 것으로 가정된다. 가장 짧은 데드라인을 가지는 동작(Dai)은 프레임(Fai)의 시작시에 우측에서 시작된다. 프레임(Fbj)은 프레임(Fai) 전에 시작하고, 이것은 프레임(Fai-1)의 간격(Rai-1) 동안 취해진다. 프레임(Fbj)의 시작과 프레임(Fai)의 시작 사이의 간격은 kRai-1 이라고 언급되고, 여기서 0 ≤ k ≤ 1이다.
만약 동작(Dbj)이 그 프레임(Fbj)의 시작시에 스케줄되지 않았다면, 이것은,
Dbj > kRai-1 + Tai 라는 것을 의미한다.
k의 한계 값을 kl이라고 언급하면, Dbj = klRai-1 + Tai 이 되고, 그리하여 kl = (Dbj-Tai)/Rai-1 이 된다. 만약 k > kl인 경우, 동작(Dbj)은 프레임(Fai)의 시작 전에 스케줄될 수 있고 - 이 경우 이것은 가정 C에 맞지 않기 때문에 고려되어서는 안되는 것이 확실하다. 0 내지 kl의 k의 값만이 고려된다.
동작(Dai)이 실행가능하기 위해, 조건 Dai ≤ Tbj - kRai-1 을 충족하여야 한다. 최악의 경우는 k = kl 이고, 이에 의해
Dai ≤ Tbj - klRai-1 이고 즉, kl을 그 값으로 대체하면:
Dai ≤ Tbj - (Dbj-Tai), 또는
Dbj ≤ Tai + Tbj - Dai 이 된다.
계수 kl는 기껏 1이고, 이는
Dbj - Tai ≤ Rai-1, 또는
Dbj ≤ Tai + Rai-1 으로 표현된다.
마지막으로, 동작(Dai+1)의 실행을 제약하기 않기 위해, 동작(Dbj)은 프레임(Fai+1)과 오버랩되지 않아야 한다. 이것은,
Dbj ≤ Tai + Rai 인 경우 만족된다.
이것은 조건 C.1에 대한 대안인 다음 조건을 유도한다:
Dbj ≤ Tai + Tbj - Dai
Dbj ≤ Tai + Rai - 1 [C.2]
Dbj ≤ Tai + Rai
다음의 의사 코드는 예비 시간(R)을 고려한 것이다.
0 내지 Na-1의 각 i에 대해 수행:
0 내지 Nb -1의 각 j에 대해 수행:
[A.1]
만약 Da i Tb j + 1 인 경우 , [B. 1]에서 계속된다
[A.2]
ql := ( Da i - Tb j +1 )/( Tb j + Rb j )
만약 ql > 1 또는 Tb j + Rb j = 0 인 경우 , ql := 1이고,
만약 Da i Tb j +1 + Rb j +1 + Tb j + 2 이고 ,
그리고 ql ( Tb j + Rb j ) + Db j +1 ≤ Ta i 인 경우 ,
[B. 1]에서 계속된다
[A.3]
만약 Da i Tb j +2 + Rb j +2 + Tb j + 3 이고 ,
그리고 Db j +1 + ql ( Tb j + Rb j )
+ Db j +2 + min[ Tb j +1 + Rb j +1 , Da i ] ≤ Ta i 인 경우 ,
[B. 1]에서 계속된다
실패 코드에서 루프를 빠져나간다
[B.1]
만약 Da i Rb j + Tb j + 1 이고 ,
그리고 Db j ≤ Ta i 인 경우 ,
[C. 2]에서 계속된다
ql := ( Da i - Rb j - Tb j +1 )/ Tb j
만약 ql > 1 또는 Tb j = 0 인 경우 , ql := 1이고, 그리고 [B. 2]에서 계속된다
[B.1.1]
Tl := Ta i-1 - (1- ql ) Tb j + Ra i -1
만약 Db j -1 Tl + min[ Tb j-1 + Db j-1 + Rb j-1 - Tl - Da i-1 , Ra i-2 ] 인 경우 ,
[C. 1]에서 계속된다
[B.1.2]
만약 Db j -1 + Rb j -1 Tl 이고,
그리고 Da i -1 Tb j -2 + Rb j -2 + Tb j - 1 이고 ,
그리고 Tb j -2 + Db j -2 + Rb j -2 + Tb j -1 + Db j -1 + Rb j -1 Ra i -2 + Tl + Da i - 1 인 경우 ,
[C.1]에서 계속된다
[B.2]
만약 Da i Tb j +1 + Rb j +1 + Tb j + 2 이고 ,
그리고 Db j + qlTb j + Rb j + Db j +1 ≤ Ta i 인 경우 ,
[C. 1]에서 계속된다
[B.3]
만약 Da i Tb j +2 + Rb j +2 + Tb j + 3 이고 ,
그리고 Db j + qlTb j + Rb j
+ Db j +1 + min[ Tb j +1 + Rb j +1 , Da i ]
+ Db j +2 ≤ Ta i 인 경우 ,
[C. 1]에서 계속되고,
실패 코드에서 루프를 빠져나간다
[C.1]
만약 Db j ≤ Ta i 인 경우 ,
[D]에서 계속된다
[C.2]
만약 Db j ≤ Ta i + min [ Tb j - Da i , Ra i , Ra i -1 ] 인 경우 ,
[D]에서 계속된다
실패 코드에서 루프를 빠져나간다
[D] 그 다음 j
그 다음 i
이 의사 코드에서 나타나는 조건 B.1.2는 조건 B.1.1에 대해서와 동일한 접근법을 사용하여 결정되어서, 서치를 프레임(Fai -2 및 Fbj - 2)으로 확장시킨다.
이제까지, 2개의 태스크를 클록하는 시간 베이스는 등시성(isochronous)이었다 것, 다시 말해, 시퀀스들 중 하나의 시퀀스의 간격의 지속시간은 다른 시퀀스의 간격에 대해 변하지 않은 것으로 가정되었다. 실제로, 가변 속력으로 이동하는 요소(element)의 위치로 색인된 태스크와 같이 상관성이 없는 시간 베이스를 사용하여 2개의 태스크를 구성하는 것이 필요할 수 있다.
이 경우를 처리하기 위해, 시퀀스(RSFa 및 RSFb)에 대해 각 반복 시퀀스(za 및 zb)에 대해 가변 계수(variability coefficient)(z ≥ 1)가 각각 도입된다. 계수(za 및 zb)는 고정되어 있고, 이는 2개의 시퀀스에서 간격(T 및 R)의 최대 둔화(slowdown)를 나타낸다. 이전의 관계식에서 사용된 표기법이 간격의 최소값을 나타내는 것이라고 가정하면, 각 값(T 및 R)은 2개의 값(T 또는 zT와 R 또는 zR)을 취할 수 있다. 실행 요구(D)는 시스템 클록에만 의존하기 때문에 일정하게 유지된다.
간격을 사용하여 동작을 실행할 슬롯을 찾는 이전의 관계식에서, 그 과소평가된 값(T 또는 R)은 유지된다. 이 간격을 사용하여 데드라인을 준수하는지 여부를 체크할 때, 그 과대평가된 값(zT 또는 zR)이 사용된다. 이에 따라 다음의 의사 코드가 획득된다.
0 내지 Na-1의 각 i에 대해 수행:
0 내지 Nb -1의 각 j에 대해 수행:
[A.1]
만약 Da i Tb j + 1 인 경우 , [B. 1]에서 계속된다
[A.2]
ql := ( Da i - Tb j +1 )/( Tb j + Rb j )
만약 ql > 1 또는 Tb j + Rb j = 0 인 경우 , ql := 1 이고 ,
만약 Da i Tb j +1 + Rb j +1 + Tb j + 2 이고 ,
그리고 min[ ql ( zb
Figure 112016069532309-pct00023
( Tb j + Rb j ) + ( zb - 1)Db j ), Da i ] + Db j +1 ≤ Ta i 인 경우 ,
[B. 1]에서 계속된다
[A.3]
만약 Da i Tb j +2 + Rb j +2 + Tb j + 3 이고 ,
그리고 Db j +1 + min[ ql ( zb
Figure 112016069532309-pct00024
( Tb j + Rb j ) + ( zb - 1)Db j ), Da i ]
+ Db j +2 + min[ zb
Figure 112016069532309-pct00025
( Tb j +1 + Rb j +1 ) + ( zb - 1)Db j +1 , Da i ] ≤ Ta i 인 경우,
[B. 1]에서 계속된다
실패 코드에서 루프를 빠져나간다
[B.1]
만약 Da i Rb j + Tb j + 1 이고 ,
그리고 Db j ≤ Ta i 인 경우 ,
[C. 2]에서 계속된다
[B.1.1]
ql := ( Da i - Rb j - Tb j +1 )/ Tb j
만약 ql > 1 또는 Tb j = 0인 경우, ql := 1이고, 그리고 [B. 2]에서 계속된다
Tl := Ta i-1 - (1- ql ) Tb j + Ra i -1
만약 Db j -1 Tl + min[ Tb j -1 + Db j -1 + Rb j -1 - Tl - Da i -1 , Ra i-2 ] 인 경우 ,
[C. 1]에서 계속된다
[B.1.2]
만약 Db j -1 + zb
Figure 112016069532309-pct00026
Rb j -1 Tl이고 ,
그리고 Da i -1 Tb j -2 + Rb j -2 + Tb j - 1 이고 ,
그리고 zb
Figure 112016069532309-pct00027
( Tb j -2 + Db j -2 + Rb j -2 + Tb j -1 + Db j -1 + Rb j -1 ) ≤ Ra i -2 + Tl + Da i - 1 인 경우 ,
[C. 1]에서 계속된다
[B.2]
만약 Da i Tb j +1 + Rb j +1 + Tb j + 2 이고 ,
그리고 Db j + min[ ql ( zb
Figure 112016069532309-pct00028
Tb j + ( zb - 1)Db j ) + zb
Figure 112016069532309-pct00029
Rb j , Da i ]
+ Db j +1 ≤ Ta i 인 경우 ,
[C. 1]에서 계속된다
[B.3]
만약 Da i Tb j +2 + Rb j +2 + Tb j + 3 이고 ,
그리고 Db j + min[ ql ( zb
Figure 112016069532309-pct00030
Tb j + ( zb - 1)Db j ) + zb
Figure 112016069532309-pct00031
Rb j , Da i ]
+ Db j +1 + min[ zb
Figure 112016069532309-pct00032
( Tb j +1 + Rb j +1 ) + ( zb - 1)Db j +1 , Da i ]
+ Db j +2 ≤ Ta i 인 경우 ,
[C. 1]에서 계속된다
실패 코드에서 루프를 빠져나간다
[C.1]
만약 Db j ≤ Ta i 인 경우 ,
[D]에서 계속된다
[C.2]
만약 Db j ≤ Ta i + min [ Tb j - Da i , Ra i , Ra i -1 ] 인 경우 ,
[D]에서 계속된다
실패 코드에서 루프를 빠져나간다
[D] 그 다음 j
그 다음 i
전술된 스케줄 공정의 경우 3)에서, 고려할 시간 마진은 최소 값이다(즉, 이는 T이고 zT는 아니다).
앞서 제시된 원리는 시간을 공유하며 실행할 2개의 태스크에 대해 설명되었으나, 이 원리는 임의의 개수의 태스크에도 적용된다. 실제, 개시된 방법에 의해 실제 2개의 호환가능한 태스크에 대해 단일 시퀀스 플랜을 구성할 수 있다. 이렇게 획득된 시퀀스 플랜은 동일한 기술을 사용하여 제3 호환가능한 태스크 등에 대한 시퀀스 플랜으로 다시 구성될 수 있다.

Claims (6)

  1. 다중태스킹 시스템의 프로세서 상에서 시분할 방식으로 2개의 태스크를 실행하는 방법으로서,
    각각의 태스크는 상기 태스크와 연관된 시간 베이스에서 연속적인 프레임들의 반복 시퀀스(RSF)로 정의되고, 각 프레임(F)은 실행 요구(D)를 가지는 원자 동작(atomic operation)과 연관되고, 각 프레임은 상기 동작이 시작할 수 있는 시작 날짜와, 상기 동작이 종료하여야 하는 데드라인(E)을 한정하고, 이에 의해 각 프레임은 상기 동작이 시작할 수 있는 시간 마진(T)을 한정하는, 상기 방법에 있어서,
    Figure 112021003806071-pct00034
    상기 다중태스킹 시스템의 프로세서에 의해서 또는 다른 프로세서에 의해서, 상기 동작의 상기 시작 날짜와 데드라인을 고려하면서, 상기 반복 시퀀스들 중 제1 반복 시퀀스(RSFa)의 각 프레임(Fai)에 대해, 상기 제1 반복 시퀀스의 프레임(Fai)과 오버랩하는 제2 반복 시퀀스(RSFb)의 프레임(Fbj, Fbj+1)의 그룹의 임의의 2개의 연속적인 동작들 사이에 대응하는 동작(Dai)이 수행될 수 있는지를 검증하는 단계; 및
    Figure 112021003806071-pct00035
    상기 검증이 만족된 경우, 상기 프로세서 상에서 실행하기 위해 상기 2개의 태스크를 로딩하고, 각 키 날짜에서 평가된 다음의 경우에 따라 상기 프로세서 상에서 상기 2개의 태스크의 동작을 스케줄링하는 단계, 즉:
    - 2개의 동작(Da3, Db2)이 시작할 수 있는 경우, 더 짧은 데드라인을 가지는 동작(Da3)을 실행하고; 및
    - 단일 동작이 시작할 수 있는 경우, 그 실행 요구가 다른 시퀀스의 그 다음 프레임의 시작 날짜까지 남아 있는 시간에 상기 다른 시퀀스의 그 다음 프레임과 연관된 시간 마진(T)을 더한 것보다 더 작은 경우에만 단일 동작을 실행하는 것을 포함하고, 상기 키 날짜는 각 데드라인, 각 시작 날짜, 및 각 동작 종료에서 일어나는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    각 프레임(F)은, 상기 프레임의 데드라인(E) 후에 또는 상기 프레임의 시작 날짜 전에 위치된, 0일 수 있는 예비 시간 간격(R)을 더 포함하고, 상기 반복 시퀀스들 중 임의의 시퀀스의 예비 시간 간격을 사용하여 다른 반복 시퀀스의 동작을 실행할 수 있는 것을 특징으로 하는 방법.
  3. 제2항에 있어서, 상기 검증 단계는, 다음의 단계들, 즉:
    Figure 112016069532309-pct00036
    상기 제1 반복 시퀀스의 각 프레임(Fai)에 대해, 상기 제2 반복 시퀀스의 각 프레임(Fbj)에 대해 다음의 조건, 즉:
    [A.1] Dai ≤ Tbj+1
    [B.1] Dai ≤ Rbj + Tbj +1
    및 Dbj ≤ Tai, 및
    [C.1] Dbj ≤ Tai 을 평가하는 단계;
    여기서 D, T 및 R은, 상기 시퀀스에 있는 반복 시퀀스 식별자와 프레임 수로 색인된, 실행 요구, 시간 마진, 및 예비 시간이고;
    Figure 112016069532309-pct00037
    상기 프레임(Fai 및 Fbj)을 교환하고 상기 조건 평가를 반복하는 단계;
    Figure 112016069532309-pct00038
    상기 3개의 조건 [A.1], [B.1] 및 [C.1]이 임의의 쌍(i, j)에 대해 만족된 경우 상기 태스크의 실행을 허가하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제3항에 있어서, 상기 검증 단계는 다음의 단계, 즉:
    Figure 112016069532309-pct00039
    상기 조건 [A.1]이 거짓인 경우, 다음의 조건, 즉:
    [A.2] Dai ≤ Tbj+1 + Rbj+1 + Tbj+2
    및 Dai + Dbj+1 ≤ Tai + Tbj+1 을 평가하는 단계;
    Figure 112016069532309-pct00040
    상기 조건 [B.1]이 거짓인 경우, 다음의 조건, 즉:
    [B.2] Dai ≤ Tbj+1 + Rbj+1 + Tbj+2
    및 Dbj + Dai + Dbj+1 ≤ Tai + Tbj+1 을 평가하는 단계;
    Figure 112016069532309-pct00041
    상기 조건 [C.1]이 거짓인 경우, 다음의 조건, 즉:
    [C.2] Dbj ≤ Tai + min[ Tbj-Dai, Ra i , Rai -1 ]을 평가하는 단계; 및
    Figure 112016069532309-pct00042
    상기 조건 [A.1] 또는 [A.2] 및 [B.1] 또는 [B.2] 및 [C.1] 또는 [C.2]가 각 쌍(i, j)에 대해 충족된 경우 상기 태스크의 실행을 허가하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제3항에 있어서,
    상기 프레임의 지속시간을 결정하는 시간 베이스는, 상기 시간 마진(T)과 상기 예비 시간(R)이 상기 제1 반복 시퀀스의 프레임(Fai)에 대해 팩터 1에서 za까지 변하고 상기 제2 반복 시퀸스의 프레임(Fbj)에 대해 팩터 1에서 zb까지 변하도록 가변적이고, 상기 검증 단계는 다음 단계, 즉:
    Figure 112021003806071-pct00043
    상기 조건 [A.1]이 거짓인 경우, 다음의 조건, 즉:
    [A.2] Dai ≤ Tbj+1 + Rbj+1 + Tbj+2
    및 min[ ql(zb
    Figure 112021003806071-pct00044
    (Tbj + Rbj) + (zb-1)Dbj), Dai ] + Dbj+1 ≤ Tai 을 평가하는 단계
    여기서 ql = (Dai - Tbj+1)/(Tbj + Rbj);
    Figure 112021003806071-pct00045
    상기 조건 [B.1]이 거짓인 경우, 다음의 조건, 즉:
    [B.2] Dai ≤ Tbj+1 + Rbj+1 + Tbj+2
    및 Dbj + min[ ql(zb
    Figure 112021003806071-pct00046
    Tbj + (zb-1)Dbj) + zb
    Figure 112021003806071-pct00047
    Rbj, Dai ] + Dbj+1 ≤ Tai 을 평가하는 단계
    여기서 ql = (Dai - Rbj - Tbj+1)/Tbj ;
    Figure 112021003806071-pct00048
    상기 조건 [C.1]이 거짓인 경우, 다음의 조건, 즉:
    [C.2] Dbj ≤ Tai + min[ Tbj-Dai, Rai, Rai-1 ]을 평가하는 단계; 및
    Figure 112021003806071-pct00049
    상기 조건 [A.1] 또는 [A.2] 및 [B.1] 또는 [B.2] 및 [C.1] 또는 [C.2]가 각 쌍(i, j)에 대해 충족되면 상기 태스크의 실행을 허가하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서, 상기 검증 단계는 다음의 단계, 즉:
    Figure 112016069532309-pct00050
    상기 조건 [B.1]이 거짓인 경우, 상기 조건 [B.2] 전에 다음의 조건, 즉:
    [B.1.1] Dai ≤ Tbj + Rbj + Tbj+1
    및 Dbj-1 ≤ Tl + min[ Tbj-1 + Dbj-1 + Rbj-1 - Tl - Dai-1, Rai-2 ] 을 평가하는 단계
    여기서 ql = (Dai - Rbj - Tbj +1)/Tbj 및 Tl = Tai -1 - (1-ql)Tbj + Rai -1 ;

    Figure 112016069532309-pct00051
    상기 조건 [A.1] 또는 [A.2] 및 [B.1] 또는 [B.1.1] 및 [C.1] 또는 [C.2]가 각 쌍(i, j)에 대해 충족되는 경우, 상기 태스크의 실행을 허가하는 단계를 포함하는 것을 특징으로 하는 방법.
KR1020167019504A 2013-12-18 2014-11-27 실시간 태스크 시퀀스 플랜을 구성하고 실행하는 방법 KR102261021B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1362893A FR3015067B1 (fr) 2013-12-18 2013-12-18 Procede de composition et d'execution d'un plan de sequencement de taches temps-reel
FR1362893 2013-12-18
PCT/FR2014/053055 WO2015092188A1 (fr) 2013-12-18 2014-11-27 Procede de composition et d'execution d'un plan de sequencement de taches temps-reel

Publications (2)

Publication Number Publication Date
KR20160100377A KR20160100377A (ko) 2016-08-23
KR102261021B1 true KR102261021B1 (ko) 2021-06-04

Family

ID=50543160

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167019504A KR102261021B1 (ko) 2013-12-18 2014-11-27 실시간 태스크 시퀀스 플랜을 구성하고 실행하는 방법

Country Status (10)

Country Link
US (1) US10198290B2 (ko)
EP (1) EP3084602B1 (ko)
JP (1) JP6441349B2 (ko)
KR (1) KR102261021B1 (ko)
CN (1) CN105830030B (ko)
BR (1) BR112016013088B1 (ko)
CA (1) CA2932690C (ko)
FR (1) FR3015067B1 (ko)
RU (1) RU2678469C1 (ko)
WO (1) WO2015092188A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6428493B2 (ja) * 2015-06-05 2018-11-28 株式会社デンソー 自動走行制御装置、自動走行用車載装置、自動走行制御方法
FR3072197B1 (fr) * 2017-10-10 2019-10-11 Krono-Safe Procede d'execution de plans de sequencement assurant une communication a faible latence entre taches temps-reel

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060218558A1 (en) 2005-03-25 2006-09-28 Osamu Torii Schedulability determination method and real-time system
US20090119668A1 (en) 2007-11-02 2009-05-07 International Business Machines Corporation Dynamic feasibility analysis for event based programming
US20120284728A1 (en) 2009-09-08 2012-11-08 Thales Method for the Real-Time Ordering of a Set of Noncyclical Multi-Frame Tasks

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2823520B2 (ja) * 1993-12-17 1998-11-11 テキサス インスツルメンツ インコーポレイテツド リアルタイムアプリケーションタスクスケジューリング及び処理システム
JPH10171667A (ja) * 1996-12-13 1998-06-26 Chokosoku Network Computer Gijutsu Kenkyusho:Kk タスク管理方法
US7234139B1 (en) * 2000-11-24 2007-06-19 Catharon Productions, Inc. Computer multi-tasking via virtual threading using an interpreter
KR20070074764A (ko) * 2006-01-10 2007-07-18 주식회사 팬택앤큐리텔 시분할 시스템에서 프로세스를 스케줄링하는 시스템 및 그방법
US8621475B2 (en) * 2007-12-06 2013-12-31 International Business Machines Corporation Responsive task scheduling in cooperative multi-tasking environments
CN101408850B (zh) * 2008-11-27 2011-11-23 中国人民解放军信息工程大学 一种在任务流方式下求解复杂问题的方法
US20120079486A1 (en) * 2010-09-23 2012-03-29 International Business Machines Corporation Integration of dissimilar job types into an earliest deadline first (edf) schedule
CN103365711B (zh) * 2013-07-03 2017-06-30 南京邮电大学 应用于物联网业务平台的任务调度系统和方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060218558A1 (en) 2005-03-25 2006-09-28 Osamu Torii Schedulability determination method and real-time system
US20090119668A1 (en) 2007-11-02 2009-05-07 International Business Machines Corporation Dynamic feasibility analysis for event based programming
US20120284728A1 (en) 2009-09-08 2012-11-08 Thales Method for the Real-Time Ordering of a Set of Noncyclical Multi-Frame Tasks

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Jia Xu et al. 'Scheduling Process with Release Times, Deadlines, Precedence, and Exclusion Relations'. IEEE Transactions on Software Engineering, Vol.16, No.3, 1990, pp.360-369.

Also Published As

Publication number Publication date
JP6441349B2 (ja) 2018-12-19
CN105830030B (zh) 2019-07-12
BR112016013088B1 (pt) 2022-02-15
KR20160100377A (ko) 2016-08-23
US10198290B2 (en) 2019-02-05
FR3015067B1 (fr) 2017-03-17
BR112016013088A2 (ko) 2017-08-08
RU2678469C1 (ru) 2019-01-29
CA2932690A1 (fr) 2015-06-25
WO2015092188A1 (fr) 2015-06-25
CA2932690C (fr) 2023-09-05
JP2017503251A (ja) 2017-01-26
CN105830030A (zh) 2016-08-03
EP3084602A1 (fr) 2016-10-26
EP3084602B1 (fr) 2021-07-14
FR3015067A1 (fr) 2015-06-19
US20170004011A1 (en) 2017-01-05
RU2016128917A (ru) 2018-01-23

Similar Documents

Publication Publication Date Title
Amnell et al. TIMES: a tool for schedulability analysis and code generation of real-time systems
Bril et al. Worst-case response time analysis of real-time tasks under fixed-priority scheduling with deferred preemption
Goossens et al. Gang FTP scheduling of periodic and parallel rigid real-time tasks
CN108694199A (zh) 数据同步装置、方法、存储介质及电子设备
Schneider et al. Multi-layered scheduling of mixed-criticality cyber-physical systems
Medina et al. Scheduling multi-periodic mixed-criticality dags on multi-core architectures
KR20100018289A (ko) 멀티 태스킹 성능 예측 방법 및 시스템
KR102261021B1 (ko) 실시간 태스크 시퀀스 플랜을 구성하고 실행하는 방법
Ekberg et al. An optimal resource sharing protocol for generalized multiframe tasks
Cicirelli et al. Development of a schedulability analysis framework based on ptpn and uppaal with stopwatches
Isovic et al. Handling mixed sets of tasks in combined offline and online scheduled real-time systems
Yang et al. DPCP-p: A distributed locking protocol for parallel real-time tasks
Naija et al. New schedulability analysis for real-time systems based on MDE and petri nets model at early design stages
US7451132B2 (en) System and method for production planning utilizing on-line state-space planning
Shi et al. Multiprocessor synchronization of periodic real-time tasks using dependency graphs
Monot et al. PASA: Framework for partitioning and scheduling automation applications on multicore controllers
Jiang et al. Schedulability analysis for real-time P-FRP tasks under fixed priority scheduling
Khemaissia et al. Coherence and feasibility of real-time software tasks in networked adaptive systems
Guo et al. Implementing mixed-criticality systems upon a preemptive varying-speed processor
Desirena-Lopez et al. On-line scheduling in multiprocessor systems based on continuous control using timed continuous petri nets
Hafaiedh A generic formal model for the comparison and analysis of distributed job-scheduling algorithms in grid environment
Zhang et al. Cost-efficient and latency-aware workflow scheduling policy for container-based systems
Stein et al. Consistency challenges in self-organizing distributed hard real-time systems
Simon et al. Design of real-time periodic control systems through synchronization and fixed priorities
Shi et al. Partitioned scheduling for dependency graphs in multiprocessor real-time systems

Legal Events

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