2015-531 임베디드 시스템 가상화-제10부 프로파일링 참조모델

23
T T A S t a n d a r d 정정정정정정정정(정정정정) TTAx.xx-xx.xxxx 정정정: 2015정 xx 정 xx정 정정정정 정정정 정정정 – 정 10 정 : 정정정정정 정정정정 Embedded Systems Virtualization – Part10: A Reference Model for Profiling

Transcript of 2015-531 임베디드 시스템 가상화-제10부 프로파일링 참조모델

Page 1: 2015-531 임베디드 시스템 가상화-제10부 프로파일링 참조모델

T T A  S t a n d a r d

정보통신단체표준(국문표준)   TTAx.xx-xx.xxxx         제정일: 2015년 xx월 xx일

임베디드 시스템 가상화

– 제 10 부 : 프로파일링 참조모델

Embedded Systems Virtualization

– Part10: A Reference Model for

Profiling

Page 2: 2015-531 임베디드 시스템 가상화-제10부 프로파일링 참조모델

정보통신단체표준(국문표준)   TTAx.xx-xx.xxxx         제정일: 2015년 xx월 xx 일

임베디드 시스템 가상화

– 제 10 부: 프로파일링 참조모델

Embedded Systems Virtualization

– Part 10: A Reference Model for Profiling

본 문서에 대한 저작권은 TTA 에 있으며, TTA 와 사전 협의 없이 이 문서의 전체 또는 일부를 상업적

목적으로 복제 또는 배포해서는 안 됩니다.

Copyright Telecommunications Technology Association 2015. All Rights Reservedⓒ .

Page 3: 2015-531 임베디드 시스템 가상화-제10부 프로파일링 참조모델

정보통신단체표준(국문표준)

서 문

1. 표준의 목적

본 표준의 목적은 ARMv7-A 를 기반으로 하는 하드웨어 플랫폼에서 효율적인 플랫폼

운영을 위해 시스템 프로파일링의 필요성을 기술하고, 가상화 기술을 이용한 프로파일링

모델을 제안한다.

2. 주요 내용 요약

본 표준은 임베디드 기반의 가상화 시스템에서 가상머신 모니터가 가상 머신의 하드웨어

접근 내역 등을 포함한 세부 동작을 트레이스 하고 이를 프로파일링 하기 위한 주요 메트릭을

정의한다.

3. 표준 적용 산업 분야 및 산업에 미치는 영향

본 표준은 임베디드 산업에서 다양하게 활용되는 ARM의 최신기술을 이해하고, 그

중요도가 높아지고 있는 가상화에 필요한 기술을 제안함으로써 임베디드 산업에서 가상화

적용의 확산과 활성화에 기여할 수 있을 것으로 기대된다.

4. 참조 표준(권고)

4.1. 국외 표준(권고)

- 해당 사항 없음.

4.2. 국내 표준

- TTA, “임베디드 시스템 가상화 - 제 1 부: ARMv7-A 제네릭 타이머 기반 타이머 가상화

(기술보고서)”. 2014.11.- TTA, “임베디드 시스템 가상화 - 제 2 부: ARMv7-A 제네릭 인터럽트 콘트롤러 기반

인터럽트 가상화 (기술보고서)”, 2014.11.- TTA, “임베디드 시스템 가상화 – 제 3 부: 게스트 OS 스냅샷 이미지 저장 기술 참조 모델

(기술보고서)”, 2014.11.- TTA, “임베디드 시스템 가상화 - 제 4 부: 스케줄러 요구사항”, 2013.12.- TTA, “임베디드 시스템 가상화 - 제 5 부: 디바이스 트리 확장 (기술보고서)”, 2013.11.

TTAx.xx.xxxxi

Page 4: 2015-531 임베디드 시스템 가상화-제10부 프로파일링 참조모델

정보통신단체표준(국문표준)

- TTA, “임베디드 시스템 가상화 – 제 6 부: ARMv7-A 물리주소확장(LPAE) 기능 기반

주소 변환 테이블 형식 및 활용 사례 (기술보고서)”, 2013.11.- TTA, “임베디드 시스템 가상화 – 제 7 부: ARMv8-A 제네릭 인터럽트 콘트롤러 V3

참조모델 (기술보고서)”, 2015.11.- TTA, “임베디드 시스템 가상화 – 제 8 부: GPU 가상화 참조 모델 (기술보고서),

2015.11.- TTA, 임베디드 시스템 가상화 – 제 9 부: 장치전담을 위한 클록관리장치 참조모델 (

기술보고서)”, 2015.11.

5. 참조 표준(권고)과의 비교

5.1. 참조 표준(권고)과의 관련성

- 해당 사항 없음.

5.2. 참조한 표준(권고)과 본 표준의 비교표

- 해당 사항 없음.

6. 지식 재산권 관련 사항

  본 표준의 ‘지식 재산권 확약서’ 제출 현황은 TTA 웹사이트에서 확인할 수 있다.※본 표준을 이용하는 자는 이용함에 있어 지식 재산권이 포함되어 있을 수 있으므로,

확인 후 이용한다.※본 표준과 관련하여 접수된 확약서 이외에도 지식 재산권이 존재할 수 있다.

7. 시험 인증 관련 사항

7.1. 시험 인증 대상 여부

- 해당 사항 없음.

7.2. 시험 표준 제정 현황

- 해당 사항 없음.

8. 표준의 이력 정보

TTAx.xx.xxxxii

Page 5: 2015-531 임베디드 시스템 가상화-제10부 프로파일링 참조모델

정보통신단체표준(국문표준)

8.1. 표준의 이력

판수 제정․개정일 제정․개정내역

제 1 판 2015.08.xx.제정

TTAx.xx-xx.xxxx

8.2. 주요 개정 사항

- 해당 사항 없음.

TTAx.xx.xxxxiii

Page 6: 2015-531 임베디드 시스템 가상화-제10부 프로파일링 참조모델

정보통신단체표준(국문표준)

Preface

1. Purpose of Standard

The purpose of this standard describes the needs of system profiling for efficient operation of hardware platform based on ARMv7-A and proposes a profiling model using virtualization technique.

2. Summary of Contents

This standard defines the metrics for tracing and profiling detailed operations including the history which virtual machines access hardware access on embedded virtualization system.

3. Applicable Fields of Industry and its Effect

This standard helps understanding state-of-the-art ARM technology which apply various embedded domain and proposes the core virtualization technique. Therefore this Technical Report contributes to expand and activate the embedded virtualization system industries.

4. Reference Standards (Recommendations)

4.1. International Standards (Recommendations)

- None

4.2. Domestic Standards

- TTA, ‘Embedded Systems Virtualization – Part 1: Timer Virtualization on ARMv7-A Generic Timer (Technical Report)’, 2014.11.

- TTA, ‘Embedded Systems Virtualization – Part 2: Interrupt Virtualization on ARM7-A Generic Interrupt Controller (Technical Report)’, 2014.11.

- TTA, ‘Embedded Systems Virtualization – Part 3: A reference model of making guest OS snapshot images (Technical Report)’, 2014.11.

- TTA, ‘Embedded Systems Virtualization – Part 4: Scheduler Requirements’, 2013.12.

- TTA, ‘Embedded Systems Virtualization – Part 5: Device tree extension

TTAx.xx.xxxxiv

Page 7: 2015-531 임베디드 시스템 가상화-제10부 프로파일링 참조모델

정보통신단체표준(국문표준)

(Technical Report)’, 2013.11.- TTA, ‘Embedded Systems Virtualization – Part 6: Translation table format of

ARMv7-A LPAE and use cases (Technical Report)’, 2013.11.- TTA, ‘Embedded Systems Virtualization – Part 7: A reference model for ARMv8-

A Generic Interrupt Controller 3 (Technical Report)’, 2015.11.- TTA, ‘Embedded Systems Virtualization – Part 8: A reference model for GPU

virtualization (Technical Report)’, 2015.11.- TTA, ‘Embedded Systems Virtualization – Part 9: A reference model for clock

management unit in device dedication (Technical Report)’, 2015.11.

5. Relationship to Reference Standards(Recommendations)

5.1. Relationship of Reference Standards(Recommendations)

- None

5.2. Differences between Reference Standard(Recommendation) and this Standard

- None

6. Statement of Intellectual Property Rights

IPRs related to the present document may have been declared to TTA. The information pertaining to these IPRs, if any, is available on the TTA Website.

No guarantee can be given as to the existence of other IPRs not referenced on the TTA website.

And, please make sure to check before applying the standard. 7. Statement of Testing and Certification

7.1. Object of Testing and Certification     - None

7.2. Standards of Testing and Certification

- None

TTAx.xx.xxxxv

Page 8: 2015-531 임베디드 시스템 가상화-제10부 프로파일링 참조모델

정보통신단체표준(국문표준)

8. History of Standard

8.1. Change History 

Edition Issued date Outline

The 1st edition 2015.09.xx. EstablishedTTAE.XX-XX.XXXX

8.2. Revisions

- None

TTAx.xx.xxxxvi

Page 9: 2015-531 임베디드 시스템 가상화-제10부 프로파일링 참조모델

정보통신단체표준(국문표준)

목 차

1. 개요 1

2. 표준의 구성 및 범위 1

3. 참조 표준(권고) 1

4. 용어정의 2

5. 임베디드 시스템의 프로파일링 4 5.1. 가상화 된 임베디드 시스템 프로파일링의 필요성 45.2. 임베디드 시스템 프로파일링의 단계 55.3. 시스템 프로파일링의 방법의 분류 6

6. 임베디드 가상화 시스템 프로파일링 모델 66.1. 가상화 시스템 프로파일링 76.2. 게스트 OS의 프로파일링 요소 76.3. 하이퍼바이저의 프로파일링 요소 8

부록 I. 인터럽트 소요시간 프로파일링 예 10

TTAx.xx.xxxxvii

Page 10: 2015-531 임베디드 시스템 가상화-제10부 프로파일링 참조모델

정보통신단체표준(국문표준)

Contents

1. Introduction 1

2. Constitution and Scope 1

3. Reference Standards(Recommendations) 1

4. Terms and Definitions 2

5. Profiling in Embedded Systems 4 5.1. Necessity of Profiling for Embedded Virtualization System 45.2. Stage of Embedded System Profiling 55.3. Classification of System Profiling 6

6. Reference model for profiling of Embedded System 66.1. Virtual System Profiling 76.2. Guest OS Profiling Metrics 76.3. Hypervisor Profiling Metrics 8

Appendix I. Profiling Example of Interrupt latency 10

TTAx.xx.xxxxviii

Page 11: 2015-531 임베디드 시스템 가상화-제10부 프로파일링 참조모델

정보통신단체표준(국문표준)

임베디드 시스템 가상화 –

제 10 부: 프로파일링 참조모델

(Embedded Systems Virtualization –Part 10 : A Reference Model for Profiling)

1. 개요

다양한 분야에서 임베디드 시스템이 사용되어, 최근의 임베디드 시스템은 보다 복잡하고

다양한 기능을 요구하는 동시에 신뢰성 및 안정성을 지원해야 하는 기술이 요구되고 있다. 가상화 기술은 이러한 고성능 및 고신뢰를 모두 만족해야 하는 임베디드 시스템에서

필요성이 높아지고 있어, 본 기술보고서에서는 ARM에서 지원하는 가상화 확장

(Virtualization Extension)기능을 중심으로 임베디드 시스템을 가상화하기 위하여 고려할

사항과 가상화 시스템 개발 시 필요한 기술을 설명한다. 또한 가상화 환경을 지원하는

하이퍼바이저 상에서 동작하는 응용 프로그램이나 운영체제를 개발하고자 하는

개발자들에게는 하이퍼바이저의 동작 메커니즘의 이해도를 증진시킴으로써 안정적인

프로그램 개발과 문제점의 원인 파악에 도움을 주고자 한다.본 표준은 가상화를 이용한 임베디드 시스템에서 하이퍼바이저에서 획득가능한 가상

머신의 하드웨어 접근 정보를 트레이스하고, 임베디드 환경에서 의미 있는 지표를 정의한다.

2. 표준의 구성 및 범위

본 표준은 프로파일링의 목적 및 분류를 기술하고, 임베디드 시스템을 가상화 하였을 때

가상화가 임베디드 시스템에 미치는 영향을 분석할 수 있는 프로파일링 성능 지표를

정의하고 이러한 지표가 가지는 의미를 설명한다. 본 표준 초안의 프로파일링의 범위에는

전력 지표는 포함하지 않는다.

3. 참조 표준(권고)

3.1. 국외 표준(권고)

- 해당 사항 없음.

3.2. 국내 표준

TTAx.xx.xxxx1

Page 12: 2015-531 임베디드 시스템 가상화-제10부 프로파일링 참조모델

정보통신단체표준(국문표준)

- TTA, “임베디드 시스템 가상화 - 제 1 부: ARMv7-A 제네릭 타이머 기반 타이머 가상화

(기술보고서)”. 2014.11.- TTA, “임베디드 시스템 가상화 - 제 2 부: ARMv7-A 제네릭 인터럽트 콘트롤러 기반

인터럽트 가상화 (기술보고서)”, 2014.11.- TTA, “임베디드 시스템 가상화 – 제 3 부: 게스트 OS 스냅샷 이미지 저장 기술 참조 모델

(기술보고서)”, 2014.11.- TTA, “임베디드 시스템 가상화 - 제 4 부: 스케줄러 요구사항”, 2013.12.- TTA, “임베디드 시스템 가상화 - 제 5 부: 디바이스 트리 확장 (기술보고서)”, 2013.11.- TTA, “임베디드 시스템 가상화 – 제 6 부: ARMv7-A 물리주소확장(LPAE) 기능 기반

주소 변환 테이블 형식 및 활용 사례 (기술보고서)”, 2013.11.- TTA, “임베디드 시스템 가상화 – 제 7 부: ARMv8-A 제네릭 인터럽트 콘트롤러 V3

참조모델 (기술보고서)”, 2015.11.- TTA, “임베디드 시스템 가상화 – 제 8 부: GPU 가상화 참조 모델 (기술보고서),

2015.11.- TTA, 임베디드 시스템 가상화 – 제 9 부: 장치전담을 위한 클록관리장치 참조모델 (

기술보고서)”, 2015.11.

4. 용어 정의 및 약어

4.1. 가상화 용어

4.1.1. 하이퍼바이저 (Hypervisor)

가상 머신 모니터(Virtual Machine Monitor)라고도 하며 하나의 컴퓨터 시스템에서

여러 개의 운영 체제(OS)를 가동할 수 있게 하는 가상화 엔진이다. 하이퍼바이저

방식에는 물리 컴퓨터의 하드웨어 상에서 하이퍼바이저를 직접 동작시키는 네이티브

(native)또는 베어메탈(bare-metal, type-1)방식이 있고, 호스트 운영체제 위에

하이퍼바이저를 설치하고 그 위에서 게스트 운영체제를 동작시키는 호스트(hosted, type-2)방식이 있다. 또 다른 분류인 반가상화와 전가상화 방법은 하이퍼바이저 위에

올라가는 운영 체제의 수정여부에 따라 구분된다.

4.1.2. 가상화 확장(VE, Virtualization Extension)

전가상화를 지원하기 위하여 ARM 에서 제안한 하드웨어를 이용한 가상화 지원

기능이다. 하드웨어의 지원으로 인해 전가상화의 단점인 성능저하를 보완할 수 있다.

TTAx.xx.xxxx2

Page 13: 2015-531 임베디드 시스템 가상화-제10부 프로파일링 참조모델

정보통신단체표준(국문표준)

4.1.3. 가상 머신 (VM, Virtual Machine)

실제로 있는 물리 컴퓨터 시스템에서 소프트웨어적으로 구성하여 만들어진 또 다른

가상의 컴퓨터 시스템으로 하나의 컴퓨터를 여러 명의 사용자가 동시에 사용할 수

있도록 여러 대의 작은 컴퓨터로 분할 사용하거나, 운영체제나 하드웨어 등의 구성을

달리하여 운영하고자 할 때 사용된다.

4.1.4. 게스트 운영체제 (Guest OS, Guest Operating System)

가상머신 내에서 동작하는 운영체제로 사용자는 단독 플랫폼에서 사용하는

운영체제와 동일하게 하이퍼바이저 위의 게스트 운영체제상에서 다양한

응용프로그램을 구동한다.

4.1.5. 반가상화 (Para-Virtualization)

반가상화는 게스트 운영체제가 가상화 시스템에서 구동 시에 혹은 기능을 보완하기

위하여 적절히 수정되어야 하는 하이퍼바이저 형태이다.

4.1.6. 전가상화 (Full-Virtualization)

전가상화는 가상화 시스템에서 게스트 운영체제가 구동될 때 어떠한 수정 없이

동작하고 하이퍼바이저가 완전히 하드웨어 플랫폼 에뮬레이션을 제공하는 형태이다.

4.2. 프로파일링 용어

4.2.1. 프로파일링 (Profiling)

프로그램의 시간 복잡도 및 공간, 특정 명령어 이용, 함수 호출의 주기와 빈도 등을

측정하는 동적 프로그램 분석의 형태이다. 프로그램 최적화를 보조하기 위해 사용된다.

4.2.2. 가상머신 내부정보 분석 (VMI, Virtual Machine Introspection)

가상머신의 프로세스 정보, 메모리의 내용, I/O 의 상세 활동 등을 포함한 내부 정보를

하이퍼바이저에서 분석하는 기술로 가상머신의 침입탐지를 위한 기술로 시작되어

분석기술로 발전되었다.

TTAx.xx.xxxx3

Page 14: 2015-531 임베디드 시스템 가상화-제10부 프로파일링 참조모델

정보통신단체표준(국문표준)

4.2.3. 내장 트레이스 매크로셀 (ETM, Embedded Trace Macrocell)

프로세서에 연결되어 트레이스 포트에 프로세서의 정보를 출력하는 하드웨어 매크로

셀이다. ETM 은 Trace bus 프로토콜을 준수한 포트를 통하여 명령어(instruction)레벨의 트레이스 및 데이터 트레이스를 지원한다.

4.3.4. 성능 측정 유닛 (PMU, Performance Monitoring Unit)

PMU 는 성능 파라미터를 측정하는 프로세서 내부에 내장된 하드웨어 이다. 프로세서에 따라 instruction 사이클, cache hit, cache miss, branch miss 등의

성능 지표를 측정할 수 있다. ARM 의 PMUv2 에서는 모드에 따라 해당 지표를 측정할

수 있어, 가상화의 오버헤드 성능 측정에 용이하다.

5. 임베디드 시스템의 프로파일링

5.1. 가상화 된 임베디드 시스템의 프로파일링의 필요성

임베디드 시스템은 자원의 제약과 실시간을 요구하는 응용이 많기 때문에 성능 최적화가

무엇보다 중요하다. 임베디드 시스템을 가상화 하여 구성하였을 때 전체 시스템 성능을

좌우하는 요소를 찾기 위하여 어떠한 값을 프로파일링 해야하는지 정의하고, 임베디드

가상화 시스템에서 해당 지표를 찾는 것이 필요하다.가상화 시스템은 가상화로 인한 지연시간이 존재하는데, 이러한 지연시간이 전체 시스템에

미치는 영향을 고려할 때 해당 요소를 분석하여 설계에 반영하면 많은 성능 향상 및

자원소요의 절감을 기대할 수 있다. 5.2. 임베디드 시스템 프로파일링의 단계

TTAx.xx.xxxx4

Page 15: 2015-531 임베디드 시스템 가상화-제10부 프로파일링 참조모델

정보통신단체표준(국문표준)

프로파일링은 시스템의 성능 최적화를 위해서 사용되는 분석 기법으로 (그림 5-1)과 같이

데이터를 추출, 분석하고 최적화를 통하여 시스템에 반영하는 단계가 있다.

(그림 5-1) 프로파일링의 순서

1) 데이터 추출

데이터의 추출 단계는 시스템 트레이스 단계로 이를 지원하는 하드웨어 및

소프트웨어의 도구의 도움을 받거나, 사용자가 직접 프로그래밍 하여 데이터를 획득할

수 있다. 전체 프로파일링 프로세스의 시작단계로 이 때 추출할 데이터의 종류와 그

방법이 프로파일링 전체의 소요 시간 및 자원을 결정하게 되므로, 가장 중요한 단계가

될 것이다. 상세한 데이터 추출 방법의 분류는 5.3.에서 기술한다.2) 데이터 분석

데이터 분석단계는 추출한 데이터의 통계를 내어 그 의미를 찾기 위한 단계로 시스템의

문제를 빠르게 분리, 식별하는 것이 정보 분석의 목표이다. 주로 용이한 분석을 위하여

시각적인 도구를 활용한다. 3) 시스템 최적화

개발자는 위의 데이터 분석을 통하여 시스템의 병목현상이나 오류를 확인할 수 있고, 이러한 병목구간을 개선 및 오류를 정정하여 전체 시스템의 효율성과 안정성을 높인다. 대부분의 경우 프로그램 소스코드의 10~20%가 전체 프로세스의 80~90%를

실행하는 현상을 보이는데, 프로파일링을 통하여 해당 소스코드를 보다 면밀히

검증하고 최적화를 함으로써 전체 시스템의 성능 향상을 기대할 수 있다. 4) 시스템 반영

위의 단계에서 보완한 최적화된 프로그램을 다시 시스템에 반영하여 수행하고 해당

결과 정보를 트레이스하는 단계를 반복적으로 수행하여 전체 시스템의 성능 향상 및

기능 안정화를 달성한다.

TTAx.xx.xxxx5

Page 16: 2015-531 임베디드 시스템 가상화-제10부 프로파일링 참조모델

정보통신단체표준(국문표준)

5.3. 시스템 프로파일링 방법의 분류

시스템을 프로파일링 하는 방법은 크게 하드웨어를 이용한 방법과 소프트웨어를 이용한

방법으로 나뉜다. 하드웨어를 이용한 방법으로는 플랫폼에서 지원하는 하드웨어 및 외부 하드웨어 도구를

이용한 방법이 있다. ARM기반의 플랫폼은 SoC내부에 on-chip trace 로직(ETM)을

내장하여 프로세서의 동작을 실시간으로 출력할 수 있도록 한다. 데이터를 추출하는 하드웨어 도구로는 In-Circuit Emulator나 Logic Analyzer등이

있으나, 이는 데이터 추출에 대한 성능 손실이 없는 장점이 있는 반면 단가가 높고, 임베디드

시스템에도 많이 사용되는 캐시기반 CPU의 데이터는 정확한 값이 추출되지 않으므로

사용성이 떨어진다. 소프트웨어를 이용한 추출방법은 가상 기본적인 방법으로 컴파일러 등의 도움을 받아 각

함수의 entry 와 exit을 트레이스 하는 방법이다. 예를 들어 리눅스의 경우 strace를

이용하여 시스템 콜 함수가 어떻게 호출되는지 확인할 수 있고, gprof를 통하여 사용자

함수의 소요시간 및 실행횟수 호출 그래프 등의 성능분석이 가능하다. 이와 같이

소프트웨어를 이용한 프로파일리은 함수의 프로그램 전체의 호출 빈도 및 소요 시간을 측정

하여 어떠한 함수가 많이 호출되는지 확인할 수 있고, 해당함수를 최대한 최적화 함으로써

효율적으로 시스템 전체의 성능을 높일 수 있는 근거를 찾을 수 있다. 그러나 이러한 방법은

로그를 기록하고 저장하는 프로파일링 시간 및 공간의 오버헤드가 무척 크기 때문에

임베디드 시스템에서 유용성을 찾기가 어렵다. 또 다른 소프트웨어를 이용한 방법으로는

일정 시간간격으로 샘플링하는 프로파일링하는 기법은 모든 함수를 트레이스 하는 방법에

비하여 정확도가 떨어지지만 시간과 공간의 오버헤드를 줄일 수 있는 trade-off가 있다.

6. 임베디드 가상화 시스템 프로파일링 모델

6장은 임베디드 가상화 시스템에서 적용 가능한 프로파일링의 구조를 제안 및 설명하고

해당 구조에서 프로파일링이 필요한 요소를 상세하게 분석한다.

6.1. 가상화 시스템 프로파일링

본 표준에서 가정하는 하는 임베디드 가상화 시스템은 ARM에서 제공하는 가상화 확장

기능을 이용한 아래의 (그림 6-1)과 같은 Type-1기반의 전가상화 시스템이다.

TTAx.xx.xxxx6

Page 17: 2015-531 임베디드 시스템 가상화-제10부 프로파일링 참조모델

정보통신단체표준(국문표준)

(그림 6-1) 프로파일링의 구조

일반적으로 하이퍼바이저의 기본 기능으로는 가상 머신의 스케줄링을 위한 스케줄러, 메모리 가상화 및 관리를 위한 모듈, 인터럽트를 포함한 디바이스 가상화를 위한 모듈, 그리고 가상 머신 간 통신을 위한 기능을 추가할 수 있다. (그림6-1)과 같이 전가상화에서

하이퍼바이저는 게스트OS에게 가상의 하드웨어 플랫폼을 제공하게 되는데, 하이퍼바이저는

가상 하드웨어 플랫폼의 모든 정보를 제어 및 관리하게 된다. 이 때 게스트 OS가 동작할 때

변화하는 가상 하드웨어, 예를 들어 가상 CPU의 레지스터 값, 메모리의 점유율, 각

인터럽트의 전달 및 그 시각 등을 외부의 하드웨어 도구없이 하이퍼바이저에서 해당 값을

트레이스 하여 추출할 수 있다. 또한, 기존의 게스트OS의 수정, 보완 없이 하이퍼바이저의

기능을 활용하여 게스트 OS를 프로파일링 가능한 요소를 제안한다.

6.2. 게스트 OS 의 프로파일링 요소

가상화 환경에서 동작하는 게스트OS의 설정 및 동작을 트레이스 하면 하이퍼바이저에서

게스트 OS의 정보를 추적할 수 있다. 본 절에서는 임베디드 가상화 환경에서 하이퍼바이저가

획득할 수 있는 게스트OS의 주요 성능 지표를 정의한다.

(1) 인터럽트 소요시간 및 빈도

하이퍼바이저에서는 물리 인터럽트를 가상화 하여 이를 게스트 OS에게 전달하여

Interrupt Service Routine의 시작 과 End Of Interrupt의 시간을 측정할 수 있어

해당 인터럽트의 소요 시간을 정확히 측정할 수 있고, 각 인터럽트 별 게스트 OS에서

수행하는 빈도를 측정하여 게스트OS의 스케줄링 에 반영하는 지표로 활용할 수 있다.(2) 메모리 사용량

게스트 OS의 동적 메모리 할당이 지원되는 하이퍼바이저에는 각 게스트가 사용하는

메모리의 동적 메모리 할당량을 실시간으로 측정할 수 있다. 하이퍼바이저의 구현

방법에 따라 프로파일을 통하여 해당 게스트의 메모리 할당 및 해제를 확인하고

임베디드 시스템 내에서 게스트 OS간의 적절한 자원할당이 되었는지 판단할 수 있다. TTAx.xx.xxxx7

Page 18: 2015-531 임베디드 시스템 가상화-제10부 프로파일링 참조모델

정보통신단체표준(국문표준)

(3) I/O 주변기기 접근 정보

하이퍼바이저는 I/O기기가 발생하는 인터럽트를 통하여 각 게스트OS가 접근하는

주변기기를 확인할 수 있는데, 서로다른 게스트 OS가 접근하는 I/O 기기의 종류 및

빈도를 통하여 통하여 하이퍼바이저의 효율적인 가상화 정책을 정의할 수 있는 근거를

마련한다.

이 외에 게스트 OS 의 정보는 VMI 기법을 통하여 OS 의 프로세스 정보, 메모리 내부의

내용, I/O 의 상세활동을 확인할 수 있으나 본 표준범위에서는 이를 다루지 않는다.

6.3. 하이퍼바이저의 프로파일링 요소

임베디드 가상화 환경에서 하이퍼바이저 내에서 중요하게 고려되어야 할 주요 성능

메트릭은 다음과 같다.

(1) 가상 머신 전환 소요시간 (world switch latency) 두 개 이상의 운영체재가 동작하는 하이퍼바이저에서 가상 머신 간 world switch 시간은 가장 critical한 요소 중 하나이다. 자원의 제약이 엄격한 임베디드 시스템에서

해당 요소는 주요 관찰사항이 된다.(2) 인터럽트 소요시간(interrupt latency)

대부분의 실시간 임베디드 시스템은 인터럽트 driven의 수행을 하므로 인터럽트

실행시간은 매우 큰 요소가 될 수 있다. 그리고, 가상화 시스템의 경우 물리

인터럽트를 가상 인터럽트화 하여 가상 머신에게 전달하기 때문에 ARM VE에서

제공하는 인터럽트 가상화의 도움을 받더라도 인터럽트 가상화로 인한 오버헤드는

전체 시스템에 큰 영향을 미친다. 그러므로 인터럽트 가상화에 따른 latency를

포함한 인터럽트로 인한 전체 소요시간 측정값은 성능을 좌우하는 주요 지표가 될

것이다.(3) 동기화 소요시간 (Synchronization Latency)

가상 시스템에서 동시에 두 개 이상의 운영체제가 동작할 때, 특히 멀티코어 프로세서

기반의 가상화 시스템에서 하이퍼바이저는 듀얼 운영체제를 관리하기 위해서

공유되는 자원을 spin-lock혹은 semaphore등을 사용하여 동기화를 한다. Spin-lock과 semaphore는 이에 수반되는 성능 저하가 따르므로 동기화 역시 가상화

시스템에서 주요 성능 지표라고 할 수 있다.(4) 가상 머신 간 통신 소요시간 (Inter-VM Communication Latency)

가상화 시스템의 주요 기능 중 하나인 가상 머신 간 통신은 가상 머신 간 협업이

필요할 경우 매우 중요한 성능 지표로 활용가능 하다.

TTAx.xx.xxxx8

Page 19: 2015-531 임베디드 시스템 가상화-제10부 프로파일링 참조모델

정보통신단체표준(국문표준)

기타 임베디드 시스템에서의 프로파일링 요소로는 우선순위 전도(priority inversion)가

있다. 실시간 임베디드 시스템에서 우선순위가 높은 작업의 자원 점유로 우선순위가 낮은

작업의 starvation이 발생하는 일은 빈번하다. 이는 deadlock을 발생시킬 수 있는 문제가

되므로, 이에 대한 모니터링이 필요하다. 하지만 하이퍼바이저 상에서는 가상 머신이 static하게 주어진 시간 및 자원을 할당할 수 있기 때문에 해당 사항은 중요 메트릭에서 제외된다.

TTAx.xx.xxxx9

Page 20: 2015-531 임베디드 시스템 가상화-제10부 프로파일링 참조모델

정보통신단체표준(국문표준)

부 록 Ⅰ

인터럽트 소요시간 프로파일링 예

본 부록에서는 표준에서 기술한 인터럽트 소요시간(Interrupt Latency) 성능 측정 방법 및

결과에 대하여 간단히 기술하도록 한다. 표준에서 정의한 인터럽트 소요시간은 크게 6.2장의

(1)에서 기술한 게스트OS의 Interrupt Service Routine을 거치는 소요시간과 6.3장의 (2)에서 기술한 인터럽트 가상화로 인하여 발생하는 소요시간으로 나뉜다.

ARM VE기반의 하이퍼바이저는 PMUv2를 제공하는데, PMUv2에서는 하이퍼바이저

모드에서 동작하는 성능지표와, 게스트에서 동작하는 성능지표를 하드웨어에서 나누어

측정하고 출력 가능하다. 본 예제에서는 게스트에서 발생하는 UART 인터럽트의 소요시간을 측정하였다. 이는

하이퍼바이저의 인터럽트 관리자에서 인터럽트가 발생한 시점부터 Maintenance Interrupt의 처리가 끝나는 시점의 CPU cycles을 측정한 것이다. (참고: 임베디드 시스템 가상화 - 제

2 부: ARM7-A 제네릭 인터럽트 콘트롤러 기반 인터럽트 가상화)<표 I-1> PMU를 이용한 인터럽트 소요시간 프로파일링(CPU cycles)

Hypervisor Latency (HYP)

Guest OS Latency (NSPL1)

HYP + NSPL1

2777 10035 12787

2536 10030 12558

2785 9014 11832

2420 10135 12543

<표 I-1>에서 측정한 “Hypervisor Latency”는 프로세서가 하이퍼바이저 모드에서

인터럽트 처리를 위하여 소요된 시간의 측정된 결과값으로 게스트 OS 가 인터럽트 핸들을

위하여 소요된 시간보다 약 25%내외의 소요시간이 필요함을 확인할 수 있다. 하이퍼바이저

개발자는 위의 측정방법을 가지고 하이퍼바이저의 인터럽트 관리자의 각 세부 모듈별로

소요시간을 측정하여 비 효율적인 부분을 찾고, 이를 개선하여 재 프로파일링을 통하여 전체

시스템 성능을 향상시킬 수 있다.

TTAx.xx.xxxx10

Page 21: 2015-531 임베디드 시스템 가상화-제10부 프로파일링 참조모델

정보통신단체표준(국문표준)

표준 작성 공헌자

표준 번호 : TTAx.xx-xx.xxxx

이 표준의 제정 개정 및 발간을 위해 아래와 같이 여러분들이 공헌하였습니다‧ .

구분 성명 위원회 및 직위 연락처 소속사

표준(과제) 제안임베디드SW 기술포럼,

PG601- -

표준 초안 작성자 신진아임베디드소프트웨어

프로젝트그룹 위원[email protected] ETRI

표준 초안 에디터 신진아임베디드소프트웨어

프로젝트그룹 위원[email protected] ETRI

표준 초안 검토

정영준임베디드소프트웨어

프로젝트그룹 의장[email protected] ETRI

외 프로젝트그룹 위원

표준안 심의

박승민소프트웨어/콘텐츠

기술위원회 의장

[email protected]

ETRI

외 기술위원회 위원

사무국 담당김영화 [email protected] TTA이혜진 [email protected] TTA

TTAx.xx.xxxx11

Page 22: 2015-531 임베디드 시스템 가상화-제10부 프로파일링 참조모델

정보통신단체표준(국문표준)임베디드 시스템 가상화

– 제 10 부: 프로파일링 참조모델(Embedded Systems Virtualization

– Part 10: A Reference Model for Profiling)

발행인 : 한국정보통신기술협회 회장

발행처 : 한국정보통신기술협회

463-824, 경기도 성남시 분당구 분당로 47Tel : 031-724-0114, Fax : 031-724-0109

발행일 : 2015.xx.