KR102602151B1 - 실시간 작업들 간에 저지연 통신을 보장하는 시퀀싱 계획들을 실행하는 방법 - Google Patents

실시간 작업들 간에 저지연 통신을 보장하는 시퀀싱 계획들을 실행하는 방법 Download PDF

Info

Publication number
KR102602151B1
KR102602151B1 KR1020207013241A KR20207013241A KR102602151B1 KR 102602151 B1 KR102602151 B1 KR 102602151B1 KR 1020207013241 A KR1020207013241 A KR 1020207013241A KR 20207013241 A KR20207013241 A KR 20207013241A KR 102602151 B1 KR102602151 B1 KR 102602151B1
Authority
KR
South Korea
Prior art keywords
execution
time slot
time
processes
list
Prior art date
Application number
KR1020207013241A
Other languages
English (en)
Other versions
KR20200068702A (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 KR20200068702A publication Critical patent/KR20200068702A/ko
Application granted granted Critical
Publication of KR102602151B1 publication Critical patent/KR102602151B1/ko

Links

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
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

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

Abstract

본 발명은 실시간 시스템 상에서 실행되는 복수의 작업들(Tp 및 Tc)에 대한 시퀀싱 계획을 오프라인으로 구성하는 방법에 관한 것으로, 각 작업(Tp 및 Tc)을 프레임들의 시퀀스로 분해하는 단계로서, 각 프레임은 실행 요구(Bp(m))를 갖는 기본 프로세스(Tp(m))와 연관되고, 상기 프로세스가 시작될 수 있는 시작 시기(Dp(m)) 및 상기 프로세스가 완료되어야 하는 종료 시기 또는 마감기한(Dp(m+1))을 규정하는, 상기 분해하는 단계; 각각의 순서 제약들(C)을 프로세스 쌍들(Tp(m) 및 Tc(n))에 연관시키는 단계; 상기 실시간 시스템의 실행 유닛과 연관된 시간 스케일(S) 상에 상기 시기들을 투영하여 시간 슬롯들의 시퀀스를 형성하는 단계; 상기 시퀀스의 시간 슬롯들을 순차적으로 파싱하는 단계; 현 시간 슬롯 내에서 적격인 프로세스들을 식별하는 단계로서, 프로세스는 다음의 2개의 기준들: i) 상기 현 시간 슬롯 내에서 실행가능한 조건, 및 ii) 순서 제약을 갖는 경우, 상기 순서 제약에 의해 참조되는 프로세스는 상기 현 시간 슬롯 내에서 또한 실행가능하거나 상기 참조된 프로세스의 마감기한이 이전 시간 슬롯 내에 있는 조건을 충족하는 경우 적격인, 상기 식별하는 단계; 목록 내 상기 적격인 프로세스들을 마감기한들을 증가시키는 순서로 정리하는 단계; 상기 프로세스들을 그들의 순서 제약들에 따라 재정렬하도록 상기 목록을 수정하는 단계; 및 상기 시퀀싱 계획을 수립하도록 상기 목록의 순서대로 상기 현 시간 슬롯 내에 상기 적격인 프로세스들의 실행 요구들을 분배하는 단계;를 포함한다.

Description

실시간 작업들 간에 저지연 통신을 보장하는 시퀀싱 계획들을 실행하는 방법
본 발명은 경성 실시간 멀티태스킹 시스템들(hard real-time multitasking systems)에 관한 것으로, 보다 상세하게는 이러한 시스템들에서의 작업간 통신 기술들에 관한 것이다.
경성 실시간 시스템들, 즉 작업 실행 지연을 통한 마감기한 위반을 허용하지 않는 시스템들에서는 작업들이 종종 정적 스케줄링 방법들을 사용하여 실행된다. 그런 다음 정적 시퀀싱 계획이 오프라인으로 구성되어 실행 리소스들의 사용 필요성의 정적 시간 할당을 나타낸다. 이러한 방법은 예를 들어 논문 ["A Method and a Technique to Model and Ensure Timeliness in Safety Critical Real-Time Systems", C. Aussagues, V. David, Fourth IEEE International Conference on Engineering of Complex Computer Systems, 1998] 및 특허 출원들 WO 2006-050967 및 US 2010-0199280에 기술되어 있다.
정적 시퀀싱 계획은 실행 유닛 상에서 시분할 모드로 실행될 몇 개의 병렬 작업들을 포함할 수 있다. 작업들은 서로 통신할 수도 있다. 예를 들어, 제 1 작업은 센서로부터 규칙적인 측정들을 수행할 수 있는 반면, 제 2 작업은 제어를 구현하기 위해 생성된 측정치들을 샘플링할 수 있다.
이러한 구성에서, 생성 작업에 의해 데이터가 제공되는 순간과 소비 작업에 의해 데이터가 판독되는 순간 사이에 지연들이 발생할 수 있다. 어떤 상황들에서는 지연들이 너무 커서 생성된 데이터를 사용하는 제어 시스템의 안정성 또는 응답성에 영향을 줄 수 있다.
실시간 시스템 상에서 실행될 복수의 작업들에 대한 시퀀싱 계획을 오프라인으로 구성하기 위한 방법이 전반적으로 제공되며, 상기 방법은 각 작업을 프레임들의 시퀀스로 분해하는 단계로서, 각 프레임은 실행 요구를 갖는 기본 프로세스와 연관되고, 상기 프로세스가 시작될 수 있는 시작 시기 및 상기 프로세스가 완료되어야 하는 종료 시기 또는 마감기한을 규정하는, 상기 각 작업을 프레임들의 시퀀스로 분해하는 단계; 각각의 순서 제약들을 프로세스 쌍들에 연관시키는 단계; 상기 실시간 시스템의 실행 유닛과 연관된 시간 스케일 상에 상기 시기들을 투영하여 시간 슬롯들의 시퀀스를 형성하는 단계; 상기 시퀀스의 상기 시간 슬롯들을 순차적으로 파싱(parsing)하는 단계; 현 시간 슬롯 내에서 적격인 프로세스들을 식별하는 단계로서, 프로세스는 이하의 2개의 기준들을 충족하는 경우 적격이며, 상기 2개의 기준들은: i) 상기 현 시간 슬롯 내에서 실행가능한 조건, 및 ii) 순서 제약을 갖는 경우, 상기 순서 제약에 의해 참조되는 프로세스는 상기 현 시간 슬롯 내에서 또한 실행가능하거나 상기 참조된 프로세스의 마감기한이 이전 시간 슬롯 내에 있는 조건을 포함하는, 상기 현 시간 슬롯 내에서 적격인 프로세스들을 식별하는 단계; 마감기한들을 증가시키는 순서에 의해 목록 내 상기 적격인 프로세스들을 정리하는 단계; 그들의 순서 제약들에 따라 상기 프로세스들을 재정렬하도록 상기 목록을 수정하는 단계; 및 상기 시퀀싱 계획을 수립하도록 상기 목록의 순서대로 상기 현 시간 슬롯 내에 상기 적격인 프로세스들의 실행 요구들을 분배하는 단계를 포함한다.
상기 방법은 프레임들이 중첩하지 않는 2개의 프로세스들로 형성된 각 쌍에서 순서 제약들을 제거하는 초기 단계를 포함할 수 있다.
상기 목록을 수정하는 단계 및 상기 실행 요구들을 분배하는 단계는, 상기 프로세스들의 목록을 순차적으로 파싱하는 단계; 상기 목록 내의 현 프로세스가 상기 목록 내에서 상기 현 프로세스 이후에 배치된 프로세스를 참조하는 순서 제약을 갖는 경우, 상기 현 프로세스 이전에 상기 참조된 프로세스를 이동하여 상기 목록을 수정하는 단계; 상기 이동된 참조된 프로세스의 위치에서 시작하여 상기 목록 파싱을 재개하는 단계; 및 상기 목록 내의 상기 현 프로세스가 상기 목록 내에서 상기 현 프로세스 이후에 배치된 프로세스를 참조하는 순서 제약을 갖지 않는 경우, 상기 현 프로세스의 실행 요구를 상기 현 시간 슬롯 내에 배치하는 단계를 포함할 수 있다.
상기 실행 요구를 배치하는 단계는, 상기 현 슬롯이 상기 실행 요구를 수용하기에 충분한 공간을 갖는 경우 상기 실행 요구를 상기 현 시간 슬롯 내에 완전히 배치하는 단계; 및 상기 현 슬롯이 상기 실행 요구를 수용하기에 충분한 공간을 갖지 않는 경우, 상기 현 시간 슬롯을 상기 실행 요구의 제 1 부분으로 채우고 상기 실행 요구의 잔여물의 배치를 후속 슬롯으로 연기하는 단계를 포함할 수 있다.
상기 실시간 시스템은 복수의 실행 유닛들을 포함할 수 있다.
그 다음, 상기 방법은, 각 실행 유닛에 대한 시퀀싱 계획을 형성하도록 상기 시간 슬롯들의 시퀀스의 복제본를 각 실행 유닛과 연관시키는 단계; 순서 제약들에 의해 링크된 프로세스들이 상이한 실행 유닛들 상에서 실행되도록 실행 유닛들을 상기 작업들로 할당하는 단계; 상기 실행 요구의 배치 단계에서: i) 상기 현 프로세스와 연관된 상기 계획의 현 시간 슬롯 내에 실행 요구를 배치하는 단계, 및ii) 2개의 실행 유닛들 간의 데이터 통신 및 상기 2개의 실행 유닛들의 클록들 간의 오프셋에서 발생하는 지연들을 고려하여 동기화 시간만큼 증가된 상기 배치된 실행 요구에 대응하는 패딩 간격(padding interval)을 상기 참조된 프로세스와 연관된 상기 계획의 현 슬롯 내에 배치하는 단계를 더 포함할 수 있다.
상기 실행 요구를 상기 현 시간 슬롯 내에 배치하는 단계는 상기 실행 요구를 상기 현 시간 슬롯 내에 포함된 임의의 패딩 간격 내에 배치하는 단계를 포함할 수 있다.
실시간 멀티태스킹 시스템에서 작업들을 실행하기 위해 방법이 또한 제공될 수 있으며, 상기 방법은, 상기 방법에 따라 멀티태스크 시퀀싱 계획을 생성하는 단계; 상기 시퀀싱 계획을 루프에 적용하도록 실시간 멀티태스킹 시스템 실행 유닛을 구성하는 단계; 상기 실시간 멀티태스킹 시스템의 시간 베이스를 구성하여 상기 시퀀싱 계획의 상기 시간 슬롯들을 클록킹하는 단계; 해당 실행 요구들이 상기 슬롯 내에 분배되는 순서대로 각 슬롯의 적격 프로세스들을 순차적으로 실행하는 단계; 및 프로세스 실행 시간들이 상기 해당 실행 요구들을 준수하는지 확인하는 단계를 포함한다.
실시예들은 첨부된 도면들과 관련하여 이하의 비제한적 설명으로 설명될 것이다:
도 1a 및 도 1b는 프레임들의 시퀀스라고 불리는 형식으로 통신할 수 있는 2개의 작업들의 예를 도시한다;
도 2a 및 도 2b는 도 1b의 작업들로부터 시퀀싱 계획을 구성할 수 있는 2개의 가능성들을 나타낸다;
도 3a 및 도 3b는 3개의 통신 작업들의 예를 나타내는 프레임들의 시퀀스들의 그룹, 및 통신 지연을 감소시키거나 심지어 제거하는 방법을 사용하여 구성된 대응하는 시퀀싱 계획을 도시한다;
도 4a 및 도 4b는 2개의 통신 작업들의 예를 나타내는 한 쌍의 프레임들의 시퀀스들, 및 통신 지연을 감소시키기 위한 대안적인 방법을 사용하여 구성된 대응하는 시퀀싱 계획을 도시한다;
도 5a 및 도 5b는 2개의 통신 작업들의 예를 나타내는 한 쌍의 프레임들의 시퀀스들, 및 통신 지연을 감소 또는 심지어 제거하는 방법을 사용하여 2개의 실행 유닛들에 대하여 각각 구성된 2개의 대응하는 시퀀싱 계획들을 도시한다.
도 1a는 데이터를 생성하는 작업(Tp) 및 데이터를 소비하는 작업(Tc)의 예를 도시하며, 이러한 작업들은 실시간 시스템 상에서 병렬로 실행되어야 한다. 각 작업은 Krono-Safe의 특허 출원 US2017-0004011에 제안된 바와 같이 공식화될 수 있다. 따라서, 각 작업은 반복적인 프레임들의 시퀀스로 분해되며, 각 프레임은 기본 프로세스(Tp(m) 및 Tc(n)) (여기서 m 및 n은 프로세스들의 시퀀스 번호들임)와 연관되어 있다. 프레임의 경계들은 프로세스의 시간 제약들을 형성하는 동기화 지점들 또는 시기들(Dp 및 Dc)에 의해 규정된다. 각 프로세스는 제 1 동기화 지점 또는 시작 시기부터 시작할 수 있으며, 제 2 동기화 지점 또는 마감기한에 늦어도 종료되어야 한다.
동기화 지점들은 실행 동안 실시간 시스템을 클록하는 시간 베이스(Hp 및 Hc)에 따라 선택된다. 이들은 종종 주기적이거나 주기적인 시퀀스들로 그룹화된다.
또한, 각 프로세스는 이하에서 B로 기록된 실행 요구를 가지며, 이는 대응하는 프레임의 길이보다 짧은 시간 간격, 예를 들어 Worst-Case Execution Time(또는 WCET)에 의해 공식화될 수 있다. 실행 요구는 정적 시퀀싱 계획의 후반 구성 단계에서 구현된 제약들에 따라 프레임, 단일 피스(piece) 또는 여러 비인접 세그먼트들에서 어떤 방식으로든 사용될 수 있다.
작업간 통신을 설정하기 위해 작업(Tp)의 개별 프로세스들은 작업(Tc)의 프로세스에 대한 데이터를 생성하도록 설계될 수 있다. 여기서 프로세스(Tp(m))은 프로세스(Tc(n))에 대한 데이터를 생성한다. 예를 들어, 데이터는 공유 메모리를 통해 교환된다. 따라서, 프로세스(Tp(m))의 종료는 일반적으로 데이터를 공유 메모리에 기록하도록 설계되고, 프로세스(Tc(n))의 시작은 공유 메모리로부터 데이터를 판독하도록 설계된다.
도 1a의 예에서, 프로세스(Tc(n))의 시작 시기(Dc(n))는 프로세스(Tp(m))의 마감기한(Dp(m+1)) 이후이다. 이는 프로세스(Tc(n))이 프로세스(Tp(m))에 의해 생성된 데이터를 항상 소비할 수 있지만 지연이 Dc(n)-Dp(m+1)보다 큼을 의미한다.
도 1b의 예에서, 프로세스(Tc(n))의 시작 시기(Dc(n))는 프로세스(Tp(m))의 마감기한(Dp(m+1)) 이전이다. 이는 프로세스(Tc(n))이 프로세스(Tp(m))에 의해 생성된 데이터를 소비할 수 있다는 것을 모든 경우에 보장할 수는 없다는 것을 의미한다. 또한, 프로세스(Tc(n+1))의 시작 시기(Dc(n+1))도 마감기한(Dp(m+1)) 이전이다. 이 경우, 데이터를 안정적으로 소비할 수 있는 제 1 프로세스는 Tc(n+2)이며 지연은 Dc(n+2)-Dp(m+1)보다 크다.
도 2a는 도 1b에 도시된 바와 같이 작업들(Tp 및 Tc)의 프레임들의 시퀀스들로부터 개발 툴에 의해 자동으로 생성될 수 있는 정적 시퀀싱 계획 세그먼트를 도시한다.
이러한 툴은 모든 작업들의 동기화 지점들을 시간 스케일(S)로 투영하여 연속적인 시간 슬롯들의 시퀀스를 생성하도록 설계될 수 있다. 실시간 시스템이 여러 프로세서 코어들 또는 실행 유닛들을 포함하는 경우, 툴은 각 실행 유닛에 대해 별도의 동기화 지점 투영을 생성할 것이다. 가능한 경우 시간 제약들이 충족되도록 툴은 프로세스 요구들을 분배하기 위해 이러한 슬롯들을 순차적으로 처리하며, 경우에 따라 툴은 해결책을 찾지 못할 수 있으며, 이는 개발자들이 예를 들어 병렬 작업들의 수를 줄이거나 제약들을 완화한 후 새로운 반복을 수행해야 함을 의미한다.
보다 구체적으로, 관찰된 각 시간 슬롯에 대해 툴은 슬롯에서 실행할 수 있는 프로세스들, 즉 관찰된 시간 슬롯에서 시작하거나 계속할 수 있는 각 프로세스를 나열한다. 관찰된 시간 슬롯에서 "계속"할 수 있는 프로세스는 실제로 이전 시간 슬롯에서 시작된 프로세스의 나머지이다. 실제로, 한 프레임은 여러 슬롯들과 중첩될 수 있으며, 이 경우 해당 프로세스의 실행 요구는 중첩된 슬롯들에 걸쳐서 단편화(fragment)될 수 있다. 실시 시간시 단편화는 운영 체제 선점에 의해 해당 프로세스의 일시중단들 및 재개들을 발생시키며, 각 일시중단 및 재개는 프로세스 실행 컨텍스트를 저장하고 복원하기 위해 고정된 오버헤드를 발생시킨다. 단편화가 정적으로 달성되기 때문에, 고정된 오버헤드 마진이 결정될 수 있으며, 이는 시간 제약들의 준수를 점검할 때 실행 요구에 추가될 수 있다.
적격 프로세스들의 경우, 툴은 실행 요구들은 슬롯 내에서 주어진 순서대로, 바람직하게는 마감기한들을 늘리는 순서로 분배한다. 동기화 지점들이 주기적이거나 조화적일 때 규칙적으로 발생하는 경우인, 마감기한들이 동일한 경우, 실행 요구들은 임의의 순서로, 예를 들어, 프로세스 식별자들의 알파벳 순서로 분배될 수 있다.
도 2a에서 슬롯([Dp(m), Dc(n)])에서 유일하게 적격인 프로세스는 Tp(m)이다. 이러한 슬롯은 프로세스(Tp(m))의 요구의 제 1 부분(Bp1(m))에 의해 채워진다. 다음 슬롯([Dc(n), Dc(n+1)])에서 프로세스들(Tc(n) 및 Tp(m))이 적격이다. 마감기한들의 순서는 프로세스(Tc(n))의 요구(Bc(n))이 먼저 배치되고, 이어서 프로세스(Tp(m))의 요구의 나머지(Bp2(m))이 배치됨을 의미한다.
종래에 이용가능한 모든 파라미터들 및 제약들을 이용하여 획득될 수 있는 이러한 시퀀싱 계획은 프로세스(Tp(m))에 의해 생성된 데이터가 프로세스(Tc(n))에 의해 소비될 수 없다는 것을 보여주며, 이는 소비 프로세스들에 대하여 도 1a 및 도 1b에 도시된 선택들을 초래했다.
대조적으로, 도 2b는, 프로세스(Tc(n))이 지연없이 프로세스(Tp(m))에 의해 생성된 데이터를 소비할 수 있는 도 1b의 작업들과 호환되는 시퀀싱 계획을 도시한다. 이러한 예에서, 도시된 바와 같이, 나머지(Bp2(m))을 요구(Bc(n)) 앞에 배치하는 것으로 충분하다.
(지금까지 설명된 예들은 명확성을 위해 개발된 사례 연구들이다. 주어진 방법에 의해 획득된 결과가 원하는 결과와 비교되는 도 2a 및 도 2b의 경우들은 사소한 것처럼 보일 수 있는 해결책을 초래한다. 그러나, 각각 많은 프로세싱 및 통신 상호종속성들을 가질 수 있는 많은 병렬 작업들에 대해 시퀀싱 계획이 생성되는 실제 상황에서 해결책이 일반적이고 자동화된 방식으로 작동하도록 의도된다는 점에서 해결책은 완화되어야 한다.)
개발자에 의해 선택된 프로세스들 사이에 C로 지정된 순서 제약들을 도입함으로써, 도 2b에 도시된 유형의 제로 지연 시퀀싱 계획들을 향한 방법이 제안된다. 따라서, 프레임(시작 시기, 마감기한, 및 실행 요구)에 의해 공식화된 프로세스는 또 다른 프로세스를 참조하는 순서 제약에 의해 특징지워질 수 있다.
상기 방법이 실제로 유용하도록, 이러한 차수 제약에 의해 링크된 2개의 프로세스들의 프레임들은 중첩을 가지며, 즉 2개의 링크된 프로세스들이 동시에 실행가능한 공통 시간 간격이 존재한다. 결과적으로, 2개의 링크된 프로세스들은 2개의 별개의 작업들(예를 들어, 도 1b의 프로세스들(Tp(m) 및 Tc(n) 또는 Tc(n+1))로부터 취해진다. 그렇지 않으면, 순서 제약은 시간 제약들에 의해 체계적으로 충족될 것이고, 중복될 것이다(예를 들어, 도 1a의 경우).
이렇게 형성된 쌍의 두 프로세스들은 상호 제약들, 한 프로세스에 대한 우선 제약 및 다른 하나의 프로세스에 대한 후행 제약으로 특징지워진다. 우선 제약은 참조된 프로세스가 시작되기 전에 해당 프로세스를 완료해야 하는 반면, 후행 제약은 참조된 프로세스의 종료 후에 해당 프로세스를 시작해야 한다. 일 실시예에 따르면, 동일한 프로세스는 여러 순서 제약들을 받을 수 있으며, 이는 프로세스들 간의 종속성들의 체인들, 일반적으로 종속성 트리를 구축할 수 있게 한다.
프로세스 쌍의 후행 및 우선 제약들은 상호적이며, 따라서 시퀀싱 계획을 세우기 위해 이러한 상호 제약들 중 하나만 이용할 수 있다. 이하의 설명에서, 후행 제약만이 이용된다. 결과적으로, 링크된 프로세스들의 각 쌍에서, 프로세스들 중 하나만이 후행 제약을 가지며, 다른 프로세스는 제약을 갖지 않는 것으로 간주될 수 있다. (동등한 대안은 우선 제약만 이용하는 것이다.)
그런 다음 개발 툴은 이러한 새로운 제약들을 고려하여 모든 작업들을 통합하는 정적 시퀀싱 계획을 수립하도록 설계되었다. 보다 구체적으로, 툴은 프레임들의 시퀀스들 및 후행 제약들의 세트에 의해 규정된 병렬 작업들 그룹에 대해 이하의 단계들을 구현할 수 있다.
1. 시간 슬롯들의 시퀀스를 획득하기 위해 작업들의 동기화 지점들에 대응하는 시기들이 동일한 시간 스케일(S) 상으로 투영된다. 시간 슬롯들의 시퀀스는 시퀀싱 계획의 골격을 형성한다.
2. 시간 슬롯들은 순차적으로 파싱되고, 현 시간 슬롯이 관찰된다.
3. 현 시간 슬롯에서 적격인 프로세스들의 목록, 즉 이하의 두 가지 기준들을 충족하는 프로세스들의 세트가 식별된다:
3.1. 프로세스는 실행가능하며, 즉, 현 시간 슬롯은 프로세스의 시작 및 종료 시기들 사이에 포함되며;
3.2. 프로세스가 후행 제약(C)을 갖는 경우, 이러한 제약에 의해 참조되는 프로세스 또한 실행가능하며(예를 들어, 도 1, Tc(n)이 Tp(m)을 참조한다고 가정할 때, 간격([Dc(n), Dc(n+1)]), 또는 참조된 프로세스의 마감기한이 이전 시간 슬롯 내에 있다 (도 1a).
이러한 기준은 현 시간 슬롯에서 사용할 수 없는 데이터를 소비하는 임의의 프로세스를 제거한다. 프로세스들 간의 종속성 체인들이 구현되는 실시예에서, 이러한 기준은 트리 내의 모든 프로세스들이 실행가능한지 결정하기 위해 종속성 트리를 통한 실행을 포함할 수 있다. 그런 다음, 트리 내의 프로세스들 중 적어도 하나가 실행가능하지 않은 경우 전체 트리가 적격한 프로세스들로부터 제거된다.
4. 적격 프로세스들은 마감기한들의 오름차순으로 정렬되어, 정리된 목록에 배치된다. 이러한 목록은 해당 실행 요구들이 시퀀싱 계획의 현 시간 슬롯에 배치되는 순서를 결정하기 위한 시작 지점을 제공한다.
이러한 목록은 순서 제약에 의해 링크된 프로세스들의 쌍들을 포함할 가능성이 높으며, 각 쌍의 프로세스들이 올바른 순서(생산자-소비자)로 배치된다고 보장되지는 않는다. 이하의 단계들은 목록을 재정렬하여 각 소비자 프로세스가 그의 각 생산자 프로세스 뒤에 배치된다.
5. 정리된 목록이 순차적으로 파싱되고, 목록의 현 프로세스가 관찰된다.
5.1. 현 프로세스가 후행 제약을 갖지 않는 경우, 이러한 프로세스에 해당하는 실행 요구가 현 시간 슬롯 내에 배치된다. 이러한 실행 요구는 이전 슬롯의 잔여물일 수 있다. 잔여물은 0일 수 있으며, 이는 실행 요구가 이전 슬롯 네에 완전히 배치되었음을 의미한다. 실행 요구가 현 시간 슬롯 내에 완전히 배치될 수 없는 경우, 현 시간 슬롯은 실행 요구의 제 1 부분으로 채워지고 나머지 부분은 다음 슬롯을 위해 저장된다. 이러한 프로세스는 단계 5부터 반복된다.
이러한 단계에서 일부 상황들에서는 현 시간 슬롯의 끝이 현 프로세스의 마감기한일 수 있으며, 슬롯은 실행 요구를 포함할 수 없을 수 있다. 규정된 바와 같은 작업들은 고려 중인 실시간 시스템 상에서 병렬로 실행될 수 없으므로 개발자는 작업들을 다시 설계해야 할 수 있다.
슬롯의 끝에 가능한 많은 공간을 남기기 위해 바람직하게는 실행 요구들은 슬롯의 시작부터 연속적으로 배치된다.
5.2. 현 프로세스가 후행 제약을 갖는 경우:
5.2.1. 참조된 프로세스가 목록에서 현 프로세스 앞에 배치되면, 목록의 순서가 올바른 것이다. 현 프로세스의 실행 요구는 단계 5.1에서와 같이 배치되고, 프로세스는 단계 5부터 반복된다.
상황에 따라 두 관련된 프로세스들은 목록 내의 또 다른 프로세스에 의해 분리될 수 있다. 이러한 특정한 경우, 통신 지연은 0이 아닐 것이나, 두 프로세스들이 서로 상이한 슬롯들에서 실행가능한 경우보다 훨씬 낮을 것이다.
5.2.2. 참조된 프로세스가 목록 내에서 현 프로세스 이후에 배치되는 경우, 목록은 현 프로세스 전에, 바람직하게는 지연이 없는 통신을 달성하기 직전에 참조된 프로세스를 이동하여 수정된다. 방금 이동된 프로세스를 포함하는 목록 내의 동일한 위치로부터 재개하여 단계 5부터 절차가 반복된다.
종속성들의 체인의 경우, 이동된 프로세스는 또한 후행 제약을 가질 수 있으며, 이러한 경우 단계 5.2의 반복시 목록의 새로운 수정이 발생할 수 있다.
6. 상기 방법은 다음 시간 슬롯에 대해 단계 2부터 반복된다.
상기 방법은 동기화 지점들의 구성에 의해 반드시 지켜지는 중복 순서 제약들을 제거하기 위한 초기 단계를 포함할 수 있다. 이러한 제약들은 항상 중첩되지 않는 프레임들이 있는 프로세스들에서 발생한다.
상기 방법은 무한한 프레임들의 시퀀스에 적용가능하다. 물론, 실제적인 경우에, 각 작업은 유한한 프로세스들의 시퀀스, 특히 반복 시퀀스에 의해 규정된다. 시퀀싱 계획에서 여러 작업들을 결합하면, 그의 기간은 개별 작업들을 구성하는 반복 시퀀스들의 기간들의 최소 공배수인 자연스럽게 반복되는 시퀀싱 계획이 생성되나, 이는 또한 임의 길이의 반복적인 시퀀싱 계획을 생성할 수도 있다. 어느 경우에나, 시퀀싱 계획의 반복이 검출될 때 방법의 반복들을 남길 수 있다.
이렇게 개발된 시퀀싱 계획은 실시간 멀티태스킹 시스템이 작업들의 실행을 제한하도록 구성하는 데 사용된다. 보다 구체적으로, 실행 유닛은 시퀀싱 계획을 무한 루프로 적용하도록 구성된다. 시스템의 시간 베이스는 시간 슬롯들을 클록하는 동기화 지점들을 생성하도록 설정된다. 각 슬롯에서, 실행 유닛은 슬롯 내에서의 실행 요구들의 배치에 따라 프로세스를 순차적으로 시작(또는 재개)한다. 워치독은 해당 실행 요구들에 따라 프로세스들의 실행 시간들의 적합성을 제어한다.
도 3a는 비교적 복잡한 예를 사용하여 상기 방법의 구현을 설명하기 위해 사용될 것이다. 이러한 예에서, 작업(Tp)는 2개의 다른 작업들(Tc1 및 Tc2)에 의해 소비되는 데이터를 생성한다. 데이터는 시작 시기(Dp(m)) 및 마감기한(Dp(m+1))을 갖는 프레임과 연관된 프로세스(Tp(m))에 의해 생성된다. 데이터는 2개의 작업들(Tc1 및 Tc2)의 2개의 각 프로세스들(Tc1(n), Tc2(p))에 의해 소비되며, 이는 후행 제약들(C1 및 C2)에 의해 공식화된다. 또한, 프로세스(Tc1(n))은 프로세스(Tc2(p))에 의해 생성된 데이터를 소비하며, 이는 후행 제약(C3)에 의해 공식화된다. 프로세스들(Tc1(n) 및 Tc2(p))는 길이가 동일하고 프로세스(Tp(m))과 동일한 마감기한(Dc1(n+1) 및 Dc2(p+1))을 갖는 2개의 프레임들과 연관된다. 프로세스들(Tc1(n) 및 Tc2(p))의 시작 시기들(Dc1(n) 및 Dc2(p))는 프로세스(Tp(m))의 시작 시기와 동일하며 더 이르다.
도 3b는 상기 방법 단계들의 적용으로 인한 시퀀싱 계획을 도시한다.
단계 1에서 상이한 작업들의 시기들이 스케일(S) 상에 투영된다. 여러 동일한 시기들 중에서 제 1 시기만이 표시된다.
단계 2의 제 1 반복에서, 슬롯([Dc1(n), Dp(m)])이 관찰된다.
단계 3에서는 적격인 프로세스가 선택되지 않는다. 실제로, 프로세스들(Tc1(n) 및 Tc2(p))는 실행가능하지만, 이들은 후행 제약(C1 및 C2)에 의해 프로세스(Tp(m))에 링크되며, 프로세스(Tp(m))는 현 시간 슬롯에서 실행가능하지 않다. 도 3b에 도시된 바와 같이, 슬롯은 비어있다.
슬롯([Dp(m), Dp(m+1)])을 관찰하도록 단계 2가 반복된다.
단계 3에서, 3개의 프로세스들은 기준 3.1에 따라 실행가능하다. 또한 이들은 실행불가능한 프로세스를 언급하는 후행 제약이 없으므로 기준 3.2에 따라 적격이다.
단계 4에서 프로세스들은 목록 내에 배치되며, 일반적으로 마감기한들의 오름차순으로 정리된다. 마감기한들이 동일하므로 프로세스들은 임의의 순서, 예를 들어, 식별자들의 알파벳 순서로 정리된다. 그러면 목록은 {Tc1(n), Tc2(p), Tp(m)}일 것이다. 이러한 순서는 올바르지 않으며 다음 단계들에서 정정될 것이다.
단계 5에서, 목록 내의 제 1 프로세스인 Tc1(n)이 고려된다. 이러한 프로세스는 "Tp(m) 이후" 후행 제약(C1)을 갖기 때문에, 단계 5.2가 실행된다. 테스트 5.2.1이 실패하고, 단계 5.2.2가 실행된다. 결과적으로, 프로세스(Tp(m))은 프로세스(Tc1(n)) 이전으로 이동되어 목록({Tp(m), Tc1(n), Tc2(p)})를 제공한다.
단계 5는 프로세스(Tp(m))을 포함하는 목록 내에서 동일한 위치를 관찰하기 위해 재개된다. 프로세스(Tp(m))는 후행 제약을 갖지 않으므로 단계 5.1의 테스트가 통과된다. 이러한 프로세스의 실행 요구(Bp(m))은 도 3b에 도시된 바와 같이 현 시간 슬롯의 시작부분에 완전히 배치될 수 있다.
단계 5는 목록 내 다음 프로세스(Tc1(n))를 고려하도록 재개된다. 이러한 프로세스는 아직 고려되지 않은 프로세스인 "Tc2(p) 이후"인 후행 제약(C2)를 갖는다. 프로세스(Tc2(p))는 단계 5.2.2에서 프로세스(Tc1(n)) 이전으로 이동되어 목록({Tp(m), Tc2(p), Tc1(n)})을 생성한다.
이러한 수정된 목록에서 프로세스(Tc2(p))를 고려하기 위해 단계 5가 반복된다. 이러한 프로세스는 단계 5.2.1의 테스트를 통과하고, 실행 요구(Bc2(p))는 도 3b에 도시된 바와 같이 현 시간 슬롯 내에 완전히 배치될 수 있다.
프로세스(Tc1(n))에 대해 마지막으로 단계 5가 반복된다. 이번에는 프로세스가 단계 5.2.1의 테스트를 통과하고, 실행 요구(Bc1(n))는 도 3b에 도시된 바와 같이 현 시간 슬롯 내에 완전히 배치될 수 있다.
프로세스(Tc(n))이 프로세스(Tp(m))에 의해 생성된 데이터를 소비하도록 제한되어 있다고 가정하면, 도 1b의 예에 방법을 적용하면, 도 2b의 제로-지연 시퀀싱 계획이 달성된다.
도 4a 및 도 4b는 순서 제약들을 고려한 시퀀싱 계획을 제공할 수 있는 대안적인 기술을 도시한다.
도 4a에서, 생산자 프로세스(Tp(m)) 및 소비자 프로세스(Tc(n))은 도 3a의 처음 두 작업들과 동일한 조건들에서 고려된다. 이러한 대안에 따르면, 두 프로세스들 사이에 순서 제약과 연관된 중간 동기화 지점(D')를 배치하는 것이 추구된다. 이러한 지점(D')은 생산자 프로세스의 마감기한(Dp(m+1))과 소비자 프로세스의 시작 기한(Dc(n))를 대체하기 위한 것이다. 도시된 바와 같이, 이러한 동기화 지점은 Dp(m)+Bp(m)로부터 Dc(n+1)-Bc(n)까지의 시기 범위(D'poss) 내에 임의로 배치될 수 있다.
도 4b에서, 동기화 지점들은 시간 스케일(S) 상으로 투영될 수 있지만, 소비자 프로세스의 시작 시기(Dc(n))와 생산자 프로세스의 마감기한(Dp(m+1))은 동일한 중간 지점(D')로 이동된다. 결과 슬롯들은 순서 제약들을 고려하지 않고 일반적인 방식으로 순차적으로 처리될 수 있으며, 이는 도 4b에 도시된 시퀀싱 계획을 제공할 것이다. 지점(D')의 위치에서 그의 변동 범위의 중심을 향하여 취해진 예로부터 프로세스들(Tp(m) 및 Tc(n)) 사이의 지연은 낮지만 0이 아님을 알 수 있다.
이러한 시퀀싱 계획을 실행하기 위해, 실시간 시스템에는 중간 동기화 지점들(D')을 구체화하기 위한 추가 시간 베이스가 제공될 수 있으며, 이는 개발 툴 또는 개발자에 의해 여러 개별 값들 중에서 정적으로 선택될 수 있다. 그러나 이러한 절차는 병렬 작업들을 스케줄링할 가능성들을 크게 줄일 수 있다. 예를 들어, 지점(D')를 그의 범위의 시작부분에 배치하면 지연이 0이 되는 경향이 있지만 실행 요구(Bp(m))는 더 이상 배치를 위한 여백이 없다.
실제로, 지점(D')는 2 단계들로 일시적으로 사용될 수 있다. 제 1 단계에서 스케일(S) 상에 동기화 지점들을 투영하기 위해, 지점(D')는 그의 변동 범위의 끝에 배치된다. 이는 실행 요구 분배 단계 동안 실행 요구(Bp(m))을 배치하는 가장 큰 가능한 자유를 남긴다. 그의 슬롯([Dp(m), D']) 내에 실행 요구(Bp(m))을 배치한 후, 지점(D')가 스케일로부터 제거되어 슬롯들([Dp(m), D'] 및 [D', Dc(n+1)]]가 추가 작업들에 대해 병합된다. 이는 실행 요구(Bc(n))를 배치하기 위한 자유도를 증가시키고 더 이상 실시간 시스템에서 적용된 시간 베이스의 사용을 요구하지 않는다.
이러한 절차는 위에서 기재된 6-단계 절차와 동일하다. 이러한 대안으로, 지연이 없는 통신들을 획득할 가능성은 더 낮지만 순서 제약들이 없는 경우보다 여전히 낫다.
지금까지 정적 시퀀싱 계획은 단일 실행 유닛 또는 단일-코어 프로세서용으로 구축되었다고 가정했다. 상기 방법은 멀티-코어 프로세서로 확장될 수 있다. 이러한 경우, 시간 스케일(S)에 의해 규정된 시간 슬롯들의 시퀀스는 각 실행 유닛마다 복제되고, 각 실행에 유닛에 대한 시퀀싱 계획을 구성하기 위해 모든 작업들의 실행 요구들을 복수의 시퀀스들로 분배하도록 시도가 이루어진다. 결과적인 슬롯들의 시퀀스들은 각 시간 베이스들 또는 실행 유닛들의 클록들과 정렬된다. 명확성을 위해, 도면들에서 클록들은 동일하다고 가정한다. 실제로, 클록들은 서로에 대해 이동(drift)될 수 있고, 클록들 간의 결과적인 오프셋은 후술되는 동기화 시간(tsync)에 의해 고려될 수 있다.
실제로 각 작업은 동일한 실행 유닛으로 정적으로 할당된다. 따라서 2개의 상호의존적인 작업들이 동일한 실행 유닛으로 할당되면, 위에 기재된 교시는 그대로 적용된다.
그러나 상호의존적인 작업들은 여러 상이한 실행 유닛들로 할당될 수 있다. 이러한 경우 방법은 다음과 같이 완료된다.
"현 시간 슬롯" 내에 실행 요구를 배치하는 것에 대한 임의의 언급은 작업에 할당된 실행 유닛과 연관된 시퀀스의 슬롯을 지칭한다. 다시 말해서, 스케일(S) 상의 동일한 슬롯에 대응하는 모든 슬롯들은 동시에 "현재"이며, 각 실행 유닛마다 하나의 현 시간 슬롯이다.
단계 3에서 설정된 프로세스 목록은 할당된 실행 유닛들에 관계없이 모든 프로세스들을 포함한다.
위의 단계 5.2.1는 다음과 같이 재작성된다(대괄호들 []의 부분이 원래 단계로부터 추가되었다):
5.2.1 참조된 프로세스가 목록의 현 프로세스보다 우선하면, 목록의 순서는 올바르다.
[참조된 프로세스가 상이한 실행 유닛에 할당되면, 패딩 간격(padding interval)(tpad)은 현 시간 슬롯 내에 배치된다. 이러한 패딩 간격은 전술된 동기화 시간 (tsync)만큼 증가된 다른 실행 유닛과 연관된 현 시간 슬롯 내에 배치된 참조된 프로세스의 실행 요구 또는 그의 잔여물에 대응한다. 동기화 시간은 실행 유닛들 간의 통신 및 실행 유닛들의 클록들 간의 오프셋에 필요한 시간을 고려한다.]
그런 다음 현 프로세스의 실행 요구가 잔여물과 함께 슬롯 내에 배치되고 절차가 단계 5부터 반복된다.
도 5a 및 도 5b는 이렇게 완성된 방법 단계에 대한 동기(motivation)를 예시적으로 도시한다.
도 5a는 프로세스(Tp(m))이 프로세스(Tc(n))에 의해 소비된 데이터를 생성하는 도 1b와 유사하다. 프로세스(Tc(n))의 시작 시기(Dc(n))이 프로세스(Tp(m))의 시작 시기(Dp(m))보다 크다.
도 5b는 작업들(Tp 및 Tc)와 각각 연관된 2개의 결과적인 시퀀싱 계획들(Sp 및 Sc) 및 2개의 상이한 실행 유닛들을 도시한다.
계획(Sp)에서, 프로세스(Tp(m))의 실행 요구의 제 1 부분(Bp1(m))은 슬롯([Dp(m), Dc(n)]) 내에 배치되고, 잔여물(Bp2(m))은 다음 슬롯[Dc(n), Dc(n+1)]의 시작부분에 배치된다.
계획(Sc)에서, 슬롯([Dc(n), Dc(n+1)])은 계획(Sp) 내에 배치된 바와 같은 잔여물(Bp2(m))과 동일한 시간 간격을 수신한 후, 동기화 시간 간격(tsync)를 수신한다. 이러한 간격들의 합은 패딩 간격(tpad)을 형성한다. 실행 요구(Bc(n))은 이러한 패딩 간격(tpad) 이후에 최종적으로 배치된다.
이러한 패딩 간격이 없으면 실행 요구(Bp(n))은 다른 실행 유닛 상의 프로세스(Tp(m))의 종료 전에 슬롯 내에 너무 일찍 배치될 수 있는데, 이는 단일 계획으로 단일 실행 유닛을 사용할 때 발생하지 않는 상황이다.
단계 5.1는 다음과 같이 재작성된다:
5.1 현 프로세스가 후행 제약을 갖지 않는 경우 이러한 프로세스에 해당하는 실행 요구가 현 시간 슬롯 내에 배치된다. [현 시간 슬롯이 패딩 간격(tpad)을 포함하면, 이는 실행 요구를 배치하는 데 사용될 수 있다.] 실행 요구는 이전 슬롯으로부터의 잔여물일 수 있다. 실행 요구가 현 시간 슬롯 내에 완전히 배치될 수 없는 경우 현 시간 슬롯은 실행 요구의 제 1 부분으로 채워지고 잔여물은 다음 슬롯을 위해 저장된다.
따라서 이러한 단계는 단계 5.2.1의 반복들에 의해 삽입된 패딩 간격들을 이용한다. 필요한 경우, 패딩 간격을 채우고 현 시간 슬롯의 끝에 남은 공간을 채우기 위해 실행 요구가 분해될 수 있다.

Claims (7)

  1. 실시간 시스템 상에서 실행되는 복수의 작업들(Tp 및 Tc)에 대한 시퀀싱 계획을 오프라인으로 구성하는 방법으로서, 상기 작업들을 정형화된 형태로 기술한 것을 기반으로 작동하는 개발 툴에 의해 실행되는 다음의 단계들:
    ㆍ 각 작업(Tp 및 Tc)을 프레임들의 시퀀스로 분해하는 단계로서, 각 프레임은 실행 요구(Bp(m))를 갖는 기본 프로세스(Tp(m))와 연관되고, 상기 프로세스가 시작될 수 있는 시작 시기(Dp(m)) 및 상기 프로세스가 완료되어야 하는 종료 시기 또는 마감기한(Dp(m+1))을 규정하는, 상기 분해하는 단계;
    ㆍ 각각의 순서 제약들(C)을 프로세스 쌍들(Tp(m) 및 Tc(n))에 연관시키는 단계;
    ㆍ 상기 실시간 시스템의 실행 유닛과 연관된 시간 스케일(S) 상에 상기 시기들을 투영하여 시간 슬롯들의 시퀀스를 형성하는 단계;
    ㆍ 상기 시퀀스의 시간 슬롯들을 순차적으로 파싱하는 단계;
    ㆍ 현 시간 슬롯 내에서 적격인 프로세스들을 식별하는 단계로서, 프로세스는 다음의 2개의 기준들:
    - 상기 현 시간 슬롯 내에서 실행가능한 조건, 및
    - 순서 제약을 갖는 경우, 상기 순서 제약에 의해 참조되는 프로세스는 상기 현 시간 슬롯 내에서 또한 실행가능하거나 상기 참조된 프로세스의 마감기한이 이전 시간 슬롯 내에 있는 조건
    을 충족하는 경우 적격인, 상기 식별하는 단계;
    ㆍ 목록 내 상기 적격인 프로세스들을 마감기한들을 증가시키는 순서로 정리하는 단계;
    ㆍ 상기 프로세스들을 그들의 순서 제약들에 따라 재정렬하도록 상기 목록을 수정하는 단계;
    ㆍ 상기 시퀀싱 계획을 구성하도록 상기 목록의 순서대로 상기 현 시간 슬롯 내에 상기 적격인 프로세스들의 실행 요구들을 분배하는 단계; 및
    ㆍ 상기 실시간 시스템을 설정할 수 있는 형식으로 상기 시퀀싱 계획을 생성하는 단계;를 포함하는, 방법.
  2. 제 1 항에 있어서,
    초기에, 프레임들이 중첩하지 않는 2개의 프로세스들로 형성된 각 쌍에서 순서 제약들을 제거하는 단계를 포함하는, 방법.
  3. 제 1 항에 있어서,
    상기 목록을 수정하는 단계는,
    ㆍ 상기 프로세스들의 목록을 순차적으로 파싱하는 단계;
    ㆍ 상기 목록 내의 현 프로세스가 상기 목록 내에서 현 프로세스 이후에 배치된 프로세스를 참조하는 순서 제약을 갖는 경우, 참조된 프로세스를 상기 현 프로세스 이전으로 이동하여 상기 목록을 수정하는 단계; 및
    ㆍ 이동된 참조된 프로세스의 위치에서 시작하여 목록 파싱을 재개하는 단계;를 포함하고,
    상기 실행 요구들을 분배하는 단계는,
    ㆍ 상기 현 시간 슬롯 내에 상기 현 프로세스의 실행 요구를 배치하는 단계;를 포함하는, 방법.
  4. 제 3 항에 있어서,
    상기 실행 요구를 배치하는 단계는,
    ㆍ 상기 현 시간 슬롯이 상기 실행 요구를 수용하기에 충분한 공간을 갖는 경우 상기 실행 요구를 상기 현 시간 슬롯 내에 완전히 배치하는 단계; 및
    ㆍ 상기 현 시간 슬롯이 상기 실행 요구를 수용하기에 충분한 공간을 갖지 않는 경우, 상기 현 시간 슬롯을 상기 실행 요구의 제 1 부분으로 채우고 상기 실행 요구의 잔여물의 배치를 후속 슬롯으로 연기하는 단계;를 포함하는, 방법.
  5. 제 3 항에 있어서,
    상기 실시간 시스템은 복수의 실행 유닛들을 포함하며,
    상기 방법은,
    ㆍ 각 실행 유닛에 대한 시퀀싱 계획을 형성하도록 상기 시간 슬롯들의 시퀀스의 복제본(Sp 및 Sc)을 각 실행 유닛과 연관시키는 단계;
    ㆍ 순서 제약들에 의해 참조된 프로세스들이 상이한 실행 유닛들 상에서 실행되도록, 실행 유닛들을 상기 작업들(Tp 및 Tc)에 할당하는 단계;
    ㆍ 상기 실행 요구를 배치하는 단계에서:
    - 상기 현 프로세스와 연관된 계획(Sp)의 현 시간 슬롯 내에 실행 요구(Bp2(m))를 배치하는 단계, 및
    - 2개의 실행 유닛들 간의 데이터 통신 및 상기 2개의 실행 유닛들의 클록들 간의 오프셋에서 발생하는 지연들을 고려하여 동기화 시간(tsync)만큼 증가된 상기 배치된 실행 요구에 대응하는 패딩 간격(padding interval)(tpad)을 상기 참조된 프로세스와 연관된 계획(Sc)의 현 슬롯 내에 배치하는 단계;를 더 포함하는, 방법.
  6. 제 5 항에 있어서,
    상기 현 시간 슬롯 내에 상기 실행 요구를 배치하는 단계는
    상기 실행 요구를 상기 현 시간 슬롯 내에 포함된 임의의 패딩 간격 내에 배치하는 단계를 포함하는, 방법.
  7. 실시간 멀티태스킹 시스템에서 작업들을 실행하는 방법으로서,
    ㆍ 제 1 항에 따른 시퀀싱 계획을 오프라인으로 구성하는 방법을 수행하는 단계;
    ㆍ 상기 시퀀싱 계획을 루프에 적용하도록 실시간 멀티태스킹 시스템 실행 유닛을 구성하는 단계;
    ㆍ 상기 실시간 멀티태스킹 시스템의 시간 베이스를 구성하여 상기 시퀀싱 계획의 상기 시간 슬롯들을 클록킹하는 단계;
    ㆍ 해당 실행 요구들이 상기 슬롯 내에 분배되는 순서대로 각 슬롯의 적격 프로세스들을 순차적으로 실행하는 단계; 및
    ㆍ 프로세스 실행 시간들이 상기 해당 실행 요구들을 준수하는지 확인하는 단계;를 포함하는, 방법.
KR1020207013241A 2017-10-10 2018-10-08 실시간 작업들 간에 저지연 통신을 보장하는 시퀀싱 계획들을 실행하는 방법 KR102602151B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1759487 2017-10-10
FR1759487A FR3072197B1 (fr) 2017-10-10 2017-10-10 Procede d'execution de plans de sequencement assurant une communication a faible latence entre taches temps-reel
PCT/FR2018/052476 WO2019073156A1 (fr) 2017-10-10 2018-10-08 Procédé d'exécution de plans de séquencement assurant une communication à faible latence entre tâches temps-réel

Publications (2)

Publication Number Publication Date
KR20200068702A KR20200068702A (ko) 2020-06-15
KR102602151B1 true KR102602151B1 (ko) 2023-11-15

Family

ID=61521565

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207013241A KR102602151B1 (ko) 2017-10-10 2018-10-08 실시간 작업들 간에 저지연 통신을 보장하는 시퀀싱 계획들을 실행하는 방법

Country Status (7)

Country Link
US (1) US11249802B2 (ko)
EP (1) EP3665571B1 (ko)
JP (1) JP7266590B2 (ko)
KR (1) KR102602151B1 (ko)
CN (1) CN111201513B (ko)
FR (1) FR3072197B1 (ko)
WO (1) WO2019073156A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200101682A (ko) 2019-02-20 2020-08-28 삼성전자주식회사 전자 장치 및 그 제어 방법
KR102384977B1 (ko) * 2020-12-07 2022-04-07 현대오토에버 주식회사 멀티 코어 사이의 실시간성을 유지하는 동기화 시스템 및 방법
DE102021211440A1 (de) 2021-10-11 2023-04-13 Vitesco Technologies GmbH Computerimplementiertes Verfahren und elektronische Steuereinheit für eine deterministische Datenkommunikation in einem partitionierten eingebetteten System

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005100264A (ja) 2003-09-26 2005-04-14 Toshiba Corp スケジューリング方法および情報処理システム
WO2016046931A1 (ja) 2014-09-25 2016-03-31 日本精工株式会社 車載用電子機器の制御装置及び制御方法
JP2017503251A (ja) 2013-12-18 2017-01-26 クロノ−セイフ リアルタイムタスクシーケンス計画を構成し、実行するための方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0855036A (ja) * 1994-08-11 1996-02-27 Hitachi Ltd タスクスケジューリング方法
JPH10171667A (ja) * 1996-12-13 1998-06-26 Chokosoku Network Computer Gijutsu Kenkyusho:Kk タスク管理方法
JP2002099432A (ja) * 2000-09-22 2002-04-05 Sony Corp 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体
DE102004054571B4 (de) * 2004-11-11 2007-01-25 Sysgo Ag Verfahren zur Verteilung von Rechenzeit in einem Rechnersystem
JP4074296B2 (ja) * 2005-03-25 2008-04-09 株式会社東芝 スケジューリング可能性判定方法、リアルタイムシステム及びプログラム
US8316368B2 (en) 2009-02-05 2012-11-20 Honeywell International Inc. Safe partition scheduling on multi-core processors
FR2965947B1 (fr) * 2010-10-11 2019-05-31 Safran Electronics & Defense Sas Procede et dispositif d'ordonnancement de taches semi-periodiques dans un systeme multitache temps reel
FR3004274A1 (fr) * 2013-04-09 2014-10-10 Krono Safe Procede d'execution de taches dans un systeme temps-reel critique
CN106951313B (zh) * 2017-03-02 2021-04-23 北京工业大学 多工作流共享资源协同调度的子期限获取方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005100264A (ja) 2003-09-26 2005-04-14 Toshiba Corp スケジューリング方法および情報処理システム
JP2017503251A (ja) 2013-12-18 2017-01-26 クロノ−セイフ リアルタイムタスクシーケンス計画を構成し、実行するための方法
WO2016046931A1 (ja) 2014-09-25 2016-03-31 日本精工株式会社 車載用電子機器の制御装置及び制御方法

Also Published As

Publication number Publication date
CN111201513A (zh) 2020-05-26
US11249802B2 (en) 2022-02-15
FR3072197A1 (fr) 2019-04-12
WO2019073156A1 (fr) 2019-04-18
KR20200068702A (ko) 2020-06-15
JP7266590B2 (ja) 2023-04-28
CN111201513B (zh) 2023-12-29
JP2020537269A (ja) 2020-12-17
EP3665571B1 (fr) 2023-11-29
US20210224112A1 (en) 2021-07-22
EP3665571A1 (fr) 2020-06-17
FR3072197B1 (fr) 2019-10-11

Similar Documents

Publication Publication Date Title
KR102602151B1 (ko) 실시간 작업들 간에 저지연 통신을 보장하는 시퀀싱 계획들을 실행하는 방법
Fohler Flexibility in statically scheduled hard real-time systems
WO2006094047A2 (en) Execution and real-time implementation of a temporary overrun scheduler
Ernst et al. System level LET: Mastering cause-effect chains in distributed systems
US8543366B2 (en) Simulating real-time software components based on logical execution time
CN110019144A (zh) 一种大数据平台数据运维的方法和系统
Lowinski et al. Splitting tasks for migrating real-time automotive applications to multi-core ecus
Prenzel et al. Real-time dynamic reconfiguration for IEC 61499
Medina et al. Directed acyclic graph scheduling for mixed-criticality systems
CN109783239A (zh) SystemC仿真调度核的多线程优化方法、系统及介质
Kehr et al. Supertask: Maximizing runnable-level parallelism in AUTOSAR applications
Kotthoff et al. Distributed solving through model splitting
CN109766125A (zh) 批次间追平冲突的识别方法及装置
Natale et al. Buffer optimization in multitask implementations of simulink models
McElvany Guaranteeing deadlines in MAFT
JP6528433B2 (ja) 設計支援装置、および設計支援方法
JP5387083B2 (ja) ジョブ管理システムおよび方法
Ekberg et al. State-based mode switching with applications to mixed criticality systems
Socci et al. A timed-automata based middleware for time-critical multicore applications
CN112860248A (zh) 源代码生成方法及装置
Girault et al. Clock-driven automatic distribution of Lustre programs
Wahler et al. Reconciling flexibility and robustness in industrial automation systems, and living happily ever after
Syed et al. Online admission of non-preemptive aperiodic mixed-critical tasks in hierarchic schedules
KR20190118521A (ko) 분산형 소프트웨어 컴포넌트들 간의 통신에서 오류 처리를 위한 방법 및 장치
US20240256334A1 (en) Computer-Implemented Method And An Electronic Control Unit For A Deterministic Data Communication In A Partitioned Embedded System

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