KR20150140708A - 임계 실시간 시스템에서 태스크의 실행 방법 - Google Patents

임계 실시간 시스템에서 태스크의 실행 방법 Download PDF

Info

Publication number
KR20150140708A
KR20150140708A KR1020157030996A KR20157030996A KR20150140708A KR 20150140708 A KR20150140708 A KR 20150140708A KR 1020157030996 A KR1020157030996 A KR 1020157030996A KR 20157030996 A KR20157030996 A KR 20157030996A KR 20150140708 A KR20150140708 A KR 20150140708A
Authority
KR
South Korea
Prior art keywords
time
alternative
node
execution
task
Prior art date
Application number
KR1020157030996A
Other languages
English (en)
Other versions
KR102178574B1 (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 KR20150140708A publication Critical patent/KR20150140708A/ko
Application granted granted Critical
Publication of KR102178574B1 publication Critical patent/KR102178574B1/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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)
  • Hardware Redundancy (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • General Factory Administration (AREA)

Abstract

본 발명은 순차 및 대안적인 공정 세트로 구성된 태스크를 실행하는 방법에 관한 것이다. 상기 방법은, a) 하드웨어 자원 요구와 시간 제약을 각 공정에 배정하는 단계; b) 상기 공정의 시간 제약에 대응하는 지속시간을 가지는 시간 슬롯을 각 공정에 할당하는 단계; c) 2개의 대안적인 공정(a, b)들 중 하나의 공정 또는 다른 하나의 공정의 실행이 판정되는 분기점을 식별하는 단계; d) 공통 시간 슬롯(+2)을 상기 2개의 대안적인 공정에 할당하는 단계; e) 상기 2개의 대안적인 공정의 자원 요구들 중 더 큰 자원 요구와 동일한 자원 요구(max(a,b))를 상기 공통 시간 슬롯에 배정하는 단계; f) 각 분기점에 대해 단계 c)로부터 반복하는 단계; g) 상기 태스크와 연관된 실행 템플릿에서 최종 시간 슬롯을 조직하는 단계; 및 h) 상기 실행 템플릿의 시간 슬롯에 배정된 자원 요구에 따라 상기 태스크의 실행을 제약(constrain)하도록 실시간 멀티태스킹 시스템을 구성하는 단계를 포함한다.

Description

임계 실시간 시스템에서 태스크의 실행 방법{METHOD FOR EXECUTING TASKS IN A CRITICAL REAL-TIME SYSTEM}
본 발명은 시간 베이스에 의해 설정된 강제적인 시간 라인으로 공정을 실행하도록 설계된 임계 실시간(critical real-time) 시스템에 관한 것이다. 본 발명은 특히 구현시 높은 성능 레벨을 요구하는 실시간 시스템과, 이 시스템에서 각 태스크(task)에 할당된 하드웨어 실행 자원을 사용할 때 높은 보안 레벨이 요구되는 임계 시스템에 관한 것이다.
본 발명은 특히 통신 네트워크에서와 같이 제어된 자원 할당이 중요한 운송 분야(자동차, 철도, 해운, 우주 항공), 산업 자동화, 에너지, 및 다른 시스템에 사용되는 것과 같은 공정 제어 시스템에 적용된다.
임계 실시간 시스템에서, 태스크는 종종 주기적인 활동으로 모델링되어, 태스크를 스케줄링하는데 고정된 우선순위 정책에 기초하여 멀티태스킹 시스템을 실현하여, 성능 달성을 보장한다. 이러한 시스템은, 예를 들어, 논문 ["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]에 설명되어 있다.
그러나, 이 접근법은 주기적인 태스크를 매우 간단히 모델링하여 주기적이지 않은 특정 실시간 활동의 주기적인 태스크로 분할하는 것에 의해 멀티태스킹 시스템의 설계를 복잡하게 하거나 제약(constrain)을 갖게 하기 때문에 유연성이 없다. 실제, 비-주기적인 실시간 활동을 주기적인 활동의 형태로 구현하면, 시간 제약을 별도로 충족시키기 위해 태스크의 수를 증가시키거나 또는 실행 페이스(execution pace)를 증가시키게 된다. 각 태스크는 각 주기적인 실행에 더 이상 사용될 수 없어서, 멀티태스킹 시스템의 성능에 부정적인 영향을 미친다.
논문 ["Giotto: A Time-Triggered Language for Embedded Programming", Thomas A. Henzinger, Benjamin Horowitz, and Christoph Meyer Kirsch, EMSOFT 2001, pp. 166-184, 2001, Springer-Verlag] and ["A method and a technique to model and ensure timeliness in safety critical real-time systems", C. Aussaguㅸs, V. David, Fourth IEEE International Conference on Engineering of Complex Computer Systems, 1998]에 설명된 것과 같은 다른 접근법은 시간적인 활동의 시퀀스로 각 태스크를 설명하는 보다 유연성 있는 태스크 모델을 제안한다. 태스크는 미국 특허 7,299,383에 제안된 바와 같이 필요한 경우 공정이 조건적으로 수행될 수 있는 시간 제약을 갖는 공정 그래프 형태로 형식화된다.
멀티태스킹 시스템의 높은 유연성과 높은 성능 레벨, 및 심지어 태스크를 스케줄링할 수 있다는 형식적 보장을 달성하는 것이 가능하지만, 이 보장은 일반적으로 이 시스템에서 동적 스케줄링을 요구한다. 이것은, 태스크 또는 이 태스크의 공정이 스케줄링 경쟁을 한다는 것과, 태스크가 동시적인 태스크 전 또는 후에 실행될 수 있다는 것에서 태스크들 사이에 시간 간섭을 초래한다.
실행 안전이 최고로 중요한 임계 시스템에서, 모든 가능한 스케줄링 조합을 전부 철저히 테스트하거나 또는 실패 상황이 없다는 것을 입증하는 것이 가능하지 않기 때문에 동적 스케줄링 시스템은 회피된다. 테스트할 조합이 감소된 시스템이 바람직하므로, 시스템은 태스크들 사이에서 시간 간섭을 제한한다. 이것은 일반적으로 유연성이 없는 정적 접근법을 사용할 것을 야기한다.
유연성 있는 태스크 모델에 기초하여 실시간 시스템을 구성하지만, 시간 간섭을 제한하는 구현을 제안하는 방법이 요구된다.
본 발명은 순차 및 대안적인 공정의 세트로 구성된 태스크를 실행하는 방법에 관한 것이다. 상기 방법은,
a) 하드웨어 자원 요구(resource need)와 시간 제약을 각 공정에 배정하는 단계;
b) 상기 공정의 시간 제약에 대응하는 지속시간을 가지는 시간 슬롯을 각 공정에 할당하는 단계;
c) 2개의 대안적인 공정 중 하나의 공정 또는 다른 하나의 공정의 실행이 판정되는 분기점(branch point)을 식별하는 단계;
d) 공통 시간 슬롯을 상기 2개의 대안적인 공정에 할당하는 단계;
e) 상기 2개의 대안적인 공정의 자원 요구들 중 더 큰 자원 요구와 동일한자원 요구를 상기 공통 시간 슬롯에 배정하는 단계;
f) 각 분기점에 대해 단계 c)로부터 반복하는 단계;
g) 상기 태스크와 연관된 실행 템플릿(execution template)에서 최종 시간 슬롯을 조직하는(organizing) 단계; 및
h) 상기 실행 템플릿의 시간 슬롯에 배정된 자원 요구들에 따라 상기 태스크의 실행을 제약하도록 실시간 멀티태스킹 시스템을 구성하는 단계를 포함한다.
상기 방법은, 전이 노드(transition node)에 의해 연결된 공정 세트를 제한하는 그래프의 형태로 상기 태스크를 나타내는 단계로서, 각 전이 노드는 상기 멀티태스킹 시스템에서 상기 태스크의 실행 동안 시간 베이스에 따라 동기화 점(synchronization point)을 한정하는, 상기 태스크를 나타내는 단계; 상기 공정의 소스 전이 노드와 목적지 전이 노드로부터 각 공정에 할당된 상기 시간 슬롯의 한계(limit)를 한정하는 단계; 공통 소스 노드와 2개의 각 타깃 노드(target node)를 구비하는 2개의 대안적인 공정에 대해, 상기 2개의 타깃 노드를 병합된 타깃 노드에 병합하는 단계; 및 상기 공통 소스 노드와 상기 병합된 타깃 노드로부터 대안적인 공정 모두에 공통인 상기 시간 슬롯을 제한하는 단계를 포함할 수 있다.
상기 방법은, 단계 c)에서 상이한 시간 제약을 가지는 2개의 대안적인 공정에 대해, 최장 시간 제약을 가지는 상기 2개의 대안적인 공정 중 제1 공정에서 중간 전이 노드를 생성하여, 상기 소스 노드와 상기 중간 노드 사이에 제1 부분적인 대안적인 공정을 생성하고, 상기 제1 대안적인 공정의 상기 타깃 노드와 상기 중간 노드 사이에 제2 부분적인 공정을 생성하는 단계; 상기 제2 대안적인 공정의 시간 제약과 동일한 시간 제약과 제1 자원 요구를 상기 제1 부분적인 대안적인 공정에 배정하는 단계; 상기 제1 및 제2 자원 요구들의 합계가 상기 제1 대안적인 공정의 자원 요구와 동일하고, 시간 제약이 상기 2개의 대안적인 공정의 시간 제약들의 차이와 동일하도록 제2 자원 요구를 상기 제2 부분적인 공정에 배정하는 단계; 및 단계 d)에 따라 상기 제1 부분적인 대안적인 공정과 상기 제2 대안적인 공정으로 나아가는(proceeding) 단계를 포함할 수 있다.
상기 방법은, 각 시간 슬롯에서, 진행 중인(ongoing) 공정의 실행이 상기 시간 슬롯에 배정된 자원 요구에 순응하는지를 와치독(watchdog)에 의해 체크하는 단계; 및 상기 진행 중인 공정의 실행이 상기 자원 요구를 초과하고 상기 진행 중인 공정이 상기 제1 부분적인 대안적인 공정인 경우 상기 와치독에 의해 결함(fault)의 시그널링을 생략하는 단계를 포함할 수 있다.
상기 방법은 상기 제1 부분적인 대안적인 공정의 실행시 상태 변수를 설정하는 단계; 상기 진행 중인 공정의 실행이 상기 자원 요구를 초과하고 상기 상태 변수가 설정된 경우 상기 와치독에 의해 결함의 시그널링을 생략하는 단계; 및 병합된 타깃 노드에 대응하는 동기화 점에서 상기 상태 변수를 소거하는 단계를 포함할 수 있다.
상기 방법은, 그래프의 순환 부분(cyclic portion)에 대해, 더 긴 시간 제약을 가지는 각 공정을, 상기 순환 부분에서 시간 제약의 최대 공통 제수(common divisor)인 더 짧은 시간 제약을 가지는 부분적인 공정 세트로 분할하여, 상기 그래프의 순환 부분이 동일한 정규화된 시간 제약을 모두 가지는 전체 또는 부분적인 공정의 시퀀스를 한정하는 정규화된 서브-그래프로 변환하는 단계; 및 상기 부분적인 공정의 자원 요구들의 합계가 더 긴 시간 제약을 가지는 공정의 자원 요구와 같도록 대응하는 부분적인 공정들 사이에 더 긴 시간 제약을 가지는 각 공정의 자원 요구를 분배하는 단계를 포함할 수 있다.
상기 방법은, 상기 서브-그래프의 제1 부분의 종단부(end)의 전이 노드가 상기 서브-그래프의 제2 부분의 시작부(beginning)의 각 노드와 일치하도록 상기 서브-그래프의 제1 부분의 종단부를 상기 서브-그래프의 제2 부분의 시작부 위에 오버랩하여, 2개의 연속적인 쌍의 일치하는 노드들은 제1 쌍의 2개의 노드를 각 원점(origin)으로 구비하는 공정에 공통인 시간 슬롯을 한정하는 단계; 및 상기 제1 쌍의 노드와 연관된 공정의 자원 요구들 중 최대 자원 요구와 같은 자원 요구와, 상기 정규화된 시간 제약과 같은 시간 제약을, 이렇게 한정된 상기 공통 시간 슬롯에 배정하는 단계를 포함할 수 있다.
다른 장점 및 특징은 단지 예시를 위해 제시되고 첨부 도면에 도시된 본 발명의 특정 실시예의 이하 상세한 설명으로부터 보다 명확히 드러날 것이다:
· 도 1은 동일한 시간 제약을 갖는 분기 대안을 가지는 유연성 있는 태스크 모델에 순응하는 실시간 태스크 그래프의 일례를 도시하는 도면;
· 도 2a 및 도 2b는 도 1의 그래프의 가능한 처리 시퀀스 중 하나의 시퀀스의 부분적인 실행 트레이스와 병렬 태스크의 실행 트레이스를 도시하는 도면;
· 도 3a 내지 도 3c는 도 1의 그래프의 변환과 최종 정적 실행 템플릿을 도시하는 도면;
· 도 4는 상이한 시간 제약을 갖는 분기 대안을 가지는 유연성 있는 태스크 모델에 순응하는 실시간 태스크 그래프의 일례를 도시하는 도면;
· 도 5a 내지 도 5c는 시간 제약의 제1 대안에 대한 도 4의 그래프의 변환과 최종 정적 실행 템플릿을 도시하는 도면;
· 도 6a 내지 도 6c는 시간 제약의 제2 대안에 대한 도 4의 그래프의 변환을 도시하는 도면; 및
· 도 7a 및 도 7b는 도 5c의 실행 템플릿에 대한 최적화 단계를 도시하는 도면.
도 1은 유연성 있는 태스크 모델에 순응하는 예시적인 실시간 태스크 그래프이다. 이 그래프에서, 아래 제시된 다른 그래프에서와 같이, 태스크를 구성하는 각 공정은 2개의 전이 노드, 즉 소스 노드와 타깃 노드 사이에 배향된 호(oriented arc)로 표시된다. 이 노드들은 태스크의 실행 동안, 공정 론칭 (process launching)을 조직하기 위해 운영 시스템에 의해 사용되는 동기화 점이다. 대응하는 동기화 점들 사이에 지속시간을 식별하는 시간 제약이 각 공정에 배정된다.
나아가, 공정이 그 시간 제약의 한계 내에서 실행되기 위하여, 이 공정은 또한 물리적인 자원 요구(CPU 점유, 메모리 크기)를 가지고 있다.
그래프의 각 호(또는 공정)는 정보(x+N)로 표시되고, 여기서 x는 자원 요구 지시자이고, N은 시간 제약 지시자이다. 자원 요구(x)는 시간으로 표현될 수 있고, 즉 공정을 완료하는데 드는 시간은 공정이 모든 하드웨어 자원을 가지는 것으로 가정한다. 이 시간 제약은 시간 단위를 한정하는 정수일 수 있다. 따라서, 동일한 시간 단위로 x 및 N을 표현하면, 값 x 및 N은 x ≤ N이 되도록 선택된다. x = N인 경우, 이 공정은 시간 제약에 의해 한정된 시간 슬롯을 통해 모든 하드웨어 자원을 요구하여, 동일한 슬롯에 다른 공정이 병렬로 실행될 수 없다. (자원 요구와 시간 제약을 계산하는 것은 본 발명의 대상이 아니어서 상세히 설명되지 않는다.)
이후, 자원 요구를 지시하는데 사용되는 문자는 또한 공정을 나타낸다.
그래프 또는 태스크는 임의로 조직된 분기와 루프를 포함한다는 점에서 "유연성 있는 모델"에 따르는 것으로 언급된다. 각 분기가 실행시간에 동적으로 및 예측가능하지 않은 방식으로 결정되기 때문에, 이 공정의 실행 시퀀스는 일반적으로 비주기적이다. 그 결과는 이후 이해될 것이다.
도 2a는 도 1의 그래프의 예시적인 실행 트레이스를 도시한다. 실행 동안 교차되는 노드는 공정의 시간 제약에 의해 한정된 단계에서 시간 축에 도시된다. 따라서, 이 노드는 운영 시스템이 대응하는 공정을 론칭하는 고정된 동기화 점에 위치된다.
각 공정은 그 요구와 실제로 이용가능한 자원에 따라 가변 시간을 취할 수 있다. 운영 시스템은 또한 각 공정이 실행에 소비하는 시간을 카운트하도록 구성된 와치독(watchdog) 공정을 실행한다. 공정이 이 공정에 배정된 시간 요구를 초과하는 경우, 와치독은 이상(anomaly)을 시그널링한다. 이에 따라 시간적인 요구는 실행 시간 할당량(quota)으로 고려될 수 있다.
도 1의 그래프의 태스크의 실행은 노드(1)에서 시작하고, 여기서 2개의 대안적인 공정(a 및 b)들 사이에 제1 분기가 일어난다. 공정(b)이 선택되어 실행되면 노드(2)로 이어진다. 공정(d)이 노드(2)와 노드(4) 사이에서 실행된다. 노드(4)에서 새로운 분기가 공정(f)과 공정(g) 사이에서 일어나고; 공정(g)이 선택되어 실행되면 노드(3)로 이어진다. 공정(c)은 노드(3)와 노드(5) 사이에서 실행된다. 노드(5)에서 새로운 분기가 공정(e)과 공정(h) 사이에서 일어나고; 공정(h)이 선택되어 실행되면 노드(2)로 이어진다...
일반적으로, 공정에 설정된 자원 요구는 시간 제약보다 상당히 더 작을 수 있는데, 이는 태스크 실행이 다른 태스크를 병렬로 수행하는데 자원을 이용가능하게 한다는 것을 의미한다.
도 2b는 도 2a의 태스크와 병렬로 실행되는 태스크의 실행 트레이스를 도시한다. 이 병렬 태스크는 동일한 라벨로 한정된 자원 요구를 가지는 공정 시퀀스(m, n, p, q 및 r)를 포함한다. 이해를 돕기 위해, 이 태스크는 도 2a의 태스크의 것과 정렬되지만, 시간적인 제약에 변동이 있게 정렬된 동기화 점을 가지게 도시된다. 이 태스크가 도 2a의 태스크와 병렬로 스케줄링되기 위해, 동기화 점들 사이에 임의의 간격으로, 공정의 자원 요구들의 합계가 시간 제약에 순응가능한 것이 바람직하다. 이 예에서 만족될 부등식의 가능한 세트는 시간 축 아래에 도시되어 있다.
따라서, 2개의 태스크를 병렬로 스케줄링하는 것은 필요한 파라미터를 구동하는 공정 시퀀스의 지식을 수반한다. 이 시퀀스가 오프라인으로 결정될 수 있다면, 이 스케줄링은 또한 오프라인, 다시 말해, 정적으로 수행될 수 있다. 태스크가 유연성 있는 모델에 순응하면, 즉 이 모델이 특히 분기를 포함하면, 일반적으로 오프라인으로 이 시퀀스를 아는 것이 가능하지 않다. 분기 조건이 식별될 수 있을 때 스케줄링하는 것은 전통적으로 동적으로, 다시 말해, 실행시간에 달성된다.
임계 실시간 시스템에서, 임의의 가능한 스케줄링 조합에 대해 시스템이 안전한지를 검증하는 것이 바람직하다. 이것은 전통적으로 모든 조합을 테스트하는 것에 의해 달성된다. 스케줄링이 동적으로 달성되면, 테스트할 조합의 수는 실제로 엄청날 수 있다.
유연성 있는 모델에 순응하는 태스크를 정적으로 또는 오프라인으로 스케줄링하는 방법이 본 명세서에 개시된다. 본 방법은 스케줄링 조합의 개수를 제한하여, 이들 조합을 종래의 도구를 사용하여 철저히 검증할 수 있는 것을 목표로 한다. 오프라인-스케줄링 도구에 의해 이용가능한 소위 정적 "실행 템플릿"을 각 태스크에 대해 수립하는 것이 추구된다.
이 목적을 위해, 단일 시간 슬롯이 실행 템플릿에서 분기를 따를 수 있는 2개의 대안적인 공정에 배정된다. 단일 슬롯에 배정된 자원 요구는 2개의 대안적인 공정의 자원 요구들 중 더 큰 자원 요구와 같은 것으로 한정된다. 슬롯에 배정된 시간 제약, 다시 말해, 슬롯의 바운더리(boundary)는 한정된 것으로 유지된다.
제1 접근법에서, 대안적인 공정이 동일한 시간적인 제약을 가지는 상황이 해결될 수 있다. 보다 일반적인 경우에서, 아래에 더 설명되는 바와 같이, 임의의 상황을, 2개의 대안적인 공정이 동일한 시간 제약을 가지는 상황으로 변화(turning)시키는 변환이 발견될 수 있다.
도 1의 그래프에서, 각 분기(노드 1, 4 및 5)를 따르는 대안적인 공정은 동일한 시간 제약을 가지는 것으로 일어난다.
도 3a는 도 1의 그래프를 변환하는 제1 단계를 도시한다. 2개의 대안적인 공정(a 및 b)의 2개의 타깃 노드(2 및 3)는 단일 노드(2_3)에 병합된다. 노드(2 및 3)를 노드(4 및 5)에 연결한 호는 모두 노드(2_3)에 연결된다. 노드(1)로부터 노드(2 및 3)로 간 2개의 호는 단일 호로 병합된다. 이 고유한 호는 공정(a 및 b)들 중 어느 것을 나타내는 "양면적인(ambivalent)" 공정과 연관되고, a|b+2로 표시된다. 이 표기로 나타낸 바와 같이, 공정(a 및 b)의 공통 시간 제약(+2)은 양면적인 공정의 시간 제약이다. 양면적인 공정의 자원 요구는 공정(a 및 b)의 자원 요구들 중 최대 값 max(a,b)과 같은 것으로 한정된다.
분기 대안이 아닌 공정(c 및 d)은 병합된 노드(2_3)에서 시작하는 대안인 것으로 이해될 수 있다. 또한 각 노드(4 및 5)로부터 노드(2 및 3)로 가는 대안(f, g 및 e, h)은 노드(2 및 3)들이 병합된 것으로 인해 함께 그룹화된 것으로 이해될 수 있다. 이 단계에서, 이 대안은 호(a|b+2)와 같은 단일 호로 표현되었을 수 있다.
도 3b는 도 1의 그래프를 변환하는 최종 단계를 도시한다. 대안적인 공정(c 및 d)의 타깃 노드(4 및 5)는 노드(4_5)로 병합된다. 노드(2_3)로부터 노드(4_5)로 가는 동일한 시간 제약(+4)을 가지는 2개의 공정(c 및 d)과, 반대 방향으로 가는 동일한 시간 제약(+2)을 가지는 4개의 공정(e, f, g, 및 h)이 있다. 대안적인 공정(a 및 b)에 적용되는 규칙에 따라, 동일한 소스 노드로부터 동일한 타깃 노드로 가고 동일한 시간 제약을 가지는 모든 호는 시간 제약을 유지하는 양면적인 공정에 배정된 단일 호로 병합되고, 그 자원 요구는 병합된 호의 자원 요구들 중 최대 자원 요구와 같은 것으로 설정된다. 노드(2_3)로부터 노드(4_5)로 가고, 자원 요구 max(c,d)를 가지는 단일 양면적인 공정(c|d+4)과, 반대 방향으로 가고, 자원 요구 max(e,f,g,h)를 가지는 단일 양면적인 공정(e|f|g|h+2)이 이에 따라 획득된다. 이에 따라 그래프에서 모든 대안을 제거하여 루프에서 실행할 순환 부분에 의해 종료된 선형 경로를 가지는 그래프를 생성하는 것이 가능하다.
도 3c는 도 2a의 실행 트레이스와 동일한 포맷으로 도 3b의 변환된 그래프로부터 결정된 실행 템플릿을 도시한다. 템플릿과 트레이스 사이에 상당한 차이는 템플릿이 도 3b의 변환된 그래프를 사용하여 오프라인으로 결정될 수 있다는 것이다.
시간 t=0에서, 대안적인 공정(a 및 b)들 중 하나의 공정의 실행은 노드(1)에서 판정된다. 대안이 무엇이든 간에, 이 대안은 노드(1 및 2_3)들 사이에 한정된 단일 슬롯에서 실행되고, 그 지속시간은 두 대안에 순응가능하다. 따라서 공정(c 및 d)들 중 임의의 하나는 노드(2_3 및 4_5)들 사이에 한정된 그 다음 슬롯에서 실행된다. 마지막으로, 공정(e, f, g, 및 h)들 중 하나는 노드(4_5 및 2_3)들 사이에 한정된 슬롯에서 실행된다. 이 실행은 노드(2_3)로부터 새로운 사이클(R)에서 재개된다.
노드(1, 2_3, 4_5 및 2_3)들 사이 슬롯에 배정된 자원 요구는 각각 max(a,b), max(c,d) 및 max(e,f,g,h)이다.
이 실행 템플릿은 태스크의 그래프를 한정하는 소스 코드를 처리하는 컴파일 도구체인(compilation toolchain)의 중간 결과물일 수 있다. 이 템플릿은, 운영 시스템이 태스크를 실행하고 그 안전 동작, 특히 시간 슬롯에 배정된 자원 요구를 체크하게 하는 파라미터를 제공하는데, 여기서 이 요구는 대응하는 공정이 정시에 완료되는 것을 보장하는 와치독을 구성하는데 사용될 수 있다.
이 방법은 와치독이 정확한 자원 요구 대신에 최대화된 자원 요구를 나타내도록 구성되기 때문에 태스크의 실행에는 영향을 미치지 않으나, 공정의 실행 제약을 변경하는 것으로 이해된다.
이 템플릿은 나아가 그 자원 요구와 시간 제약 측면에서 태스크가 전개(evolve)하는 방법을 언제나 예측할 수 있게 한다. 사실, 도 3c의 템플릿의 순환 부분(R)은, 분기 후에 실행되는 대안이 무엇이든 간에 실행 트레이스의 임의의 점에서 자원 요구와 시간 제약을 예측하기 위해 도 2a의 제1 노드(2)로부터 의도 대로 반복될 수 있다. 유일한 단점(downside)은 자원 요구 값이 정확한 것이 아니라 최대화된다는 것이다.
유사한 템플릿이 시스템에서 실행될 각 태스크에 대해 생성된다. 이들 템플릿에 한정된 시간 슬롯의 지속시간 및 대응하는 자원 요구는 운영 시스템에 대해 정적 스케줄링 파라미터를 생성할 수 있는 오프라인 스케줄링 도구에 의해 사용가능하다.
도 4는 도 1의 그래프의 것보다 더 일반적인 상황에 대응하는 상이한 시간 제약을 가지는 대안적인 공정을 포함하는 예시적인 그래프이다. 실행은 노드(1)에서 시작하고 노드(2)로 이어지는 공정을 가진다. 노드(2)에서 시간 제약(+1)의 공정(b) 또는 시간 제약(+4)의 공정(c) 사이에서 분기가 일어난다. 공정(b)은 노드(3)로 이어지는 반면, 공정(c)은 노드(4)로 이어진다. 시간 제약(+3)의 공정(d)은 노드(3)로부터 노드(4)로 간다. 마지막으로, 공정(e)은 노드(4)로부터 노드(1)로 간다.
이 그래프를 변경하여 도 1의 그래프와 같이 변환하여 정적 실행 템플릿을 한정하는 것이 추구된다. 도 5a 내지 도 5c는 이를 위한 방법을 도시한다.
도 5a는 도 4의 그래프의 제1 변환 단계를 도시한다. 최장 시간 제약을 가지는 대안적인 공정, 즉 공정(c)에서, 중간 노드(3b)가 삽입된다. 노드(2 및 3b)를 연결하는 호는 공정(c)의 부분(c1)을 나타내고, 이에는 대안적인 공정(b)과 동일한 시간 제약(+1)이 배정되는 것으로 고려된다. 노드(3b)와 노드(4)를 연결하는 호는 공정(c)의 나머지 부분(c2)을 나타내고, 이에는 공정(c)의 시간 제약의 상보값(complement)(+3)이 배정된다. 부분적인 공정(c1 및 c2)의 자원 요구는 c1+c2 = c이도록 이루어진다. 요구(c1)와 요구(c2) 사이에 자원 요구(c)의 분배는 임의일 수 있다. 이 분배는, 예를 들어, 대안적인 공정의 자원 요구와 그 최대화된 값 사이에 편차를 최소화하도록 최적화될 수 있다. 예를 들어, c=2, b=0.8, 및 d=1 이고, 값 c1=0.9 및 c2=1.1은 0.1의 최대 편차를 생성한다.
여기서 자원 요구(c1)를 추가하는 것은 선험적으로 요구되지 않는 제약을 와치독에 의해 모니터링하도록 실행 제약을 추가하는 것에 대응하는 것이라는 것으로 이해된다. 특정 조치가 취해지지 않는 경우, 와치독은, 부분적인 공정(c1)의 실행이 자원 요구(c1)를 충족하는지를 점(2)으로부터 체크하고, 초기 제약은 공정(c)의 실행이 자원 요구(c)를 충족하는 것이다.
이 제약을 만족하는 제1 접근법은 개발자 또는 도구체인이 공정(c)을 적응된 부분적인 공정(c1 및 c2)으로 분할하는 일을 담당하는 것이다. 이것은, 변경되지 않은 기존의 운영 시스템을 사용하여, 태스크의 변경된 실행 특성을 리턴할 수 있게 한다.
바람직한 접근법은 운영 시스템의 간단한 변경을 수반한다. 도 5a에 도시된 바와 같이, 노드(2)의 분기의 2개의 대안적인 공정에는, 실행시간에 취해진 대안을 식별하는 상태 변수 또는 플래그(B)가 배정된다. 실행된 대안이 변경되지 않은 호(b)에 대응할 때, 플래그(B)는 그 디폴트 소거된 값(예를 들어, 0)에 유지된다. 이 대안이 변경된 호(c1)에 대응할 때, 플래그(B)는 공정 그 자체 또는 운영 시스템에 의해 설정된다. 이 플래그의 사용은 도 5c와 관련하여 보다 상세히 설명된다.
도 5b는 도 5a의 그래프의 최종 변환을 도시한다. 노드(3b)를 삽입하여, 동일한 시간 제약을 갖는 2개의 대안적인 공정을 생성하는 것으로 인해, 이 대안적인 공정의 타깃 노드(3 및 3b)는 도 3a와 관련하여 설명된 방법에 따라 병합될 수 있다. 이것은, 노드(2)와 병합된 노드(3_3b) 사이에 시간 제약(+1)과 자원 요구 max(b,c1)를 가지는 양면적인 공정(b|c1)을 생성한다.
플래그(B)를 사용하여, 양면적인 공정은 b(B=0)|c1(B=1)로 표기된다.
노드(3 및 3b)로부터 노드(4)로 가고 동일한 시간 제약(+3)을 가지는 공정(d 및 c2)은 시간 제약(+3)과 자원 요구 max(c2,d)를 가지는 단일 양면적인 공정(c2|d)에 병합될 수 있다.
도 5c는 도 5b의 변환된 그래프로부터 결정된 실행 템플릿을 도시한다. 이 템플릿은 노드(1, 2, 3_3b, 4)의 시퀀스에 따라 반복가능하다.
플래그(B)가 사용되지 않고, 부분적인 공정(c1)이 그 대응하는 슬롯에서 실행되면, 와치독은 공정(c1)이 그 자원 요구(c1)에 순응하는지를 점(2)으로부터 체크한다. 이것은 부분적인 공정(c1)이 이 제약을 만족시키도록 설계되는 것을 수반하지만, 이것이 원점에서 강제되는 것은 아니다.
플래그(B)는 와치독을 이 상황에서 디스에이블시켜, 이 부분적인 공정에 대한 제약을 완화시키는데 사용된다.
대안적인 공정(b)이 실행되면, 플래그(B)는 그 원래의 소거된 상태에 유지된다. 이것은 공정의 실행을 정상적으로 모니터링할 것을 와치독에 신호한다.
대안적인 부분적인 공정(c1)이 실행되면, 플래그(B)는 (공정 그 자체 또는 운영 시스템에 의해) 설정된다. 이 경우에, 자원 요구(c1)가 초과되는 경우에도, 와치독은 결함을 보고하지 않는다. 플래그(B)는 점(3_3b)에서 소거되고, 이에 와치독은 점(3_3b)으로부터 계속 정상적으로 동작한다.
이렇게 플래그(B)를 사용하는 것에 의해, 공정(c)을 2개의 부분적인 공정으로 실제 분할할 필요가 없게 된다. 원래의 공정(c)은 점(2)에서 론칭될 수 있고, 그 실행은 결함이 시그널링됨이 없이 점(3_3b)을 넘어 지속할 수 있다. 공정(c)의 실행이 자원 요구(c1+c2)를 초과하는 경우에만 원래의 그래프의 제약에 대응하는 결함이 시그널링된다. 스케줄링을 하기 위하여, 공정(c)의 자원 요구가 2개의 값(c1 및 c2)에 걸쳐 분배되는 것이 여전히 고려된다.
전술된 바와 같이, 중간 노드(3b)를 삽입한 후, 공정(c2 및 d)은 동일한 시간 제약을 가진다. 이들 값은 설명을 간단히 하기 위해 선택되었다. 일반적인 경우에, 시간 제약은 상이할 수 있다. 이 경우에, 이하 예로서 도시된 바와 같이 공정(c)에 사용되는 기술을 반복하는 것으로 충분하다.
도 6a 내지 도 6c는 공정(d)의 시간 제약의 상이한 값, 여기서 +3이 아니라 +6에 대해 도 4의 그래프의 변환 단계를 도시한다.
도 6a는 도 5a의 단계에 대응한다. 차이만이 공정(d)의 시간 제약의 값이다.
도 6b에서, 노드(3 및 3b)는 병합되었다. 노드(3_3b 및 4)는 상이한 시간 제약을 가지는 2개의 호(c2+3 및 d+6)에 의해 연결된다.
도 6c에서, 노드(4)는 2개의 노드, 즉 공정(c2+3)의 타깃을 형성하는 하나의 노드(4')와, 공정(d+6)의 타깃을 형성하는 다른 노드(4'')로 분할된다. 각 노드(4' 및 4'')는 공정(e+1)에 의해 노드(1)에 연결된다.
이 단계로부터, 도 6a 또는 도 5a의 단계의 과정은 중간 노드를 최장 시간 제약을 가지는 공정(d+6)에 삽입하는 것에 의해 반복되어, 동일한 시간 제약 등을 가지는 2개의 대안적인 공정(c2+3 및 d1+3) 등을 생성하여 그래프를 순환 그래프 또는 순환 부분에 의해 종료되는 그래프로 변환할 수 있다.
임의의 그래프로부터, 이 방법은 순환 부분을 포함하는 상이한 지속시간의 제한된 개수의 시간 슬롯으로 형성된 실행 템플릿을 생성한다. 수 개의 태스크를 병렬로 스케줄링하기 위해, 전용 도구는 템플릿에 포함된 자원 요구와 슬롯 지속시간을 사용하여 병렬로 실행가능한 템플릿과, 병렬로 실행가능한 태스크의 조합을 찾을 수 있다. 따라서, 스케줄링은 공정의 매칭 시퀀스(태스크마다 다수)가 아니라 매칭 템플릿(태스크마다 하나)으로 감소된다.
시스템 검증 테스트를 더 간략화하기 위해, 동일한 시간 슬롯을 갖는 짧은 실행 템플릿을 가지는 것이 바람직하다.
도 7a 및 도 7b는 시간 슬롯의 길이를 정규화하고 템플릿을 단축하는 방법을 도시한다.
도 7a는 일례로서 도 5c의 템플릿의 처리 단계를 도시한다. 템플릿의 순환 부분에서, 더 긴 슬롯을, 순환 부분의 슬롯의 최대 공통 제수의 길이를 가지는 수 개의 더 짧은 슬롯으로 분할하는 것이 추구된다. 도 7a의 템플릿에서, 길이(3)의 노드(3_3b 및 4)들 사이의 슬롯은 길이(1)의 3개의 슬롯으로 분할된다. 이것은 중간 전이 노드(4a 및 4b)를 그래프의 호(c2|d)에 삽입하는 것에 해당한다.
양면적인 공정(c2|d)은 이에 따라 동일한 시간 제약(1)을 갖는 3개의 부분적인 양면적인 공정([c2|d]0 내지 [c2|d]2)으로 분할된다. 공정(c2|d), max(c2,d)의 초기 자원 요구는 p0+p1+p2 = 1이도록 가중치(p0, p1 및 p2)가 3개의 부분적인 공정 중에 분배된다.
도 5a의 중간 노드(3b)에 대해, 중간 노드(4a 및 4b)는 와치독이 공정의 실행 시간을 모니터링하는 동기화 점이 된다. 공정(c2|d)을 실제로 분할하는 것을 회피하기 위해, 공정이 그 자원 요구를 초과하는 경우 결함을 보고하는 것을 생략할 것을 와치독에 지시하는, 플래그(B)와 같은, 플래그(S)를 사용하는 것이 바람직하다. 플래그(S)는 공정(c2|d)의 시작부로부터 (그래서 기본적으로 공정(c 및 d)들 중 임의의 공정의 시작부로부터) 무조건적으로 설정되고, 이후 마지막 중간 동기화 점(4b)에서 소거된다.
이 기술은 이에 따라 시간 슬롯의 지속시간을 정규화하고 이는 검증 테스트를 간략화하는 제1 개선이다.
도 7b는 도 7a의 정규화된 실행 템플릿을 단축하는 단계를 도시한다. 이 템플릿의 제2 절반은 제1 절반 위에 오버랩되어, 노드(4a, 4b 및 4)는 노드(1, 2 및 3_3b)와 각각 병합되게 한다. 따라서 지속시간(1)의 단 3개의 시간 슬롯이 유지된다. 제1 시간 슬롯에서, 공정(a 및 [c2|d]1)들 중 어느 공정이 실행될 수 있고, 그래서 사실 플래그(B 및 S)를 사용할 때 공정(a, c 및 d)들 중 어느 것이 실행될 수 있다. 제2 시간 슬롯에서, 공정(b, c1, 및 [c2|d]2)들 중 어느 것이 실행될 수 있고, 그래서 사실 공정(b, c 및 d)들 중 어느 것이 실행될 수 있다. 마지막 시간 슬롯에서, 공정(e 및 [c2|d]0)들 중 어느 것이 실행될 수 있고, 그래서 사실 공정(e, c 및 d)들 중 어느 것이 실행될 수 있다.
이 시간 슬롯에 대한 자원 요구는 대안적인 공정에 대한 것과 동일한 결정 규칙을 따른다. 이들 요구는 각각 max{a, p1·max(c2,d)}, max{b, c1, p2·max(c2,d)}, 및 max{e, p0·max(c2,d)}이다.
짝수 개수의 슬롯으로 완전히 순환하는 고려되는 예시적인 템플릿에 대해, 템플릿의 사이즈는 2등분될 수 있다. 임의의 상황에서, 이 템플릿은 홀수 개수의 슬롯을 포함할 수 있는 순환 부분(도 3b, 도 3c)이 후속하는 선형 부분을 포함한다. 오버랩 방법은 정규화된 순환 부분에 적용된다. 이는 정규화된 순환 부분이 홀수 개수의 슬롯을 가지는 경우에도 적용 가능하다 - 사실 이 오버랩은 부분적일 수 있고, 이는 템플릿의 사이즈 감소를 약간 희생시킨다.

Claims (7)

  1. 실시간 멀티태스킹 시스템을 위한 유연성 있는 모델에 순응하는 태스크를 형성하는 공정을 오프라인으로 스케줄링하는 방법으로서, 상기 방법은, 상기 태스크를 한정하는 소스 코드를 컴파일하는 도구체인에 의해 수행되는 다음 단계들:
    a) 하드웨어 자원 요구와 시간 제약을 각 공정에 배정하는 단계;
    b) 상기 공정의 시간 제약에 대응하는 지속시간을 가지는 시간 슬롯을 각 공정에 할당하는 단계;
    c) 2개의 대안적인 공정(a, b)들 중 하나의 공정 또는 다른 하나의 공정의 실행이 판정되는 분기점(branch point)을 식별하는 단계;
    d) 공통 시간 슬롯(+2)을 상기 2개의 대안적인 공정에 할당하는 단계;
    e) 상기 2개의 대안적인 공정의 자원 요구들 중 더 큰 자원 요구와 동일한 자원 요구(max(a,b))를 상기 공통 시간 슬롯에 배정하는 단계;
    f) 각 분기점에 대해 단계 c)로부터 반복하는 단계;
    g) 상기 태스크와 연관된 실행 템플릿에서 최종 시간 슬롯을 조직하는(organizing) 단계; 및
    h) 상기 실행 템플릿으로부터 상기 멀티태스킹 시스템에 대한 정적 스케줄링 파라미터를 생성하는 단계;를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 소스 코드는 전이 노드에 의해 연결된 공정 세트를 한정하는 그래프 형태로 상기 태스크를 나타내고, 각 전이 노드는 상기 멀티태스킹 시스템에서 상기 태스크의 실행 동안 시간 베이스에 따라 동기화 점을 한정하며, 상기 방법은,
    · 상기 공정의 소스 전이 노드와 목적지 전이 노드로부터 각 공정에 할당된 상기 시간 슬롯의 한계를 한정하는 단계;
    · 공통 소스 노드(1)와 2개의 각 타깃 노드(2, 3)를 구비하는 2개의 대안적인 공정에 대해, 상기 2개의 타깃 노드를 병합된 타깃 노드(2_3)로 병합하는 단계; 및
    · 상기 공통 소스 노드와 상기 병합된 타깃 노드(2_3)로부터 대안적인 공정 모두에 공통인 상기 시간 슬롯을 한정하는 단계;를 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 단계 c)에서 상이한 시간 제약을 가지는 2개의 대안적인 공정(b+1, c+4)에 대해, 다음 단계, 즉:
    · 최장 시간 제약을 가지는 상기 2개의 대안적인 공정(c+4)들 중 제1 공정(c)에 중간 전이 노드(3b)를 생성하여, 상기 소스 노드와 상기 중간 노드 사이에 제1 부분적인 대안적인 공정(c1)을 생성하고, 상기 제1 대안적인 공정의 상기 타깃 노드와 상기 중간 노드 사이에 제2 부분적인 공정(c2)을 생성하는 단계;
    · 상기 제2 대안적인 공정의 상기 시간 제약과 동일한 시간 제약(1)과 제1 자원 요구(c1)를 상기 제1 부분적인 대안적인 공정에 배정하는 단계;
    · 상기 제1 및 제2 자원 요구들의 합계가 상기 제1 대안적인 공정(c)의 자원 요구와 동일하고, 시간 제약(c2)이 상기 2개의 대안적인 공정의 시간 제약들의 차이와 동일하도록 제2 자원 요구(c2)를 상기 제2 부분적인 공정에 배정하는 단계; 및
    · 상기 단계 d)에 따라 상기 제1 부분적인 대안적인 공정(c1+1)과 상기 제2 대안적인 공정(b+1)으로 진행하는 단계;를 포함하는 것을 특징으로 하는 방법.
  4. 제3항 따라 스케줄링된 태스크를 실행하는 방법으로서, 멀티태스킹 시스템에서 실행되는 다음 단계, 즉:
    · 각 시간 슬롯에서, 진행 중인(ongoing) 공정의 실행이 상기 시간 슬롯에 배정된 자원 요구에 순응하는지를 와치독에 의해 체크하는 단계; 및
    · 상기 진행 중인 공정의 실행이 상기 자원 요구를 초과하고 상기 진행 중인 공정이 상기 제1 부분적인 대안적인 공정(c1)인 경우 상기 와치독에 의해 결함의 시그널링을 생략하는 단계;를 포함하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서,
    · 상기 제1 부분적인 대안적인 공정(c1)의 실행시 상태 변수(B=1)를 설정하는 단계;
    · 상기 진행 중인 공정의 실행이 상기 자원 요구를 초과하고 상기 상태 변수가 설정된 경우 상기 와치독에 의해 결함의 시그널링을 생략하는 단계; 및
    · 병합된 타깃 노드(2_3)에 대응하는 동기화 점에서 상기 상태 변수를 소거하는 단계;를 포함하는 것을 특징으로 하는 방법.
  6. 제3항에 있어서,
    상기 그래프의 순환(cyclic) 부분에 대해 다음 단계, 즉:
    · 더 긴 시간 제약을 가지는 각 공정(c2|d)을, 상기 순환 부분에서 시간 제약의 최대 공통 제수(common divisor)인 더 짧은 시간 제약을 가지는 부분적인 공정 세트로 분할하여, 상기 그래프의 순환 부분을, 동일한 정규화된 시간 제약을 모두 가지는 전체 또는 부분적인 공정의 시퀀스를 한정하는 정규화된 서브-그래프로 변환하는 단계; 및
    · 상기 부분적인 공정의 자원 요구들의 합계가 더 긴 시간 제약을 가지는 상기 공정의 자원 요구와 동일하도록, 대응하는 부분적인 공정들 사이에 더 긴 시간 제약을 가지는 각 공정의 자원 요구를 분배하는 단계;를 포함하는 것을 특징으로 하는 방법.
  7. 제6항에 있어서,
    · 서브-그래프(1, 2, 3_3b)의 제1 부분의 종단부의 전이 노드가 상기 서브-그래프의 제2 부분의 시작부의 각 노드(4a, 4b, 4)와 일치하도록, 상기 서브-그래프의 제1 부분의 종단부를 상기 서브-그래프의 제2 부분의 시작부 상에 오버랩하여, 2개의 연속적인 쌍의 일치하는 노드가 제1 쌍의 2개의 노드를 각 원점(origin)으로 가지는 공정과 공통인 시간 슬롯을 한정하는 단계; 및
    · 상기 제1 쌍의 노드들과 연관된 공정의 자원 요구들 중 최대 자원 요구와 동일한 자원 요구와, 상기 정규화된 시간 제약과 동일한 시간 제약을, 한정된 상기 공통 시간 슬롯에 배정하는 단계;를 포함하는 것을 특징으로 하는 방법.
KR1020157030996A 2013-04-09 2014-03-17 임계 실시간 시스템에서 태스크의 실행 방법 KR102178574B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1353203 2013-04-09
FR1353203A FR3004274A1 (fr) 2013-04-09 2013-04-09 Procede d'execution de taches dans un systeme temps-reel critique
PCT/FR2014/050612 WO2014167197A1 (fr) 2013-04-09 2014-03-17 Procédé d'exécution de taches dans un system temps-réel critique

Publications (2)

Publication Number Publication Date
KR20150140708A true KR20150140708A (ko) 2015-12-16
KR102178574B1 KR102178574B1 (ko) 2020-11-13

Family

ID=48906285

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157030996A KR102178574B1 (ko) 2013-04-09 2014-03-17 임계 실시간 시스템에서 태스크의 실행 방법

Country Status (11)

Country Link
US (1) US9946575B2 (ko)
EP (1) EP2984565B1 (ko)
JP (1) JP6524064B2 (ko)
KR (1) KR102178574B1 (ko)
CN (1) CN105144104B (ko)
AU (1) AU2014252942A1 (ko)
BR (1) BR112015025326B1 (ko)
CA (1) CA2907808C (ko)
FR (1) FR3004274A1 (ko)
RU (1) RU2660614C2 (ko)
WO (1) WO2014167197A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9740529B1 (en) * 2013-12-05 2017-08-22 The Mathworks, Inc. High throughput synchronous resource-constrained scheduling for model-based design
CN105912390A (zh) * 2016-04-07 2016-08-31 四川大学 云计算环境下基于模板的任务调度策略
US11243949B2 (en) 2017-04-21 2022-02-08 Microsoft Technology Licensing, Llc Query execution across multiple graphs
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
FR3084187B1 (fr) * 2018-07-18 2021-01-01 Commissariat Energie Atomique Procede d'acceleration de l'execution d'un programme a chemin unique par execution en parallele de sequences conditionnellement concurrentes
CN109460277B (zh) * 2018-10-30 2022-08-05 北京小米移动软件有限公司 商品抢购流程的展示方法及装置
US11244106B2 (en) * 2019-07-03 2022-02-08 Microsoft Technology Licensing, Llc Task templates and social task discovery
RU2751441C1 (ru) * 2020-09-11 2021-07-13 Федеральное государственное бюджетное образовательное учреждение высшего образования «Московский государственный университет имени М.В.Ломоносова» (МГУ) Способ формирования вычислительного комплекса
US11726817B2 (en) 2020-09-25 2023-08-15 Red Hat, Inc. Scheduling multiple processes with varying delay sensitivity
DE102020214144A1 (de) 2020-11-11 2022-05-12 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zum Überwachen zyklischer Aufgaben in Maschinensteuerung

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060045780A (ko) * 2004-05-21 2006-05-17 마이크로소프트 코포레이션 그래프 분석 및 동기화를 위한 방법 및 시스템
KR20070031307A (ko) * 2004-05-27 2007-03-19 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 신호 스트림 처리 작업의 조합을 실행하기 위한 방법, 장치및 시스템, 실행 파라미터를 계산하는 방법 및 장치,컴퓨터 프로그램 제품
US20100281241A1 (en) * 2009-05-04 2010-11-04 International Business Machines Corporation Method and system for synchronizing inclusive decision branches
JP2011028751A (ja) * 2009-07-23 2011-02-10 Biosense Webster Inc 医療処置中のコンピューターの妨害イベントの防止
JP5069325B2 (ja) * 2010-03-11 2012-11-07 株式会社豊田中央研究所 タスク実行制御装置及びプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2816730B1 (fr) 2000-11-13 2004-10-15 Commissariat Energie Atomique Procede de securisation rendant deterministe l'execution en temps reel d'applications multitaches du type controle- commande avec confinement d'erreur
RU2239228C2 (ru) * 2001-07-05 2004-10-27 Всероссийский научно-исследовательский институт автоматики Способ распределения времени центрального процессора между задачами в автоматизированных системах управления технологическими процессами
FR2873830B1 (fr) * 2004-07-30 2008-02-22 Commissariat Energie Atomique Procede d'ordonnancement de traitement de taches et dispositif pour mettre en oeuvre le procede
GB0513045D0 (en) * 2005-06-27 2005-08-03 Vidus Ltd Resource scheduling method and system
FR2893156B1 (fr) * 2005-11-04 2008-02-15 Commissariat Energie Atomique Procede et systeme de calcul intensif multitache et multiflot en temps reel.
CN100580632C (zh) * 2008-02-22 2010-01-13 浙江大学 嵌入式系统rm低功耗调度中松弛时间在线重分配方法
EP2568346B1 (en) * 2011-09-06 2015-12-30 Airbus Operations Robust system control method with short execution deadlines

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060045780A (ko) * 2004-05-21 2006-05-17 마이크로소프트 코포레이션 그래프 분석 및 동기화를 위한 방법 및 시스템
KR20070031307A (ko) * 2004-05-27 2007-03-19 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 신호 스트림 처리 작업의 조합을 실행하기 위한 방법, 장치및 시스템, 실행 파라미터를 계산하는 방법 및 장치,컴퓨터 프로그램 제품
US20100281241A1 (en) * 2009-05-04 2010-11-04 International Business Machines Corporation Method and system for synchronizing inclusive decision branches
JP2011028751A (ja) * 2009-07-23 2011-02-10 Biosense Webster Inc 医療処置中のコンピューターの妨害イベントの防止
JP5069325B2 (ja) * 2010-03-11 2012-11-07 株式会社豊田中央研究所 タスク実行制御装置及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Reinhard Wilhelm 외 14명. 'RecurFI: The Worst-Case Execution Time Problem - Overview of Methods and Survey of Tools'. ACM Transactions on Embedded Computing Systems, 2008.01., pp.1-52. *

Also Published As

Publication number Publication date
KR102178574B1 (ko) 2020-11-13
JP6524064B2 (ja) 2019-06-05
CA2907808C (fr) 2021-06-08
EP2984565B1 (fr) 2019-08-21
CN105144104A (zh) 2015-12-09
CA2907808A1 (fr) 2014-10-16
EP2984565A1 (fr) 2016-02-17
US9946575B2 (en) 2018-04-17
BR112015025326A2 (pt) 2017-07-18
RU2660614C2 (ru) 2018-07-06
CN105144104B (zh) 2020-03-17
BR112015025326B1 (pt) 2022-05-03
US20160070600A1 (en) 2016-03-10
WO2014167197A9 (fr) 2015-01-08
RU2015147897A (ru) 2017-05-16
AU2014252942A1 (en) 2015-11-19
FR3004274A1 (fr) 2014-10-10
WO2014167197A1 (fr) 2014-10-16
JP2016519821A (ja) 2016-07-07

Similar Documents

Publication Publication Date Title
KR102178574B1 (ko) 임계 실시간 시스템에서 태스크의 실행 방법
CN110245067B (zh) 安全关键软件自动化基于需求的测试实例生成系统和方法
KR101645035B1 (ko) 병렬 프로그래밍 조절 장치 및 방법
Hong et al. Meeting end-to-end deadlines through distributed local deadline assignments
US20150135187A1 (en) Method for monitoring resources in computing device, and computing device
CN108121285B (zh) 基于连续功能图的应用软件协同编译方法及装置
CN112306468A (zh) 用于处理机器学习模型的方法、设备和计算机程序产品
Naumoski A discrete-event simulator for systems engineering.
Geismann et al. Towards an Automated Synthesis of a Real-time Scheduling for Cyber-physical Multi-core Systems.
Neukirchner et al. A lazy algorithm for distributed priority assignment in real-time systems
CN116933841A (zh) 算子融合方法及装置、电子设备、计算机可读介质
McElhone et al. Scheduling optional computations for adaptive real-time systems
Stein et al. Consistency challenges in self-organizing distributed hard real-time systems
Devismes et al. Weak vs. self vs. probabilistic stabilization
Khalgui et al. An iec61499-based development approach for distributed industrial control applications
Salem et al. Transformation from R-UML to R-TNCES: New formal solution for verification of flexible control systems
Khenfri et al. A novel heuristic algorithm for mapping autosar runnables to tasks
Ţiplea et al. The reversible released form of Petri nets and its applications to soundness of workflow nets
Ivutin et al. Optimization of task distribution on multicore systems
Aman et al. Application of the 0-1 programming model for cost-effective regression test
Boberg A comparison of sequencing formulations in a constraint generation procedure for avionics scheduling
Cedersjö et al. Finding fast action selectors for dataflow actors
WO2015087409A1 (ja) ソースコード生成装置、ソースコード証明装置、ソースコード生成方法、およびソースコード生成プログラム
Shouthiri et al. A comparative analysis of looping structures: Comparison of ‘While’Loop and ‘Do-While’Loop in the C++ lLanguage
Sena et al. A malleable vectorized auction algorithm for modern multicore architectures

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