KR101621280B1 - 최악 응답 시간 분석 방법 및 컴퓨터 프로그램 - Google Patents

최악 응답 시간 분석 방법 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR101621280B1
KR101621280B1 KR1020150016279A KR20150016279A KR101621280B1 KR 101621280 B1 KR101621280 B1 KR 101621280B1 KR 1020150016279 A KR1020150016279 A KR 1020150016279A KR 20150016279 A KR20150016279 A KR 20150016279A KR 101621280 B1 KR101621280 B1 KR 101621280B1
Authority
KR
South Korea
Prior art keywords
task
time
maximum
delay amount
response time
Prior art date
Application number
KR1020150016279A
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 서울대학교산학협력단
Priority to KR1020150016279A priority Critical patent/KR101621280B1/ko
Application granted granted Critical
Publication of KR101621280B1 publication Critical patent/KR101621280B1/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

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)

Abstract

본 발명은 (a) 태스크 그래프들의 태스크들의 스케줄 시간을 산출하는 단계로서, 태스크 그래프들의 제1 태스크 그래프에 포함된 제1 태스크에 대한 최대 시작 시간 및 최대 종료 시간을 산출하는, 스케줄 시간 산출 단계 및 (c) 산출된 최대 종료 시간을 이용하여 태스크 그래프들에 대한 최악 응답 시간을 결정하는 단계를 포함하며, 단계 (a)는 제1 태스크의 하위 우선순위 태스크에 의한 실행 지연량 및 상위 우선순위 태스크에 의한 실행 지연량에 기초하여 최대 시작 시간을 산출하는, 최악 응답 시간 분석 방법 및 컴퓨터 프로그램에 관한 것이다.
본 발명을 이용함으로써 빠르고 정확한 최악 응답 시간을 산출 가능하다.

Description

최악 응답 시간 분석 방법 및 컴퓨터 프로그램{WORST CASE RESPONSE TIME ANALYSIS METHOD AND COMPUTER PROGRAM}
본 발명은 최악 응답 시간 분석 방법 및 컴퓨터 프로그램에 관한 것으로서, 구체적으로는 분산 실시간 내장형 시스템에서 응용의 다양한 상호 간섭을 고려하여 정확한 최악 응답 시간을 산출할 수 있는, 최악 응답 시간 분석 방법 및 컴퓨터 프로그램에 관한 것이다.
항공기, 로켓, 자동차, 로봇 분야는 다양한 센서를 구비하고 외부 센서로부터의 데이터에 대한 처리가 한정된 시간 내에 실시간으로 이루어져야 한다. 만일 이 시스템이 응답의 실시간성을 보장하지 못하면 치명적인 사고로 이어질 수 있고 시스템의 안정성을 보장하지 못하고 막대한 손해를 가져온다.
많은 실시간 성능 분석 기법이 제안되었다. 기존 성능 분석 기법은 실시간성의 확실한 보장을 위해 보수적으로 매우 큰 응답 시간(Response Time) 상한선을 산출한다. 이에 따라, 기존 성능 분석 기법을 통해 시스템을 설계하면 설계된 시스템은 비효율적으로 설계될 수 밖에 없다.
항공기, 로켓, 자동차, 로봇 분야에서 설계되는 시스템은 일반적으로 분산 프로세서 시스템을 구성한다. 분산 프로세서 시스템은 다수의 프로세서가 서로 버스를 통해 연결되고 각 프로세서는 할당된 태스크를 수행하도록 구성된다. 분산 프로세서 시스템은 항공기 등에 내장되고 실시간성을 보장하도록 구성된다.
분산 프로세서 시스템에서 이 시스템에 구동될 응용 프로그램의 최악 응답 시간(Worst Case Response Time)을 시스템 설계 완료 이전에 제공하는 분석 방법에 대한 연구가 이루어지고 있다.
단일 프로세서 시스템에서의 최악 응답 시간의 예측 또는 분석에 대한 연구는 오래 역사를 가지고 있다. 그러나 단일 프로세서 시스템 하에서도 태스크 그래프(Task Graph) 형태로 태스크 간에 의존 관계를 가지는 경우 최악 응답 시간을 정확하게 예측하기가 어렵다. 최근, 자동차 전장 시스템의 분산 프로세서 시스템하에서 최악 응답 시간을 예측하는 문제가 중요한 문제로 대두됨에 따라 여러 기술들이 제안되고 있다.
최악 응답 시간에 관련하여 기존에 알려진 대표적인 분석 기법으로서 STBA(Scheduling Time Bound Analysis, J. Kim, H. Oh, J. Choi, H. Ha, S. Ha,"A Novel Analytical Method for Worst Case Response Time Estimation of Distributed Embedded Systems", Proceedings of the The 50th Annual Design Automation Conference on Design Automation Conference, pp. 1-10, 2013.5.) 기법과 응답 시간 분석법(T. Yen and W. Wolf, "Performance estimation for real-time distributed embedded systems",IEEE TPDS., 9(11), pp. 1125-1136, 1998.11.)이 있다. STBA는 태스크 그래프의 태스크에 대해 실제 스케줄링을 통해 스케쥴 시간 범위를 탐색하고 그 탐색 결과에 따라 태스크 그래프 또는 복수의 태스크 그래프를 포함하는 응용의 최악 응답 시간을 산출한다. 응답 시간 분석법은 태스크 단위로 최악 응답 시간을 계산한다.
STBA 기법은 태스크 그래프의 확장을 통해서 최악 응답 시간을 계산하는 데, 확장되는 태스크 그래프의 확장이 각 태스크 그래프간의 주기 공통성(최소공배수)에 의존하여 최악 응답 시간의 복잡도가 높은 문제가 존재한다. 응답 시간 분석법은 과소 예측하는 경향이 존재하여 시스템 설계 완성 후 시스템 적용시 불의의 사고가 발생할 수 있다. 또한 STBA 기법 및 응답 시간 분석법은 공히 과예측하는 경향이 존재하여 시스템 설계를 필요 이상의 사양으로 설계하도록 유도하는 문제가 존재한다.
따라서, 기존 알려진 최악 응답 시간 분석 기법의 문제점들을 극복하고, 최악 응답 시간 분석에 요구되는 계산 복잡도는 낮추면서 더 정확한 최악 응답 시간 분석이 가능하도록 하는, 최악 응답 시간 분석 방법 및 컴퓨터 프로그램이 필요하다.
본 발명은 상술한 문제점을 해결하기 위해서 안출한 것으로서, 기존에 알려진 최악 응답 시간 분석 기법의 과예측 및 과소 예측을 제거하여 정확한 최악 응답 시간의 분석이 가능하고 계산 복잡도를 낮출 수 있도록 하는, 최악 응답 시간 분석 방법 및 컴퓨터 프로그램을 제공하는 데 그 목적이 있다.
상기와 같은 목적을 달성하기 위한 최악 응답 시간 분석 방법은 (a) 태스크 그래프들의 태스크들의 스케줄 시간을 산출하는 단계로서, 태스크 그래프들의 제1 태스크 그래프에 포함된 제1 태스크에 대한 최대 시작 시간 및 최대 종료 시간을 산출하는, 스케줄 시간 산출 단계 및 (c) 산출된 최대 종료 시간을 이용하여 태스크 그래프들에 대한 최악 응답 시간을 결정하는 단계를 포함하며, 단계 (a)는 제1 태스크의 하위 우선순위 태스크에 의한 실행 지연량 및 상위 우선순위 태스크에 의한 실행 지연량에 기초하여 최대 시작 시간을 산출한다.
또한 상기와 같은 목적을 달성하기 위한 컴퓨터 프로그램은 하드웨어에 결합되어 최악 응답 시간 분석 방법의 각 단계를 실행시키기 위해 매체에 저장되고, 최악 응답 시간 분석 방법은 (a) 태스크 그래프들의 태스크들의 스케줄 시간을 산출하는 단계로서, 태스크 그래프들의 제1 태스크 그래프에 포함된 제1 태스크에 대한 최대 시작 시간 및 최대 종료 시간을 산출하는, 스케줄 시간 산출 단계 및 (c) 산출된 최대 종료 시간을 이용하여 태스크 그래프들에 대한 최악 응답 시간을 결정하는 단계를 포함하며, 단계 (a)는 제1 태스크의 하위 우선순위 태스크에 의한 실행 지연량 및 상위 우선순위 태스크에 의한 실행 지연량에 기초하여 최대 시작 시간을 산출한다.
상기와 같은 본 발명에 따른 최악 응답 시간 분석 방법 및 컴퓨터 프로그램은 기존에 알려진 최악 응답 시간 분석 기법의 과예측 및 과소 예측을 제거하여 정확한 최악 응답 시간의 분석이 가능하고 계산 복잡도를 낮출 수 있도록 하는 효과가 있다.
도 1은 최악 응답 시간 분석 방법이 적용될 수 있는 장치의 예시적인 하드웨어 블록도를 도시한 도면이다.
도 2는 Y&W 분석법에서의 주기 쉬프팅 기법의 원리를 나타내는 도면이다.
도 3은 Y&W 분석법의 주기 쉬프팅 계산으로 인한 과소 예측의 예를 도시한 도면이다.
도 4는 Y&W 분석법에서 발생하는 과예측의 예를 도시한 도면이다.
도 5는 STBA에서의 태스크 그래프 확장 예를 도시한 도면이다.
도 6은 동적 오프셋에 의해 주기만큼의 시작 오프셋을 다른 태스크 그래프가 가지는 모습을 도시한 도면이다.
도 7은 최악 응답 시간 분석을 위한 예시적인 제어 흐름을 도시한 도면이다.
도 8은 최악 응답 시간 분석을 위한 예시적인 슈도(Pseudo) 코드를 도시한 도면이다.
도 9는 요청-요청 간격, 시작-요청 간격 및 종료-요청 간격에 대한 계산 예를 도시한 도면이다.
도 10은 주기 이동 값 계산 방법의 예를 도시한 도면이다.
상술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술 되어 있는 상세한 설명을 통하여 더욱 명확해 질 것이며, 그에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예를 상세히 설명하기로 한다.
도 1은 최악 응답 시간 분석 방법이 적용될 수 있는 장치(100)의 예시적인 하드웨어 블록도를 도시한 도면이다.
도 1에 따르면 최악 응답 분석을 위한 이 장치(100)(이하 '장치'라고 지칭함)는 입력 인터페이스(101), 출력 인터페이스(103), 메모리(105), 저장 매체(107), 시스템 버스/제어 버스(111) 및 중앙 처리 유닛(113)을 포함하고 통신 인터페이스(109)를 더 포함할 수 있다. 특정 하드웨어 블록은 장치(100)의 용도나 변형예에 따라 생략될 수 있다. 예를 들어 장치(100)의 용도에 따라 입력 인터페이스(101)나 출력 인터페이스(103) 등은 생략 가능하고 다른 용도에 따라 통신 인터페이스(109)는 생략 가능하다.
장치(100)는 분산 내장형 시스템의 설계를 위해 제공되는 기기이다. 특히, 항공기, 로켓, 자동차, 로봇 등의 설계를 담당하는 연구실이나 설계실에서 설계 중인 또는 주어진 분산 프로세서 시스템에서 특정 응용(Application)의 최악 응답 시간을 분석하는 기기이다.
분산 프로세서 시스템은 적어도 복수의 프로세서(PE)와 프로세서 사이에 데이터를 송수신하기 위한 버스로 구성된다. 버스는 각 분야별로 이용가능한 병렬 버스이거나 시리얼 버스이다. 버스 또한 프로세서(PE)로 가정될 수 있다. 프로세스(PE)는 맵핑된 태스크를 수행하기 위한 프로세싱 유닛으로 가정되고 프로그램 코드를 수행할 수 있는 내장형 프로세싱 유닛이거나 프로세싱 유닛 간 데이터를 송수신하기 위한 버스일 수 있다.
장치(100)는 개인용 컴퓨터이거나 노트북이거나 워크스테이션이거나 최악 응답 시간의 분석 및 그 결과를 제공하는 서버 등일 수 있다.
장치(100)의 각 하드웨어 블록들을 간단히 살펴보면, 입력 인터페이스(101)는 사용자 입력을 수신하기 위한 인터페이스이다. 입력 인터페이스(101)는 마우스, 키보드 및/또는 터치 패널 등을 구비하고 주어진 또는 설계 중인 분산 프로세서 시스템에서 수행될 응용에 대한 분석 요청을 사용자 입력으로 수신한다. 수신된 입력은 시스템 버스/제어 버스(111)를 통해 입력 데이터로 중앙 처리 유닛(113)에 전달된다.
출력 인터페이스(103)는 LCD 모듈, LED 모듈 및/또는 스피커 등을 구비하여 장치(100)에서 수행된 결과나 중간 결과를 출력하기 위한 인터페이스이다. 출력 인터페이스(103)는 예를 들어 분석 중인 응용에 대한 최악 응답 시간의 결과를 알 수 있도록 한다.
메모리(105)는 휘발성 메모리를 포함한다. 메모리(105)는 각종 데이터와 프로그램을 임시로 저장할 수 있다. 예를 들어, 메모리(105)는 중앙 처리 유닛(113)에서 수행되는 최악 응답 시간 분석 프로그램이나 분석 프로그램의 입력 대상인 응용이나 분산 프로세서 시스템을 나타내는 데이터를 임시로 저장한다.
저장 매체(107)는 적어도 중앙 처리 유닛(113)에서 수행되는 분석 프로그램과 분석 프로그램의 입력 대상인 응용, 분산 프로세서 시스템의 데이터를 저장한다. 응용은 태스크 그래프(Task Graph)로 표현된다. 하나의 응용은 다수의 태스크 그래프를 포함할 수 있고 각 태스크 그래프는 하나 이상의 태스크를 포함한다. 태스크는 분산 프로세서 시스템의 특정 프로세싱 유닛(Processing Element, 이하 'PE'라고도 함)에 할당된다. 태스크의 할당은 사용자에 의해서 지정될 수 있다. 태스크는 또한 각종 파라미터(parameter)를 포함한다. 예를 들어 태스크는 적어도 최소 수행 시간(Best Case Execution Time, 'BCET'라고도 지칭됨) 및 최악 수행 시간(Worst Case Execution Time, 'WCET'라고도 지칭됨))을 포함한다. 최소 수행 시간은 이 태스크가 수행 시작에서부터 최상으로 빨리 완료하는 수행 시간을 나타내고 최악 수행 시간은 수행 시작후 최악으로 늦게 완료하는 수행 시간을 나타낸다. 따라서 태스크는 할당된 특정 PE를 점유하고 구동될 때, 최소 수행 시간 및 최악 수행 시간 범위 내에서 태스크의 처리가 완료된다.
태스크 그래프는 태스크 간의 의존 관계(dependency)를 나타내도록 표현된다. 예를 들어 태스크 그래프는 전임(predecessor) 태스크와 후임(sucessor) 태스크의 관계를 나타내기 위해서 방향성 에지를 이용한다. 태스크 그래프에서 방향성 에지에 의해서 전임 태스크는 먼저 수행되어야 하고 수행 완료 후에 후임 태스크가 수행되어야 하는 것으로 정의된다. 이러한 의존 관계를 가지지 않는 태스크는 다른 태스크에 독립적으로 특정 PE에서 수행 가능하다.
태스크 그래프 또한 각종 파라미터를 더 포함한다. 예를 들어 태스크 그래프는 수행 주기를 포함한다. 수행 주기는 해당 태스크 그래프의 반복 주기를 나타낸다. 태스크 그래프 및 태스크의 파라미터는 응용에 포함되어 중앙 처리 유닛(113)이 이 각종 파라미터를 이용한다.
분석 프로그램은 분산 프로세서 시스템에서 주어진 응용을 분석하여 응용의 최악 응답 시간을 산출한다. 분석 프로그램은 소프트웨어 패키지로 배포될 수 있다. 소프트웨어 패키지는 본 발명에 따른 분석 프로그램 뿐 아니라 다른 프로그램을 더 포함할 수 있다. 분석 프로그램에 대해서는 도 7 이하에서 상세히 살펴보도록 한다.
중앙 처리 유닛(113)은 명령어(instruction)을 실행할 수 있는 하나 이상의 실행 유닛(execution unit)을 포함하여 저장 매체(107)에 저장된 프로그램의 코드를 실행한다. 중앙 처리 유닛(113)은 소위 CPU, MPU 등으로 지칭될 수 있다.
특히, 중앙 처리 유닛(113)은 저장 매체(107)에 저장된 분석 프로그램을 메모리(105) 등에 로딩하고 분석 프로그램을 수행하여 특정 응용에 대한 최악 응답 시간을 산출한다. 중앙 처리 유닛(113), 특히 분석 프로그램,에 대해서는 도 7 이하에서 보다 더 구체적으로 살펴보도록 한다.
시스템 버스/제어 버스(111)는 하드웨어 블록들 사이의 각종 아날로그/디지털의 데이터를 송수신할 수 있는 버스이다. 시스템 버스/제어 버스(111)는 병렬 버스이거나 시리얼 버스이거나 특정 하드웨어 블록을 위한 전용 버스일 수 있다. 시스템 버스/제어 버스(111)는 버스의 타입에 따라 아날로그나 디지털의 데이터를 송수신할 수 있다.
더 포함가능한 통신 인터페이스(109)는 인터넷망에 연결되어 네트워크 패킷을 송수신하기 위한 인터페이스이다. 통신 인터페이스(109)는 예를 들어 와이파이나 유선 랜에 연결되기 위한 파이(PHY) 칩 등을 포함한다.
본 발명에 따른 최악 응답 시간 분석 방법을 살펴보기에 앞서, 기존에 알려진 응답 시간 분석법 및 STBA 기법에 대해서 간단히 살펴보도록 한다.
응답 시간 분석법은 단일 프로세서 환경에서 의존 관계의 고려 없이 주기적으로 나타나는 태스크들을 고정 우선순위 기반으로 선점(Preemptive) 스케줄링 할 때, 각 태스크의 최악 응답 시간을 분석하는 방법이다. 응답 시간 분석법은 아래와 같은 수식으로 표현된다.
Figure 112015011187996-pat00001
여기서,
Figure 112015011187996-pat00002
Figure 112015011187996-pat00003
의 최악 수행 시간,
Figure 112015011187996-pat00004
는 태스크
Figure 112015011187996-pat00005
의 우선순위,
Figure 112015011187996-pat00006
는 태스크
Figure 112015011187996-pat00007
의 주기(Period)를 나타낸다. 수학식 1은 응답 시간 동안 상위 우선순위의 태스크가 나타날 수 있는 횟수(
Figure 112015011187996-pat00008
)를 계산하여 선점되는 양을 합산하고 이 과정을 수렴할 때까지 반복하는 것으로 표현한다.
응답 시간 분석법은 가장 기본이 되는 분석 방법으로서, 본 발명에 따라 제안되는 분석 방법과는 달리 태스크들간의 의존 관계나 비선점(Nonpreemptive) 스케줄링을 지원하지 못한다.
한편, Yen&Wolf에 의해 제안된 분석 방법(T. Yen and W. Wolf, "Performance estimation for real-time distributed embedded systems",IEEE TPDS., 9(11), pp. 1125-1136, 1998.11., 이하 'Y&W 분석법'이라고 지칭함)은 수학식 1에 따른 응답 시간 분석법을 태스크들간의 의존 관계를 지원하도록 확장한 방법이다. Y&W 분석법은 Phase adjustment(이하 '페이저 조정'이라고 지칭함), Max separation(이하 '최대 분리'라고 지칭함), 및 Period Shifting(이하 '주기 쉬프팅'이라고 지칭함) 기법을 제안하고 있다.
수학식 1은 모든 태스크들이 동일한 시점에 수행 요청되는 경우가 최악의 경우라는 가정에 기반하고 있다. 그러나 의존 관계가 있는 태스크 그래프에서는 각 태스크의 최악 응답 시간 분석에서 상호 의존 관계에 의한 효과를 고려해야 한다.
이러한 의존 관계에 대한 반영을 적용한 기법이 Y&W 분석법이다. 전임 태스크에서 발생한 선점이 후임 태스크에서 다시 나타나지 못하므로 선점 가능한 태스크가 다시 나타나는 시점에 대한 기록을 의존 관계에 따라 전달하여 과예측이 발생하지 않게 하고 이 기법을 페이저 조정 기법이라고 한다. 최대 분리 기법은 임의의 두 태스크에 대해 두 태스크가 서로 간섭을 일으킬 수 있는 지를 판단한다. 의존 관계에 있는 태스크 그래프의 경우, 직접적으로 의존 관계가 있는 두 태스크는 절대로 간섭을 일으킬 수 없다. 직접적인 의존 관계가 없는 경우에도 의존 관계에 따른 분석을 통해서 간섭이 절대로 나타나지 않는 경우를 판별할 수 있다. 이런 판별을 통해 선점 가능한 상위 우선순위 태스크라도 응답 시간 분석에 포함되지 않도록 하여 과예측을 줄일 수 있다.
또한, 태스크간의 의존 관계는 태스크의 주기(성)에도 변화를 가져온다. 예를 들어 전임 태스크들이 늦게 끝나게 되면 후임 태스크의 요청 시점이 늦게 발생하지만, 태스크 또는 태스크 그래프의 다음 주기는 전임 태스크의 수행이 빨리 끝나 후임 태스크의 요청 시점이 빨라질 수 있다. 이런 경우 두 주기 사이의 동일한 두 태스크 사이의 발생 주기가 태스크 그래프의 주기보다 짧아지게 된다. 이러한 의존 관계에 의한 주기 변화를 고려하는 기법이 주기 쉬프팅 기법이다.
도 2는 Y&W 분석법에서의 주기 쉬프팅 기법의 원리를 나타내는 도면이다.
도 2의,
Figure 112015011187996-pat00009
,
Figure 112015011187996-pat00010
은 각각 태스크
Figure 112015011187996-pat00011
의 최소 요청 시간(minimal release time) 및 최대 요청 시간(maximal release time)을 나타낸다. Y&W 분석법은 선점 횟수를 계산하는 항에 주기 이동 값
Figure 112015011187996-pat00012
을 더하여 주기 이동을 반영한다.
Y&W 분석법은 여러 기법의 적용으로 아래 수학식 2와 같이 표현된다.
Figure 112015011187996-pat00013
여기서,
Figure 112015011187996-pat00014
는 최대 분리를 통해
Figure 112015011187996-pat00015
와 간섭이 발생하지 않는다고 판단된 태스크의 집합,
Figure 112015011187996-pat00016
은 태스크
Figure 112015011187996-pat00017
의 요청을 기준으로 태스크
Figure 112015011187996-pat00018
가 다음에 나타나는 최소 시간 간격을 나타내며,
Figure 112015011187996-pat00019
는 주기 이동 값으로서
Figure 112015011187996-pat00020
이다.
다른 기법은 STBA 기법으로서, 주기(성)을 가지는 태스크들을 필요한 만큼 확장하여 각 태스크의 실제 태스크 단위로 구성한 뒤에, 태스크들을 스케줄링하여 가능한 스케줄 시간 범위를 탐색하는 방법이다.
STBA 기법은 최소, 최대 요청 시간 범위(
Figure 112015011187996-pat00021
,
Figure 112015011187996-pat00022
), 최소, 최대 시작 시간 범위(
Figure 112015011187996-pat00023
,
Figure 112015011187996-pat00024
), 최소, 최대 종료 시간 범위(
Figure 112015011187996-pat00025
,
Figure 112015011187996-pat00026
)의 총 세가지 스케줄 시간 범위를 산출한다. 태스크들은 실제 스케줄되므로 임의의 태스크
Figure 112015011187996-pat00027
의 스케줄 시간 범위를 계산할 때는 다른 태스크들이 수행중에 무조건 나타나는지 혹은 나타날 가능성이 있는지를 시간 비교를 통해 판단하여 각 태스크의 스케줄 시간 범위를 계산한다. 충분히 적당한 만큼 확장되었다면 각 태스크의 스케줄링 결과를 통해 응용 내부의 태스크 중 최소 요청 시간으로부터 최대 종료 시간까지를 특정 응용의 최악 응답 시간으로 계산할 수 있다.
Y&W 분석법 및 STBA 분석법은 각각 치명적인 문제점을 가지고 있고 이에 대해 이하에서 살펴보도록 한다.
도 3은 Y&W 분석법의 주기 쉬프팅 계산으로 인한 과소 예측의 예를 도시한 도면이다.
도 3을 참조하면, 태스크
Figure 112015011187996-pat00028
는 에지에 의한 전임 태스크가 없는 소스 태스크이기 때문에, 최소 및 최대 요청 시간은 둘 다 0이다. Y&W 분석법에 따른 주기 이동 값
Figure 112015011187996-pat00029
이므로, 다른 태스크가 볼때
Figure 112015011187996-pat00030
는 주기 30 간격(도 3의 (a) 참조))으로 나타나야 한다.
그러나 상위 우선순위 태스크인
Figure 112015011187996-pat00031
의 선점으로 인해 20의 주기로
Figure 112015011187996-pat00032
가 나타날 수 있고(도 3의 (b) 참조) 이에 따라 Y&W 분석법에서는 과소 예측이 발생한다. 이는 Y&W 분석법에서 전임 태스크에 의한 요청 시간 변경만을 고려하고 선점에 의한 시간 변화는 고려하지 않기 때문이다.
또한, Y&W 분석법은 과예측하는 성질을 가진다. 주기 쉬프팅 기법은 도 2에서 알 수 있듯이 의존 관계에 의한 주기 변경을 고려해주기 위한 방법이다. 주기 변경은 최초 한번의 주기만이 감소하고 이후의 주기는 원래의 주기대로 나타나야 한다. 그러나 Y&W 분석법은 주기 이동 값을 매번 계산에 반영하기 때문에 해당하는 주기의 감소가 실제보다 훨씬 더 많이 나타는 것처럼 계산되어 과예측하는 문제를 가진다.
도 4는 Y&W 분석법에서 발생하는 과예측의 예를 도시한 도면이다.
수학식 2에 따라 응답 시간을 계산하면,
Figure 112015011187996-pat00033
의 주기 이동 값은
Figure 112015011187996-pat00034
이다.
Figure 112015011187996-pat00035
의 응답 시간은
Figure 112015011187996-pat00036
으로 계산된다.
Figure 112015011187996-pat00037
의 응답 시간은
Figure 112015011187996-pat00038
이다. 하지만
Figure 112015011187996-pat00039
의 응답 시간은
Figure 112015011187996-pat00040
으로 실제 선점보다 더 많은 선점이 계산된다.
STBA 분석법의 경우에는 과예측 및 분석 복잡도 문제가 존재한다. STBA는 태스크 단위가 아닌 태스크들의 실제 스케줄링을 통해 분석을 진행하기에 시간 분석 시에 주기에 따른 태스크 그래프의 확장이 요구된다. 이 확장은 최악 시간이 더 이상 증가하지 않을 때까지 진행되므로, STBA에서의 분석 복잡도는 태스크의 개수가 아닌 확장된 후의 분석 대상인 태스크 개수에 비례하여 증가한다.
도 5는 STBA에서의 태스크 그래프 확장 예를 도시한 도면이다. STBA 분석법은 분석 대상인 태스크 그래프(target graph)에게 영향을 미칠 모든 태스크를 생성시키는 것이다. STBA의 목표는 가능한 최악의 경우를 스케줄 하는 것이므로, 타겟 그래프 뿐 아니라 다른 그래프 또한 확장되어 모든 태스크에 대한 스케줄 가능 범위를 계산한다. 이에 따라 STBA의 문제 분석 복잡도는 지수적으로 증가할 위험이 존재한다.
STBA 분석법의 과예측 문제도 태스크 그래프의 확장과 관련된다. 분산 내장형 시스템에서의 분석은 다른 응용 또는 다른 태스크 그래프들의 수행 시점을 가정할 수 없고 임의의 시점에 수행되는 것으로 고려된다. 이를 동적 오프셋 문제라 한다. STBA에서 동적 오프셋 문제를 처리하기 위해 타겟 그래프가 아닌 태스크 그래프들의 경우 확장된 태스크들이 자신의 주기만큼의 도착 시간 범위를 가지도록 처리하여 동적 오프셋을 시뮬레이션한다. 그러나 이 방식은 각 태스크들의 스케줄 가능 범위를 지나치게 확장하여 과예측을 유발한다.
도 6은 동적 오프셋에 의해 주기만큼의 시작 오프셋을 다른 태스크 그래프가 가지는 모습을 도시한 도면이다. 도 6에서 대상(Target) 태스크 그래프를 분석할 때 최악의 스케줄 범위를 계산하기 위해, TG0는 가장 늦은 시점에 시작하고, TG1은 가장 빠른 시점에 시작하는 걸로 계산한다. 그러나 이는 TG0와 TG1이 같은 시점에 시작하는 불가능한 상황이 되어 과예측을 유발한다.
이와 같이, Y&W 분석법은 적어도 주기 쉬프팅 기법이 가지는 문제를 내포하고 STBA 분석법은 동적 오프셋 적용에 한계가 존재한다. 또한 Y&W 분석법은 태스크 단위의 분석으로 태스크 수에 비례하는 복잡도를 가지는 반면 STBA 분석법은 응용의 태스크 그래프의 복잡도에 따라 문제 분석 복잡도가 급격히 증가하는 문제가 존재한다. 또한 STBA 분석법은 시간 범위의 비교로 부분 선점의 처리가 가능하나 Y&W 분석법은 부분 선점을 처리하지 못한다.
이와 같은 Y&W 분석법과 STBA의 장단점을 고려하여 효율적으로 정확한 최악 응답 시간 분석 기법이 필요하고 이하 구체적으로 살펴보도록 한다.
도 7은 최악 응답 시간 분석을 위한 예시적인 제어 흐름을 도시한 도면이고 도 8은 최악 응답 시간 분석을 위한 예시적인 슈도(Pseudo) 코드를 도시한 도면이다. 도 8은 도 7의 제어 흐름에 대한 예시적인 슈도 코드를 도시한 도면이며 이하에서는 필요시 도 7과 연계하여 도 8을 설명하도록 한다.
도 7의 제어 흐름은 장치(100)에서 수행되며, 바람직하게는 저장 매체(107)에 저장된 분석 프로그램을 중앙 처리 유닛(113)이 메모리(105) 등에 로딩하고 이후 중앙 처리 유닛(113)이 이 분석 프로그램의 프로그램 코드를 수행함으로써 이루어진다.
분석 프로그램은 프로그램 패키지로 구성되어 배포될 수 있다. 특히 이 분석 프로그램은 온라인 또는 오프라인 매체에 저장되어 배포될 수 있다. 매체는 예를 들어 이동식 메모리(예를 들어 SD 카드, USB 메모리 등), 하드디스크, CD, DVD 등 다양한 형태로 구성될 수 있다. 매체는 특정 장치 내에 내장되거나 특정 장치에 착탈식으로 연결가능하다. 이 분석 프로그램은 장치(100)의 하드웨어 블록도(도 1 참조)상에서 수행가능하다.
먼저 장치(100)는 분석 프로그램을 메모리(105) 등에 로딩하고 분석 프로그램의 코드를 수행(S100)한다. 분석 프로그램의 수행에 따라 사용자는 입력 인터페이스(101)를 통해 각종 데이터를 특정(지정)한다. 예를 들어 사용자는 설계중 또는 설계 완료된 분산 프로세서 시스템의 아키텍처, 분산 프로세서 시스템에서 수행될 응용, 응용과 분산 프로세서 시스템의 아키텍처 사이의 맵핑 관계, 응용에 포함된 각 태스크의 수행 시간 범위, 아키텍처에 포함된 프로세서(PE)의 스케줄링 정책 등을 입력 인터페이스(101)와 출력 인터페이스(103)를 통해 특정한다. 이러한 특정을 통해 대응하는 데이터가 저장 매체(107)로부터 식별되고 메모리(105) 등에 로딩(S110)된다.
좀 더 구체적으로 살펴보면, 아키텍처는 분산 프로세서 시스템에 탑재된 프로세서의 개수 및 프로세서 간 연결 관계를 특정하는 데이터이다. 프로세서는 하나 이상의 태스크를 수행할 수 있는 유닛이고 프로세서는 각각 스케줄링 정책을 가지며 선점형 또는 비선점형 스케줄링 정책을 가질 수 있다.
응용은 하나 이상의 태스크 그래프로 표현되고 복수의 태스크 그래프를 식별할 수 있는 데이터 형태로 저장된다. 응용의 태스크 그래프는 방향성을 가지는 그래프로 표현되고 태스크 그래프의 노드는 태스크를 나타내고 에지는 태스크(노드)간 의존 관계를 나타낸다. 따라서 에지의 출력에 연결된 전임 태스크가 수행 완료된 후에 이 에지의 입력에 연결된 후임 태스크가 수행 가능하다.
응용의 태스크 그래프의 각각의 태스크들은 수행 시간 범위를 가진다. 수행 시간 범위는 최소 수행 시간 및 최악 수행 시간으로 표현되고 각 태스크는 최소 수행 시간 및 최악 수행 시간의 범위 내에서 수행 완료 됨이 가정된다.
응용과 분산 프로세서 시스템의 아키텍처 사이의 맵핑 관계는 응용의 태스크 그래프의 각 태스크가 아키텍처의 어떤 프로세서에 맵핑되는 지를 나타낸다. 맵핑 관계에 따라 특정 태스크는 특정 프로세서에 맵핑되어 이 맵핑에 따라 응답 시간의 분석이 가능하고 다른 태스크는 다른 프로세서에 맵핑되어 이 맵핑에 따라 응답 시간의 분석이 가능하다.
여기서, 분산 프로세서 시스템의 아키텍처, 분산 프로세서 시스템에서 수행될 응용, 응용과 분산 프로세서 시스템의 아키텍처 사이의 맵핑 관계, 응용에 포함된 각 태스크의 수행 시간 범위, 아키텍처에 포함된 프로세서(PE)의 스케줄링 정책 등은 저장 매체(107)에 미리 저장되어 있을 수 있다. 이에 따라 사용자는 입력 인터페이스(101) 및 출력 인터페이스(103)를 이용하여 분석 프로그램이 로딩할 각종 데이터 및 파라미터를 특정한다.
이후, 장치(100)는 필요한 각종 변수들을 초기화(도 8의 라인 1 및 2 참조)한다. 변수의 초기화에는 이하에서 살펴볼 주기 이동 값을 포함한다. 초기의 주기 이동 값은 지터값으로 설정되는 데, 지터값은 태스크 그래프의 요청 시간이 최대로 지연될 수 있는 요청의 가변 시간 범위를 나타낸다. 또한 초기화는 각 태스크의 시간 범위를 저장하기 위한 각종 변수에 대한 초기화를 포함한다.
이후, 장치(100)는 응용의 태스크 그래프들에 대하여 맵핑된 프로세서에 스케줄링되는 스케줄 시간을 산출(S120)한다. 단계 S120은 태스크 그래프들의 태스크들 각각에 대해서 해당 스케줄 시간을 산출하고, 각 스케줄 시간의 산출을 통해 특정 태스크 또는 특정 태스크 그래프의 스케줄링되는 시간 범위를 산출할 수 있다.
구체적으로 살펴보면, 장치(100)는 태스크 그래프들 각각에 대해서 각 태스크 그래프의 태스크들 각각에 대한(도 8의 라인 6 및 7 참조) 최소, 최대 요청 시간, 최소, 최대 시작 시간 및 최소, 최대 종료 시간을 계산한다.
최소 요청 시간(minimal release time,
Figure 112015011187996-pat00041
)은 태스크 i가 맵핑된 프로세서에서 수행 요청을 할 수 있는 가장 빠른 시간을 나타내고 최대 요청 시간(maximal release time,
Figure 112015011187996-pat00042
)은 맵핑된 프로세서에서 수행 요청을 할 수 있는 가장 늦은 시간을 나타낸다. 최소 요청 시간 및 최대 요청 시간의 산출로 각 태스크의 요청 시간 범위를 장치(100)가 결정한다.
최소 요청 시간 및 최대 요청 시간은 아래 수학식 3및 4를 통해서 각각 계산된다.
Figure 112015011187996-pat00043
Figure 112015011187996-pat00044
여기서,
Figure 112015011187996-pat00045
Figure 112015011187996-pat00046
의 전임 태스크들의 집합을 나타낸다. 전임 태스크는 선조, 또는 부모 태스크로 지칭될 수도 있다.
Figure 112015011187996-pat00047
Figure 112015011187996-pat00048
가 속한 태스크 그래프의 지터를 나타낸다. 태스크는 전임 태스크가 모두 종료된 후에 시작 가능하기에 최소 요청 시간은 전임 태스크들이 가장 빨리 수행 종료하는 시간 중 가장 늦은 시간으로 설정된다. 최대 요청 시간은 전임 태스크들 중 가장 늦게 수행 종료하는 시간으로 설정된다.
최소 시작 시간(minimal start time,
Figure 112015011187996-pat00049
)은 태스크 i가 맵핑된 프로세서에서 수행을 시작하는 가장 빠른 시간을 나타내고 최대 시작 시간(maximal start time,
Figure 112015011187996-pat00050
)은 맵핑된 프로세서에서 수행을 시작하는 가장 늦은 시간을 나타낸다. 최소 시작 시간 및 최대 시작 시간의 산출로 각 태스크의 시작 시간 범위를 장치(100)가 결정한다.
최소 시작 시간은 아래 수학식 5를 통해서 계산된다.
Figure 112015011187996-pat00051
여기서 태스크
Figure 112015011187996-pat00052
가 맵핑된 프로세서가 선점 스케줄링 정책에 따르는 경우
Figure 112015011187996-pat00053
이다. 비선점 스케줄링 정책을 따르는 경우
Figure 112015011187996-pat00054
이다.
여기서,
Figure 112015011187996-pat00055
는 태스크
Figure 112015011187996-pat00056
가 속한 태스크 그래프,
Figure 112015011187996-pat00057
는 태스크
Figure 112015011187996-pat00058
가 맵핑된 프로세서(PE)를 나타낸다. 수학식 5의 식은 스케쥴 범위상에서
Figure 112015011187996-pat00059
부터 태스크
Figure 112015011187996-pat00060
를 무조건 선점하는 태스크들을 고려(반영)하는 식이다. 그러나 동적 오프셋으로부터 나타나는 다른 태스크 그래프에 속한 태스크들은 고려되지 않는다. 또한 비선점 스케줄링을 사용하는 경우 하위 우선순위 태스크에 의한 실행 지연도 고려된다.
태스크
Figure 112015011187996-pat00061
의 최대 시작 시간(
Figure 112015011187996-pat00062
)은 아래 수학식 6을 통해서 계산된다.
Figure 112015011187996-pat00063
최대 시작 시간은 가능한 모든 선점을 고려한다.
Figure 112015011187996-pat00064
는 태스크
Figure 112015011187996-pat00065
의 하위 우선순위 태스크에 의한 실행 지연량을 나타내고
Figure 112015011187996-pat00066
는 상위 우선순위 태스크에 의한 실행 지연량을 나타낸다. 이와 같이 특정 태스크
Figure 112015011187996-pat00067
의 최대 시작 시간은
Figure 112015011187996-pat00068
의 최대 요청 시간, 하위 우선순위 태스크에 의한 실행 지연량, 및 상위 우선순위 태스크에 의한 실행 지연량에 기초하여 산출된다.
맵핑된 프로세서의 스케줄링이 선점 스케줄링인 경우, 하위 우선순위 태스크는 영향을 줄 수 없으므로
Figure 112015011187996-pat00069
은 0이다. 그러나 비선점 스케줄링의 경우 아래의 수학식 7에 의해서
Figure 112015011187996-pat00070
이 계산된다.
Figure 112015011187996-pat00071
여기서,
Figure 112015011187996-pat00072
이다.
Figure 112015011187996-pat00073
이다. 수학식 7에 따라, 만일 모든 전임 태스크들이 동일한 프로세서(
Figure 112015011187996-pat00074
)에 맵핑되어 있다면 전임 태스크가 종료된 후 태스크
Figure 112015011187996-pat00075
가 요청되므로 하위 우선순위 태스크가 먼저 실행될 수 없어 0이 된다. 그 외에 경우에 먼저 실행하고 있을 수 있는 가능한 모든 태스크 집합에 대해서 가장 큰 지연을 가져오는 지연량을 산출한다. 이때에도
Figure 112015011187996-pat00076
가 속한 태스크 그래프(
Figure 112015011187996-pat00077
)와 다른 태스크 그래프에 대해서는 동적 오프셋에 따른 시간 비교가 포함되지 않는다.
수학식 8은 상위 우선순위 태스크에 의한 실행 지연량(
Figure 112015011187996-pat00078
)을 산출하기 위한 계산식이다.
Figure 112015011187996-pat00079
여기서,
Figure 112015011187996-pat00080
이고,
Figure 112015011187996-pat00081
이다. 최대 시작 시간(
Figure 112015011187996-pat00082
)은 가능한 모든 선점을 고려해야 하고 따라서
Figure 112015011187996-pat00083
가 속한 태스크 그래프(
Figure 112015011187996-pat00084
)와 다른 태스크 그래프에 의한 선점 또는 간섭도 고려한다.
Figure 112015011187996-pat00085
의 수학식은 동일한 태스크 그래프에 의한 간섭에 따른 실행 지연량(이하 '제1 실행 지연량'이라고도 함)과 다른 태스크 그래프의 간섭에 의한 실행 지연량(이하 '제2 실행 지연량'이라고도 함)의 계산하기 위한 항으로 나뉘어진다.
동일한 태스크 그래프에 의한 간섭에 따른 제1 실행 지연량은 스케줄 범위의 비교, 즉, 산출된 시간 범위의 비교,에 기초하여 산출되고 다른 태스크 그래프에 의한 간섭에 따른 제2 실행 지연량은 다른 태스크 그래프의 상위 우선순위 태스크가 발생하는 횟수에 기초하여 산출된다. 여기서
Figure 112015011187996-pat00086
는 요청-요청 간격으로서 태스크
Figure 112015011187996-pat00087
의 최대 요청 시간(
Figure 112015011187996-pat00088
)으로부터 다른 태스크 그래프의 태스크
Figure 112015011187996-pat00089
가 얼마나 떨어진 위치에서 요청이 나타날 수 있는 지를 표현한 값이다. 이와 같이 발생 횟수는 적어도 요청-요청 간격을 반영하여 계산된다. 이 요청-요청 간격에 대해서는 이하에서 구체적으로 살펴보도록 한다.
태스크
Figure 112015011187996-pat00090
의 최소 종료 시간은 맵핑된 프로세서(
Figure 112015011187996-pat00091
)에서 태스크
Figure 112015011187996-pat00092
가 실행되어 가장 빨리 실행 종료하는 시간을 나타내고 최대 종료 시간은 맵핑된 프로세서에서 가장 늦게 실행 종료하는 시간을 나타낸다.
최소 종료 시간은 아래 수학식 9 및 10에 따라 계산된다.
Figure 112015011187996-pat00093
Figure 112015011187996-pat00094
여기서,
Figure 112015011187996-pat00095
는 태스크
Figure 112015011187996-pat00096
의 최소 수행 시간을 나타낸다. 맵핑된 프로세서가 비선점 스케줄링에 따른 경우 태스크의 실행 후 다른 태스크에 의해 선점될 수 없으므로,
Figure 112015011187996-pat00097
는 0으로 설정된다. 선점 스케줄링의 경우
Figure 112015011187996-pat00098
이다. 최소 종료 시간 역시 최소 시작 시간과 동일하게 동일한 태스크에 의하여 무조건 발생하는 선점만을 포함하고 다른 태스크 그래프에 대해서는 고려하지 않는다.
최대 종료 시간(
Figure 112015011187996-pat00099
)은 아래의 수학식 11 및 12에 의해서 산출된다.
Figure 112015011187996-pat00100
Figure 112015011187996-pat00101
여기서, 맵핑된 프로세서가 비선점 스케줄링에 따르는 경우에는
Figure 112015011187996-pat00102
는 0으로 계산된다. 선점 스케줄링에 따르는 경우
Figure 112015011187996-pat00103
이다.
Figure 112015011187996-pat00104
는 태스크
Figure 112015011187996-pat00105
보다 상위 우선순위 태스크에 의한 실행 지연량을 나타내고, 태스크 최대 시작 시간과 마찬가지로
Figure 112015011187996-pat00106
는 동일한 태스크 그래프의 상위 우선순위 태스크에 의한 실행 지연량(이하 '제3 실행 지연량'이라고도 함)과 다른 태스크 그래프의 상위 우선순위 태스크에 의한 실행 지연량(이하 '제4 실행 지연량'이라고도 함)의 항을 포함한다. 이와 같이 최대 종료 시간은 제3 실행 지연량과 제4 실행 지연량을 이용하여 산출된다.
수학식 12에서 알 수 있는 바와 같이, 제3 실행 지연량은 동일한 태스크 그래프(
Figure 112015011187996-pat00107
)에서의 상위 우선순위 태스크의 최악 수행 시간(
Figure 112015011187996-pat00108
)의 합에 기초하여 산출된다. 또한 제4 실행 지연량은 다른 태스크 그래프의 상위 우선순위 태스크가 발생하는 횟수에 기초하여 산출된다.
제4 실행 지연량의 상위 우선순위 태스크의 발생 횟수는 태스크
Figure 112015011187996-pat00109
의 최대 시작 시간(
Figure 112015011187996-pat00110
)으로부터(을 기준으로) 상위 우선순위 태스크의 요청이 나타날 수 있는 거리를 나타내는 값인
Figure 112015011187996-pat00111
를 반영하여 계산된다. 이 값은
Figure 112015011187996-pat00112
Figure 112015011187996-pat00113
를 기준으로 업데이트한 값이다.
지금부터, 설명을 생략하였던 페이저 조정의 값들인 요청-요청 간격(
Figure 112015011187996-pat00114
), 시작-요청 간격(
Figure 112015011187996-pat00115
) 및 종료-요청 간격(
Figure 112015011187996-pat00116
)에 대해서 설명한다. 이 값들은 각각
Figure 112015011187996-pat00117
,
Figure 112015011187996-pat00118
,
Figure 112015011187996-pat00119
로부터 상위 우선순위 태스크인
Figure 112015011187996-pat00120
가 다음에 요청되는 시점에 대한 최소 거리를 나타낸다. 이 시간 간격들은 의존관계에 의한 특징을 반영한 것으로서 과예측을 제거하면서 안정성을 보장하도록 계산된다.
도 9는 각 시간 간격의 계산에 대한 예를 나타낸다.
태스크
Figure 112015011187996-pat00121
에 대해 여러 전임 태스크(
Figure 112015011187996-pat00122
)가 존재할 때, 전임 태스크들의 최대 종료 시점으로부터 임의의 태스크
Figure 112015011187996-pat00123
의 요청이 가장 빨리 나타날 것으로 예상되는 시점까지의 시간 간격은 서로 다를 수 있다. 안정성을 보장하기 위해선, 전임 태스크들이 보고 있는 태스크
Figure 112015011187996-pat00124
의 다음 요청까지의 거리 중 가까운 거리를 택해야 한다. 도 9에서는
Figure 112015011187996-pat00125
으로부터 종료-요청 간격(
Figure 112015011187996-pat00126
)을 상속받아
Figure 112015011187996-pat00127
을 기준으로 값을 재계산하여 요청-요청 간격(
Figure 112015011187996-pat00128
) 으로 세팅한다. 상위 우선순위 태스크인
Figure 112015011187996-pat00129
가 다음에 나타나기 전에
Figure 112015011187996-pat00130
가 시작할 수 있으므로,
Figure 112015011187996-pat00131
는 최대 요청 시점을 기준으로 계산되었던 다음 태스크 요청 발생 위치를 그대로 볼 수 있도록 업데이트된다. 태스크
Figure 112015011187996-pat00132
가 시작한 후
Figure 112015011187996-pat00133
에 기록된 다음 태스크 요청이 선점으로 나타났으므로, 종료 시점에서는 그 다음번 태스크 발생 위치를 알 수 있도록
Figure 112015011187996-pat00134
를 계산한다. 도 9의 예를 통해서 각 시간 간격을 계산할 수 있는 데, 요청-요청 간격
Figure 112015011187996-pat00135
는 아래 수학식 13을 통해서 계산된다.
Figure 112015011187996-pat00136
수학식 13을 통해서 태스크
Figure 112015011187996-pat00137
에 대한 상위 우선순위 태스크(
Figure 112015011187996-pat00138
)의 요청-요청 간격을 살펴보면, 만약
Figure 112015011187996-pat00139
가 태스크 그래프의 소스 태스크이거나 다른 프로세서에 맵핑에 따른 의존관계가 존재한다면
Figure 112015011187996-pat00140
Figure 112015011187996-pat00141
로 세팅된다. 여기서
Figure 112015011187996-pat00142
는 주기 이동 값으로서 의존관계에 의해
Figure 112015011187996-pat00143
Figure 112015011187996-pat00144
에 나타날 수 있는 가장 작은 주기와 실제 주기와의 차이값이다. 만일 이 주기 이동 값이 주기보다 큰 경우가 판별되는 경우에는 지터나 의존관계에 의한 지연으로 과도하게 몰리는 현상의 발생을 파악할 수 있다.
만일 태스크
Figure 112015011187996-pat00145
가 전임 태스크들을 가지는 경우, 도 9의 예에서와 같이 전임 태스크가 보는 다음 태스크의 요청 발생 위치 중 가장 작은 위치를 선택하여
Figure 112015011187996-pat00146
를 세팅한다. 이 과정에서
Figure 112015011187996-pat00147
는 전임 태스크(
Figure 112015011187996-pat00148
)의 상위 우선순위 태스크(
Figure 112015011187996-pat00149
)에 대한 종료 요청 간격(
Figure 112015011187996-pat00150
) 및 전임 태스크의 최대 종료 시간(
Figure 112015011187996-pat00151
) 의 합과 태스크
Figure 112015011187996-pat00152
의 최대 요청 시간(
Figure 112015011187996-pat00153
) 차의 최소값에 기초하여 세팅된다.
Figure 112015011187996-pat00154
는 이 최소값과
Figure 112015011187996-pat00155
값 중 최대값으로 세팅된다. 주기 이동 값에 대해서는 아래에서 좀 더 상세히 살펴보도록 한다.
시작-요청 간격(
Figure 112015011187996-pat00156
) 및 종료-요청 간격(
Figure 112015011187996-pat00157
)은 각각 아래 수학식 14 및 15를 통해서 계산된다.
Figure 112015011187996-pat00158
Figure 112015011187996-pat00159
수학식 14는
Figure 112015011187996-pat00160
로부터 갱신되고 수학식 15는
Figure 112015011187996-pat00161
로부터 갱신된다. 모듈(mod) 연산을 통해 자동적으로 다음 태스크 요청 발생 위치를 참조하도록 하고 있다. 만약
Figure 112015011187996-pat00162
를 선점할 수 없는 태스크(
Figure 112015011187996-pat00163
)인 경우라면 모듈 연산을 수행하지 않는다.
장치(100)는 단계 S120에서 수학식 3 내지 15를 통해 태스크 그래프들 각각의 태스크 각각에 대한 스케줄 시간 범위를 산출한다. 수학식 3 내지 15는 분석 프로그램 내에서 변수로 저장되고 각 변수들은 수학식에 따라 계산된다. 각 변수들은 다른 변수들에 서로 이용되는 관계를 가지고 있는 것을 알 수 있다. 변수에는 요청 시간 범위인 최소 요청 시간 및 최대 요청 시간을 나타내는 변수, 시작 시간 범위인 최소 시작 시간 및 최대 시작 시간을 나타내는 변수 및 최소 종료 시간 및 최대 종료 시간을 포함한다. 각 시간 범위는 태스크 또는 태스크 그래프에 대해서 계산된다.
분석 프로그램의 변수에는 주기 이동 값(
Figure 112015011187996-pat00164
, 수학식 13 참조)을 포함한다.
장치(100)는 단계 S130에서 각 태스크 그래프의 각 태스크의 다른 태스크(예를 들어 상위 우선순위 태스크)에 대한 주기 이동 값을 업데이트한다.
이 주기 이동 값은 Y&W 분석법의 주기 쉬프팅 기법의 계산 방식과는 달리 계산된다. 이 주기 이동 값은 단계 S120에서 산출된 태스크 그래프의 각 태스크의 시간 범위를 이용하여 업데이트된다.
Y&W 분석법에서는 주기 이동 값은
Figure 112015011187996-pat00165
으로 계산되나 이는 의존관계에 의한 주기 감소를 정확히 판단하지 못하여 과소 예측을 유발하는 문제가 있다. 과소 예측은 예상치 못한 치명적인 문제를 설계된 분산 프로세스 시스템에 유발할 수 있다.
가장 간단한 해법은 주기 이동 값을
Figure 112015011187996-pat00166
로 계산하는 것이다. 이는 매우 보수적인 계산법으로서 과예측을 유발한다. 그러므로 [
Figure 112015011187996-pat00167
,
Figure 112015011187996-pat00168
] 시간 구간의 선점들을 분석하여 안전하면서도 과예측을 최소화할 수 있는 주기 이동 값을 계산할 필요가 있다.
도 10은 주기 이동 값 계산 방법의 예를 도시한 도면이다. 도 10의
Figure 112015011187996-pat00169
의 주기 이동 값을
Figure 112015011187996-pat00170
으로 계산하면 도 10의 (b)와 같은 과예측이 발생한다.
그러나,[
Figure 112015011187996-pat00171
,
Figure 112015011187996-pat00172
] 에서 발생한 선점들을 확인해보면, 스케줄링된 시나리오에서 제외가능한 항목들이 존재한다. 예를 들어
Figure 112015011187996-pat00173
Figure 112015011187996-pat00174
의 후임 태스크이기 때문에
Figure 112015011187996-pat00175
Figure 112015011187996-pat00176
를 선점해서 주기를 감소시킬 수 없다. 또한
Figure 112015011187996-pat00177
Figure 112015011187996-pat00178
에도 선점이 발생하는 태스크이기 때문에,
Figure 112015011187996-pat00179
에 중복으로 계산해서 주기를 감소시키면 과예측이 된다. 따라서 주기 이동 값 계산에서 두 태스크에게 중복으로 나타날 수 있는 선점들과 선점된 태스크가 종료된 뒤에 나타나는 태스크들은 주기 이동 값의 계산에서 제외 시킬 수 있다.
수학식 16은 도 10을 통한 고찰로 정의된 주기 이동 값의 계산식을 나타낸다.
Figure 112015011187996-pat00180
여기서,
Figure 112015011187996-pat00181
Figure 112015011187996-pat00182
보다 빨리 시작하여
Figure 112015011187996-pat00183
에 영향을 주지 않으면서
Figure 112015011187996-pat00184
를 선점할 수 있는 태스크들의 집합을 의미하며, 이는 위의 설명에서 주기 이동 값으로 고려해야하는 태스크들만을 포함한다.
수학식 16에서 알 수 있는 바와 같이, 태스크
Figure 112015011187996-pat00185
와 상위 우선순위 태스크
Figure 112015011187996-pat00186
의 주기 이동 값(
Figure 112015011187996-pat00187
)은
Figure 112015011187996-pat00188
에 속하는 태스크
Figure 112015011187996-pat00189
들에 의한 주기 이동 값(
Figure 112015011187996-pat00190
)에의 기여하는 양의 상한선인
Figure 112015011187996-pat00191
의 응답시간(
Figure 112015011187996-pat00192
)을 사용하여 산출되며, 주기 이동 값의 상한선인
Figure 112015011187996-pat00193
을 넘지 않도록 제한된다.
이후 장치(100)는 단계 S120 및 단계 S130을 통해 수학식 3 내지 16으로 산출된 변수들을 이전의 단계 S120 및 단계 S130의 변수 또는 단계 S110 이후에 초기화를 통해 산출되거나 설정된 변수들과 비교(S140)한다.
단계 S140은 예를 들어 각 태스크 그래프의 각 태스크의 최소 요청 시간, 최대 요청 시간, 최소 시작 시간, 최대 시작 시간, 최소 종료 시간, 최대 종료 시간을 이전의 동일한 시간과 비교한다. 나아가 단계 S140은 그 외의 다른 변수들에 대해서도 비교한다.
비교 결과에 따라 만일 모든 변수가 동일(S150)하면, 단계 S160으로 전이하고 만일 하나의 변수라도 상이하면, 수렴할 수 있도록 장치(100)는 단계 S120 및 단계 S130을 반복하여 수행한다. 수행 반복 횟수는 제한될 수 있고 필요한 경우 제한된 횟수의 반복 수행 후에도 변수가 모두 동일하지 않은 경우 최악 응답 시간이 계산될 수 없다는 메시지를 출력 인터페이스(103)로 출력하고 종료될 수 있다.
만일 모든 변수가 동일하면, 단계 S160에서 장치(100)는 응용의 최악 응답 시간을 산출한다.
특정 응용의 최악 응답 시간은 최대 종료 시간을 이용하여 결정된다. 예를 들어 특정 응용이 단일의 태스크 그래프를 포함하는 경우에 이 단일 태스크 그래프 내의 태스크들의 최대 종료 시간 중 가장 큰 값의 최대 종료 시간으로 또는 이 가장 큰 값의 최대 종료 시간을 이용하여 최악 응답 시간이 결정된다. 만일 특정 응용이 복수의 태스크 그래프를 포함하는 경우에도 복수의 태스크 그래프의 태스크들 중에서 가장 큰 값의 최대 종료 시간으로 또는 이 최대 종료 시간을 이용하여 최악 응답 시간을 결정한다.
최악 응답 시간을 결정한 후에, 장치(100)는 최악 응답 시간을 출력 인터페이스(103)나 저장 매체(107)에 저장하고 본 제어 흐름을 종료(S200)한다.
도 7을 통해서 기본적인 제어 흐름과 제어 흐름에 이용되는 수학식을 살펴보았다. 이하에서는 최악 응답 시간의 산출에서 추가로 고려되어야 하는 사항을 살펴보도록 한다.
지금까지 설명한 내용은 최악 응답 시간이 태스크 그래프의 주기를 넘어가지 않는 다고 가정하였다. 만일 응용의 최악 응답 시간이 태스크 그래프의 주기를 넘어가는 경우, 태스크 그래프의 주기 간에 간섭이 발생한다. STBA 분석 기법에서는 실제로 그래프를 확장하고 확장된 그래프에 대해서 수학식을 통해 분석하는 기법을 사용하였다.
그러나, 본 발명에서는 확장된 태스크들을 수학식에서 이용하지 않는다. 태스크 그래프 자신의 간섭을 고려하기 위해 그래프 확장이 필요하고 확장 횟수는 아래 수학식 17 및 수학식 18을 통해서 계산된다.
Figure 112015011187996-pat00194
Figure 112015011187996-pat00195
수학식 17 및 18에 알 수 있는 바와 같이, 태스크 (그래프)의 확장은 기준이되는 태스크 그래프의 영향을 줄 수 있는 만큼만 확장된다. WCRT(T)는 태스크 그래프 T의 최악 응답 시간을 나타낸다. 확장된 태스크 그래프들은 스케줄 시간 범위를 수학식 3 내지 16을 통해서 계산되지 않고 단순히 고정된 스케줄 시간 범위를 가진다. 이 고정된 스케줄 시간 범위는 단계들(S120 및 단계 S130) 반복 동안에 현재 계산된 태스크 그래프의 스케줄 시간 범위를 그대로 활용하고 단순히 자신의 주기에 맞게 조정된 값의 범위를 가진다. 확장된 태스크 그래프는 원본 태스크 그래프의 시간범위를 계산하는 수학식 3에서 12까지에서 원본 태스크 그래프에 대한 간섭량을 계산할 때만 사용된다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니다.
100 : 장치
101 : 입력 인터페이스 103 : 출력 인터페이스
105 : 메모리 107 : 저장 매체
109 : 통신 인터페이스 111 : 시스템 버스/제어 버스
113 : 중앙 처리 유닛

Claims (10)

  1. 최악 응답 분석을 위한 장치가 수행하는 최악 응답 시간 분석 방법으로서,
    (a) 태스크 그래프들에 포함된 태스크들의 스케줄 시간을 산출하는 단계로서, 상기 태스크 그래프들의 제1 태스크 그래프에 포함된 제1 태스크에 대한 최대 시작 시간 및 최대 종료 시간을 산출하는, 스케줄 시간 산출 단계; 및
    (c) 산출된 최대 종료 시간을 이용하여 상기 태스크 그래프들에 대한 최악 응답 시간을 결정하는 단계;를 포함하며,
    상기 단계 (a)는 상기 제1 태스크의 하위 우선순위 태스크에 의한 실행 지연량 및 상위 우선순위 태스크에 의한 실행 지연량에 기초하여 상기 최대 시작 시간을 산출하며,
    상기 상위 우선순위 태스크에 의한 실행 지연량은 상기 제1 태스크 그래프의 상위 우선순위 태스크에 의한 제1 실행 지연량과 상기 제1 태스크 그래프와 상이한 제2 태스크 그래프의 상위 우선순위 태스크에 의한 제2 실행 지연량을 이용하여 산출되고,
    상기 제1 실행 지연량은 상기 제1 태스크 그래프의 상위 우선순위 태스크의 시간 범위와 상기 제1 태스크의 시간 범위의 비교에 기초하여 산출되고,
    상기 제2 실행 지연량은 상기 제2 태스크 그래프의 상위 우선순위 태스크가 발생하는 횟수에 기초하여 산출되는,
    최악 응답 시간 분석 방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 상위 우선순위 태스크의 발생 횟수는 상기 제1 태스크의 최대 요청 시간으로부터 상기 상위 우선순위 태스크의 요청의 발생 거리를 표현한 요청-요청 간격을 반영하여 계산되는,
    최악 응답 시간 분석 방법.
  5. 제4항에 있어서,
    상기 요청-요청 간격은 상기 제1 태스크의 전임 태스크들의 종료 요청 간격 과 최대 종료 시간의 합과 상기 합과 상기 제1 태스크의 최대 요청 시간의 차에 기초하여 계산되거나, 상위 우선순위 태스크의 상기 제1 태스크에 대해 나타날 수 있는 주기 이동 값에 기초하여 계산되는,
    최악 응답 시간 분석 방법.
  6. 최악 응답 분석을 위한 장치가 수행하는 최악 응답 시간 분석 방법으로서,
    (a) 태스크 그래프들에 포함된 태스크들의 스케줄 시간을 산출하는 단계로서, 상기 태스크 그래프들의 제1 태스크 그래프에 포함된 제1 태스크에 대한 최대 시작 시간 및 최대 종료 시간을 산출하는, 스케줄 시간 산출 단계; 및
    (c) 산출된 최대 종료 시간을 이용하여 상기 태스크 그래프들에 대한 최악 응답 시간을 결정하는 단계;를 포함하며,
    상기 단계 (a)는 상기 제1 태스크의 하위 우선순위 태스크에 의한 실행 지연량 및 상위 우선순위 태스크에 의한 실행 지연량에 기초하여 상기 최대 시작 시간을 산출하고 상기 제1 태스크의 상위 우선순위 태스크의 선점에 의한 실행 지연량에 기초하여 최대 종료 시간을 산출하며,
    상기 선점에 의한 실행 지연량은 상기 제1 태스크 그래프의 상위 우선순위 태스크에 의한 제3 실행 지연량과 상기 제1 태스크 그래프와 상이한 제2 태스크 그래프의 상위 우선순위 태스크에 의한 제4 실행 지연량을 이용하여 산출되는,
    최악 응답 시간 분석 방법.
  7. 제6항에 있어서,
    상기 제3 실행 지연량은 상기 제1 태스크 그래프의 상위 우선순위 태스크의 최악 수행 시간의 합에 기초하여 산출되고,
    상기 제4 실행 지연량은 상기 제2 태스크 그래프의 상위 우선순위 태스크가 발생하는 횟수에 기초하여 산출되는,
    최악 응답 시간 분석 방법.
  8. 제7항에 있어서,
    상기 상위 우선순위 태스크의 발생 횟수는 상기 제1 태스크의 최대 시작 시간으로부터 상기 상위 우선순위 태스크의 요청의 발생 거리를 표현한 시작-요청 간격을 반영하여 계산되는,
    최악 응답 시간 분석 방법.
  9. 최악 응답 분석을 위한 장치가 수행하는 최악 응답 시간 분석 방법으로서,
    (a) 태스크 그래프들에 포함된 태스크들의 스케줄 시간을 산출하는 단계로서, 상기 태스크 그래프들의 제1 태스크 그래프에 포함된 제1 태스크에 대한 최대 시작 시간 및 최대 종료 시간을 산출하는, 스케줄 시간 산출 단계;
    (b) 단계 (a)에서 산출된 제1 태스크에 대한 최대 시작 시간 및 최대 종료 시간을 이전에 산출된 제1 태스크에 대한 최대 시작 시간 및 최대 종료 시간과 비교하는 단계; 및
    (c) 산출된 최대 종료 시간을 이용하여 상기 태스크 그래프들에 대한 최악 응답 시간을 결정하는 단계;를 포함하며,
    상기 단계 (a)는 상기 제1 태스크의 하위 우선순위 태스크에 의한 실행 지연량 및 상위 우선순위 태스크에 의한 실행 지연량에 기초하여 상기 최대 시작 시간을 산출하며,
    상기 단계 (b)에서의 비교 결과에 따라 상기 단계 (a)는 반복되는,
    최악 응답 시간 분석 방법.
  10. 하드웨어에 결합되어 제1항, 제6항 또는 제9항의 최악 응답 시간 분석 방법의 각 단계를 실행시키기 위해 매체에 저장된 컴퓨터 프로그램.
KR1020150016279A 2015-02-02 2015-02-02 최악 응답 시간 분석 방법 및 컴퓨터 프로그램 KR101621280B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150016279A KR101621280B1 (ko) 2015-02-02 2015-02-02 최악 응답 시간 분석 방법 및 컴퓨터 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150016279A KR101621280B1 (ko) 2015-02-02 2015-02-02 최악 응답 시간 분석 방법 및 컴퓨터 프로그램

Publications (1)

Publication Number Publication Date
KR101621280B1 true KR101621280B1 (ko) 2016-05-17

Family

ID=56109663

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150016279A KR101621280B1 (ko) 2015-02-02 2015-02-02 최악 응답 시간 분석 방법 및 컴퓨터 프로그램

Country Status (1)

Country Link
KR (1) KR101621280B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095557A (zh) * 2016-06-20 2016-11-09 浪潮(北京)电子信息产业有限公司 一种o1调度算法的改进方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000172513A (ja) 1998-12-04 2000-06-23 Chokosoku Network Computer Gijutsu Kenkyusho:Kk タスク管理方法
JP2011198346A (ja) 2009-11-09 2011-10-06 Denso Corp スケジューリング方法,スケジューリングプログラム,スケジューリング装置
KR101383225B1 (ko) * 2012-09-03 2014-04-09 서울대학교산학협력단 하나 이상의 실행 유닛에 대한 성능 분석 방법, 성능 분석 장치 및 성능 분석 방법을 수행하는 프로그램을 기록한 컴퓨터 판독가능 기록매체

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000172513A (ja) 1998-12-04 2000-06-23 Chokosoku Network Computer Gijutsu Kenkyusho:Kk タスク管理方法
JP2011198346A (ja) 2009-11-09 2011-10-06 Denso Corp スケジューリング方法,スケジューリングプログラム,スケジューリング装置
KR101383225B1 (ko) * 2012-09-03 2014-04-09 서울대학교산학협력단 하나 이상의 실행 유닛에 대한 성능 분석 방법, 성능 분석 장치 및 성능 분석 방법을 수행하는 프로그램을 기록한 컴퓨터 판독가능 기록매체

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095557A (zh) * 2016-06-20 2016-11-09 浪潮(北京)电子信息产业有限公司 一种o1调度算法的改进方法及装置
CN106095557B (zh) * 2016-06-20 2019-05-28 浪潮(北京)电子信息产业有限公司 一种o1调度算法的改进方法及装置

Similar Documents

Publication Publication Date Title
Kuhr et al. FERAL—Framework for simulator coupling on requirements and architecture level
US8566804B1 (en) Scheduling generated code based on target characteristics
US8990783B1 (en) Scheduling generated code based on target characteristics
Schliecker et al. Real-time performance analysis of multiprocessor systems with shared memory
Guan et al. Schedulability analysis for non-preemptive fixed-priority multiprocessor scheduling
US20040268335A1 (en) Modulo scheduling of multiple instruction chains
Girault et al. Improving and estimating the precision of bounds on the worst-case latency of task chains
CN111367644A (zh) 一种面向异构融合系统的任务调度方法及装置
Nasri et al. A response-time analysis for non-preemptive job sets under global scheduling
CN112764890A (zh) 调度备份任务的方法、设备和计算机程序产品
JP2012518215A (ja) システムの実時間処理能力の解析方法
Becker et al. A generic framework facilitating early analysis of data propagation delays in multi-rate systems
Anssi et al. On the gap between schedulability tests and an automotive task model
McLean et al. Mapping and scheduling automotive applications on ADAS platforms using metaheuristics
Kodase et al. Transforming structural model to runtime model of embedded software with real-time constraints
KR101621280B1 (ko) 최악 응답 시간 분석 방법 및 컴퓨터 프로그램
Krawczyk et al. Model-based timing analysis and deployment optimization for heterogeneous multi-core systems using eclipse APP4MC
Zhao et al. The concept of maximal unschedulable deadline assignment for optimization in fixed-priority scheduled real-time systems
US9740529B1 (en) High throughput synchronous resource-constrained scheduling for model-based design
KR101383225B1 (ko) 하나 이상의 실행 유닛에 대한 성능 분석 방법, 성능 분석 장치 및 성능 분석 방법을 수행하는 프로그램을 기록한 컴퓨터 판독가능 기록매체
Anssi et al. chronval/chronsim: A tool suite for timing verification of auto-motive applications
Graillat et al. Response time analysis of dataflow applications on a many-core processor with shared-memory and network-on-chip
Frijns et al. Timing analysis of first-come first-served scheduled interval-timed directed acyclic graphs
Choi et al. Worst-case response time analysis of a synchronous dataflow graph in a multiprocessor system with real-time tasks
Siebenborn et al. Communication Analysis for Network-on-Chip Design.

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190429

Year of fee payment: 4