반응형

제목: 프로그램의 시간 인지 계측(On Time-Aware Instrumentation of Programs)

저자: Sebastian Fischmeister 1, University of Waterloo, 캐나다

문서유형: Academic 컨퍼런스 페이퍼( 9페이지), 2009

 

시간 제약을 가지는 애플리케이션(특히, 백그라운드/포어그라운드 시스템)을 위한 계측 기법을 제안한 페이퍼



계측 및 추적(Instrumentation and tracing)

  • 결함의 원인을 찾아내기 위한 주요 디버깅 활동으로서 대상 프로그램의 특정 지점에 계측용 custom code를 삽입하여 정보 수집
  • 디버깅을 위해 데이터를 캡쳐하고 카피하는 일이 런타임 오버헤드 초래하여 테스트 대상 시스템의 동작 및 타이밍에 영향을 미칠 수 있다. , 시스템 동작이 이전과 달라져 개발자가 버그의 원인을 찾는 것이 어려워 질 수 있다(하이젠버그 발생)
  • 타이밍과 관련된 하이젠버그 발생 가능성을 줄이기 위해서는 Instrumentation 수행 시 시간 제약을 고려하고 오버헤드를 최소화 해야 한다.


기존 소프트웨어 계측 프레임워크(Current software instrumentation frameworks)

  • 추적 가능한 이벤트(traceable event)가 발생할 때마다 추적 코드 삽입
  • AspectJEtch 같은 계측/모니터링 프레임워크는 힙 변수(heap variable) 상의 모든 write를 개발자가 모니터하게 해주지만, 오버헤드나 시간 제약에 대해서는 고려 안함 


제안된 시간 인지 계측 프레임워크

모든 실행 경로에서 명세된 시간 제약을 넘지 않도록 계측을 수행하는 제안된 시간 인지 계측 프레임워크는 아래와 같은 단계로 구성된다. 

  • 소스 분석(Source analysis): 소스 코드 분석기가 function들을 기본 블록으로 나누고 호출 그래프(a call graph)를 생성한다. 소스 코드 분석기가 기본 블록들에 할당된 변수 리스트를 보여주면 개발자가 추적할 변수들만 선택한다. 하드 실시간 애플리케이션의 경우(데드라인을 반드시 준수해야 하는 시스템), 소스 코드 분석기는 정적 분석 및 측정을 통해 얻은 실행 시간 정보를 call graph에 첨가한다.
  • 일차 단순 계측(Naive instrumentation): 컨트롤 플로우 그래프, 베이직 블록의 실행 시간 정보, 추적할 입력 변수들이 결정되면 대상 function의 모든 계측 포인트에 코드를 삽입한다.
  • 시간 제약 준수(Enforce time budget): 일차 단순 계측이 시간 제약을 초과하는 경우, 본 논문에서 제안하는 계산 기법을 사용하여 시간 준수가 가능한 계측을 계산
  • 코드 사이즈 최소화(Minimize code size): 계측 결과가 충분히 신뢰성이 있으면 의미 보존 기법(semantics-preserving)과 축소 변형 기법(decreasing transformations)을 적용하여 계측용 코드(계측을 위한 정보 수집 코드가 삽입된 프로그램)의 사이즈를 줄인다.
  • 추적 정보 수집(Collect traces): 개발자는 계측용 프로그램(the instrumented program)을 재컴파일하고 실행시킨다


계측 절차:

     계측할 대상 function을 선택

     어셈블리 분석기(the assembly analyzer)를 사용하여 컨트롤 플로우 그래프를 도출해 내고 해당 function을 여러 실행 경로(execution paths)로 구분

     일차적으로 모든 관심 있는 변수들을 도구를 사용하여 계측하고, 최악 실행 경로(가장 긴 실행 시간을 가진 경로)의 실행 시간에 변경이 있는지 확인

     만약 변경이 있다면 integer linear programming을 사용하여 시간 제약을 준수하도록 함. 이때 계측의 신뢰성(계측에서 장시간의 추적을 통해서 달성하고자 했던 목적 달성의 성공/실패 확률)은 저하됨

     만약 계측 신뢰성이 지나치게 낮은데 시간 제약을 늘릴 수 없는 경우라면(하드 리얼타임 시스템) 계측을 포기. 시간 제약을 연장 가능하다면 계측 신뢰성을 올릴 수 있음

     시간 준수를 위해 최적화된 계측이 요구되는 신뢰성 수준을 만족하거나 일차 단순 계측(the initial naive instrumentation)이 최악 실행 경로의 실행 시간을 늘리지 않는 경우라면 계측을 계속 진행하고 실행 경로를 이용해 계측용 코드 사이즈를 줄임

     프로그램을 재컴파일하고 계측을 하여 추적 정보를 수집


반응형

+ Recent posts