KR102457386B1 - 실시간 QoS 모니터링 장치 및 방법 - Google Patents

실시간 QoS 모니터링 장치 및 방법 Download PDF

Info

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
Application number
KR1020160025842A
Other languages
English (en)
Other versions
KR20170103275A (ko
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 KR1020160025842A priority Critical patent/KR102457386B1/ko
Priority to US15/219,549 priority patent/US10303468B2/en
Publication of KR20170103275A publication Critical patent/KR20170103275A/ko
Application granted granted Critical
Publication of KR102457386B1 publication Critical patent/KR102457386B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3409Recording 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • H04L43/55Testing of service level quality, e.g. simulating service usage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Environmental & Geological Engineering (AREA)
  • General Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 다수의 응용 프로그램들 중 적어도 하나를 감시 대상 응용 프로그램으로 등록하는 응용 프로그램 등록부; 상기 감시 대상 응용 프로그램에 포함된 함수를 탐지하는 함수 탐색기; 상기 감시 대상 응용 프로그램에 포함된 반복문을 탐지하는 반복문 탐색기; 상기 감시 대상 응용 프로그램에 포함된 사용자 지정위치를 탐지하는 사용자 지정위치 탐색기; 및 상기 함수 탐색기에 의해 탐지된 함수, 상기 반복문 탐색기에 의해 탐지된 반복문 및 상기 사용자 지정위치 탐색기에 의해 탐지된 사용자 지정위치에 대응하여, 다수의 하트비트 콜들을 생성하는 하트비트 생성부를 포함하는 실시간 QoS 모니터링 장치에 관한 것이다. 본 발명에 따르면, 응용 프로그램에 대한 별도의 수정없이 실시간으로 QoS를 측정할 수 있는 실시간 QoS 모니터링 장치 및 방법을 제공할 수 있다.

Description

실시간 QoS 모니터링 장치 및 방법{DEVICE AND METHOD FOR REAL-TIME QoS MONITORING}
본 발명은 임의의 시스템에서 동작하는 응용 프로그램의 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 모니터링 방법을 나타낸 흐름도이다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 본 발명의 실시예들 및 이를 설명하기 위한 도면들을 참고하여 본 발명의 실시예에 의한 실시간 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: 응용 프로그램들

Claims (13)

  1. 다수의 응용 프로그램들 중 적어도 하나를 감시 대상 응용 프로그램으로 등록하는 응용 프로그램 등록부;
    상기 감시 대상 응용 프로그램에 포함된 함수를 탐지하는 함수 탐색기;
    상기 감시 대상 응용 프로그램에 포함된 반복문을 탐지하는 반복문 탐색기; 및
    상기 함수 탐색기에 의해 탐지된 함수와 상기 반복문 탐색기에 의해 탐지된 반복문에 대응하여, 다수의 하트비트 콜들을 생성하는 하트비트 생성부를 포함하고,
    상기 하트비트 생성부는, 상기 하트비트 콜들을 이용하여 QoS 정보를 산출하고,
    상기 QoS 정보는 전체 기간 동안의 평균값인 제1 QoS 정보와, 기 설정된 단위 기간 동안의 평균값이 제2 QoS 정보와, 임의의 시점에서의 실시간 값인 제3 QoS 정보를 포함하는 실시간 QoS 모니터링 장치.
  2. 제1항에 있어서,
    상기 하트비트 생성부는, 상기 탐지된 함수의 진입 시점과 종료 시점에 대응하여 하트비트 콜을 생성하는 실시간 QoS 모니터링 장치.
  3. 제1항에 있어서,
    상기 하트비트 생성부는, 상기 탐지된 반복문의 진입 시점에 대응하여 하트비트 콜을 생성하는 실시간 QoS 모니터링 장치.
  4. 삭제
  5. 제1항에 있어서,
    상기 QoS 정보는, i(i는 2이상의 자연수)번째 하트비트 콜과 i-1번째 하트비트 콜 사이의 시간차를 포함하는 실시간 QoS 모니터링 장치.
  6. 제1항에 있어서,
    상기 QoS 정보는, 단위 기간당 생성된 하트비트 콜의 개수를 포함하는 실시간 QoS 모니터링 장치.
  7. 제1항에 있어서,
    상기 QoS 정보는, 단위 기간당 생성된 하트비트 콜들 사이의 시간차에 대한 평균값을 포함하는 실시간 QoS 모니터링 장치.
  8. 제1항에 있어서,
    상기 QoS 정보는, 전체 기간내에 생성된 하트비트 콜들 사이의 시간차에 대한 평균값을 포함하는 실시간 QoS 모니터링 장치.
  9. 제1항에 있어서,
    상기 실시간 QoS 모니터링 장치는, 상기 감시 대상 응용 프로그램에 포함된 사용자 지정위치를 탐지하는 사용자 지정위치 탐색기를 더 포함하고,
    상기 하트비트 생성부는, 상기 사용자 지정위치 탐색기에 의해 탐지된 사용자 지정위치에 대응하여 하트비트 콜을 생성하는 실시간 QoS 모니터링 장치.
  10. 다수의 응용 프로그램들 중 적어도 하나를 감시 대상 응용 프로그램으로 등록하는 단계;
    상기 감시 대상 응용 프로그램에 포함된 함수, 반복문 및 사용자 지정위치를 탐지하는 단계;
    탐지된 함수, 반복문 및 사용자 지정위치에 대응하여, 다수의 하트비트 콜들을 생성하는 단계; 및
    상기 하트비트 콜들을 이용하여 QoS 정보를 산출하는 단계를 포함하고,
    상기 QoS 정보는, 전체 기간 동안의 평균값인 제1 QoS와, 기 설정된 단위 기간 동안의 평균값이 제2 QoS와, 임의의 시점에서의 실시간 값인 제3 QoS를 포함하는 실시간 QoS 모니터링 방법.
  11. 제10항에 있어서,
    상기 다수의 하트비트 콜들을 생성하는 단계는, 상기 탐지된 함수의 진입 시점과 종료 시점에 대응하여 하트비트 콜을 생성하고, 상기 탐지된 반복문의 진입 시점에 대응하여 하트비트 콜을 생성하는 실시간 QoS 모니터링 방법.
  12. 삭제
  13. 제10항에 있어서,
    상기 QoS 정보는, i(i는 2이상의 자연수)번째 하트비트 콜과 i-1번째 하트비트 콜 사이의 시간차, 단위 기간당 생성된 하트비트 콜의 개수, 단위 기간당 생성된 하트비트 콜들 사이의 시간차에 대한 평균값, 및 전체 기간내에 생성된 하트비트 콜들 사이의 시간차에 대한 평균값 중 적어도 하나를 포함하는 실시간 QoS 모니터링 방법.
KR1020160025842A 2016-03-03 2016-03-03 실시간 QoS 모니터링 장치 및 방법 KR102457386B1 (ko)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019197487A1 (en) 2018-04-10 2019-10-17 Netrounds Ab Measuring metrics of a computer network
CN111801656B (zh) * 2018-10-29 2023-12-22 深圳配天机器人技术有限公司 机器人控制系统、心跳监测方法及监测模块、存储介质
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 강병욱 컴퓨터의 동작을 제어하기 위한 감시제어장치 및 그제어방법
JP4763772B2 (ja) 2005-03-14 2011-08-31 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ サービス差別型無線ネットワークでのQoSの測定及び監視
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 한국전자통신연구원 데이터 분산 서비스 응용 생성 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
US20170257287A1 (en) 2017-09-07
KR20170103275A (ko) 2017-09-13
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
Marr et al. Tracing vs. partial evaluation: Comparing meta-compilation approaches for self-optimizing interpreters
Su et al. Redundant loads: A software inefficiency indicator
Dongarra et al. Experiences and lessons learned with a portable interface to hardware performance counters
Wang et al. An openmp 3.1 validation testsuite
Sato et al. On-the-fly detection of precise loop nests across procedures on a dynamic binary translation system
Lorenz et al. Profiling of OpenMP tasks with Score-P
Gaikwad et al. Performance analysis for languages hosted on the truffle framework
Hocko et al. Reducing performance non-determinism via cache-aware page allocation strategies
Rieger et al. Survey of approaches for assessing software energy consumption
Rosales et al. Fjprof: Profiling fork/join applications on the java virtual machine
KR102631545B1 (ko) 프로그램 분석 방법 및 그 시스템
Holmbacka et al. epebench: True energy benchmark
KR20090085816A (ko) 핫스팟 메소드의 동적 컴파일을 위해 수행 시간을 추정하는방법
Savrun-Yeniçeri et al. An efficient and generic event-based profiler framework for dynamic languages
Rosales et al. tgp: A task-granularity profiler for the java virtual machine
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
Liu et al. NavyDroid: an efficient tool of energy inefficiency problem diagnosis for Android applications
Metz et al. Hybrid PTX analysis for GPU accelerated CNN inferencing aiding computer architecture design
CN108415836B (zh) 利用应用程序检测计算机系统性能变化的方法和系统

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