KR20110124309A - 시스템의 실시간 성능을 분석하기 위한 방법 - Google Patents

시스템의 실시간 성능을 분석하기 위한 방법 Download PDF

Info

Publication number
KR20110124309A
KR20110124309A KR1020117021553A KR20117021553A KR20110124309A KR 20110124309 A KR20110124309 A KR 20110124309A KR 1020117021553 A KR1020117021553 A KR 1020117021553A KR 20117021553 A KR20117021553 A KR 20117021553A KR 20110124309 A KR20110124309 A KR 20110124309A
Authority
KR
South Korea
Prior art keywords
events
event
tasks
task
assigned
Prior art date
Application number
KR1020117021553A
Other languages
English (en)
Inventor
카르스텐 알베르스
스테펜 콜만
프랑크 스롬카
Original Assignee
인크론 지엠비에이치
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인크론 지엠비에이치 filed Critical 인크론 지엠비에이치
Publication of KR20110124309A publication Critical patent/KR20110124309A/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
    • 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/44Arrangements for executing specific programs
    • 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/5055Allocation 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 software capabilities, i.e. software resources associated or available to the machine

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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 시스템, 특히 다양한 태스크들이 제공되는 컴퓨터 시스템의 실시간 성능을 분석하기 위한 방법을 제공하며, 상기 태스크들은 반복적으로 수행되고, 태스크의 실행은 상기 태스크의 활성화에 의해 트리거되고, 그리고 이는 상기 태스크의 이벤트를 나타내고, 복수의 서술 요소들이 이벤트 스트림으로서 이벤트들의 시간 상관(time correlation)을 서술하기 위해 제공되며, 상기 이벤트 스트림들은 이벤트들의 최대 시간 밀도 및/또는 이벤트들의 최소 시간 밀도를 검출할 수 있고, 임의의 양의 이벤트 스트림들이 할당됨과 아울러 적어도 두개의 이벤트 스트림들에 의해 캡춰되는 전체 이벤트들의 시간 상관을 서술하는 적어도 하나의 추가의 서술 요소가 제공된다.

Description

시스템의 실시간 성능을 분석하기 위한 방법{METHOD FOR ANALYSING THE REAL-TIME CAPABILITY OF A SYSTEM}
본 발명은 프로그램 모듈들(태스크들) 및/또는 전자 회로 모듈들을 포함하는 복합 분산 시스템(complex distributed system)의 시간 응답(time response)을 분석하는 컴퓨터-구현 방법(computer-implented method)에 관한 것이다.
그러한 시스템은 프로그램 모듈들(태스크들) 및/또는 전자 회로 모듈들 형태의 복수의 컴포넌트들로 구성된다. 상기 컴포넌트들은 서로 통신하며 데이터를 처리 또는 변환(transform)한다. 또한, 그러한 시스템들은 데이터를 검출하기 위한 센서들, 사용자와 상호작용하는 모듈들, 주변환경 및 다른 시스템들에 물리적으로 영향을 주는 액츄에이터들, 및 정보를 사용자 또는 주변환경으로 전송하기 위한 출력 매체(output media)를 포함한다.
특정 컴포넌트들(실행 자원들(execution resources)은, 또한, 하나 이상의 프로그램 모듈들을 부분적으로 실행한다. 모듈들이 더 실행된다면, 시퀀스 플래닝 또는 스케쥴링 방법을 사용하여, 순서 또는 실행 시간의 분포가 개별 모듈들에 할당될 수 있다.
가능한 스케쥴링 방법들의 실행으로는 정적 스케쥴링 방법들 및 동적 스케쥴링 방법들이 있다. 상기 정적 스케쥴링 방법들에서, 실행의 순서 및 실행될 모듈들에 대한 실행 시간의 분포가 정적으로 결정되고, 상기 동적 스케쥴링 방법들에서는, 순서 및 실행 시간 분포가 처리될 데이터, 다른 모듈들의 실행, 환경 및/또는 사용자 상호작용에 의존하는 런타임(runtime)과 관련된 소정의 기법에 따라 결정된다.
시스템 및 컴포넌트는 결과들 및 제어 결정들에 대한 정확한 판단을 요구하는 것 뿐만아니라 결과들을 제공하기 위한 시점들(points in time) 및 검출 기간(duration of detection)에 대한 요구조건들(requirements)이 있다는 점에서 시간-결정적(time-critical)일 수 있다. 그러한 요구조건들의 예는 결과들의 판단을 위한 최대 레이턴시 기간들(maximum latency periods) 또는 값들 또는 센서 또는 입력 데이터에서의 변화에 대한 보장된 응답 시간일 수 있다. 그러나, 그러한 요구조건들은 또한 정규 시차들(regular time lags)내 또는 고정된 시간 프레임(fixed time frame) 내에서의 새로운 계산 결과들의 제공일 수 있다.
모듈들은 서로를 활성화시키고 그리고/또는 통신 링크를 통해 비동기로 데이터를 교환한다. 상기 통신 또는 활성화 링크들을 모델링하기 위하여, 다양한 이벤트 모듈들이 개발되어왔다. 그러한 관계들은, 예를 들어, 단 하나의 단일 기간, 하나의 기간 및 지터, 이벤트 스트림[Grasser: Echtzeinachweis Ereignisgesteuerter Realzeitsysteme, Munchen 1993 (본 명세서에 참조로 통합됨)] 또는 계층적 이벤트 스트림들(WO 2008/003427 참조)에 의해 모델링될 수 있다. 많은 다른 이벤트 모델들이 또한 가능한다.
실시간 시스템의 분석과 관련하여, 실시간 시스템의 프로세스들을 가능한한 근접하게(closely) 접근하는 것이 중요하다. 실제 임베디드 시스템에서 다양한 컴포넌트들 및 태스크들은 절대적으로(implicitly) 서로 크게 관련되어 있고, 상기 실제 임베디드 시스템은 실행 시나리오들을 제외한 것이며, 상기 실제 임베디드 시스템은 이러한 종속성(dependencies)을 고려함이 없이 실시간 분석에서 배제될 수 없다. 따라서, 실시간 분석은 실제 시스템에서 요구되는 것보다 긴 최대 반응 시간(응답 시간)과 같은 보다 보수적인 결과들을 산출해낼 수 있다.
현존하는 실시간 분석에서는 일련의 종속성(a series of dependencies)이 고려된다. 그러나, 이 방법은 요구되는 종속성 타입을 정확하게 고려하기 위하여 분석 알고리즘들에 대한 특정의 확대(specific boadening)를 항상 필요로 한다. 결과적으로, 분석에 있어서 새로운 타입의 종속성을 고려하는 것은 복잡하다. 또한, 현존하는 실시간 분석 방법은 단지 종속성의 일부만을 커버한다.
따라서, 실제 실시간 분석으로부터 종속성에 대한 모델링 및 결정을 분리하는 메커니즘을 가지는 것이 유리하다. 결과적으로, 실시간 분석에서, 이러한 추상적인 종속성 모델(abstract dependency model)만이 고려되어야 하는바, 이는 상기 추상 모델(abstract model)이 결정될 수 있는 모든 종속성들을 고려하기 위해서 이다.
본 발명에 따르면, 제한 이벤트 스트림들과 같은 그러한 메커니즘이 제안된다.
제1 양상에 따르면, 본 발명은 시스템, 특히 다양한 태스크들이 제공되는 컴퓨터 시스템의 실시간 성능을 분석하기 위한 컴퓨터 구현 방법을 제공하는바, 상기 태스크들은 반복적으로 수행되고, 그리고 태스크의 실행은 상기 태스크의 활성화에 의해 트리거되고 이는 태스크의 이벤트를 나타내며, 이벤트 스트림으로서 이벤트들의 시간 상관(time correlation)을 서술하기 위하여 복수의 서술 요소들(descriptive elements)이 제공되고, 이벤트 스트림들은 이벤트들의 최대 시간 밀도(maximum time densities)를 검출할 수 있으며, 그리고 임의의 양의 이벤트 스트림이 할당됨과 아울러 전체 이벤트들의 시간 상관을 서술하는 추가의 서술 요소가 적어도 두개의 이벤트 스트림들에 의해 캡춰된다.
적어도 하나의 추가적인 서술 요소는 바람직하게는 제한 이벤트 스트림(limiting event stream)을 서술한다.
추가의 서술 요소들 또는 제한 이벤트 스트림들 중 적어도 하나가 적어도 두개의 이벤트 스트림들에 의해 캡춰되는 전체 이벤트들의 최대 시간 상관을 서술하는 것이 바람직하며, 여기서 적어도 시간 인터벌(dt)에 대해, dt에서 제한 이벤트 스트림에 의해 인정가능한(admissible) 이벤트들의 양은 dt에서의 비-제한 이벤트 스트림들에 의해 인정가능한 이벤트들의 합보다 낮다.
추가적인 서술 요소들 중 적어도 하나 또는 제한 이벤트 스트림들은 적어도 두개의 이벤트 스트림들에 의해 캡춰되는 전체 이벤트들(entirety of events)의 최대 시간 상관을 서술하며, 적어도 시간 인터벌(dt)에 대해, 상기 dt 내에서 상기 제한 이벤트 스트림에 의해 허용되는 이벤트들의 양은 상기 dt 내에서 비-제한 이벤트 스트림들(non-limiting event streams)에 의해 허용되는 이벤트들의 합 보다 적은 것이 바람직하다.
추가적인 서술 요소들 중 적어도 하나 또는 제한 이벤트 스트림들은 바람직하게는 전체 이벤트들의 최소 시간 상관을 서술하며, 상기 전체 이벤트들은 적어도 두개의 이벤트 스트림들에 의해 캡춰되고, 적어도 시간 인터벌(dt)에 대해, dt 내에서 상기 제한 이벤트 스트림에 의해 허용되는 이벤트들의 양이 dt 내에서 비-제한 이벤트 스트림들에 의해 허용되는 이벤트들의 양을 초과한다.
시스템에는 바람직하게는 적어도 하나의 컴포넌트 또는 자원이 할당되고 상기 컴포넌트(들) 중 적어도 하나에는 적어도 두개의 태스크들이 할당된다.
적어도 두개의 태스크들은 바람직하게는 하나의 그룹으로 구성되며, 그룹의 태스크들이 자원에 할당되고 상기 태스크들이 자원을 위해 경쟁하거나 이 그룹의 태스크들이 서로 다른 시간들에 자원을 처리할 수 있고 그리고 시스템은 자원이 상기 그룹의 특정 태스크에 할당되는 시점을 결정하는 방법을 포함한다.
바람직한 실시예에 따르면, 제한 이벤트 스트림들 중 적어도 하나가 적어도 두개의 제한된 이벤트 스트림들에 할당되며, 이는 각각 서로 다른 태스크들을 활성화하고, 이 태스크들은 적어도 하나의 조인트 그룹에 할당되며, 각각 일 이벤트에 대해 상기 태스크에 의한 상기 자원의 일시적 사용(temporal use)을 캡춰하는 태스크들에 비용이 할당되고,
태스크들에 의해 공동으로 요구되는 비용을 결정하는 단계를 더 포함하며,
상기 비용을 결정하는 단계는,
상기 제한 이벤트 스트림의 이벤트들을 고 비용을 지닌 태스크들에 할당하는 단계와, 상기 할당된 이벤트들의 양은 상기 이벤트 스트림이 상기 태스크를 활성화하는 것에 의해 제약되고,
상기 할당된 이벤트들의 양을 고려하여 상기 제한 이벤트 스트림의 나머지 결과들을 결정하는 단계와,
상기 제한 이벤트 스트림의 나머지 이벤트들을 두번째로 높은 비용을 가진 태스크에 할당하는 단계와, 상기 할당된 이벤트들의 양은 상기 이벤트 스트림이 상기 태스크들을 활성화하는 것에 의해 제한되며,
상기 제한 이벤트 스트림의 모든 이벤트들이 할당될 때까지 상기 단계들을 반복하는 단계와, 그리고
개별 태스크들의 비용 및 각각 할당된 이벤트들의 양으로부터 전체 비용을 검출하는 단계를 포함한다.
제2 양상에 따르면, 본 발명은 시스템, 특히 복수의 서로 다른 태스크들이 제공되는 컴퓨터 시스템의 실시간 성능을 분석하기 위한 컴퓨터-구현 방법(computer-implanted method)을 제공하며,
상기 태스크들은 반복적으로 실행되고, 그리고
태스크의 실행은 상기 태스크의 활성화에 의하여 트리거되고 이는 상기 태스크의 이벤트를 나타내며,
이벤트 스트림으로서 상기 이벤트들의 시간 상관(time correlation)을 서술하기 위하여 하나 이상의 서술 요소들(descriptive elements)이 제공되고,
상기 이벤트 스트림들은 상기 이벤트들의 최대 시간 밀도(time densities) 및/또는 상기 이벤트들의 최소 시간 밀도를 캡춰할 수 있으며,
임의의 양의 이벤트 스트림들이 할당됨과 아울러 적어도 두개의 이벤트 스트림들에 의해 캡춰되는 전체 이벤트들의 시간 상관을 서술하는 적어도 하나의 추가적인 서술 요소와,
상기 제한 이벤트 스트림들 중 적어도 하나에는 적어도 두개의 제한된 이벤트 스트림들이 할당되고, 상기 제한된 이벤트 스트림들은 각각 서로 다른 태스크들을 활성화시키고, 상기 태스크들은 적어도 조인트 그룹에 할당되고, 태스크들에는 각각 일 이벤트에 대해 상기 태스크에 의한 상기 자원의 임시 사용을 검출하는 각각의 비용이 할당되고,
상기 태스크들에 의해 공동으로 요구되는 비용을 결정하는 단계를 더 포함하며,
상기 비용을 결정하는 단계는,
상기 제한 이벤트 스트림의 이벤트들을 고 비용을 가진 태스크에 할당하는 단계와, 상기 할당된 이벤트들의 양은 상기 이벤트 스트림이 상기 태스크를 활성화하는 것에 의해 제한되며,
상기 할당된 이벤트들의 양을 고려하여 상기 제한 이벤트 스트림의 나머지 결과들을 결정하는 단계와,
상기 제한 이벤트 스트림의 나머지 이벤트들을 두번째로 높은 비용(next highest costs)을 가진 태스크에 할당하는 단계와, 상기 할당된 이벤트들의 양은 상기 이벤트 스트림이 상기 태스크들을 활성화 하는 것에 의해 제한되고,
상기 제한 이벤트 스트림의 모든 이벤트들이 할당될때까지 상기 단계들을 반복하는 단계와, 그리고
상기 개별 태스크들의 비용 및 각각 할당된 이벤트들의 양으로부터 전체 비용을 검출하는 단계를 포함한다.
본 발명의 두가지 양상들 모두에 따르면, 적어도 두개의 이벤트 스트림들에 두개의 서로 다른 제한 이벤트 스트림들이 할당되고,
상기 태스크들에 의해 공동으로 요구되는 비용을 결정하는 단계를 더 포함하며,
고 비용을 가진 태스크에 상기 제한 이벤트 스트림들의 이벤트들을 할당하는 단계와, 여기서 상기 할당된 이벤트들의 양은 상기 이벤트 스트림이 상기 태스크를 활성화하는 것 및 상기 제한 이벤트 스트림들에 의해 각각 허용되는 이벤트들의 최소 양에 의해 제한되며,
상기 제한 이벤트 스트림들의 나머지 이벤트들을 결정하는 단계와, 여기서 실제로 할당된 이벤트들의 양이 고려되고,
두번째로 높은 비용을 가진 태스크의 제한 이벤트 스트림들의 나머지 이벤트들을 할당하는 단계와, 상기 할당된 이벤트들의 양은 상기 이벤트 스트림이 상기 태스크를 활성화시키는 것 및 상기 태스크에 할당된 다른 제한 이벤트 스트림들에 의해 제한되며,
상기 제한 이벤트 스트림들의 모든 이벤트들이 할당될 때까지 또는 이벤트 량이 그룹의 모든 태스크들에 할당될때까지 상기단계들을 반복하는 단계와,
개별 태스크들의 비용 및 그것들에 각각 할당된 이벤트들의 양으로부터 전체 비용을 결정하는 단계를 포함한다.
제한 이벤트 스트림들은 바람직하게는 시간 구간 내에서 이벤트들의 밀도를 서술하기 위하여 임의량의 포인트들에 할당되며 상기 제한 이벤트 스트림들에는 적어도 두개의 제한 이벤트 스트림들이 할당되고 여기서 상기 적어도 두개의 제한 이벤트 스트림들은 이벤트에 대해 서로 다른 양의 포인트들을 필요로 한다.
제1 태스크의 활성화는 제2 태스크에 의해 수행될 수 있으며, 이 활성화들의 시간 상관은 또한 이벤트 스트림들((제1 태스크의 출력된 이벤트 스트림, 제2 태스크의 인커밍 이벤트 스트림)에 의해 캡춰될 수 있다.
적어도 두개의 자원들이 시스템에 할당되는 것이 바람직하며,
태스크들의 제1 그룹은 제1 자원에 할당되고 태스크들의 제2 그룹은 제2 자원에 할당되며,
상기 제1 그룹의 적어도 두개의 태스크들은 상기 제2 그룹의 태스크를 각각 직접 또는 복수의 태스크들을 통해 활성화하고, 본 방법은,
상기 제1 태스크의 출력된 이벤트 스트림들에 대해 적어도 제한 이벤트 스트림을 결정하는 단계와,
적어도 제2 태스크에 대한 활성화가 제1 태스크에 의해 직접 수행되지 않는다면 상기 제2 태스크의 인커밍 이벤트 스트림들에 대해 적어도 제한 이벤트 스트림을 결정하는 단계와,
상기 제2 태스크들의 인커밍 이벤트 스트림들의 제한 이벤트 스트림들을 고려하여 상기 제2 태스크들에 의해 공동으로 요구되는 비용을 검출하는 단계를 포함한다.
상기 제2 태스크들의 제한 이벤트 스트림들 중 적어도 하나를 결정하기 위하여 상기 제1 태스크의 제한 이벤트 스트림이 사용된다.
태스크들은 바람직하게는 CPU 또는 전자 제어 모듈에 의해 실행될 수 있는 유닛들이다.
일반적으로 시스템에서 임의량의 이벤트 스트림들이 추가적인 서술 요소, 바람직하게는 제한 이벤트 스트림에 할당될 수 있다. 이 제한 이벤트 스트림을 사용하여, 제한 이벤트 스트림에 할당된 모든 제한된 이벤트 스트림들에 대한 상관된 요구조건들이 서술된다. 만약, 예를 들어, 10 ms의 인터벌에서 제한된 이벤트 스트림 ES_AB에 최대량의 5개 이벤트들이 할당된다면(상기 ES_AB에는 이벤트 스트림들 ES_A, ES_B가 할당되고 상기 ES_AB는 이벤트들의 최대량을 서술한다), 실제 시스템에서, ES_A 및 ES_B 하의 자극들(stimulation underlying ES_A and ES_B) 전체가 10ms 인터벌 내에서 5개 보다 많은 이벤트들을 야기할 수 없음을 의미한다. 이는 또한, 특히, 예를 들어 임의의 10ms 인터벌 내의 ES_A에 6개의 이벤트들이 할당되고 임의의(다른) 10ms 인터벌 내의 ES_B에 7개의 이벤트들이 할당될 때, 즉, 인터벌에 대한 ES_A와 ES_B의 합이 제한 이벤트 스트림 ES_AB을 초과할 때 특히 그러하다. 제한 이벤트 스트림은 적어도 하나의 그러한 인터벌이 존재해야만 이점을 가진다. 인터벌이 없는 동안(for no interval) 제한 이벤트 스트림에 할당된 이벤트 스트림들의 합이 동일한 인터벌 동안의 제한 이벤트 스트림의 값들 초과하면, 상기 제한 이벤트 스트림은 본 분석에 관련된 것이 아니다.
최대 이벤트 스트림들에 대한 제한 이벤트 스트림들에 대응하여, 또한 최소 이벤트 스트림들에 대한 제한 이벤트 스트림들이 설정될 수 있다. 최소로 제한하는 이벤트 스트림(minimally limiting event stream)은 그것이 적어도 하나의 인터벌 동안 그것에 할당된 이벤트 스트림들의 합을 초과하면 적절한 것이다.
제한 이벤트 스트림에 의해 서술될 수 있는 종속의 예는, 예를 들어, 공동 실행 자원(joint execution resource)에 대한 두 개 이상의 태스크들 사이의 경쟁으로부터 기인된다. 각각의 태스크 하나에 대해, 상기 태스크로부터 출력되는 이벤트들의 최고 가능 밀도(highest possible density)는, 즉, 상기 태스크에 스케쥴링 방법의 공동 실행 자원의 최고 가능 비율이 할당되는 그러한 인터벌들 동안 상기 태스크로부터 출력되는 이벤트 스트림에 대해 최대 값이 되게 한다. 그러나, 제2 태스크는 그러한 높은 비율의 공동 실행 자원을 할당받지 못하는 경우가 종종 있으며, 이는 이 인터벌들에 대해 제2 태스크의 출력된 이벤트 스트림에 대한 최대 값들이 뒤따르지 않음을 의미한다. 따라서, 종종 제1 태스크의 출력된 이벤트 스트림에 대한 최대 값들과 제2 태스크의 출력된 이벤트 스트림은 동시에 일어날 수 없다. 이러한 관계는 경쟁적인 상황을 고려하여 각각의 출력된 이벤트 스트림들의 최고의 가능한 동시발생(highest possible coincidence)을 서술하는 제한 이벤트 스트림에 의해 설명될 수 있다.
제한 이벤트 스트림은 또한, 시간 인터벌들에 대해 설정되는 것 대신에 임의의 양의 이벤트들 또는 에너지 양에 대해 설정될 수 있다. 이 점에 있어서, 제한 이벤트 스트림 및 그것에 할당된 제한 이벤트 스트림들은 동일한 종류의 값들에 근거한다는 것이 중요하다.
제한 이벤트 스트림에서 포인트들의 양, 즉, 가중 인자(weighing factor)는 또한 시간 인터벌들에 할당될 수 있으며, 제한 이벤트 스트림들의 관점에서 얼마나 많은 포인트들이 제한 이벤트 스트림들의 하나 이상의 이벤트들에 대해 소비되어야 하는지가 결정된다. 상기 소비될 포인트들의 양은 제한 이벤트 스트림에 할당된 서로 다르게 제한된 이벤트 스트림들(differently limited event streams)에 대해서 가변된다. 따라서, 예를 들어, 서로 다르게 제한된 이벤트 스트림들의 순위를 서로 다르게 정하거나 이벤트 별로 가변가능한 복잡도(variable complexity)를 모델링하는 것이 가능하다.
유익한 실시예에서, 상기 메커니즘은 특정 종속 타입에 적용된다. 여기서, 태스크들의 제1 그룹이 제1 자원에 할당되고 태스크들의 제2 그룹이 제2 자원에 할당되며, 상기 제1 그룹의 적어도 두개의 태스크들이 상기 제1 그룹의 제1 태스크를 직접 또는 몇개의 태스크들을 통해 각각 활성화한다. 다음의 단계들,
제1 태스크의 출력된 이벤트 스트림들에 대해 적어도 제한 이벤트 스트림을 결정하는 단계,
적어도 제2 태스크에 대한 활성화가 제1 태스크에 의해 직접 수행되지 않으면 제2 태스크의 인커밍 이벤트 스트림들에 대해 적어도 제한 이벤트 스트림을 결정하는 단계,
제2 태스크의 인커밍 이벤트 스트림들의 제한 이벤트 스트림들을 고려하여 제2 태스크들의 공동으로 요구되는 비용을 검출하는 단계가 요구된다.
제한 이벤트 스트림들은 종속을 고려하는 분석 방법에 의해 자동적으로 검출되거나 또한 실시간 분석의 사용자에 의해 설정될 수 있다.
태스크들이 단지 대안적으로 활성화될 수 있다면 이는 제한 이벤트 스트림들에 의해 서술될 수 있는 또 다른 종류의 종속이다. 이는, 예를 들어, 데이터의 처리 또는 다양한 액츄에이터들의 제어와 관련하여 대안들 간의 결정을 필요로하는 특정 데이터 또는 공정 결과들에 따라 발생할 수 있다.
그러한 대안의 또 다른 예는 엔진 제어 유닛이며, 엔진 제어 유닛에서는 다양한 범위의 속도에서, 예를 들어, 최적으로 다음 발화점(next ignition point)을 계산하기 위하여, 각각의 다른 태스크들이 활성화된다.
이러한 대안적인 태스크들에 대해 제한 이벤트 스트림을 사용하는 것은, 실시간 분석의 매 단계에서, 단 하나의 대안, 즉, 각각의 경우의 가장 복잡한 대안이 고려되게 할 수 있다.
하기에서는 상세한 설명이 제시된다.
도 1은 몇개의 서로 다른 종속들을 가지는 분산 시스템의 예를 보여준다.
도 2는 경쟁하는 종속(competing dependency)을 설명하는 제한 이벤트 스트림의 예를 보여준다.
도 3은 경쟁하는 태스크들을을 위한 제한 이벤트 스트림들의 인터벌들의 계산을 보여준다.
도 4는 제한 이벤트 스트림들을 사용하여 최악의 경우의 응답 시간에 대한 고 우선권 태스크들의 기여도(contribution)를 계산하는 것을 보여준다.
도 5는 이벤트 스트림
Figure pct00001
F,
Figure pct00002
H 그리고
Figure pct00003
J의 인터벌들의 개선을 퍼센트로 보여준다.
임베디드 시스템의 요구조건들은 시간에 따라 계속적으로 증가하고 있다. 예를 들어, 자동차는 각 시대마다 더 많은 소프트웨어 기능을 가지며, 이는 결과적으로 더욱 복잡한 임베디드 시스템이 되게 한다. 신형 자동차들은 몇개의 버스들에 의해 연결되는 70개에 달하는 ECU들을 가진다. 대부분의 기능들은 엔진 관리 시스템 및 ABS 시스템과 같은 실시간 제약(real-time constraints)을 가진다.
산업 소프트웨어 개발자들에 의한 실시간 분석을널리 수용하기 위하여, 태스크들의 실제 최악 응답 시간들(real worst-case response times)에 대한 엄격한 한계(tight bounds)가 중요하다. 성공적인 접근방식은 체인 태스크 세트들(chained task-sets)의 종속을 고려하는 것이다. 본 발명은 실시간 분석에서의 서로 다른 타입의 종속들을 통합하는 새로운 전체론적 모델(holistic model)을 제공한다. 본 발명에 따른 이러한 일반적인 모델은 고정 우선권 시스템들(fixed priority systems)의 스케쥴가능성 분석(schedulability analysis)에 통합될 수 있다.
도 1에는 전형적인 분산 시스템이 도시된다. 상기 시스템은 두개의 CPU들과 하나의 BUS로 구성된다. 이 예에서는, 각각의 자원에 대해 고정 우선권 스케쥴링이 가정된다. 상기 시스템은 프로세서들 및 버스 상에서 실행되는 8개의 태스크들을 가진다. 우선권들은 도면에 도시된 것과 같이 할당된다. 태스크들의 자극(stimulation)은 이벤트 스트림들
Figure pct00004
에 의해 표현된다.
도 1에서 시스템을 분석하기 위하여, 각각의 태스크에 대해 최악 응답 시간을 계산할 필요가 있다. 이를 위한 일반적인 방법은 시스템 내의 자극을 서술하는 모든 태스크들 및 이벤트 스트림들이 독립적이라고 가정하는 것이다. 이는, 시스템의 콘텍스트(context)가 고려되지 않기 때문에, 최악 응답 시간 분석(worst-case response time analysis) 중에 이벤트들이 그것들의 최대 밀도(maximal density)로 발생할 수 있음을 의미한다. 실시간 분석의 결과는 태스크들 사이의 간섭(interference)이 항상 최대이고 매우 비관적인 결론(pessimistic results)에 이를 수 있다는 것이다.
더 엄격한 응답 시간 한계를 얻기 위하여, 본 발명은 두 종류의 종속을 도입한다. 제1 종속은 동일한 컴포넌트에 의해 실행되는 태스크들이 이 컴포넌트를 위해 경쟁하는 것을 나타내는 경쟁 기반 종속(competing based dependency)이다. 그러한 경쟁은, 이 경우에서와 같이 태스크들이 독립적이지 않은 것으로 가정될 때 특정 이벤트들이 동일한 밀도(same density)로 발생할 수 없게되는 효과를 가진다.
제2 종속은 서로 다른 이벤트 스트림들로부터의 이벤트들이 서로 시간 시프트되어(time-shifted) 발생하는 것을 나타내는 오프셋 기반 종속(offset based dependency)이다. 예를 들어, 도 1의 이벤트 스트림들
Figure pct00005
B 및
Figure pct00006
C가 고려된다면, 상기 이벤트 스트림들 사이의 상관(correlation)이 존재하는 것으로 가정된다. 이는 연속적인 태스크들 및 이벤트 스트림들에 대해 직접적인 영향을 가진다. 이러한 종속을 도입하는 목적은 본 발명에 따른 기법의 범용성(generality)를 보여주기 위한 것이다.
이 두개의 도입된 종속들은 실시간 분석을 위한 한계가 더 엄격해지게 한다. 실시간 분석에 두 종속들을 모두 포함시키는 것이 바람직하다. 종래의 기술에서는, 태스크들 사이의 종속들을 서술하기 위한 일반적인 기법으로서의 전체론적 모델(holistic model)이 존재하지 않았다.
하기에서는, 아래에서 논의되는 실시간 분석을 위해 필요한 모델이 설명된다.
태스크 모델(Task Model): Γ는 하나의 자원에 대한 태스크들 이다 Γ={τ1, ... τn}. 태스크는 τ=(c+, c-, Φ, Θ)의 4-튜플(tuple)이다. c+는 최악 실행 시간이고, c-는 최상 실행 시간이며, Φ는 스케쥴링을 위한 우선권(그 수가 적을 수록 우선권이 높음)이고, 그리고 Θ는 이벤트 스트림에 의한 태스크의 자극을 정의한다. τij는 태스크 τi의 j번째 작업(job)/실행(execution)인 것으로 한다.
태스크의 각각의 작업은 그것의 실행의 종료시 다른 태스크들에게 통지하기 위하여 이벤트를 발생시키는 것으로 가정된다.
이벤트 스트림 모델(event stream model) : 이벤트 스트림 모델은 이벤트 한계 함수(event bound function)에 대한 효율적인 일반 표기법(general notation)을 제공한다.
본 발명에서, 이벤트 한계 함수 η(△t,Θ)는 각각의 구간 △t에 대해, 길이 △t의 임의의 구간 내에서 이벤트 스트림 Θ으로부터 발생하는 이벤트들의 수에 대한 상한(upper bound)을 제공한다. 따라서, 이벤트 한계 함수는 저가산적 함수(subadditive function)이며, 이는 각각의 구간 △t, △t'에 대해 하기의 조건(1)을 적용함을 의미한다.
η(△t + △t', Θ) ≤ η(△t,Θ) + η(△t',Θ) (1)
η(△t,Θ), η(△t',Θ)는 임의의 △t 또는 △t' 내에서 가능한 이벤트들의 최대 수를 리턴한다. △t + △t'에서의 이벤트는 △t 내에서 또는 △t' 내에서 발생해야 한다. 따라서, 조건이 유지된다.
본 발명에서, 또한 이벤트 스트림 Θ가 이벤트 요소들 Θ의 세트인 것으로 정의된다. 각각의 이벤트 요소는 기간 p 및 오프셋 a(Θ=(p,a))에 의해 주어진다.
견고한 시스템(concrete system)에 대해 이벤트들의 최악 밀도가 알려지지 않은 경우, 밀도들의 상한이 이벤트 스트림을 서술하기 위하여 사용될 수 있다. 임의의 이벤트 스퀀스를 모델링하는 것이 가능하다. 저가산성(subadditivity) 조건이 유지되는 이벤트 시퀀스들만이 유효한 이벤트 스트림들이다.
이벤트 시퀀스 Θ 및 구간 △t에 대한 이벤트 한계 함수는
Figure pct00007
에 의해 주어진다.
역함수(inverse function)로서, 이벤트들의 수 및 이 이벤트들이 발생할 수 있는 최소 구간의 이벤트 스트림을 제공하는 역함수가 하기에 정의된다.
이벤트들의 수와 Θ에 대한 구간 함수는
Figure pct00008
에 의해 주어진다.
이벤트 스트림들의 몇가지 예는 Karsten Albers, Frank Bodmann, 및 Frank Slomka: Hierarchical event streams and event dependency graphs: A new computational model for embedded real-time systems. In ECRTS '06: Proceedings of the 18th Euromicro Conference on Real-Time Systems, pages 97-106, Washington, DC, USA, 2006. IEEE Computer Society 에서 찾아볼 수 있으며, 상기 문헌은 본 명세서에 참조로서 포함된다.
임베디드 실시간 시스템들에 대해 앞에서 논의된 모델을 확장하기 위하여, 제한 이벤트 스트림들이 하기에서 기술된다.
본 발명에서, 제한 이벤트 스트림은 이벤트 스트림들의 세트에 대해 이벤트들의 최대 발생을 정의하는 이벤트 스트림으로 정의된다. 제한 이벤트 스트림은
Figure pct00009
로 정의된다. Θ는 제한 이벤트 스트림을 나타내며
Figure pct00010
는 제한 이벤트 스트림이 보유(hold)하는 이벤트 스트림들의 세트를 나타낸다. 제한 이벤트 스트림은 다음 조건을 충족한다.
Figure pct00011
예 1: 이벤트 스트림들간에 상관이 정의되어 있지 않다면
Figure pct00012
이다.
예 2: 도 1은 제한 이벤트 스트림에 대한 예를 제시한다.
Figure pct00013
이고 이 두 이벤트 스트림들 사이의 10 t.u.의 오프셋을 가정하도록 한다. 축적된 이벤트들의 발생은 제한 이벤트 스트림
Figure pct00014
에 의해 서술될 수 있다. 이벤트 스트림들이 독립적인 것으로서 고려된다면, 구간 △t=5 내의 두개의 이벤트들을 얻을 수 있다. 그러나, 제한 이벤트 스트림은 구간 △t 내에서 얼마나 많은 축적된 이벤트들이 발생할 수 있는지를 서술한다. 이러한 종속을 사용하면, 구간 △t=5 내에서 단 하나의 이벤트만을 얻게된다.
다음에, 제한 이벤트 스트림이 어떻게 계산될 수 있는지가 설명될 것이다.
본 발명에서, △β:△t←n이, 이벤트 스트림들의 소정 관계
Figure pct00015
로부터의 종속에서 주어진 개수의 이벤트들로부터 최소 시간 구간을 할당하는 제한 구간 함수인 것으로 정의되면, 제한 이벤트 스트림
Figure pct00016
Figure pct00017
에 의해 결정될 수 있다.
Figure pct00018
Figure pct00019
은 서로 다른 타입의 종속들에 대해 구체적으로 공식화되어야만 하는 추상적인 공식들임에 주목하여야한다.
하기에서, 본 발명에 따른 경쟁 기반 종속이 설명된다. 도 1에서, 태스크들 사이의 이러한 종류의 종속이 예시적으로 도시된다. 태스크들 τ4 및 τ5는 동일한 자원에 의해 실행된다. 이는 상기 태스크들이 자원을 위해 경쟁함을 의미한다. 관련된 작업에서, 태스크들 τ4 또는 τ5의 분석 동안, 아웃고잉 이벤트 스트림들 ΘG 및 ΘH는 개별적으로 고려된다.
도 2는 경쟁 종속을 서술하는 제한 이벤트 스트림의 예를 보여준다. 시간선 위의 화살표는 인커밍 이벤트들을 나타낸다. 시간선 아래의 화살표들은 태스크에 의해 발생되는 이벤트들을 나타낸다. 간트 도표(gantt-chart)의 파트 1에서는, 경쟁 태스크들이 없는 경우가 고려된다. 태스크들의 제1 작업은 두 개의 아웃고잉 이벤트들이 거의 동시에 발생할 수 있는 방식으로 스케쥴링된디. 다음 이벤트들은 제1 작업의 제1 이벤트 후 가능한한 빨리 생성된다. 독립적인 경우, 다음 두 이벤트들이 또한 동시에 발생할 수 있다. 그러나, τ4 및 τ5가 동일한 프로세서에 의해 실행되어야 하기 때문에 작업들이 태스크마다(task after task) 실행되어야만 하므로, 이는 가능하지 않다. 이것은 이벤트들의 정확한 발생을 서술하는 하부의 간트 차트에 도시된다. 태스크 간섭으로 인하여 아웃고잉 이벤트 스트림들을 서로 독립적으로 고려하는 것은 충분치 못하다. 이러한 간섭은 제한 이벤트 스트림에의해 모델링될 수 있다.
도 2에 도시된 바와 같이, 두개의 축적된 아웃고잉 이벤트들은 동시에 발생될 수 있다. 이는 더 높은 우선권을 가진 태스크가, 제2 태스크가 종료되기 직전에 제2 태스크를 인터럽트한다는 사실에 기반한다. 결과는 두개의 이벤트들이 거의 동시에 발생하는 것이다. n개의 이벤트들이 동시에 발생할 수 있음으로 인하여 이는 또한 n개의 태스크들에 대해 적용될 수 있다.
하나의 태스크에 대해, n개의 이벤트들을 발생시키기 위하여, 적어도 (n-1)·c 실행 요구들(execution demands)이 실행되어야만 한다.
제한 이벤트 스트림을 계산하기 위하여, n개의 이벤트들 사이의 최소 거리는 경쟁 기반 종속들에 대해 제한 구간 함수를 만들어냄으로써 결정될 수 있다.
ΓR은 동일한 프로세서를 공유하는 m 태스크들의 서브세트인 것으로 간주되고,
Figure pct00020
는 n 이벤트들의 분포의 세트이며, 여기서 각각의 태스크
Figure pct00021
는 ni 이벤트들을 생성하며, 제한 구간 함수는
Figure pct00022
로 주어진다.
n 이벤트들이 추정된것(assumption)보다 더 짧은 거리에서 발생할 수 있다고 가정되므로 상기 함수가 증명될 수 있다. 이는 최소값(minimum)의 조합들 중 하나가 결과적으로 더 짧은 거리가 되게함을 의미할 것이다. 결과적으로, 구간 함수
Figure pct00023
또는 합
Figure pct00024
은 더 짧은 거리가 되게한다. 구간 함수
Figure pct00025
가 더 짧은 거리가 되게하고 따라서 이벤트들이 이벤트 스트림 정의에서보다 더 짧은 거리에서 발생한다고 가정하자. 그러나, 이벤트 스트림 정의에 따르면 이러한 가정은 모순이다. 따라서, 최상 실행 시간들(best-case execution times)에 걸친 합이 더 짧은 거리에서 발생해야만 한다. 이는 고려되는 실행 시간들 중 하나가 가정된 시간들 중 하나 보다 더 작을 때에만 발생할 수 있는바, 이는 이미 모든 태스크들에 대해 최상 실행 시간들이 가정되었기 때문에 모순이다.
본 발명은 n 이벤트들에 대해 그것들이 발생하는 최소 구간을 산출하는 과정을 제시한다. 이 과정은 도 3에 도시된다. 본 발명에서,
Figure pct00026
를 효과적으로 계산하기 위하여 이벤트 스트림들에 대한 정규화(normalisation)가 도입된다.
도 3에서, 바깥쪽 루프(outer loop)는 위의 최소 오퍼레이션(라인 4 내지 10)에 의해 고려되는 모든 조합들에 대해 반복된다. 라인 5는 각 이벤트 스트림이
Figure pct00027
에 의해 이루어지므로 각각의 이벤트 스트림의 모든 구간들을 고려한다. 내부 루프(라인 7 내지 9)는
Figure pct00028
와 같은 최상 실행 시간들에 의해 산출되는 최소 거리를 계산한다. 최종적으로, 모든 구간들의 최소값이 결정되고 n개의 축적된 이벤트들이 발생할 수 있는 최소 구간이 리턴된다(라인 10).
본 발명에 따른 기법의 범용성을 보이기 위하여, Rodolfo Pellizzoni and Giuseppe Lipari (Improved schedulability analysis of real-time transactions with earliest deadline scheduling. In RTAS '05: Proceedings of the 11th IEEE Real Time on Embedded Technology and Applications Symposium, pages 66-75, Washington, DC, USA, 2005. IEEE Computer Society;(본 명세서에 참조로 포함됨))에 의한 트랜잭션 모델에서 소개된 오프셋들에 대한 문제점이 적용된다. 태스크 자극 사이의 정적 오프셋들만이 예로서 고려되지만, 이 기법은 모든 동적 오프셋들 또한 커버한다.
본 발명에서, 오프셋 a를 지닌 두 개의 엄격한 주기적 태스크들(strict periodic tasks) τ1과 τ2에 대해, 단지 τ1과 τ2의 이벤트들 사이의 최소 거리 a'를 계산해야 한다. 최소 거리는 태스크들의 주기들의 최대 공약수 x=gcd(pτ1, pτ1)를 사용하여 a'= min(mod(a,x), mod(-a, x))에 의해 계산된다. 제한 구간 함수는
Figure pct00029
가 된다.
이제
Figure pct00030
를 통해 이벤트 스트림을 직접 설정할 수 있다. mod(a, x)≤mod(-a, x)의 경우에, 제한 이벤트 스트림은
Figure pct00031
이다. mod(-a, x) < mod(a, x)인 경우에, 제한 이벤트 스트림은
Figure pct00032
이다. 두개 이상의 태스크들에 대해, 이 기법은 제한 구간 함수들을 계산하도록 조정될 수 있다.
제한 이벤트 스트림들을 사용하기 위하여, 실시간 분석, 특히 최악 응답 시간 분석에 대한 새로운 개념을 조정할 필요가 있다. 제한 이벤트 스트림들이 고려될 때, 구간 △t 내에서 태스크들의 최악의 기여도(worst-case contribution of tasks)가 얼마나 큰지를 결정해야 한다.
최대의 최악 실행(mamimum worst-case execution)을 가진 태스크가 가능한한 많이 발생할 때 구간 △t 내에서 태스크들의 최대 기여도가 발생하며, 그리고는 두번째로 큰 실행 시간을 가진 태스크가, 제한 이벤트 스트림들이 추가의 이벤트들의 발생을 금지시킬때까지 최소의 최악 실행 시간을 가진 태스크들까지 가능한한 많이 실행된다.
이는 가정에 의해 주어진 분포와는 또 다른 분포가 존재함을 가정함으로써 증명될 수 있다. 따라서, 가정에서의 패턴을 따르지 않는 적어도 하나의 이벤트가 존재해야만 한다. 태스크들의 기여도를 증가시키기 위하여, 이벤트는 최악의 실행 시간이 가정된 것보다 큰 태스크를 트리거해야만 한다. 그러나, 이것은 모순인데, 그 이유는 큰 최악 경우의 실행 시간들을 가진 모든 태스크들에 대해 이미 최대 실시(invocations) 횟수가 가정되었기 때문이다.
응답 시간 분석은 다음과 같이 정의된다. 조건
Figure pct00033
이 유지된다면, 태스크 세트은 실현 가능(feasible)하고 실시간 분석이 성공적이다. 이벤트 스트림들을 고려한 태스크의 최악의 응답 시간은
Figure pct00034
에 의해 계산될 수 있다.
더 높은 우선권 태스크들에 의해 산출된 실행들의 양은 이벤트 한계 함수를 최악의 경우의 실행 시간으로 곱해서 계산될 수 있다. 고정점 반복(fixed-point iteration)에 의해, 모든 작업(k)에 대해 최악의 응답 시간이 계산될 수 있다.
Figure pct00035
를 구현하기 위하여, 도 4의 알고리즘이 개발되었다. 식 6의 나머지부분은 수정되지 않는다.
상기 알고리즘은 파라미터들로서, 고려되는 구간 △t, 분석되는 태스크들의 작업 수 k, 조사되는 태스크 τ, 필요한 제한 이벤트 스트림들의 세트
Figure pct00036
, τ보다 높은 우선권을 가진 모든 태스크들을 포함하는 ΓHP를 가진다. 상기 알고리즘은 태스크들을 그들의 최악 실행 시간들(라인 8)에 의해 정렬(sorting)하고, 모든 제한 이벤트 스트림에 대해 이 스트림이 △t내에서 허용하는 이벤트들의 최대량을 저장한다(라인 9). 분석중인 태스크(τ)의 호출 횟수는 대응하는 제한 이벤트 스트림들로부터 감산되어야 한다(라인 10). 루프(라인 11 내지 16)에서, 모든 고 우선권(higher priority) 태스크들이 고려된다. 최대의 최악 실행 시간(greatest worst-case execution time)을 지닌 태스크가 먼저 고려된다. 이 알고리즘은 태스크의 이벤트 스트림(라인 12) 및 상기 이벤트 스트림의 한계가 존재한다면 상기 이벤트 스트림의 한계(라인 13)에 의해 태스크에 대한 최대 호출(invocation) 양을 결정한다. 이것의 최소값은 △t 내에서 태스크의 최대 기여를 계산하는데 사용된다(라인 14). 제2 루프(라인 15 내지 16)는 사용된 이벤트들에 의해 대응하는 제한 이벤트 스트림들을 감소시킨다(라인 16). 따라서, 상기 루프들은 태스크들에 대해 제한 이벤트 스트림들의 이벤트 양을 분산한다. 이는 △t 내의 높은 우선순위 태스크들이 최악의 기여도가 되게 한다.
응답 시간 분석의 복잡성은 여전히 유사다항적(pseudo-polynominial)이다. 제한 이벤트 스트림들을 계산하기 위한 복잡성은 고려되는 종속의 종류에 의존한다. 경쟁 기반 종속들의 문제를 계산하는 것은 그 조합의 복잡성으로 인하여 어려운 도전과제일 수 있다. 그러나, 분석은 이러한 문제에 영향받지 않는다. 따라서, 런타임 성능을 개선하기 위하여 제한 이벤트 스트림들에 대한 상한을 찾는 것이 제안된다.
이러한 새로운 기법의 중요성은 다음의 케이스 스터디에서 보여진다. 조사할 시스템은 도 1에 도시되며 위에서 설명되었다. 표 1은 시스템에 대한 파라미터들을 제공하며 테이블 2는 이벤트 스트림들을 제공한다. 이 방법을 택한 이유는 이해하기 쉽고 전체적으로 새로운 방법론을 보여주기 때문이다.
Figure pct00037
표1. 도 1에 도시된 분산 시스템의 파라미터들
시스템의 이벤트 스트림들을 계산하기 위하여, 본 발명은 Steffen Kollmann, Karsten Albers, 및 Frank Slomka의 Effects of simultaneous stimulation on the event stream densities of fixed-priority systems. In Spects '08: Proceedings of the International Simulation Multi-Conference. IEEE, June 2008 (본 명세서에 참조로서 포함됨)에 제시된 기법을 사용할 수 있다. 시스템에서의 결과적인 이벤트 스트림들은 도 2에 도시된다. 상기 기법에 의해, 종속을 가지고 계산된 이벤트 스트림들과 종속 없이 계산된 이벤트 스트림들을 비교한다. 이벤트 스트림들 ΘB와 ΘC 사이의 100 t.u.의 정적 오프셋이 가정된다.
Figure pct00038
표 2. 분산 시스템의 모든 이벤트 스트림들. 결과들은 상기 접근방법을 사용하여 그리고 사용하지 않고 계산된다.
종속이 있는 아웃고잉 이벤트 스트림들을 결정하기 위하여, 시스템의 제한 이벤트 스트림들을 계산할 필요가 있다. 여기서는 단지 두개의 제한 이벤트 스트림들
Figure pct00039
Figure pct00040
만을 고려한다.
Figure pct00041
Figure pct00042
Figure pct00043
사이의 오프셋을 서술한다.
Figure pct00044
Figure pct00045
Figure pct00046
사이의 경쟁 기반 종속을 서술한다.
Figure pct00047
도 3. 계산된 제한 이벤트 스트림들의 결과들
이벤트 스트림들을 계산한 후, 시스템 분석에서의 개선을 자세히 보기로 한다. 먼저, 몇몇 이벤트 스트림들 및 시스템의 밀도의 개선이 고려된다. 이것은 표 4 및 도 5에 도시된다.
Figure pct00048
표 4. 이 표는 이벤트 스트림들
Figure pct00049
Figure pct00050
에 대한 기법의 향상을 보여준다.
Figure pct00051
는 종속을 가진 구간들을 보여주며,
Figure pct00052
는 종속이 없는 구간들을 보여준다. 개선은 %로 주어진다.
종속들은 이벤트 스트림들의 밀도에 영향을 줄 분만아니라, 또한 최악 응답 시간에 직접적인 영향을 준다. 태스크 τ3의 최악 응답 시간은 150 t.u.에서 80 t.u.로 감소되었다. 이는 이 경우 종속을 지닌 분석의 결과가 종속이 없는 분석에 비해 46,66% 엄격(tight)하다는 것을 의미한다. τ6은 종속 없이는 255 t.u., 종속이 있는 경우에는 205t.u.의 최악 응답 시간을 가지는바, 상기 205 t.u.는 최악의 응답 시간이 19.6% 감소된 것이다.
이 예는 종속들이 실시간 분석에서 개선될 수 있음을 보여준다. 상기에 의해, 일반 기법에서 서로 다른 종속들이 얼마나 쉽게 결합될 수 있는가가 보여졌다.
본 발명은 분산 실시간 시스템에서 태스크 종속성을 위한 전체론적 모델을 달성하기 위한 가능성을 제공한다. 새로운 기법은 고정 우선권 시스템들에 적용되었다. 두 종류의 종속이 기술되며 이제 이것들은 새로 정의된 제한 이벤트 스트림들에 의해 기술될 수 있다. 그럼으로써, 새로운 종류의 종속이 도입되었다. 이러한 효과를 사용하여, 본 발명은 실시간 분석에서 종속의 복잡성을 줄여준다.
본 발명이 도면 및 앞의 상세한 설명에 자세히 예시되고 설명되었지만, 그러한 예시 및 설명은 예시적인 것이고, 제한적인 것이 아니다. 하기의 청구항들의 범주 내에서 당업자에 의하여 변경 및 수정이 이루어질 수 있음이 이해되어야 한다. 구체적으로, 본 발명은 위에 그리고 아래에서 설명되는 서로 다른 실시예들로부터의 피쳐들의 임의의 조합을 사용하는 추가의 실시예들을 포함한다.
또한, 청구항들에서, 용어 "포함"은 다른 요소들 또는 단계들을 배제하는 것이 아니고, 그리고 "임의의" 또는 "하나의"는 복수를 배제하는 것이 아니다. 단일 유닛이 청구항들에 기재된 몇개의 피쳐들의 기능을 충족시킬 수 있다. 속성 또는 값과 결합된 용어 "특히", "약", "대략적으로" 등은 또한 그 속성 또는 그 값을 각각 정확히 정의하는 것이다. 청구항에서 임의의 참조 부호는 본 발명의 범주를 제약하는 것으로 해석되어서는 안된다.

Claims (14)

  1. 컴퓨터에 의해 구현되며, 시스템, 특히 다양한 태스크들이 제공되는 컴퓨터 시스템의 실시간 성능을 분석하기 위한 방법으로서,
    상기 태스크들은 반복적으로 수행되고, 그리고
    태스크의 실행은 상기 태스크의 활성화에 의하여 트리거되고 이는 상기 태스크의 이벤트를 나타내며,
    상기 이벤트들의 시간 상관(time correlation)을 서술하기 위하여 복수의 서술 요소들(descriptive elements)이 이벤트 스트림으로서 제공되고,
    상기 이벤트 스트림들은 상기 이벤트들의 최대 시간 밀도(time densities) 및/또는 상기 이벤트들의 최소 시간 밀도를 검출할 수 있으며,
    임의의 양의 이벤트 스트림들이 할당됨과 아울러 적어도 두개의 이벤트 스트림들에 의해 캡춰되는 전체 이벤트들의 시간 상관을 서술하는 적어도 하나의 추가적인 서술 요소를 특징으로 하는 시스템의 실시간 성능을 분석하기 위한 방법.
  2. 제1 항에 있어서, 상기 적어도 하나의 추가적인 서술 요소는 제한 이벤트 스트림(limiting event stream)을 서술하는 것을 특징으로 하는 시스템의 실시간 성능을 분석하기 위한 방법.
  3. 제1 항 또는 2 항에 있어서, 상기 추가적인 서술 요소들 중 적어도 하나 또는 제한 이벤트 스트림들은 적어도 두개의 이벤트 스트림들에 의해 캡춰되는 전체 이벤트들(entirety of events)의 최대 시간 상관을 서술하며, 적어도 시간 인터벌(dt)에 대해, 상기 dt 내에서 상기 제한 이벤트 스트림에 의해 허용되는 이벤트들의 양은 상기 dt 내에서 비-제한 이벤트 스트림들(non-limiting event streams)에 의해 허용되는 이벤트들의 합보다 적은 것을 특징으로 하는 시스템의 실시간 성능을 분석하기 위한 방법.
  4. 제1, 2 또는 3 항에 있어서,
    상기 추가적인 서술 요소들 중 적어도 하나 또는 제한 이벤트 스트림들은 전체 이벤트들의 최대 시간 상관을 서술하며, 상기 전체 이벤트들은 적어도 두개의 이벤트 스트림들에 의해 캡춰되고, 적어도 시간 인터벌(dt)에 대해, 상기 dt 내에서 상기 제한 이벤트 스트림에 의해 허용되는 이벤트들의 양은 상기 dt 내에서 상기 비-제한 이벤트 스트림들에 의해 허용되는 이벤트들의 합을 초과하는 것을 특징으로 하는 시스템의 실시간 성능을 분석하기 위한 방법.
  5. 선행하는 청구항들 중 임의의 한 항에 있어서,
    상기 시스템에는 적어도 하나의 컴포넌트 또는 자원이 할당되며, 상기 컴포넌트(들) 중 적어도 하나에는 적어도 두개의 태스크들이 할당되는 것을 특징으로 하는 시스템의 실시간 성능을 분석하기 위한 방법.
  6. 선행하는 청구항들 중 임의의 한 항에 있어서,
    적어도 두개의 태스크들이 하나의 그룹을 구성하며, 임의의 그룹의 태스크들에는 자원이 할당되고 상기 태스크들은 상기 자원을 위해 경쟁하거나 이 그룹의 태스크들이 서로 다른 시간에 상기 자원을 처리(dispose)할 수 있고 상기 시스템은 상기 자원이 상기 그룹의 특정 태스크에 할당되는 시점을 결정하는 방법을 포함하는 것을 특징으로 하는 시스템의 실시간 성능을 분석하기 위한 방법.
  7. 선행하는 청구항들 중 임의의 한 항에 있어서,
    상기 제한 이벤트 스트림들 중 적어도 하나는 적어도 두개의 제한된 이벤트 스트림들(limited event streams)에 할당되며, 상기 제한된 이벤트 스트림들은 각각 서로 다른 태스크들을 활성화시키고, 이 태스크들은 적어도 하나의 조인트 그룹에 할당되며, 각각 일 이벤트에 대해 상기 태스크에 의한 자원의 임시 사용(temporal use)을 캡춰하는 태스크들에 비용이 각각 할당되며,
    상기 태스크들에 의해 공동으로(jointly) 요구되는 비용을 결정하는 단계를 더 포함하고,
    상기 비용을 결정하는 단계는,
    상기 제한 이벤트 스트림의 이벤트들을 고 비용을 가진 태스크에 할당하는 단계와, 상기 할당된 이벤트들의 양은 상기 이벤트 스트림이 상기 태스크를 활성화하는 것에 의해 제한되며,
    상기 할당된 이벤트들의 양을 고려하여 상기 제한 이벤트 스트림의 나머지 결과들을 결정하는 단계와,
    상기 제한 이벤트 스트림의 나머지 이벤트들을 두번째로 높은 비용(next highest costs)을 가진 태스크에 할당하는 단계와, 상기 할당된 이벤트들의 양은 상기 이벤트 스트림이 상기 태스크들을 활성화 하는 것에 의해 제한되고,
    상기 제한 이벤트 스트림의 모든 이벤트들이 할당될때까지 상기 단계들을 반복하는 단계와,
    상기 개별 태스크들의 비용 및 각각 할당된 이벤트들의 양으로부터 전체 비용을 검출하는 단계를 포함하는 것을 특징으로 하는 시스템의 실시간 성능을 분석하기 위한 방법.
  8. 컴퓨터에 의해 구현되며, 시스템, 특히 다양한 태스크들이 제공되는 컴퓨터 시스템의 실시간 성능을 분석하기 위한 방법으로서,
    상기 태스크들은 반복적으로 실행되고, 그리고
    태스크의 실행은 상기 태스크의 활성화에 의하여 트리거되고 이는 상기 태스크의 이벤트를 나타내며,
    이벤트 스트림으로서 상기 이벤트들의 시간 상관(time correlation)을 서술하기 위하여 복수의 서술 요소들(descriptive elements)이 제공되고,
    상기 이벤트 스트림들은 상기 이벤트들의 최대 시간 밀도(time densities) 및/또는 상기 이벤트들의 최소 시간 밀도를 캡춰할 수 있으며,
    임의의 양의 이벤트 스트림들이 할당됨과 아울러 적어도 두개의 이벤트 스트림들에 의해 캡춰되는 전체 이벤트들의 시간 상관을 서술하는 적어도 하나의 추가적인 서술 요소와,
    상기 제한 이벤트 스트림들 중 적어도 하나에는 적어도 두개의 제한된 이벤트 스트림들이 할당되고, 상기 제한된 이벤트 스트림들은 각각 서로 다른 태스크들을 활성화시키고, 상기 태스크들은 적어도 조인트 그룹에 할당되고, 태스크들에는 각각 일 이벤트에 대해 상기 태스크에 의한 상기 자원의 임시 사용을 검출하는 각각의 비용이 할당되고,
    상기 태스크에 의해 공동으로 요구되는 비용을 결정하는 단계를 더 포함하며
    상기 비용을 결정하는 단계는,
    상기 제한 이벤트 스트림의 이벤트들을 고 비용을 가진 태스크에 할당하는 단계와, 상기 할당된 이벤트들의 양은 상기 이벤트 스트림이 상기 태스크를 활성화하는 것에 의해 제한되며,
    상기 할당된 이벤트들의 양을 고려하여 상기 제한 이벤트 스트림의 나머지 결과들을 결정하는 단계와,
    상기 제한 이벤트 스트림의 나머지 이벤트들을 두번째로 높은 비용(next highest costs)을 가진 태스크에 할당하는 단계와, 상기 할당된 이벤트들의 양은 상기 이벤트 스트림이 상기 태스크들을 활성화 하는 것에 의해 제한되고,
    상기 제한 이벤트 스트림의 모든 이벤트들이 할당될때까지 상기 단계들을 반복하는 단계와,
    상기 개별 태스크들의 비용 및 각각 할당된 이벤트들의 양으로부터 전체 비용을 검출하는 단계를 포함하는 것을 특징으로 하는 시스템의 실시간 성능을 분석하기 위한 방법.
  9. 제7 항 또는 8항에 있어서, 적어도 두개의 이벤트 스트림들에는 두개의 서로 다른 제한 이벤트 스트림들이 할당되고,
    상기 태스크들에 의해 공동으로 요구되는 비용을 결정하는 단계를 더 포함하며,
    상기 비용을 결정하는 단계는,
    상기 제한 이벤트 스트림의 이벤트들을 고 비용을 가진 태스크에 할당하는 단계와, 상기 할당된 이벤트들의 양은 상기 이벤트 스트림이 상기 태스크들을 활성화 하는 것 및 상기 제한 이벤트 스트림들에 의해 각각 허용되는 이벤트들의 최소양에 의해 제한되고,
    상기 제한 이벤트 스트림의 나머지 이벤트들을 결정하는 단계와, 여기서 실제로 할당된 이벤트들의 양이 고려되며,
    상기 제한 이벤트 스트림의 나머지 이벤트들을 두번째로 높은 비용(next highest costs)을 가진 태스크에 할당하는 단계와, 상기 할당된 이벤트들의 양은 상기 이벤트 스트림이 상기 태스크들을 활성화 하는 것 및 상기 태스크에 할당되는 다른 제한 이벤트 스트림들에 의해 제한되고,
    상기 제한 이벤트 스트림의 모든 이벤트들이 할당될때까지 상기 단계들을 반복하는 단계와,
    상기 개별 태스크들의 비용 및 그것에 각각 할당된 이벤트들의 양으로부터 전체 비용을 결정하는 단계를 포함하는 것을 특징으로 하는 시스템의 실시간 성능을 분석하기 위한 방법.
  10. 선행하는 청구항들 중 임의의 한 항에 있어서,
    상기 제한 이벤트 스트림들이 시간 인터벌에서 상기 이벤트들의 밀도를 서술하기 위한 임의의 양의 포인트들(an amount of points)에 할당되고 상기 제한 이벤트 스트림들에는 서로 다른 양의 포인트들을 필요로하는 적어도 두개의 제한된 이벤트 스트림들이 할당되는 것을 특징으로 하는 시스템의 실시간 성능을 분석하기 위한 방법.
  11. 선행하는 청구항들 중 임의의 한 항에 있어서,
    제1 태스크의 활성화가 제2 태스크에 의해 수행되며, 이 활성화의 시간 상관은 또한 이벤트 스트림들에 의해 캡춰될 수 있는 것을 특징으로 하는 시스템의 실시간 성능을 분석하기 위한 방법.
  12. 선행하는 청구항들 중 임의의 한 항에 있어서,
    적어도 두개의 자원들이 상기 시스템에 할당되고,
    태스크들의 제1 그룹이 제1 자원에 할당되고 태스크들의 제2 그룹이 제2 자원에 할당되며,
    상기 제1 그룹의 적어도 두개의 태스크들은 상기 제2 그룹의 태스크를 각각 직접 또는 복수의 태스크들을 통해 활성화시키고,
    상기 제1 태스크의 출력된 이벤트 스트림들에 대해 적어도 제한 이벤트 스트림을 결정하는 단계와,
    적어도 제2 태스크에 대한 활성화가 제1 태스크에 의해 직접 수행되지 않는한 상기 제2 태스크의 인커밍 이벤트 스트림들에 대해 적어도 제한 이벤트 스트림을 결정하는 단계와,
    상기 제2 태스크들의 인커밍 이벤트 스트림들의 제한 이벤트 스트림들을 고려하여 상기 제2 태스크들에 의해 공동으로 요구되는 비용을 검출하는 단계를 포함하는 것을 특징으로 하는 시스템의 실시간 성능을 분석하기 위한 방법.
  13. 제12 항에 있어서,
    상기 제2 태스크들의 제한 이벤트 스트림들 중 적어도 하나를 결정하기 위하여 상기 제1 태스크의 제한 이벤트 스트림이 사용되는 것을 특징으로 하는 시스템의 실시간 성능을 분석하기 위한 방법.
  14. 선행하는 청구항들 중 임의의 한 항에 있어서,
    상기 태스크들은 CPU 또는 전자 회로 모듈에 의해 실행될 수 있는 유닛들인 것을 특징으로 하는 시스템의 실시간 성능을 분석하기 위한 방법.
KR1020117021553A 2009-02-16 2010-02-12 시스템의 실시간 성능을 분석하기 위한 방법 KR20110124309A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15282809P 2009-02-16 2009-02-16
US61/152,828 2009-02-16

Publications (1)

Publication Number Publication Date
KR20110124309A true KR20110124309A (ko) 2011-11-16

Family

ID=42201299

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117021553A KR20110124309A (ko) 2009-02-16 2010-02-12 시스템의 실시간 성능을 분석하기 위한 방법

Country Status (8)

Country Link
US (1) US8533727B2 (ko)
EP (1) EP2396725A1 (ko)
JP (1) JP2012518215A (ko)
KR (1) KR20110124309A (ko)
CN (1) CN102317915B (ko)
CA (1) CA2752806C (ko)
IL (1) IL214694A0 (ko)
WO (1) WO2010092146A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9477537B2 (en) * 2010-12-13 2016-10-25 Microsoft Technology Licensing, Llc Reactive coincidence
KR101383225B1 (ko) * 2012-09-03 2014-04-09 서울대학교산학협력단 하나 이상의 실행 유닛에 대한 성능 분석 방법, 성능 분석 장치 및 성능 분석 방법을 수행하는 프로그램을 기록한 컴퓨터 판독가능 기록매체
US10311384B2 (en) 2015-07-29 2019-06-04 Microsoft Technology Licensing, Llc Automatic creation and maintenance of a taskline
GB2545507B (en) * 2015-12-18 2019-07-17 Imagination Tech Ltd Controlling scheduling of a GPU
US10552205B2 (en) * 2016-04-02 2020-02-04 Intel Corporation Work conserving, load balancing, and scheduling
CN109828838A (zh) * 2018-12-18 2019-05-31 深圳先进技术研究院 一种资源分配和任务调度多目标协同处理方法
FR3093579B1 (fr) * 2019-03-07 2021-07-30 Thales Sa Ordonnanceur d'evenements pour microprocesseur
CN112787970B (zh) * 2019-11-01 2024-04-16 华为技术有限公司 用于订阅事件流的方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3376906B2 (ja) * 1998-02-18 2003-02-17 トヨタ自動車株式会社 計算機の負荷率計測システム
DE102005010580A1 (de) * 2005-03-04 2006-09-07 Inchron Gmbh Verfahren zur Echtzeitanalyse eines Systems
US8306784B2 (en) 2006-07-03 2012-11-06 Inchron Gmbh Real-time analysis of a computer system
GB2443277B (en) * 2006-10-24 2011-05-18 Advanced Risc Mach Ltd Performing diagnostics operations upon an asymmetric multiprocessor apparatus
US7770183B2 (en) * 2007-01-30 2010-08-03 Microsoft Corporation Indirect event stream correlation

Also Published As

Publication number Publication date
IL214694A0 (en) 2011-11-30
JP2012518215A (ja) 2012-08-09
WO2010092146A1 (en) 2010-08-19
CA2752806A1 (en) 2010-08-19
CN102317915B (zh) 2014-03-26
US8533727B2 (en) 2013-09-10
CN102317915A (zh) 2012-01-11
CA2752806C (en) 2018-07-17
US20120036510A1 (en) 2012-02-09
EP2396725A1 (en) 2011-12-21

Similar Documents

Publication Publication Date Title
KR20110124309A (ko) 시스템의 실시간 성능을 분석하기 위한 방법
Palencia et al. Exploiting precedence relations in the schedulability analysis of distributed real-time systems
Harbour et al. Timing analysis for fixed-priority scheduling of hard real-time systems
Schliecker et al. Real-time performance analysis of multiprocessor systems with shared memory
Mikučionis et al. Schedulability analysis using uppaal: Herschel-planck case study
Choi et al. Chain-based fixed-priority scheduling of loosely-dependent tasks
Schliecker et al. Reliable performance analysis of a multicore multithreaded system-on-chip
Bai et al. ASDYS: Dynamic scheduling using active strategies for multifunctional mixed-criticality cyber–physical systems
Skalistis et al. Near-optimal deployment of dataflow applications on many-core platforms with real-time guarantees
Kodase et al. Improving scalability of task allocation and scheduling in large distributed real-time systems using shared buffers
Klaus et al. Data propagation delay constraints in multi-rate systems: Deadlines vs. job-level dependencies
Stavrinides et al. Scheduling real-time jobs in distributed systems-simulation and performance analysis
Wasly et al. Bundled scheduling of parallel real-time tasks
Ueter et al. Response-time analysis and optimization for probabilistic conditional parallel DAG tasks
Ahmed et al. Exact response-time bounds of periodic DAG tasks under server-based global scheduling
Racu et al. Improved response time analysis of tasks scheduled under preemptive round-robin
Leontyev et al. A unified hard/soft real-time schedulability test for global EDF multiprocessor scheduling
US20160335115A1 (en) System and method for multi-level real-time scheduling analyses
Zhu et al. Predictable runtime monitoring
Frijns et al. Timing analysis of first-come first-served scheduled interval-timed directed acyclic graphs
Rahni et al. Feasibility analysis of real-time transactions
Peng et al. MILP-based deadline assignment for end-to-end flows in distributed real-time systems
Henia et al. Improved output jitter calculation for compositional performance analysis of distributed systems
Bohlin et al. Bounding shared-stack usage in systems with offsets and precedences
Albers Approximative real-time analysis

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
SUBM Surrender of laid-open application requested