KR102209030B1 - 결정론적 에러를 실시간으로 복구하는 태스크 시간 할당 방법 - Google Patents
결정론적 에러를 실시간으로 복구하는 태스크 시간 할당 방법 Download PDFInfo
- Publication number
- KR102209030B1 KR102209030B1 KR1020157032733A KR20157032733A KR102209030B1 KR 102209030 B1 KR102209030 B1 KR 102209030B1 KR 1020157032733 A KR1020157032733 A KR 1020157032733A KR 20157032733 A KR20157032733 A KR 20157032733A KR 102209030 B1 KR102209030 B1 KR 102209030B1
- Authority
- KR
- South Korea
- Prior art keywords
- time
- processing operation
- processing
- execution
- fragment
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000011084 recovery Methods 0.000 title description 3
- 238000012545 processing Methods 0.000 claims abstract description 356
- 230000003213 activating effect Effects 0.000 claims abstract description 11
- 239000012634 fragment Substances 0.000 claims description 86
- 238000012544 monitoring process Methods 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 claims 1
- 229910052709 silver Inorganic materials 0.000 claims 1
- 239000004332 silver Substances 0.000 claims 1
- 230000009471 action Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 9
- 238000013459 approach Methods 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000013467 fragmentation Methods 0.000 description 4
- 238000006062 fragmentation reaction Methods 0.000 description 4
- 238000012163 sequencing technique Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000005265 energy consumption Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000004513 sizing Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000001994 activation Methods 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000000370 laser capture micro-dissection Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0715—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/0757—Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
- Hardware Redundancy (AREA)
- Retry When Errors Occur (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
본 발명은, 멀티태스킹 컴퓨터에서 실시간 애플리케이션의 태스크를 실행하는 방법으로서, 상기 애플리케이션의 태스크의 처리 동작의 실행과 각각 연관된 시간 창을 한정하는 단계, 시간 창을 가지는 각 처리 동작에, 시간 할당량(QA1, QA2, QA3, QB)과 시간 마진(MA1, MA2, MA3, MB)을 할당하는 단계로서, 상기 시간 할당량과 상기 시간 마진에 의해 상기 처리 동작에 할당된 시간은 상기 처리 동작의 시간 창의 지속시간보다 더 짧은, 상기 할당하는 단계, 상기 애플리케이션의 실행 동안 연관된 시간 창의 시작시 각 처리 동작을 활성화하는 단계, 하나의 처리 동작의 시간 할당량의 만료시, 상기 처리 동작의 실행이 완료되지 않은 경우, 에러 모드를 활성화하는 단계, 및 상기 에러 모드가 하나의 처리 동작에 대해 활성인 경우 상기 시간 할당량과 상기 시간 마진에 의해 상기 처리 동작에 할당된 나머지 시간 동안 상기 처리 동작에 대해 에러 처리 동작을 실행하는 단계를 포함하는 방법에 관한 것이다.
Description
본 발명은, 실행 시간 제약(execution time constraint)이 알려진 동일한 시간 베이스(time base)에 의해 클록(clocked)되는 시간-독립적인 태스크(task) 세트를 포함하는 실시간 멀티태스킹 시스템(real-time multitasking system)에 관한 것이다. 본 발명은 특히 구현시 높은 성능 레벨을 요구하는 실시간 시스템, 및 이 시스템의 각 태스크에 할당된 실행 하드웨어 자원을 사용하는데 높은 보장 레벨(guarantee level)이 요구되는 임계 시스템(critical system)에 관한 것이다.
본 발명은 특히 통신 네트워크에서와 같이 자원의 제어된 할당이 중요한 교통(자동차, 철도, 해상 및 항공), 산업적 자동장치(automata), 에너지, 및 다른 시스템 분야에 사용된 것과 같은 명령 및 제어 시스템에 적용된다.
임계 실시간 시스템에서, 태스크는 프로세서와 같은 실행 자원을 사용하는 시간 할당량(time quota)에 있어 정적인 시간 할당을 수행하기 위하여 정적 스케줄 방법(static scheduling method)에 따라 실행되곤 한다. 이것은 태스크들 사이에 자원의 사용과, 특히 프로세서의 이용에 관해 이 태스크들이 시간-독립적으로 구현되게 한다. 이 단순하고 널리 허용된 방법은 특히 문헌 [3], [4], [7], [8]에서 언급된 태스크들 사이에 통신 문제를 고려하지는 않는다. 그러나, 이 방법은 캐시 메모리를 포함하는 오늘날의 프로세서에서는 구현의 문제를 야기한다. 사실, 이 캐시 메모리의 컨텐츠는 액세스되는 데이터와 태스크의 실행의 전체 이력에 의존한다. 이제, 이 메모리의 상태는 인터리브된 태스크(interleaved task)의 처리 동작(processing operation)의 실행 시간에 영향을 미친다. 이 조건 하에서, 처리 동작의 실행 시간(WCET - 최악의 경우의 실행 시간(Worst Case Execution Time) - 문헌 [5] 참조)의 절대 상한을 보장하는 것이 곤란하다. 이 상한을 계산하는 형식적 방법은 실험 결과에 비해 이 상한을 잠재적으로 상당히 과대 평가하게 한다.
나아가, 특정 실시간 멀티태스킹 시스템에서 태스크들이 서로 간섭하지 않는 것을 보장하는 것이 필요한데, 즉 태스크가 실행될 수 없거나 또는 그 실행이 다른 태스크에 할당된 시간 동안 종료될 수 없는 일이 일어나지 않는 것을 보장하는 것이 필요하다. 태스크들 사이에 이러한 비-간섭에 대한 탐색은 특정 분야에서 캐시 메모리를 비활성화하거나 또는 이 캐시 메모리에서 처리 동작에 할당된 각 시간 창(time window)의 시작시에 전체 컨텐츠를 비워서 이전의 처리 동작의 실행과 독립적인 상태(빈 상태)를 초래할 수 있다. 그러나, 캐시 메모리를 비우는 이러한 동작은 멀티태스킹 시스템의 성능에 상당히 불리한 영향을 미친다. 게다가, 처리 동작은 일부 경우에 여러 시간 창으로 분할될 수 있고, 이것은 처리 동작을 실행하는 동안 여러 번 캐시 메모리를 비울 것을 요구할 수 있다.
이런 여러 이유들 때문에, 실시간 시스템의 설계자는 이러한 시스템을 크게 오버-사이즈(over-size)하도록 강요받는다. 실무적인 관점에서 보면, 이 접근법이 덜 불리한 영향을 미치게 하기 위하여, 프로세서의 시간 할당이 "이론적인" WCET보다 더 짧은 실행 시간 요구조건에 기초하여 수행되면, 특정 에러율(error rate)을 허용할 수 있다. 이 접근법의 주요 단점은 할당된 시간 할당량에 대해 에러율을 진정으로 평가할 수 있는 처리 동작의 실행 시간의 분배 법칙을 특징으로 하는 모델이 전혀 없다는 것이다. 특히, 허용가능한 에러율이 매우 낮아서, 매우 드문 이벤트로부터 초래될 때, 너무 적은 실험 샘플에 기초한 이 접근법에서는 이 시스템이 결정론적 거동(deterministic behavior)을 하는 것을 구현하는 것이 가능하지 않다. 그리하여, 이러한 시스템의 강인성(robustness)를 개선하기 위하여, 하나의 잘 알려진 방법은 실행 시간 할당량에 대한 이러한 에러에 대해 에러-복구 조치를 구현하여, 잔류 에러의 경우를 극히 낮은 수로 감소시키는 것을 포함한다.
오버-사이징에 따른 이러한 중대한 문제를 극복하기 위하여, 비-우선순위의 배경 태스크(문헌 [2], [7], [8] 참조)로 실행되는, 비-실시간이고 비-임계 태스크에 시간을 동적으로 재할당하는 것에 의해 미사용된 시간(평균 실행 시간과 할당된 시간 할당량 사이의 차이)을 사용하는 것이 일반적인 것으로 이해된다. 그러나, 이 해법은 동일한 목적을 충족하지 않고 임계 실시간 태스크에 아무런 기여를 하지 않는다.
동일한 방식으로, 임계 실시간 태스크의 실행 동안 나타나기 쉬운 다른 유형의 에러에 대해, 실행되는 다른 태스크와 어떤 간섭도 없이 이 결정론적 실시간 에러 처리 메커니즘(deterministic real-time error handling mechanism)을 가지는 것이 유리하다. 이것은 태스크 실행 흐름에 어떤 불연속도 없이 에러 복구를 할 수 있게 하고 적절한 시간 제약으로 적절한 액션을 구현하는 것을 보장한다. 이 문제는 어떤 실행 시간 제약도 없이 비동기적 시스템에 알려진 해법을 가지고 있다. 그러나, 이 해법은 어떤 실시간 성능 보장도 제공하지 않고, 물론 동작 오기능의 경우를 포함하여 처리 동작들 사이에 비-간섭을 추구하는 임계 태스크의 상황(context)에는 적응되지 않는다.
따라서, 태스크가 실행되는 멀티태스킹 시스템을 효율적이고 신뢰성 있게 사용하는 것을 보장하면서 동일한 시간 베이스에 의해 클록되는 태스크의 세트를 포함하는 애플리케이션을 생성할 수 있는 것이 바람직하다. 다른 태스크와 어떤 간섭 리스크도 없이 임계 실시간 시스템의 제약에 순응하는(compatible), 결정론적 시간에 수행될 수 있는 에러 처리에 충분한 시간을 할당하는 것이 더 바람직할 수 있다. 열적 규정, 에너지 소비 최소화, 또는 비-임계 태스크의 분배 또는 공유 실행과 같은 상이한 최적화를 위해 미사용된 할당된 시간을 사용하는 것이 더 바람직할 수 있다. 멀티태스킹 시스템에 의해 실행되는 애플리케이션의 태스크에 대해 올바른 처리 순서(sequencing)를 보장하고, 이 순서가 올바르다는 것을 형식적으로 실증할 수 있는 것이 더 바람직할 수 있다.
일부 실시예는, 멀티태스킹 컴퓨터에서 실시간 애플리케이션의 태스크를 실행하는 방법으로서, 각 태스크는 적어도 하나의 처리 동작을 포함하고, 상기 방법은, 상기 애플리케이션의 태스크의 처리 동작의 실행과 각각 연관된 시간 창을 한정하는 단계, 시간 창을 가지는 각 처리 동작에 시간 할당량과 시간 마진(time margin)을 할당하는 단계로서, 상기 시간 할당량과 상기 시간 마진에 의해 상기 처리 동작에 할당된 시간은 상기 처리 동작과 연관된 시간 창의 지속시간(duration)보다 더 짧은, 상기 할당하는 단계, 상기 멀티태스킹 시스템에 의해 상기 애플리케이션을 실행하는 실행 동안 연관된 시간 창의 시작시에 각 처리 동작을 활성화하는 단계, 하나의 처리 동작의 시간 할당량의 만료시 상기 처리 동작의 실행이 완료되지 않은 경우 에러 모드를 활성화하는 단계, 및 상기 에러 모드가 하나의 처리 동작에 대해 활성인 경우, 상기 시간 할당량과 상기 시간 마진에 의해 상기 처리 동작에 할당된 나머지 시간 동안 에러 모드에서 상기 처리 동작에 대해 에러 처리 절차를 실행하는 단계를 포함하는 방법에 관한 것이다.
일 실시예에 따라 상기 방법은, 상기 에러 모드가 하나의 처리 동작에 대해 활성인 경우, 상기 처리 동작에 할당된 시간 마진의 만료를 모니터링하면서 상기 처리 동작에 할당된 시간 할당량의 만료시 완료되지 못한 상기 처리 동작의 실행을 계속하는 단계, 및 상기 처리 동작에 할당된 시간 마진의 만료시, 상기 처리 동작의 실행이 완료되지 못한 경우, 상기 처리 동작의 실행을 종료하고 시간 할당량 오버런 에러 처리 동작(overrun error handling operation)을 실행하는 단계를 포함한다.
일 실시예에 따라 상기 방법은 상기 애플리케이션의 다른 태스크를 처리하는 여러 시간 창에 걸쳐 연장하는 시간 창과 연관된 처리 동작을 단편화(fragmenting)하여, 각 시간 창을 처리 동작 또는 처리 동작 단편과 배타적으로 연관시키는 단계, 각 처리 동작 단편에 시간 할당량을 할당하되, 상기 단편화된 처리 동작의 모든 단편들의 시간 할당량들의 합계가 상기 단편화된 처리 동작의 시간 할당량과 같도록 시간 할당량을 할당하는 단계로서, 상기 단편화된 처리 동작과 연관된 시간 마진은 상기 단편화된 처리 동작의 마지막 단편과 연관된, 상기 할당하는 단계, 및 이 처리 동작 단편이 상기 단편화된 처리 동작의 마지막 단편인지 여부를 나타내는 상태 변수를 각 처리 동작 단편과 연관시키는 단계를 포함하고, 상기 처리 동작 단편과 연관된 상태 변수가 상기 처리 동작 단편이 단편화된 처리 동작의 마지막 단편이 아닌 것을 나타내는 경우 처리 동작 단편의 할당량의 만료시 상기 에러 모드가 활성화되지 않는다.
일 실시예에 따라 간 할당량과 연관된 각 처리 동작의 마진은 상기 처리 동작의 시간 할당량에 곱셈 인수(multiplying factor)를 적용하는 것에 의해 계산되고, 상기 곱셈 인수는 시간 할당량과 연관된 모든 처리 동작에 대해 동일하다.
일 실시예에 따라 상기 곱셈 인수는 상기 애플리케이션의 태스크가 상기 처리 동작의 시간 요구조건, 상기 처리 동작과 연관된 시간 창, 및 상기 컴퓨터의 특징에 따라 스케줄될 수 있도록 결정된다.
일 실시예에 따라 상기 처리 동작은 제1 시간 베이스에 의해 클록되는 프로세서에 의해 실행되고, 상기 처리 동작과 연관된 시간 창은 상기 제1 시간 베이스에 비해 규칙적이지 않은 제2 시간 베이스로 한정되고, 상기 제2 시간 베이스에서 시간 유닛은 상기 제1 시간 베이스에서 최소값을 가지고 있고, 상기 곱셈 인수는 상기 최소값에 따라 한정된다.
일 실시예에 따라 각 처리 동작은 상기 처리 동작을 실행하는 프로세서에 대해 입력/출력을 수행하는지 여부를 나타내는 상태 변수와 연관되고, 하나의 처리 동작이 상기 처리 동작이 어떤 입력/출력도 수행하지 않는 것을 나타내는 상태 변수와 연관된 경우, 상기 처리 동작의 실행은 이전의 처리 동작의 실행이 종료하자마자 상기 처리 동작의 시간 창의 시작을 대기함이 없이 론칭(launched)된다.
일부 실시예는 또한, 여러 태스크를 포함하는 실시간 애플리케이션을 실행하는 멀티태스킹 컴퓨터를 포함하는 실시간 멀티태스킹 시스템으로서, 각 태스크는 적어도 하나의 처리 동작을 포함하고, 상기 시스템은, 상기 애플리케이션의 태스크의 처리 동작 세트의 실행과 각각 연관된 시간 창을 저장하는 동작, 시간 창을 가지는 각 처리 동작에 대해, 시간 할당량과 시간 마진을 저장하는 동작으로서, 상기 시간 할당량과 상기 시간 마진에 의해 상기 처리 동작에 할당된 시간은 상기 처리 동작의 시간 창의 지속시간보다 더 짧은, 상기 저장하는 동작, 상기 애플리케이션의 처리 동작을 실행하고, 하나의 처리 동작의 상기 시간 할당량의 만료시, 상기 처리 동작의 실행이 완료되지 않은 경우 에러 모드를 활성화하는 동작, 및 상기 에러 모드가 하나의 처리 동작에 대해 활성인 경우, 상기 시간 할당량과 상기 시간 마진에 의해 상기 처리 동작에 할당된 나머지 시간 동안 에러 모드에서 상기 처리 동작에 대한 에러 처리 절차를 실행하는 동작을 수행하도록 구성된, 실시간 멀티태스킹 시스템에 관한 것이다.
일 실시예에 따라 상기 시스템은, 상기 에러 모드가 하나의 처리 동작에 대해 활성인 경우, 상기 처리 동작에 할당된 시간 마진의 만료를 모니터링하면서 그 시간 할당량의 만료시 완료되지 못한 상기 처리 동작의 실행을 계속하는 동작, 및 상기 시간 마진의 만료시, 상기 처리 동작의 실행이 완료되지 않은 경우, 상기 처리 동작의 실행을 종료하고 시간 할당량 오버런 에러 처리 동작을 실행하는 동작을 수행하도록 구성된다.
일 실시예에 따라 상기 시스템은 시간 창과 연관된 처리 동작의 일부를 단편화하는 것을 저장하는 동작, 각 처리 동작 단편에 대해 시간 창과 시간 할당량을 저장하는 동작, 상기 처리 동작 단편의 실행을 위해, 각 단편화된 처리 동작의 마지막 단편에 대해, 상기 단편화된 처리 동작과 연관된 상기 시간 마진을, 연관된 시간 마진으로, 저장하는 동작, 및 각 처리 동작 단편에 대해 상기 단편이 단편화된 처리 동작의 마지막 단편인지 여부를 나타내는 상태 변수를 저장하는 동작, 및 상기 애플리케이션의 실행 동안, 상기 처리 동작 단편과 연관된 상태 변수가 상기 처리 동작 단편이 단편화된 처리 동작의 마지막 단편이 아닌 것을 나타내는 경우 처리 동작 단편의 할당량의 만료시 상기 에러 모드를 활성화하지 않는 동작을 수행하도록 구성된다.
일 실시예에 따라 상기 시스템은 곱셈 인수를 상기 처리 동작의 시간 할당량에 적용하는 것에 의해 시간 할당량과 연관된 각 처리 동작의 마진을 결정하도록 구성되고, 상기 곱셈 인수는 시간 할당량과 연관된 모든 처리 동작에 대해 동일하다.
일 실시예에 따라 상기 시스템은 제1 시간 베이스에 의해 클록되는 프로세서를 포함하고, 상기 프로세서는, 상기 처리 동작을 실행하는 동작, 상기 제1 시간 베이스에 비해 규칙적이지 않은 제2 시간 베이스를 수신하는 동작을 수행하고, 상기 시스템은 상기 제2 시간 베이스에서 상기 처리 동작과 연관된 상기 시간 창을 결정하도록 구성되고, 상기 제2 시간 베이스에서 시간 유닛은 상기 제1 시간 베이스에서 최소값을 가지고, 상기 곱셈 인수는 상기 최소값에 따라 한정된다.
일 실시예에 따라 상기 시스템은 각 처리 동작에 대해 상기 처리 동작이 상기 처리 동작을 실행하는 상기 시스템의 프로세서에 대해 입력/출력을 수행하는지 여부를 나타내는 상태 변수를 저장하는 동작, 및 하나의 처리 동작이 상기 처리 동작이 어떤 입력/출력도 수행하지 않는 것을 나타내는 상태 변수와 연관된 경우, 이전의 처리 동작의 실행이 종료하자마자 상기 처리 동작의 시간 창의 시작을 대기함이 없이 상기 처리 동작의 실행을 론칭하는 동작을 수행하도록 구성된다.
본 발명의 실시예의 일부 예는 비-제한적인 첨부 도면을 참조하여 아래에서 설명된다.
도 1은 멀티태스킹 컴퓨터를 개략적으로 도시하는 도면,
도 2a 및 도 2b는 2개의 태스크의 타이밍도,
도 3은 도 2a, 도 2b의 2개의 태스크의 스케줄 플랜(scheduling plan)을 개략적으로 도시하는 타이밍도,
도 4는 일 실시예에 따라 부하 플랜(load plan)을 개략적으로 도시하는 타이밍도
도 5는 다른 실시예에 따라 부하 플랜을 개략적으로 도시하는 타이밍도,
도 6a, 도 6b, 도 7 및 도 8은 여러 실시예에 따라 실시간 컴퓨터의 실시간 코어에 의해 실행되는 단계를 도시하는 도면.
도 1은 멀티태스킹 컴퓨터를 개략적으로 도시하는 도면,
도 2a 및 도 2b는 2개의 태스크의 타이밍도,
도 3은 도 2a, 도 2b의 2개의 태스크의 스케줄 플랜(scheduling plan)을 개략적으로 도시하는 타이밍도,
도 4는 일 실시예에 따라 부하 플랜(load plan)을 개략적으로 도시하는 타이밍도
도 5는 다른 실시예에 따라 부하 플랜을 개략적으로 도시하는 타이밍도,
도 6a, 도 6b, 도 7 및 도 8은 여러 실시예에 따라 실시간 컴퓨터의 실시간 코어에 의해 실행되는 단계를 도시하는 도면.
도 1은 하나 이상의 프로세서(PRC), 클록 회로(CLK), 하나 이상의 비-휘발성 메모리(NVM)(재기록가능 또는 그렇지 않은 메모리), 하나 이상의 휘발성 메모리(VM)(예를 들어, RAM 유형의 랜덤 액세스 메모리), 및 주변 유닛(미도시)을 제어하고 및/또는 이러한 유닛으로부터 신호를 수신하도록 구성된 하나 이상의 인터페이스 회로(PHC)를 포함하는 멀티태스킹 컴퓨터(RTS)를 도시한다. 프로세서(PRC)는 어드레스 및 데이터 버스(SB)를 통해 회로(CLK, NVM, VM 및 PHC)에 연결된다. 클록 회로(CLK)는 또한 주어진 프로그래밍가능한 지속시간이 경과된 경우 인터럽션을 트리거하는 프로세서(PRC)의 인터럽트 입력에 연결된다. 이를 위하여, 프로세서(PRC)는 버스(SB)를 통해 지속시간 값을 전송하고, 회로(CLK)를 활성화할 수 있다.
메모리(NVM)는 멀티태스킹 애플리케이션의 태스크 프로그램, 및 애플리케이션에 관한 데이터를 저장한다. 메모리(VM)는 애플리케이션의 실행에 사용되는 변수 데이터를 저장한다. 메모리(NVM)는 멀티태스킹 애플리케이션이 론칭될 때 실행될 프로그램이 컴퓨터로 전송되는 경우 생략될 수 있는 것으로 이해된다.
프로세서(PRC)는 하나 이상의 코어 또는 처리 유닛을 각각 포함할 수 있는 하나 이상의 마이크로프로세서 또는 마이크로제어기를 포함할 수 있다. 프로세서(PRC)는 또한 ASIC(Application Specific Integrated Circuit) 또는 FPGA(Field-Programmable Gate Array) 유형 중 하나 이상의 회로로 구성되거나 이를 포함할 수 있다. 프로세서(PRC)는 특히 실시간 멀티태스킹 애플리케이션을 실행하는데 필요한 기능, 예를 들어, 태스크 스케줄 플랜을 구현하는 기능, 태스크 실행 상황을 관리하는 기능, 및 상기 처리 동작의 실행 시간을 모니터링하는 하나 이상의 와치독(watchdog)을 관리하는 기능을 포함하는 실시간 코어를 실행한다.
임계 실시간 애플리케이션을 위해, 특히 연산 능력 면에서, 상기 애플리케이션의 모든 태스크의 최악의 경우의 실행 시간 요구조건을 충족하는데 실행 매체(컴퓨터(RTS))가 충분하다는 것을 실증하는 것이 필요할 수 있다. 태스크를 스케줄하는데 사용되는 접근법이 무엇이든 간에, 이 실증은 부하 수식(load equation) 시스템을 형식적으로 검증하는 것에 의해 제공될 수 있다(문헌 [1], [2], [3] 참조). 여기서 제시된 방법은 스케줄 방법 및 검증될 연관된 부하 수식 시스템을 선택하는 것과 독립적이다. 이 방법을 일 예로서 예시하기 위해, 일반적인 표현이 사용된다(예를 들어, 문헌 [3] 참조).
도 2a는 반복적으로 실행되는 3개의 처리 동작(TA1, TA2 및 TA3)으로 분할될 수 있는 순환하는 태스크(A)를 시간 베이스(t)에서 도시하는 타이밍도이다. 처리 동작(TA1)은 최선 시작 시간 t=0과 최후 마감 시간 t=1로 한정된 시간 창([0,1[)에 걸쳐 실행된다. 시간 창([0,1[)은 하나의 시간 유닛의 지속시간을 구비한다. 처리 동작(TA2)은 시간 t=1과 시간 t=5 사이에 4개의 시간 유닛 동안 지속하는 시간 창([1,5[)에 걸쳐 실행된다. 처리 동작(TA3)은 시간 t=5와 시간 t=6 사이에 하나의 시간 유닛 동안 지속하는 시간 창([5,6[)에 걸쳐 실행된다. 각 시간 창([0,1[, [1,5[, [5,6[)에서 처리 동작(TA1, TA2, TA3)의 각 실행 시간 요구조건은 QA1, QA2 및 QA3으로 언급되고, 이 요구조건은 타깃 멀티태스킹 컴퓨터의 용량에 따라 한정된다.
도 2b는 시간 t=0과 시간 t=3 사이에 3개의 시간 유닛 동안 지속하는 시간 창([0,3[)에 걸쳐 반복적으로 실행되는 단 하나의 처리 동작(TB)을 포함하는 순환하는 태스크(B)를 동일한 시간 베이스(t)에서 도시하는 타이밍도이다. 시간 창([0,3[)에서 처리 동작(TB)의 실행 시간 요구조건은 QB로 언급된다.
태스크(A 및 B)의 스케줄 플랜을 형성하기 위해, 태스크의 처리 동작은 각 처리 동작의 요구조건이 충족되도록 각 시간 창에 걸쳐 분배된다. 이것은 여러 개의 더 짧은 시간 창에 걸쳐 특정 처리 동작을 단편화하여, 고려되는 각 시간 창에서, 각 태스크의 시간 제약을 고려하면서 이 시간 창과 연관된 처리 동작 및/또는 처리 동작 단편이 완전히 실행될 수 있게 한다. 다시 말해, 처리 동작은 고려되는 모든 시간 창이 연속적이고 (하나의 창의 종료는 다른 창의 시작에 대응한다) (2개의 창에 공통인 영역이 전혀 없이) 분리(disjoint)되도록 단편화된다. 이것은 애플리케이션의 모든 태스크를 스케줄하기 위하여 충족되어야 하는 처리 동작 단편에 대한 조건을 형성한다.
도 3은 태스크(A 및 B)의 스케줄 플랜을 도시한다. 처리 동작(TA2)은, 처리 동작(TB)을 재활성화하는 시간 창의 시작에 대응하고, 처리 동작(TA2)의 시간 창 동안 발생하는 태스크(B)의 시간 t=3을 고려하도록 2개의 부분(TA21 및 TA22)으로 단편화된다. 동일한 방식으로, 태스크(B)의 처리 동작(TB)은, 처리 동작(TB)의 시간 창 동안 발생하는 태스크(A)의 처리 동작(TA2)의 시간 창([1,5[)의 시작 시간 t=1을 고려하도록 시간 창([0,3[)에 걸쳐 2개의 부분(TB11 및 TB12)으로 단편화된다. 시간 창([3,6[)과 연관된 처리 동작(TB)의 발생은 또한 처리 동작(TB)이 발생하는 시간 창 동안 이 시간이 발생하는 것으로 인해 태스크(A)의 처리 동작(TA3)의 시간 창의 시작 시간 t=5를 고려하도록 2개의 부분(TB21 및 TB22)으로 단편화된다. 처리 동작(TB)의 2개의 발생의 상이한 단편화는 태스크(A 및 B)의 반복 스케줄 플랜을 형성하는 데 필요하다. 함께 취해지는 태스크(A, B)의 반복 시퀀스의 지속시간은 각 태스크의 반복 시퀀스의 지속시간의 최저 공통 배수(lowest common multiple: LCM))와 같다. 도 3의 예에서, 태스크(A)는 6개의 시간 유닛의 지속시간을 가지는 시간 창과 연관되는 반면, 태스크(B)는 3개의 시간 유닛의 지속시간을 가지는 시간 창과 연관된다. 태스크(A, B)의 반복 시퀀스의 지속시간은 태스크(B)의 2개의 발생에 대응하는 6과 3의 LCM, 즉 6개의 시간 유닛과 같다. 이것은 처리 동작(TA1)과 처리 동작 단편(TB11)이 시간 창([0,1[) 동안 실행되어야 하는 이 단편화로부터 초래된다. 처리 동작 단편(TA21 및 TB12)은 시간 창([1,3[) 동안 실행되어야 한다. 처리 동작 단편(TA22 및 TB21)은 시간 창([3,5[) 동안 실행되어야 한다. 처리 동작(TA3)과 처리 동작 단편(TB22)은 시간 창([5,6[) 동안 실행되어야 한다.
나아가, 처리 동작 단편(TA21 및 TA22)의 실행 시간 요구조건은 각각 QA21 및 QA22으로 언급된다. 유사하게, 처리 동작 단편(TB11, TB12, TB21 및 TB22)의 실행 시간 요구조건은 각각 QB11, QB12, QB21 및 QB22으로 언급된다. 도 3에 도시된 각 시간 창에서, 검증될 부하 수식(또는 부등식)은 태스크(A 및 B)가 스케줄될 수 있도록 한정될 수 있다. 이 수식은 동일한 시간 창의 처리 동작들 또는 처리 동작 단편들의 요구조건들의 합계가 시간 창의 시간 유닛의 지속시간보다 더 작은 것을 제시한다. 따라서, 다음 부하 수식 시스템이 도 3으로부터 초래된다:
QA1 + QB11 ≤ 1 (E1)
QA21 + QB12 ≤ 2 (E2)
QA22 + QB21 ≤ 2 (E3)
QA3 + QB22 ≤ 1 (E4)
이 수식 시스템은 문헌([1] 및 [3])에 제시된 것과 같은 특정 스케줄 알고리즘에 대해 필요 충분 조건을 한정한다. 이 수식 시스템은 멀티태스킹 컴퓨터의 사이즈가 올바른 것을 실증하는데 사용된다. RMS(Rate Monotonic Scheduling - 문헌 [1], [2] 참조)스케줄 알고리즘에 대해, 이 시스템은 모든 경우에 충분한 조건을 한정하지 않고, 이 조건은 문헌([1])에 지시된 공식에 따라 정정되어야 하는 것으로 이해된다. 그러나, 이 정정은 제시된 방법을 어떤 방식으로든 변화시키지 않는다. 단편의 요구조건(QA21, QA22, QB11, QB12, QB21, QB22)이 계산된 방식은 스케줄 이론으로 한정되었고 이에 본 발명과 관련이 없다. 보다 상세하게는, 예를 들어 문헌([3])이 참조될 수 있다.
일 실시예에 따라 새로운 부하 수식 시스템이 부등식 부호의 좌측 부분에서 1을 초과하는 곱셈 인수(K)를 도입하는 것에 의해 이전에 한정된 부하 수식 시스템으로부터 유도된다. 도 3의 예에서, 새로운 부하 수식 시스템이 다음 방식으로 시스템((E1) - (E4))로부터 유도된다:
K·(QA1 + QB11) ≤ 1 (E1')
K·(QA21 + QB12) ≤ 2 (E2')
K·(QA22 + QB21) ≤ 2 (E3')
K·(QA3 + QB22) ≤ 1 (E4')
인수(K)의 값에 따라, 이 새로운 수식 시스템은 해법을 가질 수도 있고 가지지 않을 수도 있다. 그리하여, 태스크의 연산 시간 요구조건의 최대 곱셈 인수(Kx)는, (주어진 컴퓨터, 예를 들어, 컴퓨터(RTS)에 의해 실행되는) 실시간 애플리케이션이 스케줄될 수 있도록, 즉 새로운 수식 시스템((E1') - (E4'))이 해법을 가지도록 한정된다.
초기 부하 수식 시스템((E1) - (E4))으로부터, 각 요구조건은 (주어진 시스템에 의해 실행되는) 실시간 애플리케이션이 스케줄될 수 있는 것을 보장하면서 인수(Kx)에 의해 곱셈된 동일한 요구조건으로 교체될 수 있다. 도 3의 예에서, 연장된 요구조건(Kx·QA1 및 Kx·QB11)은 제1 시간 창([0,1[)에 걸쳐 스케줄될 수 있고, 연장된 요구조건(Kx·QA21 및 Kx·QB12)은 제2 시간 창([1,3[)에 걸쳐 스케줄될 수 있고 다른 요구조것도 이와 같은 방식으로 스케줄되는 것이 보장된다.
사용된 예를 넘어서, 요구조건을 인수(Kx)와 곱셈하는 것은 (특히 문헌 [1], [2], [3] 참조) 적용되는 스케줄 방법에 의해 획득된 수식 시스템이 무엇이든 간에 적용될 수 있다. 또한 임계 실시간 애플리케이션에 대해, 애플리케이션이 실행되어야 하는 멀티태스킹 컴퓨터의 요구조건과 성능에 통상적으로 마진이 유지되는 것으로 이해된다. 컴퓨터에서 예를 들어 100%의 연산 시간 자원이 사용되도록 인수(Kx)가 연산 시간 마진으로부터 결정될 수 있다. 예를 들어, 20%의 마진은 5/4와 같은 인수(Kx)의 값에 대응하고, 50%의 마진은 2와 같은 인수(Kx)의 값에 대응한다. 또한 측정가능한 양에 적용되는 형식적 기준을 규정하는 인수(Kx)의 정의와는 달리 마진 개념은 종종 부실하게 형식화되는 것이 주목된다. 연산 시간 요구조건을 인수(Kx)와 곱셈하면 평균 값이 아니라 모든 처리 동작에 대해 계산된 마진을 적어도 항상 가지는 최악의 경우의 보장을 제공한다.
도 3에 제시된 예에서, 인수(Kx)를 한정한 결과 최대 부하는 적어도 하나의 시간 창(여기서 kx·Q = 시간 창의 시간 유닛에서 지속시간이고, Q는 시간 창과 연관된 처리 동작의 요구조건이다)에 걸쳐 도달되지만, 요구조건의 값에 따라 이들 각각에 걸쳐 반드시 그런 것은 아니다.
그 결과, 처리 동작의 실제 요구조건을 (1을 초과하는) 인수(Kx)와 곱셈하면 각 처리 동작(Ti)의 실제 실행 시간 요구조건(Qi)이 (Kx-1)·Qi와 같은 실행 시간 마진(Mi)을 추가하는 것에 의해 연장된 태스크 스케줄 플랜을 획득하게 한다. 태스크 스케줄 플랜은 최대 부하에 도달하지 않는 나머지 시간 창에 대응하는 아이들 시간(idle times)을 더 포함할 수 있다.
태스크 스케줄 플랜을 형성하기 위하여, 실제 실행 시간 요구조건의 값이 알려져야 하고, 처리 동작은 시간 창에 할당되어야 한다. 처리 동작의 실제 요구조건과 이 처리 동작을 시간 창에 할당하는 것을 통해 인수(Kx)의 값을 결정할 수 있다. 선택된 스케줄 방법이 적용될 수 있다. 따라서, 도 3으로부터, 예를 들어 제1 및 제2 시간 창([0,1[ 및 [1,3[)에 걸쳐 최대 부하에 도달하는 것으로 가정하면, 다음 수식 시스템이 획득된다:
Kx·(QA1 + QB11) = 1 (E1")
Kx·(QA21 + QB12) = 2 (E2")
Kx·(QA22 + QB21) ≤ 2 (E3")
Kx·(QA3 + QB22) ≤ 1 (E4")
수식 시스템((E1") - (E4"))을 검증하면 도 4에 도시된 부하 플랜을 생성할 수 있다. 도 4는 시간 창([i,i+1[)(여기서 i = 0, 1, 2, 3, 4 및 5)이 도시된 타이밍도 형태의 부하 플랜을 도시하고, 실제 요구조건(QA1, QA21, QA22, QA3, QB)은 시간 축(t)을 따라 교차 해치된 영역(cross-hatched area)으로 도시되고, 연관된 실행 시간 마진(MA1, MA21, MA22, MA3, MB)은 시간 축(t) 위에 해치된 영역으로 도시되고, 시간 축(t) 아래에 해치된 영역으로 도시되고, 최대 부하에 도달하지 않은 시간 창의 아이들 시간(NA1, NA2)이 도시된다. 이 부하 플랜에서, 각 시간 창은 단일 처리 동작 또는 처리 동작 단편과 연관된다. 시간 창의 시간 유닛으로 지속시간이 주어지면, 특정 처리 동작 단편의 요구조건이 한정될 수 있다. 따라서, 처리 동작(TB)의 2개의 발생의 요구조건(QB12 및 QB22)은 QB로 설정될 수 있다. 그 결과 요구조건(QB12 및 QB22)은 0으로 설정된다.
도 4의 부하 플랜에서 처리 동작(TB)은 상이한 지속시간의 2개의 별개의 시간 창과 연관된 것을 볼 수 있다. 사실, 부하 플랜은 처리 동작(TB)의 2개의 발생을 포함하고, 하나의 발생은 시간 창([1,2[)에 할당되고, 다른 발생은 시간 창([32,5[)에 할당된다.
도 4의 부하 플랜은 또한 시간 슬롯으로 절단되고, 각 시간 슬롯은 마진 또는 아이들 시간 유형을 처리하는 처리 동작 요구조건일 수 있다. 따라서 연속적인 요구조건(QA1, QB, QA21, QA22, QB 및 QA3)은 시간 슬롯([0,01[, [1,11[, [2,21[, [3,32[, [33,42[ 및 [5,51[)과 각각 연관된다. 연속적인 마진(MA1, MB, MA21, MA22, MB, MA3)은 시간 슬롯([01,1[, [11,2[, [21,3[, [32,33[, [41,42[ 및 [51,52[)과 각각 연관된다. 아이들 시간(NA1, NA2)은 시간 슬롯([42,5[ 및 [52,6[)과 각각 연관된다.
멀티태스킹 컴퓨터 부하의 관점으로부터, 도 4의 부하 플랜은 수식((E1") - (E4"))과 일치하지만, 특정 처리 동작이 단편화될 때, 요구조건과 연관된 실행 시간 마진이 또한 단편화될 수 있는 것으로 이해된다. 따라서, 상기 예에서, 요구조건(QA2)은 2개의 별개의 부분(QA21 및 QA22)으로 단편된 것으로 보인다. 이는 연관된 마진(MA21, MA22)에도 그러하다. 이 단편화는 시간 창을 재한정할 때 초래될 수 있다. 사실, 처리 동작 단편(TA22)의 연장된 요구조건(Kx.QA22)과 처리 동작(TB)의 제2 발생의 요구조건(QB) 사이에 전이는 도 4에서 시간 창 한계([32])가 이 시간에 존재하는 것을 암시한다. 처리 동작(TA22)은 시간 창([3, 32[)과 연관된다. 나아가, 처리 동작(TB)의 제2 발생의 요구조건(QB)이 시간([4]) 전과 후에 연장되므로, 이 시간은 시간 창 한계에 더 이상 대응하지 않는다. 처리 동작(TB)의 제2 발생은 시간 창([32,5[)과 연관된다.
처리 동작에 할당된 마진을 최적으로 사용하는, 특히 에러, 특히 예상된 실행 시간 요구조건을 오버런하는 에러를 처리하는 정적 스케줄 플랜을 제공하기 위해, 부하 플랜이 도 5에 도시된 바와 같이 재배열될 수 있다. 도 4의 부하 플랜에 비해, 도 5의 부하 플랜은 요구조건(QA21 및 QA22)과 연관된 실행 시간 마진(MA21 및 MA22)을 함께 그룹화하는 것에 의해 변경된다. 이를 위하여, 단편(TA21)과 연관된 마진(MA21)은 마진(MA22) 바로 전으로 이동되었고, 이 2개의 마진은 병합되어 (Kx-1)·QA2와 같은 마진(MA2)을 형성한다. 도 5의 예에서, 마진(MA21)을 이동시킨 후에는 처리 동작(TA2)의 요구조건(QA21 및 QA22)들이 또한 연속적이기 때문에 이들 요구조건들은 병합될 수 있다. 실시간 애플리케이션이 일반적으로 2개를 초과하는 태스크를 구비하는 것으로 인해 처리 동작 단편들의 요구조건들을 함께 그룹화하는 가능성은 빈번하지 않는 것으로 이해된다. 요구조건과 마진을 이렇게 그룹화하면 또한 처리 동작에 초기에 할당된 시간 창에 의해 한정된 처리 동작의 데드라인을 고려하면서 해당 시간 창을 재한정할 수 있다. 사실, 요구조건(QA21 및 QA22)을 그룹화한 것으로 인해, 시간([3])은 시간 창 한계에 더 이상 대응하지 않는다. 시간([32])이 요구조건의 종료 또는 마진의 시간에 더 이상 대응하기 때문에 이렇게 그룹화하면 또한 요구조건(QA2) 시간([31])의 종료를 처리 동작(TA2)에 재할당할 수 있다. 이제 처리 동작(TA2)에 할당된 시간 창([2,33[)은 이 처리 동작에 초기에 할당된 창([1,5[)에 포함되는 것으로 이해된다. 이렇게 그룹화하면 시간([2])과 시간([33]) 사이에 시간 슬롯을 재한정할 수 있다. 따라서, 도 5의 예에서, 처리 동작(TA2)의 요구조건(QA2)은 슬롯([2,31[)과 연관되고, 이 처리 동작의 마진(MA2)은 슬롯([31,33[)과 연관된다.
동일한 시간 베이스에 의해 클록되는 태스크 세트에 대해, 에러가 있는 경우에, 에러를 처리하는데 할당된 시간이 (다른 처리 동작에 할당된 시간으로 오버런함이 없이) 보장되어, 실시간 애플리케이션을 실행하는 멀티태스킹 컴퓨터로 이루어진 임계 실시간 시스템의 제약에 순응하는 결정론적 시간에 에러 처리 동작을 가능하게 하는 것을 보장하는 태스크 스케줄 플랜을 형성하는 것이 가능하다. 멀티태스킹 컴퓨터를 사이즈 조정하는데 에러가 있는 경우, 처리 동작의 실행 시간이 변동(variation)하는 것으로 인해, 이 방법은 다른 태스크의 실행과 간섭함이 없이 잔류 에러의 경우를 가능한 한 극히 낮은 수로 감소시키는 것에 의해 실시간 멀티태스킹 시스템의 로버스트니스를 개선할 수 있다. 이 방법은 전체 컴퓨터의 사이즈 조정을 검증(validate)하는데 요구되는 테스트를 감소시키는 실시간 애플리케이션의 태스크를 스케줄하는 모듈식 및 구성식 접근법을 가능하게 한다. 이 방법은 모든 태스크들 사이에 시간 독립성(비-간섭)이 요구되는 임계 실시간 시스템을 생성하고, 이러한 시스템을 인증(certification)할 수 있게 한다. 이 방법은 또한 실행 프로세서의 오버-사이즈를 감소시킬 수 있어서 상대적으로 낮은 처리 용량을 가지는 매립된 컴퓨터에 상당한 잇점을 제공한다.
일반적인 경우에, 시간 슬롯은 도 4 및 도 5에서와 같이 반드시 스케줄되어야 하는 것은 아닌 것으로 이해된다. 사실, 각 처리 동작(Ti)에 대해, 요구조건(Qi), 마진(MAi) 및 가능하게는 아이들 시간(NA) 슬롯의 순서가 충족되는 경우, 스케줄 플랜의 상이한 처리 동작에 할당된 시간 슬롯이 그 방식이 무엇이든 임의의 방식으로 포섭(nested)될 수 있다. 따라서, 상이한 처리 동작의 여러 할당량-유형의 시간 슬롯은 연속적일 수 있다. 유사하게, 상이한 처리 동작의 여러 마진-유형의 시간 슬롯은 연속적일 수 있다. 단순히 각 처리 동작의 할당량과 마진 시간 슬롯이 처리 동작에 초기에 할당된 시간 창에 포함되는 것이 중요하다.
도 4 및 도 5에 도시된 실시예는 또한 (신뢰성과 수명 면에서 이익을 갖는) 프로세서의 온도 상승을 제한할 수 있는 프로세서(PRC)의 실행을 정지(stop)시킴이 없이 기간의 길이를 제한할 수 있다. 프로세서가 임계 태스크에 속하는 어떤 처리 동작도 실행하지 않는 기간을 또한 사용하여 낮은 레이턴시로 진입/진출의 관리와 같은 반복하는(recurring) 요구조건을 매우 종종 가지는 비-임계 태스크를 실행할 수 있다.
일반적으로 말하면, 할당된 요구조건에의 순응은 처리 동작 또는 처리 동작 단편이 론칭될 때 인에이블되는 처리 동작 또는 처리 동작 단편의 요구조건의 값에 따라 설정될 수 있는 처리 동작 또는 처리 동작 단편에 할당된 시간 할당량을 한정하는 시간 지연을 가지고 와치독에 의해 제어된다. 따라서, 아래에서는 처리 동작에 할당된 실행 시간 할당량이 이전에 한정된 요구조건과 동일하다. 와치독은 처리 동작 또는 처리 동작 단편이 완료되지 않은 경우 시간 지연의 종료시 트리거된다.
도 6a, 도 6b는 컴퓨터(RTS)의 실시간 코어에 의해 실행되는 단계(S1 내지 S6 및 S10 내지 S14)를 도시한다. 도 6a의 단계(S1 내지 S6)는 와치독(WD)을 활성화하여 가능하게는 스케줄 플랜의 각 시간 슬롯의 종료시에 트리거될 수 있도록 영구적으로 실행된다. 도 6b의 단계(S10 내지 S14)는 와치독(WD)이 트리거될 때 실행된다. 아래에서 "처리 동작"이라는 용어는 처리 동작 또는 처리 동작 단편을 구별 없이 의미한다. 도 6a, 도 6b의 단계들 중 일부를 실행하기 위하여, 컴퓨터(RTS)의 실시간 코어는 스케줄 플랜으로부터 생성되거나 또는 실시간 애플리케이션의 태스크의 처리 동작의 부하 플랜으로부터 생성되는 테이블을 구비한다. 이 테이블은 특히 애플리케이션의 처리 동작의 리스트와, 각 처리 동작에 할당된 시간 슬롯을 한정하는 파라미터의 리스트를 포함할 수 있다. 애플리케이션의 처리 동작의 리스트에서, 각 처리 동작(Ti)은 시간 할당량(Qi) 유형과 시간 마진(Mi) 유형의 하나 이상의 시간 슬롯과 연관될 수 있다. 시간 슬롯의 리스트에서, 각 슬롯은 처리 동작 또는 처리 동작 단편, 유형(할당량, 마진 또는 아이들 시간), 시간 슬롯의 지속시간, 및/또는 시간 슬롯의 시작 및 종료 시간과 연관된다.
도 6a에서, 단계(S1)는 t<j>으로 언급된 시간 슬롯의 시작시에 실행된다. 프로세서(PRC)는 시간 슬롯의 리스트에 액세스하여, 시간 슬롯(t<j>)의 종료시에 와치독이 트리거되도록 와치독(WD)을 활성화하는데 필요한 파라미터를 결정하고, 와치독을 활성화한다. 단계(S2)에서, 프로세서(PRC)는 시간 슬롯(t<j>)의 유형을 결정한다. 시간 슬롯(t<j>)이 할당량(Q) 유형인 경우, 프로세서(PRC)는 단계(S3)에서 시간 슬롯(t<j>)과 연관된 처리 동작(T[t<j>])을 론칭한다. 시간 슬롯(t<j>)이 마진(M) 유형인 경우, 프로세서(PRC)는 단계(S4)를 실행한다. 단계(S4)에서, 프로세서(PRC)는 처리 동작(T[t<j>])과 연관된 에러 지시자(ER(T[t<j>]))를 테스트한다. 이 에러 지시자(ER(T[t<j>]))가 처리 동작(T[t<j>])이 할당량 오버런 에러에 있는 것을 나타내면, 프로세서(PRC)는 단계(S5)에서 처리 동작(T[t<j>])을 계속 실행한다. 단계(S3, S5)의 실행 후 처리 동작(T[t<j>])이 할당량 오버런 에러에 있지 않는 경우, 프로세서(PRC)는 단계(S6)를 실행하여 카운터(j)를 증분시키는 것에 의해 그 다음 시간 슬롯(t<j+1>)의 처리 동작으로 갈 수 있다.
시간 슬롯(t<j>) 동안 활성화된 와치독(WD)이 (할당량 또는 마진 오버런의 경우) 트리거될 때 실행되는 도 6b의 단계(S10)에서, 프로세서(PRC)는 와치독의 트리거가 시간 슬롯(t<j>)의 유형(Q/M/NA)을 테스트하는 것에 의해 처리 동작의 시간 할당량 또는 시간 마진의 만료로 인한 것인지 여부를 결정한다. 와치독(WD)의 트리거가 시간 할당량의 만료로 인한 것인 경우, 단계(S11)가 실행된다. 이 트리거가 시간 마진의 만료로 인한 것인 경우, 단계(S12 내지 S14)가 실행된다.
단계(S11)에서, 처리 동작(T[t<j>])에 할당된 시간 할당량이 처리 동작의 실행의 종료 전에 만료된다. 프로세서(PRC)는 예를 들어 처리 동작(T[t<j>]) 동안 에러 지시자(ER)를 활성화하는 것에 의해 에러 모드로 들어간다. 단계(S12)에서, 처리 동작(T[t<j>])에 할당된 시간 마진은 처리 동작의 실행이 완료됨이 없이 만료되었다. 프로세서(PRC)는 처리 동작(T[t<j>])의 실행을 정지(stop)한다. 단계(S13)에서, 프로세서(PRC)는 시간 할당량 오버런 에러가 처리 동작(T[t<j>]) 동안 검출된 것을 저장할 수 있다. 단계(S14)에서, 프로세서(PRC)는 실시간 코어에 제공된 일반적인 에러 처리 동작을 실행할 수 있다. 이 일반적인 에러 처리 동작은 처리 동작들 사이에 비-간섭 규칙을 고려하기 위하여 그 다음 시간 창을 잠식하지 않기 위하여 및 그 다음 처리 동작에 할당된 시간을 잠식하지 않기 위하여 충분히 짧다. 이것은 다시 처리 동작들 사이에 비-간섭 규칙을 고려하기 위하여 처리 동작에 할당된 후속 시간 창 동안 할당량 오버런에서 애플리케이션 또는 처리 동작(T[t<j>])에 특정된 에러 처리 동작을 실행하도록 또한 제공될 수 있다.
시간 할당량 오버런 에러의 경우에 처리 동작의 실행을 계속하는 것은 실시간 애플리케이션을 단순 설계 선택하는 것으로부터 초래되는 것으로 이해된다. 일부 경우에, 이전에 설명된 것과는 상이한 이 에러를 처리하는 다른 모드를 구현하도록 이루어질 수 있는데, 예를 들어, 시간 할당량 오버런 에러시 처리 동작을 영구적으로 정지시키고, 태스크 또는 실시간 시스템의 저하된 동작에 제공된 대안적인 처리 동작을 실행하고, 에러 처리 동작의 시간 마진보다 더 짧은 실행 시간을 요구할 수 있다.
단편화된 처리 동작이 실행되는 경우에, 와치독이 제1 또는 중간 단편에 할당된 할당량의 종료를 나타내는 경우는 처리 동작의 마지막 단편의 요구조건의 종료를 나타내는 경우와는 구별되어야 한다. 제1 경우에, 와치독은 단편화된 처리 동작의 실행 동안 시간 창의 변화시, 단순히 하나의 처리 동작으로부터 다른 처리 동작으로 변화를 나타낸다. 제2 경우에, 와치독은 단편화된 처리 동작의 할당량이 완전히 사용된 것을 나타내는데, 이에 따라 이상 상태(anomaly)를 나타낸다.
일 실시예에 따라 단편화된 처리 동작이 스케줄 플랜에 남아 있을 때, 상태 변수는 각 처리 동작 또는 처리 동작 단편과 연관되어, 처리 동작이 단편화된 처리 동작의 제1 단편 또는 중간 단편인지 여부를 나타내거나, 또는 비-단편화된 처리 동작 또는 단편화된 처리 동작의 마지막 단편인지 여부를 나타낸다. 이 상태 변수를 사용하여 처리 동작이 제1 단편 또는 중간 단편인 경우 어떤 마진도 처리 동작 단편에 할당하지 않고, 처리 동작 단편의 시간 할당량의 만료시 어떤 에러도 생성하지 않는다. 이 상태 변수는 예를 들어 실시간 애플리케이션의 실행가능한 코드를 생성시 각 처리 동작 또는 단편에 대해 자동적으로 생성되고, 애플리케이션의 부하 플랜을 한정하는 테이블에 삽입될 수 있다.
이 상태 변수는 예를 들어 도 7에 도시된 바와 같이 사용될 수 있다. 따라서, 도 7은 도 6b의 단계(S10 내지 S14), 및 단계(S10)와 단계(S11) 사이에 개재된 추가적인 단계(S15)를 도시한다. 단계(S15)는 와치독(WD)이 처리 동작(T[t<j>])의 시간 할당량의 만료시 트리거될 때 실행된다. 단계(S15)에서, 프로세서(PRC)는 처리 동작(T[t<j>])이 단편화된 처리 동작의 제1 단편인지 또는 중간 단편인지 여부를 나타내거나, 또는 전체(full) 처리 동작(비-단편화된 처리 동작)인지 또는 단편화된 처리 동작의 마지막 단편인지 여부를 나타내는 상태 변수(LF(T[t<j>]))를 테스트한다. 변수(LF(T[t<j>]))가 실행되는 T[t<j>] 처리 동작이 전체 처리 동작인지 또는 단편화된 처리 동작의 마지막 단편인지를 나타내는 경우, 전술된 단계(S11)는 에러 모드를 활성화하도록 실행된다. 그렇지 않은 경우, 에러 모드는 활성화되지 않는다.
시간 마진이 단편화된 처리 동작의 제1 단편 또는 중간 단편에는 할당되지 않으므로, 단편화된 처리 동작에 할당된 전체 시간 마진은 단편화된 처리 동작의 마지막 단편에 할당되는 것으로 이해된다.
일 실시예에 따라 상태 변수는 처리 동작이 프로세서(PRC)에 대하여 진입 및/또는 진출을 수행하는지 여부를 나타내기 위해 각 처리 동작 또는 처리 동작 단편과 연관된다. 입력/출력은 메모리(VM 또는 NVM)에서 실시간 애플리케이션의 글로벌 변수에 예를 들어 기록(write)-액세스 또는 판독(read)-액세스를 의미하거나, 또는 회로(PHC)를 통해 프로세서(PRC)와 주변 유닛 사이에 신호 또는 데이터 전송을 의미한다. 이 상태 변수를 사용하여 연관된 시간 창의 시작을 대기함이 없이 어떤 진입 및/또는 진출도 수행하지 않는 처리 동작을 예상할 수 있다. 이 상태 변수는 예를 들어 실시간 애플리케이션의 실행 가능한 코드를 생성할 때 각 처리 동작 또는 처리 동작 단편에 대해 자동적으로 생성되고, 애플리케이션의 부하 플랜과 스케줄 플랜을 한정하는 테이블에 삽입될 수 있다.
이 상태 변수는 예를 들어 도 8에 도시된 바와 같이 사용될 수 있다. 도 8은 도 6a의 단계(S1 내지 S6), 및 단계(S6)와 단계(S1) 사이에 개재된 2개의 추가적인 단계(S8 및 S9)를 도시한다. 단계(S8)에서, 프로세서(PRC)는 처리 동작(Nxt.(T))과 연관된 그 다음 시간 슬롯을 결정하고, 이 시간 슬롯이 할당량(Q) 유형인 경우, 이 프로세서는 부하 플랜에서 그 다음 처리 동작(Nxt.(T))에 진입/진출이 존재하는 것을 나타내는 상태 변수를 테스트한다. 변수(IO(Nxt.(T)))가 처리 동작(Nxt.(T))이 어떤 진입/진출도 수행하지 않는 것을 나타내면, 프로세서(PRC)는 단계(S9)를 실행하여 단계(S8)에서 결정된 시간 슬롯 동안 단계(S1-S2-S3)로 처리 동작(Nxt.(T))의 실행을 론칭한다. 그렇지 않은 경우, 단계(S1)는 방금 처리된 것에 후속하는 시간 창(t<j+1>)에 대해 실행된다. 물론, 도 7 및 도 8의 단계가 상태 변수(LF 및 IO)를 모두 구현하도록 조합으로 실행될 수 있음은 말할 필요도 없다.
이 배열에 의해 시퀀싱 플랜에서 계획된 처리 동작이 동적으로 예상될 수 있어서, 연관된 미사용된 마진이 예상될 수 없는 진입/진출을 수행하는 처리 동작 또는 처리 동작 단편과 연관된 시간 창에 대해 연기될 수 있어서, 미사용된 마진과 임의의 아이들 시간을 함께 단일 마진으로 그룹화할 수 있다. 이 배열은 시스템의 결정론적 거동과 전술된 동작 보장에 문제를 야기하지 않는다. 마진 및/또는 아이들 시간을 그룹화하면 더 적은 인터럽션과 더 적은 실행 상황 스위치로 실행될 수 있는 비-임계 또는 비-실시간 태스크의 실행을 포함할 수 있는 제2차 활동을 구현할 수 있는 잇점을 제공한다. 그 결과 프로세서의 성능과, 에너지 소비 및 평균 온도에 이득을 초래한다. 프로세서가 그룹화된 마진 동안 대기 모드에 있는 경우, 이 프로세서는 더 긴 시간 동안 대기 모드에 있을 수 있고, 이에 이 대기 모드의 지속시간으로부터 초래되는 온도와 에너지 소비의 저하를 초래한다. 이렇게 마진을 그룹화하면 또한 프로세서 대기 메커니즘의 활성화 횟수를 감소시킬 수 있다. 게다가, 처리 동작을 예상하는 가능성이 있어서 실시간 시스템은 더 잘 사이즈 조정될 수 있고 더 높은 전체적인 성능이 획득될 수 있다. 이 잇점은 실시간 시스템의 동작 신뢰성에 영향을 미침이 없이 획득될 수 있는 것으로 이해된다.
대부분의 실시간 시스템에서, 처리 동작의 실행 시간을 제어하는 시간 측정과 시간 제약을 나타내는데 (시간을 시간 창으로 분해하는데) 사용되는 시간 측정은 클록 회로, 예를 들어, 회로(CLK)로부터 오는 동일한 소스(source)에 기초한다. 그러나, 이 조건이 반드시 있어야 하는 것은 아니다. 사실, 일부 실시간 시스템은 (클록 신호와 관련 없는) 비-규칙적인 외부 이벤트에 의해 시간 창을 한정하도록 클록될 수 있다. 예를 들어, 이 외부 이벤트는, 가변 속력으로 동작하는 크랭크샤프트의 각도 위치와 같은 이동하는 물체의 위치, 또는 엄격히 상수인 것은 아닌 기간 동안 교류 전기 신호의 위상과 관련될 수 있다.
종래의 접근법에서, 비-규칙적인 시간 베이스를 사용하면 태스크의 시퀀싱을 용이하게 형성할 수 없어서, 동적 스케줄 알고리즘을 사용하여야 할 수 있다. 그와 반대로, 상기 제시된 방법에 따르면 정확히 동일한 방식으로 진행할 수 있다. 시간 요구조건과 할당량은 제1 클록 신호에 의해 한정된 프로세서의 실행 시간 유닛으로 여전히 표현되는 반면, 시간 제약, 및 이에 따라 처리 동작의 시퀀싱은, 예를 들어 각도 위치 측정 신호와 같은 비-규칙적인 제2 신호에 의해 한정된 상이한 시간 베이스로 표현된다. 그러나, 애플리케이션이 스케줄되기 위하여, 2개의 신호들 사이에는 관계가 있어서, 이에 의해 제1 클록 신호로 측정된 제2 신호의 시간 유닛의 최소 지속시간을 결정하는 것이 가능하다. 이 경우에, 인수(Kx)의 값은 이 최소값에 따라 여전히 계산될 수 있다. 그 결과, 요구조건을 인수(Kx)와 곱셈하는 것에 의해 요구조건 마진을 한정하는 것이 여전히 가능하다.
일 실시예에 따라 인수(Kx)는 제1 클록 신호로 측정된 제2 신호에 의해 한정된 시간 유닛의 최소 지속시간에 따라 계산된 값으로 설정된다. 이 결과 마진의 각 지속시간이 고정된 반면, 아이들 시간은 가변하고 특히 제2 신호에 의해 한정된 시간 유닛이 최소값으로부터 멀어질 때 증가한다.
성능과 신뢰성 면에서 이전에 설명된 것과 동일한 특징과 잇점이 실행 시간 제약(즉, 시간 창)이 한정되는 기초가 되는 비-규칙적인 시간 베이스의 속력 변동에 상관없이 유지된다.
이 기술 분야에 통상의 지식을 가진 자라면 본 발명은 여러 대안적인 실시예와 여러 응용에 적용될 수 있을 것이라는 것을 이해할 수 있을 것이다. 특히, 본 발명은 시간 마진을 사용하여 시간 할당량 오버런에서 처리 동작을 계속 실행하도록 제한되지 않는다. 사실, 예를 들어 처리 동작에 특정된 에러 처리 동작을 실행하는 것과 같은 다른 에러 처리 동작이 제공될 수 있다.
나아가, 실시간 애플리케이션의 처리 동작에 할당된 시간 마진은 이들 처리 동작에 할당된 시간 할당량에 반드시 비례하는 것은 아니다. 시간 마진의 각 지속시간을 계산하는데 다른 모드를 사용할 수 있다. 할당된 시간 할당량과 마진이 주어진 경우, 및 애플리케이션에 할당된 연산 시간 자원이 주어진 경우, 실시간 애플리케이션이 스케줄될 수 있다는 것이 단순히 중요하다. 따라서, 각 처리 동작에 할당된 마진은 처리 동작에 따라 구체적으로 한정될 수 있다.
참고 문헌
[1] "Scheduling Algorithms for Multiprogramming in a Hard Real-Time Environment", C. L. Liu, J. W. Layland, Journal of the Association for Computing Machinery, vol. 20, no. 1, January 1973, pp. 46-61.
[2] "Foundations of Real-Time Computing: Scheduling and Resource", edited by Andr M. Van Tilborg, Gary M. Koob, 1991, Kluwer Academic Publishers.
[3] "A Method and a Technique to Model and Ensure Timeliness in Safety Critical Real-time Systems", C. Aussagus, V. David, Fourth IEEE International Conference on Engineering of Complex Computer Systems, 1998.
[4] 특허 출원 WO/2002/039277 또는 US/2004/0078547.
[5] "The Worst-Case Execution Time Problem - Overview of Methods and Survey of Tools", R. Wilhelm, J. Engblom, A. Ermedahl, N. Holsti, S. Thesing, D. Whalley, G. Bernat, C. Ferdinand, R. Heckmann, T. Mitra, F. Mueller, I. Puaut, P. Puschner, J. Staschulat, P. Stenstrm, ACM Transactions on Embedded Computing Systems (TECS), 2007.
[6] "Giotto: A Time-Triggered Language for Embedded Programming", T. A. Henzinger, B. Horowitz, C. M. Kirsch, EMSOFT 2001, pp. 166-184, 2001, Springer-Verlag.
[7] 특허 출원 WO/2006/050967.
[8] 특허 출원 US/2010/0199280.
Claims (13)
- 멀티태스킹 컴퓨터(multitasking computer)(RTS)에서 실시간 애플리케이션의 태스크(task)를 실행하는 방법으로서, 각 태스크(A, B)는 적어도 하나의 처리 동작(processing operation)(Ti)을 포함하고, 상기 방법은,
상기 애플리케이션의 태스크의 처리 동작의 실행과 각각 연관된 시간 창(time window)을 한정하는 단계,
시간 창을 가지는 각 처리 동작에 시간 할당량(time quota)(Qi)과 시간 마진(time margin)(Mi)을 할당하는 단계로서, 상기 시간 할당량과 상기 시간 마진에 의해 상기 처리 동작에 할당된 시간은 상기 처리 동작과 연관된 시간 창의 지속시간보다 더 짧은, 상기 할당하는 단계,
상기 멀티태스킹 컴퓨터에 의해 상기 애플리케이션을 실행하는 동안, 상기 처리 동작에 할당된 시간 창의 시작시에 각 처리 동작을 활성화하는 단계,
상기 처리 동작들 중 어느 하나의 시간 할당량의 만료시, 상기 처리 동작의 실행이 완료되지 않은 경우 상기 처리 동작에 대한 에러 모드를 활성화하는 단계,
상기 에러 모드가 상기 처리 동작들 중 어느 하나에 대해 활성인 경우, 상기 처리 동작에 할당된 시간 마진(Mi)의 만료를 모니터링하면서 상기 처리 동작에 할당된 시간 할당량(Qi)의 만료시 완료되지 않은 상기 처리 동작(Ti)의 실행을 계속하는 단계, 및
상기 처리 동작에 할당된 시간 마진의 만료시, 상기 처리 동작의 실행이 완료되지 않은 경우, 상기 처리 동작의 실행을 종료하고 시간 할당량 오버런 에러 처리 동작(overrun error handling operation)을 실행하는 단계를 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
각 시간 창이 처리 동작 또는 처리 동작 단편(processing operation fragment)과 배타적으로 연관되도록 상기 애플리케이션의 다른 태스크를 처리하기 위한 여러 시간 창에 걸쳐 연장하는 시간 창과 연관된 처리 동작을 동작 단편들로 분할하는 단계,
단편화된 처리 동작 각각의 모든 동작 단편들의 시간 할당량의 합계가 상기 단편화된 처리 동작의 시간 할당량(QA2)과 같도록 각 상기 동작 단편(TA21, TA22)들에 시간 할당량(QA21, QA22)을 할당하는 단계로서, 상기 단편화된 처리 동작(TA2)에 할당된 시간 마진(MA22)은 상기 단편화된 처리 동작의 마지막 단편(TA22)과 연관된, 상기 할당하는 단계, 및
동작 단편이 단편화된 처리 동작(TA2)의 마지막 단편인지 여부를 나타내는 제1 상태 변수(LF)를 각 동작 단편(TA21, TA22)과 연관시키는 단계를 포함하고, 상기 동작 단편과 연관된 제1 상태 변수가 상기 동작 단편이 상기 단편화된 처리 동작(TA2)의 마지막 동작 단편이 아닌 것을 나타내는 경우 상기 에러 모드는 상기 동작 단편들 중 하나(TA21)의 시간 할당량(QA21)의 만료시 활성화되지 않는 것을 특징으로 하는 방법. - 제1항에 있어서,
시간 할당량(Qi)과 연관된 각 상기 처리 동작(Ti)의 시간 마진(Mi)은 상기 처리 동작의 시간 할당량에 곱셈 인수(multiplying factor)(Kx)를 적용하는 것에 의해 계산되고, 상기 곱셈 인수는 시간 할당량과 연관된 모든 처리 동작에 대해 동일한 것을 특징으로 하는 방법. - 제3항에 있어서,
상기 곱셈 인수(Kx)는 상기 애플리케이션의 태스크들이 상기 처리 동작에 대해 정해진 시간 요구조건, 상기 처리 동작과 연관된 시간 창, 및 상기 컴퓨터(RTS)의 특징에 따라 스케줄될 수 있도록 결정되는 것을 특징으로 하는 방법. - 제3항에 있어서,
상기 처리 동작은 제1 시간 베이스에 의해 클록되는 프로세서(PRC)에 의해 실행되고, 상기 처리 동작(Ti)들과 연관된 시간 창은 상기 제1 시간 베이스에 비해 규칙적이지 않은 제2 시간 베이스에서 한정되고, 상기 제2 시간 베이스에서 시간 유닛은 상기 제1 시간 베이스에서 최소값을 가지고, 상기 곱셈 인수(Kx)는 최소값에 따라 한정되는 것을 특징으로 하는 방법. - 제1항 내지 제5항 중 어느 한 항에 있어서,
각 처리 동작(Ti)은 상기 처리 동작을 실행하는 프로세서(PRC)에 대해 입력/출력을 수행하는지 여부를 나타내는 제2 상태 변수(IO)와 연관되고, 상기 처리 동작들 중 어느 하나의 제2 상태 변수가 상기 처리 동작이 어떤 입력/출력도 수행하지 않는 것을 나타내는 경우, 상기 처리 동작의 실행이 이전의 처리 동작의 실행이 종료되자마자 상기 처리 동작의 시간 창의 시작을 대기함이 없이 론칭되는 것을 특징으로 하는 방법. - 여러 태스크를 포함하는 실시간 애플리케이션을 실행하는 멀티태스킹 컴퓨터(RTS)를 포함하는 실시간 멀티태스킹 시스템으로서, 각 태스크(A, B)는 적어도 하나의 처리 동작(Ti)을 포함하고, 상기 시스템은,
상기 애플리케이션의 태스크의 처리 동작의 세트의 실행과 각각 연관된 시간 창을 저장하는 동작,
시간 창을 가지는 각 처리 동작에 대해, 시간 할당량(Qi)과 시간 마진(Mi)을 저장하는 동작으로서, 상기 시간 할당량과 상기 시간 마진에 의해 상기 처리 동작에 할당된 처리 시간은 상기 처리 동작의 시간 창의 지속시간보다 더 짧은, 상기 저장하는 동작,
상기 처리 동작에 할당된 시간 창의 시작시에 상기 애플리케이션의 각 처리 동작을 실행하는 동작,
상기 처리 동작들 중 어느 하나의 상기 시간 할당량의 만료시, 상기 처리 동작의 실행이 완료되지 않은 경우 상기 처리 동작에 대한 에러 모드를 활성화하는 동작,
상기 에러 모드가 상기 처리 동작들 중 어느 하나에 대해 활성인 경우, 상기 처리 동작에 할당된 시간 마진(Mi)의 만료를 모니터링하면서 그 시간 할당량(Qi)의 만료시 완료되지 못한 상기 처리 동작(Ti)의 실행을 계속하는 동작, 및
상기 시간 마진의 만료시, 상기 처리 동작의 실행이 완료되지 않은 경우, 상기 처리 동작의 실행을 종료하고 시간 할당량 오버런 에러 처리 동작을 실행하는 동작을 수행하도록 구성된 것을 특징으로 하는 시스템. - 제7항에 있어서,
시간 창과 연관된 처리 동작의 일부가 단편화된 것을 저장하는 동작,
각 처리 동작 단편에 대해 상기 처리 동작 단편의 실행을 위해 시간 창과 시간 할당량을 저장하는 동작,
각 단편화된 처리 동작의 마지막 단편에 대해, 상기 단편화된 처리 동작(TA2)과 연관된 시간 마진(MA22)을, 연관된 시간 마진으로, 저장하는 동작, 및
각 처리 동작 단편(TA21, TA22)에 대해 상기 단편이 단편화된 처리 동작(TA2)의 마지막 단편인지를 나타내는 상태 변수(LF)를 저장하는 동작, 및
상기 애플리케이션의 실행 동안, 상기 처리 동작 단편과 연관된 제1 상태 변수가 상기 처리 동작 단편이 단편화된 처리 동작(TA2)의 마지막 단편이 아닌 것을 나타내는 경우 처리 동작 단편(TA21)의 할당량(QA21)의 만료시 상기 에러 모드를 활성화하지 않는 동작을 수행하도록 구성된 것을 특징으로 하는 시스템. - 제8항에 있어서,
곱셈 인수(Kx)를 상기 처리 동작의 시간 할당량에 적용하는 것에 의해 시간 할당량(Qi)과 연관된 각 처리 동작(Ti)의 시간 마진(Mi)을 결정하는 동작을 수행하도록 구성되고, 상기 곱셈 인수는 시간 할당량과 연관된 모든 처리 동작에 대해 동일한 것을 특징으로 하는 시스템. - 제9항에 있어서,
제1 시간 베이스에 의해 클록되고 상기 처리 동작을 실행하는 동작과, 상기 제1 시간 베이스에 비해 규칙적이지 않은 제2 시간 베이스를 수신하는 동작을 수행하는 프로세서(PRC)를 포함하고, 상기 시스템은 상기 제2 시간 베이스에서 상기 처리 동작(Ti)과 연관된 시간 창을 결정하도록 구성되고, 상기 제2 시간 베이스에서 시간 유닛은 상기 제1 시간 베이스에서 최소값을 가지고, 상기 곱셈 인수(Kx)는 상기 최소값에 따라 한정되는 것을 특징으로 하는 시스템. - 제8항 내지 제10항 중 어느 한 항에 있어서,
각 처리 동작(Ti)에 대해 상기 처리 동작이 상기 처리 동작을 실행하는 상기 시스템의 프로세서(PRC)에 대해 입력/출력을 수행하는지 여부를 나타내는 제2 상태 변수(IO)를 저장하는 동작, 및
상기 처리 동작들 중 어느 하나의 제2 상태 변수가 상기 처리 동작이 어떤 입력/출력도 수행하지 않는 것을 나타내는 경우, 이전의 처리 동작의 실행이 종료하자마자 상기 처리 동작의 시간 창의 시작을 대기함이 없이 상기 처리 동작의 실행을 론칭하는 동작을 수행하도록 구성된 것을 특징으로 하는 시스템. - 삭제
- 삭제
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1353630 | 2013-04-19 | ||
FR1353630A FR3004825B1 (fr) | 2013-04-19 | 2013-04-19 | Procede d'allocation temporelle de taches permettant une recuperation d'erreur deterministe en temps reel |
PCT/FR2014/050613 WO2014170569A1 (fr) | 2013-04-19 | 2014-03-17 | Procédé d'allocation temporelle de tâches permettant une récupération d'erreur deterministe en temps réel |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160003710A KR20160003710A (ko) | 2016-01-11 |
KR102209030B1 true KR102209030B1 (ko) | 2021-01-28 |
Family
ID=48782417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157032733A KR102209030B1 (ko) | 2013-04-19 | 2014-03-17 | 결정론적 에러를 실시간으로 복구하는 태스크 시간 할당 방법 |
Country Status (10)
Country | Link |
---|---|
US (1) | US9645850B2 (ko) |
EP (1) | EP2987081B1 (ko) |
JP (1) | JP6424208B2 (ko) |
KR (1) | KR102209030B1 (ko) |
CN (1) | CN105190556B (ko) |
BR (1) | BR112015026331B1 (ko) |
CA (1) | CA2908951C (ko) |
FR (1) | FR3004825B1 (ko) |
RU (1) | RU2648943C2 (ko) |
WO (1) | WO2014170569A1 (ko) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10768984B2 (en) | 2015-06-11 | 2020-09-08 | Honeywell International Inc. | Systems and methods for scheduling tasks using sliding time windows |
KR102079499B1 (ko) * | 2015-10-20 | 2020-02-21 | 엘에스산전 주식회사 | Plc 위치 결정 시스템의 축별 제어주기 독립 할당 방법 |
JP6838222B2 (ja) * | 2016-04-28 | 2021-03-03 | 日立Astemo株式会社 | 車両制御装置、及び車両システム |
JP6848340B2 (ja) * | 2016-10-25 | 2021-03-24 | 株式会社リコー | 情報処理システム、更新方法、情報処理装置及びプログラム |
US11025722B2 (en) * | 2017-04-15 | 2021-06-01 | Microsoft Technology Licensing, Llc | IoT device jobs |
FR3067482A1 (fr) * | 2017-06-12 | 2018-12-14 | Inria Institut National De Recherche En Informatique Et En Automatique | Dispositif de caracterisation et/ou de modelisation de temps d'execution pire-cas |
EP3537293A1 (de) * | 2018-03-09 | 2019-09-11 | Till I.D. GmbH | Zeitlich deterministischer mikroprozessor und mikrocontroller |
DE102018205390A1 (de) * | 2018-04-10 | 2019-10-10 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Fehlerbehandlung in einer Kommunikation zwischen verteilten Software Komponenten |
CN109213027B (zh) * | 2018-07-16 | 2021-07-16 | 哈尔滨工程大学 | 一种基于μ/COS-II实时操作***的船用低速共轨柴油机调速单元 |
FR3093579B1 (fr) * | 2019-03-07 | 2021-07-30 | Thales Sa | Ordonnanceur d'evenements pour microprocesseur |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5640563A (en) * | 1992-01-31 | 1997-06-17 | International Business Machines Corporation | Multi-media computer operating system and method |
JP2000056989A (ja) * | 1998-08-03 | 2000-02-25 | Chokosoku Network Computer Gijutsu Kenkyusho:Kk | タスク設計方法 |
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 |
US20040148604A1 (en) * | 2001-06-05 | 2004-07-29 | Steffens Elisabeth Francisca M | Method of and system for assessing progress of a task |
JP3922070B2 (ja) * | 2002-03-29 | 2007-05-30 | 株式会社デンソー | 分散制御方法及び装置 |
JP3859564B2 (ja) * | 2002-08-05 | 2006-12-20 | 日本電気株式会社 | イベント通知タスク制御処理方式及び方法並びにプログラム |
JP4122968B2 (ja) * | 2002-12-25 | 2008-07-23 | 日本電気株式会社 | 共通資源へのアクセス方式、共通資源へのアクセス方法、及びプログラム |
DE102004054571B4 (de) | 2004-11-11 | 2007-01-25 | Sysgo Ag | Verfahren zur Verteilung von Rechenzeit in einem Rechnersystem |
US7971095B2 (en) * | 2005-02-16 | 2011-06-28 | Honeywell International Inc. | Fault recovery for real-time, multi-tasking computer system |
AU2007261611A1 (en) * | 2006-06-19 | 2007-12-27 | Condusiv Technologies Corporation | Computer micro-jobs |
US8316368B2 (en) * | 2009-02-05 | 2012-11-20 | Honeywell International Inc. | Safe partition scheduling on multi-core processors |
JP5069325B2 (ja) * | 2010-03-11 | 2012-11-07 | 株式会社豊田中央研究所 | タスク実行制御装置及びプログラム |
CN103034554B (zh) * | 2012-12-30 | 2015-11-18 | 焦点科技股份有限公司 | 一种纠错重启以及自动判断启动的etl调度***及方法 |
-
2013
- 2013-04-19 FR FR1353630A patent/FR3004825B1/fr active Active
-
2014
- 2014-03-17 RU RU2015149621A patent/RU2648943C2/ru active
- 2014-03-17 WO PCT/FR2014/050613 patent/WO2014170569A1/fr active Application Filing
- 2014-03-17 US US14/784,138 patent/US9645850B2/en active Active
- 2014-03-17 CA CA2908951A patent/CA2908951C/fr active Active
- 2014-03-17 EP EP14715373.8A patent/EP2987081B1/fr active Active
- 2014-03-17 KR KR1020157032733A patent/KR102209030B1/ko active IP Right Grant
- 2014-03-17 JP JP2016508208A patent/JP6424208B2/ja active Active
- 2014-03-17 CN CN201480021800.XA patent/CN105190556B/zh active Active
- 2014-03-17 BR BR112015026331-3A patent/BR112015026331B1/pt active IP Right Grant
Non-Patent Citations (1)
Title |
---|
Damien Chabrol 외 2, "A Spatial and Temporal Partitioning Approach for Dependable Automotive Systems", Emerging Technologies & Factory Automation, IEEE, 1-8면 (2009. 09. 22.)* |
Also Published As
Publication number | Publication date |
---|---|
FR3004825A1 (fr) | 2014-10-24 |
CN105190556A (zh) | 2015-12-23 |
WO2014170569A1 (fr) | 2014-10-23 |
CA2908951C (fr) | 2021-06-01 |
BR112015026331A2 (pt) | 2017-07-25 |
EP2987081B1 (fr) | 2024-05-08 |
BR112015026331B1 (pt) | 2022-05-03 |
US9645850B2 (en) | 2017-05-09 |
EP2987081A1 (fr) | 2016-02-24 |
KR20160003710A (ko) | 2016-01-11 |
RU2648943C2 (ru) | 2018-03-28 |
CA2908951A1 (fr) | 2014-10-23 |
JP2016519371A (ja) | 2016-06-30 |
CN105190556B (zh) | 2019-06-21 |
FR3004825B1 (fr) | 2015-04-24 |
JP6424208B2 (ja) | 2018-11-14 |
US20160055032A1 (en) | 2016-02-25 |
RU2015149621A (ru) | 2017-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102209030B1 (ko) | 결정론적 에러를 실시간으로 복구하는 태스크 시간 할당 방법 | |
US9098351B2 (en) | Energy-aware job scheduling for cluster environments | |
US8943353B2 (en) | Assigning nodes to jobs based on reliability factors | |
CN106569891B (zh) | 一种存储***中任务调度执行的方法和装置 | |
Xu et al. | Improved deadline miss models for real-time systems using typical worst-case analysis | |
US20140201411A1 (en) | Deferred inter-processor interrupts | |
EP2624135A2 (en) | Systems and methods for task grouping on multi-processors | |
CN104321747A (zh) | 用于多核/众核可编程逻辑控制器的时间裕隙应用流水线平衡 | |
Liu et al. | High-responsive scheduling with MapReduce performance prediction on hadoop YARN | |
US9612907B2 (en) | Power efficient distribution and execution of tasks upon hardware fault with multiple processors | |
US9323642B2 (en) | Calculation apparatus, calculation method, and recording medium for calculation program | |
US8943503B2 (en) | Apparatus and method for thread progress tracking using deterministic progress index | |
KR20130039479A (ko) | 스레드 프로그레스 트래킹 방법 및 장치 | |
Fuhrman et al. | On designing software architectures for next-generation multi-core ECUs | |
US9417928B2 (en) | Energy efficient supercomputer job allocation | |
CN106326599B (zh) | 一种多处理器***仿真的***状态监测方法和装置 | |
CN112805978A (zh) | 针对事件流处理的增强型锚协议 | |
Ntaryamira et al. | Data consistency and temporal validity under the circular buffer communication paradigm | |
JP3998686B2 (ja) | Cpu使用時間カウント方法及びこのcpu使用時間を用いるジョブ制御装置 | |
US11880231B2 (en) | Accurate timestamp or derived counter value generation on a complex CPU | |
CN117591267B (zh) | 一种任务处理方法、设备、介质及*** | |
Ranjbar et al. | Safety-and Task-Drop-Aware Mixed-Criticality Task Scheduling | |
Kermia | Strictly periodic first: An optimal variant of LLF for scheduling tasks in a time‐critical cyber‐physical system | |
KR20220082532A (ko) | 프로세스 스케줄링 시스템 및 방법 | |
Hanti et al. | Reconfigurable Multi-Core scheduling for real-time functions in avionic mission systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |