KR102457386B1 - 실시간 QoS 모니터링 장치 및 방법 - Google Patents
실시간 QoS 모니터링 장치 및 방법 Download PDFInfo
- Publication number
- KR102457386B1 KR102457386B1 KR1020160025842A KR20160025842A KR102457386B1 KR 102457386 B1 KR102457386 B1 KR 102457386B1 KR 1020160025842 A KR1020160025842 A KR 1020160025842A KR 20160025842 A KR20160025842 A KR 20160025842A KR 102457386 B1 KR102457386 B1 KR 102457386B1
- Authority
- KR
- South Korea
- Prior art keywords
- heartbeat
- qos
- time
- real
- qos information
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
- H04L43/55—Testing of service level quality, e.g. simulating service usage
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Environmental & Geological Engineering (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명은 다수의 응용 프로그램들 중 적어도 하나를 감시 대상 응용 프로그램으로 등록하는 응용 프로그램 등록부; 상기 감시 대상 응용 프로그램에 포함된 함수를 탐지하는 함수 탐색기; 상기 감시 대상 응용 프로그램에 포함된 반복문을 탐지하는 반복문 탐색기; 상기 감시 대상 응용 프로그램에 포함된 사용자 지정위치를 탐지하는 사용자 지정위치 탐색기; 및 상기 함수 탐색기에 의해 탐지된 함수, 상기 반복문 탐색기에 의해 탐지된 반복문 및 상기 사용자 지정위치 탐색기에 의해 탐지된 사용자 지정위치에 대응하여, 다수의 하트비트 콜들을 생성하는 하트비트 생성부를 포함하는 실시간 QoS 모니터링 장치에 관한 것이다. 본 발명에 따르면, 응용 프로그램에 대한 별도의 수정없이 실시간으로 QoS를 측정할 수 있는 실시간 QoS 모니터링 장치 및 방법을 제공할 수 있다.
Description
본 발명은 임의의 시스템에서 동작하는 응용 프로그램의 QoS를 실시간으로 감시할 수 있는 실시간 QoS 모니터링 장치 및 방법에 관한 것이다.
멀티코어 스마트폰을 제조하는 업체에서는 멀티코어 기반 성능 향상을 위해 병렬화가 가능한 응용 프로그램에 한해 병렬 프로그래밍을 하는 추세이지만, 운영체계(OS) 수준에서 성능을 향상하려는 시도는 매우 적으며, 기술의 상업화가 거의 진행되고 있지 않다. 그리고 학계에서 자가적응형 소프트웨어(SW) 연구가 최근 진행되고 있으나 연구 분야가 매우 한정되어 있으며, 임베디드용으로 개발하기보다 연구용으로 x86기반에서 주로 연구를 수행하고 있다.
응용 프로그램의 최적화를 위해서는 응용 프로그램의 QoS(Quality of Service) 측정이 선행되어야 하는데, 종래의 감시 방법에서는 응용 프로그램 내부에 감시 코드를 추가하여 프로그램의 실행 시에 발생하는 QoS 정보를 측정하는 방법을 사용하였다. 이로 인하여, 종래의 감시 방법은 실용성 측면에서 한계를 가지고 있었다.
상술한 문제점을 해결하기 위해 안출된 본 발명의 목적은 응용 프로그램에 대한 별도의 수정없이, 응용 프로그램 수행 시 실시간으로 QoS를 측정할 수 있는 실시간 QoS 모니터링 장치 및 방법을 제공하기 위한 것이다.
또한, 본 발명의 다른 목적은 실시간으로 측정된 QoS를 이용하여, 응용 프로그램의 최적화에 도움을 줄 수 있는 실시간 QoS 모니터링 장치 및 방법을 제공하기 위함이다.
상기한 바와 같은 목적을 달성하기 위한 본 발명의 특징에 따르면, 본 발명의 실시예에 의한 실시간 QoS 모니터링 장치는, 다수의 응용 프로그램들 중 적어도 하나를 감시 대상 응용 프로그램으로 등록하는 응용 프로그램 등록부, 상기 감시 대상 응용 프로그램에 포함된 함수를 탐지하는 함수 탐색기, 상기 감시 대상 응용 프로그램에 포함된 반복문을 탐지하는 반복문 탐색기 및 상기 함수 탐색기에 의해 탐지된 함수와 상기 반복문 탐색기에 의해 탐지된 반복문에 대응하여, 다수의 하트비트 콜들을 생성하는 하트비트 생성부를 포함할 수 있다.
또한, 상기 하트비트 생성부는, 상기 탐지된 함수의 진입 시점과 종료 시점에 대응하여 하트비트 콜을 생성할 수 있다.
또한, 상기 하트비트 생성부는, 상기 탐지된 반복문의 진입 시점에 대응하여 하트비트 콜을 생성할 수 있다.
또한, 상기 하트비트 생성부는, 상기 하트비트 콜들을 이용하여 QoS 정보를 산출할 수 있다.
또한, 상기 QoS 정보는, i(i는 2이상의 자연수)번째 하트비트 콜과 i-1번째 하트비트 콜 사이의 시간차를 포함할 수 있다.
또한, 상기 QoS 정보는, 단위 기간당 생성된 하트비트 콜의 개수를 포함할 수 있다.
또한, 상기 QoS 정보는, 단위 기간당 생성된 하트비트 콜들 사이의 시간차에 대한 평균값을 포함할 수 있다.
또한, 상기 QoS 정보는, 전체 기간내에 생성된 하트비트 콜들 사이의 시간차에 대한 평균값을 포함할 수 있다.
또한, 상기 실시간 QoS 모니터링 장치는, 상기 감시 대상 응용 프로그램에 포함된 사용자 지정위치를 탐지하는 사용자 지정위치 탐색기를 더 포함하고, 상기 하트비트 생성부는, 상기 사용자 지정위치 탐색기에 의해 탐지된 사용자 지정위치에 대응하여 하트비트 콜을 생성할 수 있다.
본 발명의 실시예에 의한 실시간 QoS 모니터링 방법은, 다수의 응용 프로그램들 중 적어도 하나를 감시 대상 응용 프로그램으로 등록하는 단계, 상기 감시 대상 응용 프로그램에 포함된 함수, 반복문 및 사용자 지정위치를 탐지하는 단계 및 탐지된 함수, 반복문 및 사용자 지정위치에 대응하여, 다수의 하트비트 콜들을 생성하는 단계를 포함할 수 있다.
또한, 상기 다수의 하트비트 콜들을 생성하는 단계는, 상기 탐지된 함수의 진입 시점과 종료 시점에 대응하여 하트비트 콜을 생성하고, 상기 탐지된 반복문의 진입 시점에 대응하여 하트비트 콜을 생성할 수 있다.
또한, 상기 다수의 하트비트 콜들을 생성하는 단계에서 생성된 하트비트 콜들을 이용하여 QoS 정보를 산출하는 단계를 더 포함할 수 있다.
또한, 상기 QoS 정보는, i(i는 2이상의 자연수)번째 하트비트 콜과 i-1번째 하트비트 콜 사이의 시간차, 단위 기간당 생성된 하트비트 콜의 개수, 단위 기간당 생성된 하트비트 콜들 사이의 시간차에 대한 평균값, 및 전체 기간내에 생성된 하트비트 콜들 사이의 시간차에 대한 평균값 중 적어도 하나를 포함할 수 있다.
이상 살펴본 바와 같은 본 발명에 따르면, 응용 프로그램에 대한 별도의 수정없이 실시간으로 QoS를 측정할 수 있으므로, 임의의 그 어떤 프로그램에 대해서도 QoS 측정이 가능한 실시간 QoS 모니터링 장치 및 방법을 제공할 수 있다.
도 1은 본 발명의 실시예에 의한 실시간 QoS 모니터링 장치의 시스템 환경을 나타낸 도면이다.
도 2는 본 발명의 실시예에 의한 실시간 모니터를 나타낸 도면이다.
도 3은 본 발명의 실시예에 의한 하트비트 생성부의 QoS 측정 동작을 설명하기 위한 도면이다.
도 4a 내지 도 4c는 본 발명의 실시예에 의한 하트비트 생성부에 의해 제공된 QoS 정보를 나타낸 도면이다.
도 5는 본 발명의 실시예에 의한 실시간 QoS 모니터링 방법을 나타낸 흐름도이다.
도 2는 본 발명의 실시예에 의한 실시간 모니터를 나타낸 도면이다.
도 3은 본 발명의 실시예에 의한 하트비트 생성부의 QoS 측정 동작을 설명하기 위한 도면이다.
도 4a 내지 도 4c는 본 발명의 실시예에 의한 하트비트 생성부에 의해 제공된 QoS 정보를 나타낸 도면이다.
도 5는 본 발명의 실시예에 의한 실시간 QoS 모니터링 방법을 나타낸 흐름도이다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 본 발명의 실시예들 및 이를 설명하기 위한 도면들을 참고하여 본 발명의 실시예에 의한 실시간 QoS 모니터링 장치 및 방법에 대해 설명하도록 한다.
도 1은 본 발명의 실시예에 의한 실시간 QoS 모니터링 장치의 시스템 환경을 나타낸 도면이다.
도 1을 참조하면, 본 발명의 실시예에 의한 실시간 QoS 모니터링 장치(100)는 운영체제(OS: Operating System, 110), 이진 인스트루멘테이션(Binary Instrumentation)을 지원하는 프레임워크(Framework, 120), 실시간 모니터(Real-Time Monitor, 130) 및 다수의 응용 프로그램들(140)을 포함할 수 있다.
운영체제(110)는 임의의 시스템에서 동작 가능한 것으로서, 일례로 리눅스(Linux) 계열의 운영체제일 수 있다.
예를 들어, 컴파일 타임, 링크 타임, 런타임 상황에서 프로그램의 작성 언어에 상관없이 최적화를 쉽게 구현할 수 있도록 지원하는 LLVM (Low Level Virtual Machine)이나, 인텔(Intel)에서 만든 실행파일 분석기인 PIN 등을 사용할 수 있는 환경이 되어야 한다.
LLVM은 언어에 가상 기계를 생성하고, 생성된 가상 기계가 언어에 독립적인 최적화를 실행한다. LLVM은 언어와 구조로부터 독립적이고, 언어 모듈과 시스템을 위한 코드 생성부의 사이에 위치하면서 컴파일 과정 동안 최적화와 함께 JIT(Just In Time)을 정적 컴파일러로 사용함으로써, 개발의 각종 단계에서 사용할 수 있는 많은 부분을 가지고 있다. LLVM은 전통적인 GCC(GNU Compiler Collection) 시스템에서 그랬듯이 코드를 정적으로 컴파일할 수도 있고, Java처럼 JIT를 이용하여 기계어(machine code)로 한 번 더 컴파일되는 중간 형식으로 코드를 컴파일할 수도 있다. 즉 Java처럼 플랫폼에 독립적이란 뜻은 아니다.
그리고 PIN은 인텔에서 제공하는 동적 이진 분석 도구로써, C 혹은 C++로 작성된 임의의 코드를 실행코드의 한 부분으로 삽입시킬 수 있다. 소스코드의 재컴파일이 필요 없으며 동적으로 코드를 재컴파일하는 프로그램이다. PIN은 일종의 JIT 컴파일러로 하나의 명령어가 실행할 때마다 그 흐름을 가로채어 PIN 내부적으로 새로 컴파일한 코드를 실행하며, 이때 사용자가 원하는 코드를 인스트루멘테이션(Instrumentation) 할 수 있다.
이러한 프레임워크(120)를 이용하여, 실시간 모니터(130)는 실시간으로 응용 프로그램의 QoS를 감시할 수 있다.
예를 들어, 실시간 모니터(130)는 다수의 응용 프로그램들(140)에 대한 감시를 수행할 수 있다. 실시간 모니터(130)의 감시 방법은 응용 프로그램의 코드에 감시 코드를 삽입하는 것이 아니라, 바이너리 형태의 프로그램 실행 시에 개발자나 사용자가 원하는 부분에 대하여 감시를 수행한다. 즉, 본 특허에서 제안된 실시간 모니터(130)는 응용 프로그램에 대한 별도의 수정없이 실시간으로 QoS를 측정할 수 있다.
실시간 QoS 모니터링 장치(100)에서는 다수의 응용 프로그램들(140)이 수행될 수 있다.
예를 들어, 응용 프로그램들(140)은 제1 응용 프로그램(141), 제2 응용 프로그램(142), 및 제3 응용 프로그램(143)을 포함할 수 있다. 도 1에서는 3개의 응용 프로그램들(141, 142, 143)이 존재하는 경우를 예시적으로 도시하였으나, 실시간 QoS 모니터링 장치(100)에서 수행되는 응용 프로그램의 개수는 다양하게 변화될 수 있다.
도 2는 본 발명의 실시예에 의한 실시간 모니터를 나타낸 도면이다.
도 2를 참조하면, 본 발명의 실시예에 의한 실시간 모니터(130)는 응용 프로그램 등록부(131), 함수 탐색기(Function Finder, 132), 반복문 탐색기(Loop Finder, 133), 사용자 지정위치 탐색기(134) 및 하트비트 생성부(Heartbeat Generator, 135)를 포함할 수 있다.
응용 프로그램 등록부(131)는 수행 중인 다수의 응용 프로그램들(141, 142, 143) 중 적어도 하나를 감시 대상으로 선정하여, 선정된 응용 프로그램을 감시 대상 응용 프로그램으로 등록할 수 있다. 또한, 응용 프로그램 등록부(131)는 애플리케이션 런쳐(Application Launcher)로 지칭될 수 있다.
이때, 감시 대상 응용 프로그램의 개수는 다양하게 변화될 수 있으나, 감시해야 될 부분이 많을수록 응용 프로그램에 영향을 줄 수 있으므로, 감시 대상의 개수를 적절히 조절해야 한다.
이하에서는 다수의 응용 프로그램들(141, 142, 143) 중 제1 응용 프로그램(141)이 감시 대상 응용 프로그램으로 등록된 경우를 예로 들어 설명하도록 한다.
함수 탐색기(132)는 감시 대상으로 등록된 응용 프로그램(141)에 존재하는 함수를 탐지하고, 반복문 탐색기(133)는 감시 대상으로 등록된 응용 프로그램(141)에 존재하는 반복문(예를 들어, for 문, while 문, do while 문 등)을 탐지할 수 있다.
또한, 사용자 지정위치 탐색기(134)는 감시 대상으로 등록된 응용 프로그램(141)에 존재하는 사용자 지정위치를 탐지할 수 있다.
예를 들어, 사용자 지정위치 탐색기(134)는 사용자가 직접 지정한 코드 라인이나 함수명을 입력받아 그 위치를 탐색할 수 있다.
하트비트 생성부(135)는 함수, 반복문 및 사용자 지정위치 탐색기(132, 133, 134)에 의해 탐지된 지점들에 대해서 실시간으로 QoS 정보를 생성할 수 있다. QoS 정보는 주로 시간 측정 및 시스템 틱(tick)과 관련된 것이다.
예를 들어, 하트비트 생성부(135)는 크게 두 가지 형태의 QoS 정보를 제공할 수 있다. 하나는 구간별 QoS 측정이며, 다른 또 하나는 임의 지점에 대한 QoS 측정이다. 즉 구간별 QoS 측정은 함수 단위의 측정을 의미하며, 임의 지점에 대한 QoS 측정은 반복문이나 임의의 코드 지점(예를 들어, 사용자 지정위치)에 대한 측정을 의미한다.
도 3은 본 발명의 실시예에 의한 하트비트 생성부의 QoS 측정 동작을 설명하기 위한 도면이다.
도 3을 참조하면, 하트비트 생성부(135)는 섹션 하트비트(Section Heartbeat)과 인스턴트 하트비트(Instant Heartbeat)를 제공할 수 있다.
임의의 프로그램이 수행될 때, 개발자나 사용자는 프로그램 내의 함수들이나 반복문이 어느 정도의 성능으로 얼마나 빨리 수행하는지에 대해서 궁금해 할 수 있다.
따라서, 하트비트 생성부(135)는 섹션 하트비트를 통해 함수의 진입과 이탈의 시점을 측정한 QoS를 제공하고, 인스턴트 하트비트를 통해 반복문의 진입 시점이나 임의의 코드 지점에서 수행된 것을 측정한 QoS를 제공할 수 있다.
도 3에서 도시된 바와 같이, 섹션 하트비트는 구간의 의미를 가지고 있고, 인스턴트 하트비트는 시점의 의미를 가지고 있다.
도 4a 내지 도 4c는 본 발명의 실시예에 의한 하트비트 생성부에 의해 제공된 QoS 정보를 나타낸 도면이다.
도 4a를 참조하면, 하트비트 생성부(135)는 QoS 정보를 산출하기 위하여, 다수의 하트비트 콜들(Heartbeat Calls, C1~Ci)을 생성할 수 있다.
구체적으로, 하트비트 생성부(135)는 함수 탐색기(132)에 의해 탐지된 함수, 반복문 탐색기(133)에 의해 탐지된 반복문 및 사용자 지정위치 탐색기(134)에 의해 탐색된 사용자 지정위치에 대응하여, 다수의 하트비트 콜들(C1~Ci)을 생성할 수 있다.
예를 들어, 하트비트 생성부(135)는 상기 함수의 진입 시점과 종료 시점에 각각 대응하여 하트비트 콜을 생성할 수 있다. 또한, 하트비트 생성부(135)는 상기 반복문의 진입 시점에 대응하여 하트비트 콜을 생성할 수 있으며, 사용자 지정위치 탐색기(134)는 사용자가 지정한 임의의 코드 지점에 대응하여 하트비트 콜을 생성할 수 있다.
하트비트 생성부(135)는 하트비트 콜들(C1~Ci) 중 적어도 일부를 이용하여, QoS 정보를 산출할 수 있다.
일례로, 상기 QoS 정보는 인접한 두 개의 하트비트 콜 사이의 시간차를 포함할 수 있다.
도 4a에 도시된 바와 같이, i번째 하트비트 콜(Ci)과 i-1번째 하트비트 콜(Ci-1) 사이의 시간차(d)는 감시 대상 응용 프로그램(141)의 성능을 나타내는 QoS 정보가 될 수 있다. 여기서, 상기 i는 2이상의 자연수를 의미한다.
예를 들어, 감시 대상 응용 프로그램(141)에 포함된 특정 반복문이 개시되면 현재 하트비트 콜(Ci)이 생성될 수 있으며, 이때 이전 하트비트 콜(Ci-1)과의 시간차를 QoS 정보로 활용할 수 있다.
도 4b를 참조하면, 하트비트 생성부(135)는 기설정된 단위 기간(Pu) 동안에 발생된 하트비트 콜들(Ci-5~Ci)을 이용하여, QoS 정보를 산출할 수 있다.
예를 들어, 상기 QoS 정보는 단위 기간(Pu)에 포함된 하트비트 콜들(Ci-5~Ci)의 개수를 포함할 수 있다.
즉, 도 4b에서는 6개의 하트비트 콜들(Ci-5~Ci)이 단위 기간(Pu) 동안 발생하였으므로, "6"이 QoS 정보로 활용될 수 있다.
또한, 상기 QoS 정보는 단위 기간(Pu)에 포함된 하트비트 콜들(Ci-5~Ci) 사이의 시간차(d)에 대한 평균값을 포함할 수 있다.
감시 대상 응용 프로그램(141)에 따라 인접한 하트비트 콜들 사이의 시간차(d)는 상이할 수 있으며, 하트비트 콜들(Ci-5~Ci) 사이에 존재하는 시간차(d)를 모두 합산하고, 이를 평균하여 QoS 정보로 활용할 수 있다.
이는 다른 방식으로도 계산될 수 있는데, 예를 들어 단위 기간(Pu)에서의 최초 하트비트 콜(Ci-5)과 최종 하트비트 콜(Ci) 사이의 시간차(e)를, 단위 기간(Pu) 동안 발생한 하트비트 콜들(Ci-5~Ci)의 개수(예를 들어, 도 4b의 경우 "6")에서 1을 차감한 값(예를 들어, 도 4b의 경우 "5")으로 나눔으로써 산출될 수 있다.
이때, 단위 기간(Pu)은 개발자 또는 사용자 등에 의하여 다양하게 변경될 수 있다.
도 4c를 참조하면, 하트비트 생성부(135)는 전체 기간(Pe) 동안 발생한 하트비트 콜들(C1~Ci)을 이용하여, QoS 정보를 산출할 수 있다.
예를 들어, 상기 QoS 정보는 전체 기간(Pe)에 포함된 하트비트 콜들(C1~Ci) 사이의 시간차(d)에 대한 평균값을 포함할 수 있다.
감시 대상 응용 프로그램(141)에 따라 인접한 하트비트 콜들 사이의 시간차(d)는 상이할 수 있으며, 하트비트 콜들(C1~Ci) 사이에 존재하는 시간차(d)를 모두 합산하고, 이를 평균하여 QoS 정보로 활용할 수 있다.
이는 다른 방식으로도 계산될 수 있는데, 예를 들어 전체 기간(Pe)에서의 최초 하트비트 콜(C1)과 최종 하트비트 콜(Ci) 사이의 시간차를, 전체 기간(Pe) 동안 발생한 하트비트 콜들(C1~Ci)의 개수(예를 들어, 도 4c의 경우 "i")에서 1을 차감한 값(예를 들어, 도 4c의 경우 "i-1")으로 나눔으로써 산출될 수 있다.
도 5는 본 발명의 실시예에 의한 실시간 QoS 모니터링 방법을 나타낸 흐름도이다.
도 5를 참조하면, 본 발명의 실시예에 의한 실시간 QoS 모니터링 방법은 감시 대상 응용 프로그램 등록 단계(S110), 함수, 반복문 및 사용자 지정위치 탐지 단계(S120), 하트비트 콜 생성 단계(S130), 및 QoS 정보 산출 단계(S140)를 포함할 수 있다.
이하에서는 앞서 설명된 도 1 내지 도 4c와 관련된 내용을 함께 참고하여, 각 단계에 대하여 설명하도록 한다.
감시 대상 응용 프로그램 등록 단계(S110)에서는 다수의 응용 프로그램들(141, 142, 143) 중 적어도 하나를 감시 대상 응용 프로그램으로 등록할 수 있다.
본 단계(S110)는 앞서 설명한 응용 프로그램 등록부(131)에 의해 수행될 수 있다.
이하에서는 다수의 응용 프로그램들(141, 142, 143) 중 제1 응용 프로그램(141)이 감시 대상 응용 프로그램으로 등록된 경우를 예로 들어 설명하도록 한다.
함수, 반복문 및 사용자 지정위치 탐지 단계(S120)에서는 감시 대상 응용 프로그램(141)에 포함된 함수, 반복문 및 사용자 지정위치를 탐지할 수 있다.
본 단계(S120)에서 함수 탐지는 앞서 설명한 함수 탐색기(132)에 의해 수행될 수 있고, for 문 및 while 문 등과 같은 반복문의 탐지는 앞서 설명한 반복문 탐색기(133)에 의해 수행될 수 있다. 또한, 본 단계(S120)에서 사용자가 지정한 임의의 코드 지점에 대한 탐지는 앞서 설명한 사용자 지정위치 탐색기(134)에 의해 수행될 수 있다.
하트비트 콜 생성 단계(S130)에서는 상기 함수, 반복문 및 사용자 지정위치 탐지 단계(S120)에서 탐지된 함수, 반복문 및 사용자 지정위치에 대응하여, 다수의 하트비트 콜들(C1~Ci)을 생성할 수 있다.
예를 들어, 본 단계(S130)에서는 이전 단계(S120)에서 탐지된 함수의 진입 시점과 종료 시점에 대응하여 하트비트 콜을 생성하고, 이전 단계(S120)에서 탐지된 반복문의 진입 시점에 대응하여 하트비트 콜을 생성할 수 있다.
또한, 본 단계(S130)에서는 이전 단계(S120)에서 탐지된 사용자 지정위치(예를 들어, 코드라인이나 함수명)에 대응하여 하트비트 콜을 생성할 수 있다.
QoS 정보 산출 단계(S140)에서는 하트비트 콜 생성 단계(S130)에서 생성된 하트비트 콜들(C1~Ci)을 이용하여, QoS 정보를 산출할 수 있다.
예를 들어, 상기 QoS 정보는 i번째 하트비트 콜(Ci)과 i-1번째 하트비트 콜(Ci-1) 사이의 시간차(d), 단위 기간(Pu)에 포함된 하트비트 콜들(Ci-5~Ci)의 개수, 단위 기간(Pu)에 포함된 하트비트 콜들(Ci-5~Ci) 사이의 시간차(d)에 대한 평균값, 및 전체 기간(Pe)에 포함된 하트비트 콜들(C1~Ci) 사이의 시간차(d)에 대한 평균값 중 적어도 하나를 포함할 수 있다.
하트비트 콜 생성 단계(S130)와 QoS 정보 산출 단계(S140)는 앞서 설명한 하트비트 생성부(135)에 의해 수행될 수 있다.
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 실시간 QoS 모니터링 장치
110: 운영체제
120: 프레임워크
130: 실시간 모니터
131: 응용 프로그램 등록부
132: 함수 탐색기
133: 반복문 탐색기
134: 사용자 지정위치 탐색기
135: 하트비트 생성부
140: 응용 프로그램들
110: 운영체제
120: 프레임워크
130: 실시간 모니터
131: 응용 프로그램 등록부
132: 함수 탐색기
133: 반복문 탐색기
134: 사용자 지정위치 탐색기
135: 하트비트 생성부
140: 응용 프로그램들
Claims (13)
- 다수의 응용 프로그램들 중 적어도 하나를 감시 대상 응용 프로그램으로 등록하는 응용 프로그램 등록부;
상기 감시 대상 응용 프로그램에 포함된 함수를 탐지하는 함수 탐색기;
상기 감시 대상 응용 프로그램에 포함된 반복문을 탐지하는 반복문 탐색기; 및
상기 함수 탐색기에 의해 탐지된 함수와 상기 반복문 탐색기에 의해 탐지된 반복문에 대응하여, 다수의 하트비트 콜들을 생성하는 하트비트 생성부를 포함하고,
상기 하트비트 생성부는, 상기 하트비트 콜들을 이용하여 QoS 정보를 산출하고,
상기 QoS 정보는 전체 기간 동안의 평균값인 제1 QoS 정보와, 기 설정된 단위 기간 동안의 평균값이 제2 QoS 정보와, 임의의 시점에서의 실시간 값인 제3 QoS 정보를 포함하는 실시간 QoS 모니터링 장치. - 제1항에 있어서,
상기 하트비트 생성부는, 상기 탐지된 함수의 진입 시점과 종료 시점에 대응하여 하트비트 콜을 생성하는 실시간 QoS 모니터링 장치. - 제1항에 있어서,
상기 하트비트 생성부는, 상기 탐지된 반복문의 진입 시점에 대응하여 하트비트 콜을 생성하는 실시간 QoS 모니터링 장치. - 삭제
- 제1항에 있어서,
상기 QoS 정보는, i(i는 2이상의 자연수)번째 하트비트 콜과 i-1번째 하트비트 콜 사이의 시간차를 포함하는 실시간 QoS 모니터링 장치. - 제1항에 있어서,
상기 QoS 정보는, 단위 기간당 생성된 하트비트 콜의 개수를 포함하는 실시간 QoS 모니터링 장치. - 제1항에 있어서,
상기 QoS 정보는, 단위 기간당 생성된 하트비트 콜들 사이의 시간차에 대한 평균값을 포함하는 실시간 QoS 모니터링 장치. - 제1항에 있어서,
상기 QoS 정보는, 전체 기간내에 생성된 하트비트 콜들 사이의 시간차에 대한 평균값을 포함하는 실시간 QoS 모니터링 장치. - 제1항에 있어서,
상기 실시간 QoS 모니터링 장치는, 상기 감시 대상 응용 프로그램에 포함된 사용자 지정위치를 탐지하는 사용자 지정위치 탐색기를 더 포함하고,
상기 하트비트 생성부는, 상기 사용자 지정위치 탐색기에 의해 탐지된 사용자 지정위치에 대응하여 하트비트 콜을 생성하는 실시간 QoS 모니터링 장치. - 다수의 응용 프로그램들 중 적어도 하나를 감시 대상 응용 프로그램으로 등록하는 단계;
상기 감시 대상 응용 프로그램에 포함된 함수, 반복문 및 사용자 지정위치를 탐지하는 단계;
탐지된 함수, 반복문 및 사용자 지정위치에 대응하여, 다수의 하트비트 콜들을 생성하는 단계; 및
상기 하트비트 콜들을 이용하여 QoS 정보를 산출하는 단계를 포함하고,
상기 QoS 정보는, 전체 기간 동안의 평균값인 제1 QoS와, 기 설정된 단위 기간 동안의 평균값이 제2 QoS와, 임의의 시점에서의 실시간 값인 제3 QoS를 포함하는 실시간 QoS 모니터링 방법. - 제10항에 있어서,
상기 다수의 하트비트 콜들을 생성하는 단계는, 상기 탐지된 함수의 진입 시점과 종료 시점에 대응하여 하트비트 콜을 생성하고, 상기 탐지된 반복문의 진입 시점에 대응하여 하트비트 콜을 생성하는 실시간 QoS 모니터링 방법. - 삭제
- 제10항에 있어서,
상기 QoS 정보는, i(i는 2이상의 자연수)번째 하트비트 콜과 i-1번째 하트비트 콜 사이의 시간차, 단위 기간당 생성된 하트비트 콜의 개수, 단위 기간당 생성된 하트비트 콜들 사이의 시간차에 대한 평균값, 및 전체 기간내에 생성된 하트비트 콜들 사이의 시간차에 대한 평균값 중 적어도 하나를 포함하는 실시간 QoS 모니터링 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160025842A KR102457386B1 (ko) | 2016-03-03 | 2016-03-03 | 실시간 QoS 모니터링 장치 및 방법 |
US15/219,549 US10303468B2 (en) | 2016-03-03 | 2016-07-26 | Real-time quality of service monitoring apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160025842A KR102457386B1 (ko) | 2016-03-03 | 2016-03-03 | 실시간 QoS 모니터링 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170103275A KR20170103275A (ko) | 2017-09-13 |
KR102457386B1 true KR102457386B1 (ko) | 2022-10-24 |
Family
ID=59724373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160025842A KR102457386B1 (ko) | 2016-03-03 | 2016-03-03 | 실시간 QoS 모니터링 장치 및 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10303468B2 (ko) |
KR (1) | KR102457386B1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3777043B1 (en) | 2018-04-10 | 2022-11-09 | Juniper Networks, Inc. | Measuring metrics of a computer network |
WO2020087227A1 (zh) * | 2018-10-29 | 2020-05-07 | 深圳配天智能技术研究院有限公司 | 机器人控制***、心跳监测方法及监测模块、存储介质 |
WO2022034619A1 (en) * | 2020-08-14 | 2022-02-17 | Novi Digital Entertainment Private Limited | System and method for delivering media content to users |
US11496786B2 (en) | 2021-01-06 | 2022-11-08 | Hulu, LLC | Global constraint-based content delivery network (CDN) selection in a video streaming system |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050273757A1 (en) * | 2004-06-07 | 2005-12-08 | Anderson Craig D | Methods, systems, and computer program products for summarizing operational behavior of a computer program |
US20150149982A1 (en) * | 2013-11-27 | 2015-05-28 | Metis-Mp Ltd. | Automatic computer code parallelization |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6721941B1 (en) * | 1996-08-27 | 2004-04-13 | Compuware Corporation | Collection of timing and coverage data through a debugging interface |
KR20040066579A (ko) | 2003-01-20 | 2004-07-27 | 강병욱 | 컴퓨터의 동작을 제어하기 위한 감시제어장치 및 그제어방법 |
ATE497294T1 (de) | 2005-03-14 | 2011-02-15 | Koninkl Philips Electronics Nv | Messung und überwachung der dienstqualität in dienstdifferenzierten drahtlosen netzwerken |
US8849297B2 (en) | 2006-07-14 | 2014-09-30 | Qualcomm Incorporated | Call establishment and maintenance in a wireless network |
KR100823737B1 (ko) | 2006-09-29 | 2008-04-21 | 한국전자통신연구원 | 서로 다른 QoS를 제공하는 네트워크들을 위한 브리지장치 |
KR100934866B1 (ko) | 2007-11-06 | 2009-12-31 | 엘에스산전 주식회사 | 전력 계통의 감시데이터 수집 및 운영 시스템과 그 방법 |
KR20150062654A (ko) * | 2013-11-29 | 2015-06-08 | 삼성전자주식회사 | 소프트웨어 성능 측정 방법 및 장치 |
KR20160000542A (ko) | 2014-06-24 | 2016-01-05 | 한국전자통신연구원 | 데이터 분산 서비스 응용 생성 방법 및 장치 |
-
2016
- 2016-03-03 KR KR1020160025842A patent/KR102457386B1/ko active IP Right Grant
- 2016-07-26 US US15/219,549 patent/US10303468B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050273757A1 (en) * | 2004-06-07 | 2005-12-08 | Anderson Craig D | Methods, systems, and computer program products for summarizing operational behavior of a computer program |
US20150149982A1 (en) * | 2013-11-27 | 2015-05-28 | Metis-Mp Ltd. | Automatic computer code parallelization |
Non-Patent Citations (1)
Title |
---|
"Application Heartbeats: A Generic Interface for Specifying Program Performance and Goals in Autonomous Computing Environments", Henry Hoffmann 외 4명, ICAC '10: Proceedings of the 7th international co |
Also Published As
Publication number | Publication date |
---|---|
KR20170103275A (ko) | 2017-09-13 |
US20170257287A1 (en) | 2017-09-07 |
US10303468B2 (en) | 2019-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102457386B1 (ko) | 실시간 QoS 모니터링 장치 및 방법 | |
Banerjee et al. | Automated re-factoring of android apps to enhance energy-efficiency | |
Jabbarvand et al. | Energy-aware test-suite minimization for android apps | |
Carlson et al. | Sampled simulation of multi-threaded applications | |
Dongarra et al. | Experiences and lessons learned with a portable interface to hardware performance counters | |
Su et al. | Redundant loads: A software inefficiency indicator | |
Marr et al. | Tracing vs. partial evaluation: Comparing meta-compilation approaches for self-optimizing interpreters | |
Lorenzon et al. | Laant: A library to automatically optimize edp for openmp applications | |
Wang et al. | An openmp 3.1 validation testsuite | |
Lorenz et al. | Profiling of OpenMP tasks with Score-P | |
Gaikwad et al. | Performance analysis for languages hosted on the truffle framework | |
CN103207786A (zh) | 渐进式智能回溯向量化代码调优方法 | |
Hocko et al. | Reducing performance non-determinism via cache-aware page allocation strategies | |
Rosales et al. | Fjprof: Profiling fork/join applications on the java virtual machine | |
KR102631545B1 (ko) | 프로그램 분석 방법 및 그 시스템 | |
Rieger et al. | Survey of approaches for assessing software energy consumption | |
CN108415836B (zh) | 利用应用程序检测计算机***性能变化的方法和*** | |
Zhao et al. | DrCCTProf: a fine-grained call path profiler for ARM-based clusters | |
KR20090085816A (ko) | 핫스팟 메소드의 동적 컴파일을 위해 수행 시간을 추정하는방법 | |
Liu et al. | NavyDroid: an efficient tool of energy inefficiency problem diagnosis for Android applications | |
Savrun-Yeniçeri et al. | An efficient and generic event-based profiler framework for dynamic languages | |
Mak et al. | Estimating and exploiting potential parallelism by source-level dependence profiling | |
Wu et al. | FADATest: Fast and adaptive performance regression testing of dynamic binary translation systems | |
Perelman et al. | Cross binary simulation points | |
US8387036B2 (en) | Method and system for execution profiling using loop count variance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |