KR101707601B1 - 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법 - Google Patents

가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법 Download PDF

Info

Publication number
KR101707601B1
KR101707601B1 KR1020150190583A KR20150190583A KR101707601B1 KR 101707601 B1 KR101707601 B1 KR 101707601B1 KR 1020150190583 A KR1020150190583 A KR 1020150190583A KR 20150190583 A KR20150190583 A KR 20150190583A KR 101707601 B1 KR101707601 B1 KR 101707601B1
Authority
KR
South Korea
Prior art keywords
credit
amount
domain
during
loan
Prior art date
Application number
KR1020150190583A
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 KR1020150190583A priority Critical patent/KR101707601B1/ko
Priority to US15/359,374 priority patent/US10521257B2/en
Application granted granted Critical
Publication of KR101707601B1 publication Critical patent/KR101707601B1/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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
    • 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
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

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)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

본 발명은 가상 머신 모니터의 스케줄링 방법을 제공한다.
더 자세하게는 적어도 두 개의 도메인을 구동하는 스케줄러, 태스크 특징 평가부 및 크레딧 관리부를 포함하는 가상 머신 모니터의 스케줄링 방법에 있어서, 상기 스케줄러가 상기 도메인을 스케줄링하고, 스케줄링 된 상기 도메인의 I/O 이벤트가 지연되면, 태스크 특징 평가부가 상기 도메인의 CPU 집중정도 또는 I/O 집중정도에 기반하여 상기 도메인의 태스크 특징을 평가하고, 크레딧 관리부가 평가된 상기 태스크 특징에 따라 차등적으로 상기 도메인이 보유할 수 있는 크레딧 양을 결정하고, 상기 스케줄러가 결정된 상기 크레딧의 양에 따라 상기 도메인에 적용되는 부스트 메커니즘의 적용 빈도수를 결정하는 가상 머신 모니터의 스케줄링 방법을 제공한다.

Description

가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법{VIRTUAL MACHINE MONITOR AND SCHDULING METHOD OF VIRTUAL MACHINE MONITOR}
본 발명은 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법에 관한 것으로, 가상 머신의 스케줄링의 I/O 이벤트 지연을 감소하기 위한 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법을 제공한다.
가상화는 다수의 물리적인 자원을 논리적인 자원으로 통합하거나 반대로 단일 물리적인 자원을 다수의 논리적인 자원으로 분할하여 자원을 효율적으로 사용하는 것을 말한다. 가상화 기술은 가상화 계층을 도입하여 단일 머신에서 다수의 시스템을 운용할 수 있다. 이와 같이 물리적 자원을 추상화하는 소프트웨어를 가상 머신 모니터(Virtual Machine Monitor) 또는 하이퍼바이저라고 하며, 우리가 흔히 접할 수 있는 가상 머신 모니터로는 Hyper-V, VirtualBox, VMware, Xen, KVM 등이 있다.
가상 머신은 가상 머신 모니터에 의해 추상화된 논리적 자원 즉, 실제 머신은 아니지만 물리 머신이 있는 것 같은 머신 환경을 의미하며 Xen에서는 가상 머신을 도메인이라고 표현하기도 한다. 가상 머신 모니터와 가상 머신 간의 관계는 운영체제와 프로세스의 관계와 흡사하다. 운영체제는 물리적인 자원을 추상화하여 다수의 프로세스에게 제공하는데, 이와 비슷하게 가상 머신 모니터도 CPU, 메모리, I/O를 가상화하여 가상 머신에게 제공한다.
VCPU는 실제 물리적 자원인 CPU를 가상 머신 모니터가 논리적으로 추상화 한 것을 말하며, 단일 물리 머신에서 동작하는 다수의 가상머신은 실제 CPU가 아닌 VCPU를 가지게 된다. VCPU는 운영체제-프로세스 관계에서 프로세스에 해당하며, 운영체제가 CPU 자원을 사용할 프로세스를 선택하는 것처럼 가상 머신 모니터 또한 CPU 자원을 사용할 VCPU를 스케줄링 정책을 통해 선택한다. 이처럼 CPU 자원을 사용할 VCPU를 결정하는 스케줄링을 가상 머신 스케줄링이라고 한다.
크레딧 스케줄러는 리눅스 오픈 소스인 Xen의 가상머신 스케줄링 방법 중의 하나로, 이벤트 응답성 향상을 위해 부스트 메커니즘을 사용한다. 부스트 메커니즘은 블록된 상태의 VCPU에 이벤트가 지연되었을 경우 해당 VCPU를 실행가능 상태로 변경하고, 가장 높은 우선순위인 BOOST를 부여한다. VCPU는 도메인 내에 실행 가능한 태스크가 없거나 트레딧을 소모하지 않아 특정 값 이상 크레딧을 보유할 경우 해당 VCPU는 블록 상태가 되며 이벤트가 발생할 때까지 실행되지 않는다. BOOST 우선순위의 VCPU는 우선적으로 실행되어 지연된 이벤트를 빠르게 처리하여 도메인의 응답성을 향상시킨다.
그러나 CPU 집중적인 작업을 하는 VCPU는 크레딧을 지속적으로 소모하고 도메인 내에 실행가능 태스크가 존재할 확률이 높기 때문에 기존 부스트 메커니즘의 혜택을 받을 수 없다. 또한, 활성상태의 가성 머신이 다수 존재할 경우 가상 머신 스케줄링 지연시간은 증가하게 되어 이벤트 응답성은 더욱 떨어지게 된다. 가상화 환경에서 가상 머신의 I/O과정에서 발생하는 인터럽트는 이벤트 메커니즘을 이용해 처리하므로, 이벤트 응답성이 떨어지게되면 I/O 응답성을 비롯한 I/O 성능이 하락하는 문제가 발생한다.
한국공개특허 제2011-0103257호 한국공개특허 제2012-0035387호
본 발명의 일 측면은 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법에 있어서, 긴 스케줄링 지연시간을 가지면서 CPU 집중적인 작업을 하는 도메인의 I/O 성능 저하 문제점을 해결하기 위해 태스크 특징에 기반한 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법을 제공한다.
본 발명의 일 실시예에 따른 가상 머신 모니터는 적어도 두 개의 도메인을 구동하는 스케줄러, 태스크 특징 평가부 및 크레딧 관리부를 포함하는 가상 머신 모니터의 스케줄링 방법에 있어서, 상기 스케줄러가 상기 도메인을 스케줄링하고, 스케줄링 된 상기 도메인의 I/O 이벤트가 지연되면, 태스크 특징 평가부가 상기 도메인의 CPU 집중정도 또는 I/O 집중정도에 기반하여 상기 도메인의 태스크 특징을 평가하고, 크레딧 관리부가 평가된 상기 태스크 특징에 따라 차등적으로 상기 도메인이 보유할 수 있는 크레딧 양을 결정하고, 상기 스케줄러가 결정된 상기 크레딧의 양에 따라 상기 도메인에 적용되는 부스트 메커니즘의 적용 빈도수를 결정하는 것일 수 있다.
상기 CPU 집중정도는, 아래의 수학식에 의해 산출되는 지표에 기반하여 평가되는 것일 수 있다.
[수학식 1]
Figure 112015129179559-pat00001
(여기서,
Figure 112015129179559-pat00002
:
Figure 112015129179559-pat00003
동안
Figure 112015129179559-pat00004
가 BOOST되어 소모한 크레딧의 양,
Figure 112015129179559-pat00005
Figure 112015129179559-pat00006
가 대출받은 크레딧의 양,
Figure 112015129179559-pat00007
: BOOST된 횟수)
상기 I/O 집중정도는, 아래의 수학식에 의해 산출되는 지표에 기반하여 평가되는 것일 수 있다.
[수학식 2]
Figure 112015129179559-pat00008
(여기서,
Figure 112015129179559-pat00009
: j 주기 동안
Figure 112015129179559-pat00010
가 대출 크레딧을 전부 사용할 때까지 걸린 시간,
Figure 112015129179559-pat00011
: BOOST된 횟수,
Figure 112015129179559-pat00012
:
Figure 112015129179559-pat00013
동안
Figure 112015129179559-pat00014
가 ms당 BOOST된 횟수)
상기 태스크 특징은 CPU 집중정도 및 I/O 집중정도를 포함하는 종합 특성에 기반하여 평가되고, 상기 종합 특성은, 아래의 수학식에 의해 산출되는 지표에 기반하여 평가되는 것일 수 있다.
[수학식 3]
Figure 112015129179559-pat00015
(여기서,
Figure 112015129179559-pat00016
:
Figure 112015129179559-pat00017
가 ms당 소모한 대출 크레딧의 양,
Figure 112015129179559-pat00018
VCPU가 대출받은 크레딧의 양,
Figure 112015129179559-pat00019
: j 주기 동안
Figure 112015129179559-pat00020
가 대출 크레딧을 전부 사용할 때까지 걸린 시간,
Figure 112015129179559-pat00021
: BOOST된 횟수,
Figure 112015129179559-pat00022
:
Figure 112015129179559-pat00023
동안
Figure 112015129179559-pat00024
가 BOOST되어 소모한 크레딧의 양,
Figure 112015129179559-pat00025
:
Figure 112015129179559-pat00026
동안
Figure 112015129179559-pat00027
가 ms당 BOOST된 횟수)
상기 태스크 특징에 따라 차등적으로 상기 도메인이 보유할 수 있는 크레딧의 양을 결정하는 것은, 아래의 수학식에 의해 결정되는 것일 수 있다.
[수학식 4]
Figure 112015129179559-pat00028
(여기서,
Figure 112015129179559-pat00029
:
Figure 112015129179559-pat00030
가 ms당 소모한 대출 크레딧의 양,
Figure 112015129179559-pat00031
:
Figure 112015129179559-pat00032
가 대출받은 크레딧의 양,
Figure 112015129179559-pat00033
: 상환 후 다음 주기(current+1)에 대출받을 수 있는 크레딧의 양)
본 발명의 다른 실시예에 따른, 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체는 가상 머신 모니터를 제공할 수 있다.
본 발명의 다른 실시예에 따른 가상 머신 모니터는 적어도 두 개의 도메인을 구동하는 가상 머신 모니터에 있어서, 상기 도메인을 스케줄링 하는 스케줄러, 스케줄링 된 상기 도메인의 I/O 이벤트가 지연되면, 상기 도메인의 CPU 집중정도 또는 I/O 집중정도에 기반하여 상기 도메인의 태스크 특징을 평가하는 태스크 특징 평가부 및 평가된 상기 태스크 특징에 따라 차등적으로 상기 도메인이 보유할 수 있는 크레딧 양을 결정하는 크레딧 관리부를 포함하되, 상기 스케줄러는, 결정된 상기 크레딧의 양에 따라 상기 도메인에 적용되는 부스트 메커니즘의 적용 빈도수를 결정하는 것을 더 포함하는 가상 머신 모니터.
상기 CPU 집중정도는, 아래의 수학식에 의해 산출되는 지표에 기반하여 평가되는 것일 수 있다.
[수학식 1]
Figure 112015129179559-pat00034
(여기서,
Figure 112015129179559-pat00035
:
Figure 112015129179559-pat00036
동안
Figure 112015129179559-pat00037
가 BOOST되어 소모한 크레딧의 양,
Figure 112015129179559-pat00038
Figure 112015129179559-pat00039
가 대출받은 크레딧의 양,
Figure 112015129179559-pat00040
: BOOST된 횟수)
상기 I/O 집중정도는, 아래의 수학식에 의해 산출되는 지표에 기반하여 평가되는 것일 수 있다.
[수학식 2]
Figure 112015129179559-pat00041
(여기서,
Figure 112015129179559-pat00042
: j 주기 동안
Figure 112015129179559-pat00043
가 대출 크레딧을 전부 사용할 때까지 걸린 시간,
Figure 112015129179559-pat00044
: BOOST된 횟수,
Figure 112015129179559-pat00045
:
Figure 112015129179559-pat00046
동안
Figure 112015129179559-pat00047
가 ms당 BOOST된 횟수)
상기 태스크 특징은 CPU 집중정도 및 I/O 집중정도를 포함하는 종합 특성에 기반하여 평가되고, 상기 종합 특성은, 아래의 수학식에 의해 산출되는 지표에 기반하여 평가되는 것일 수 있다.
[수학식 3]
Figure 112015129179559-pat00048
(여기서,
Figure 112015129179559-pat00049
:
Figure 112015129179559-pat00050
가 ms당 소모한 대출 크레딧의 양,
Figure 112015129179559-pat00051
VCPU가 대출받은 크레딧의 양,
Figure 112015129179559-pat00052
: j 주기 동안
Figure 112015129179559-pat00053
가 대출 크레딧을 전부 사용할 때까지 걸린 시간,
Figure 112015129179559-pat00054
: BOOST된 횟수,
Figure 112015129179559-pat00055
:
Figure 112015129179559-pat00056
동안
Figure 112015129179559-pat00057
가 BOOST되어 소모한 크레딧의 양,
Figure 112015129179559-pat00058
:
Figure 112015129179559-pat00059
동안
Figure 112015129179559-pat00060
가 ms당 BOOST된 횟수)
상기 태스크 특징에 따라 차등적으로 상기 도메인이 보유할 수 있는 크레딧의 양을 결정하는 것은, 아래의 수학식에 의해 결정되는 것일 수 있다.
[수학식 4]
Figure 112015129179559-pat00061
(여기서,
Figure 112015129179559-pat00062
:
Figure 112015129179559-pat00063
가 ms당 소모한 대출 크레딧의 양,
Figure 112015129179559-pat00064
:
Figure 112015129179559-pat00065
가 대출받은 크레딧의 양,
Figure 112015129179559-pat00066
: 상환 후 다음 주기(current+1)에 대출받을 수 있는 크레딧의 양)
상술한 본 발명의 일 측면에 따르면, 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법은 I/O 이벤트를 처리하기 위한 별도의 크레딧을 할당하여 I/O 처리에 더 많은 CPU 자원을 할애하는 것으로 활성상태 도메인의 I/O 성능을 향상시킬 수 있다.
도 1 은 본 발명의 일 실시예에 따른 가상 머신 모니터를 포함하는 분리 드라이버 모델을 도시한다.
도 2 는 도 1의 가상 머신 모니터의 제어 블록도이다.
도 3 은 본 발명의 일 실시예에 따른 CPU, I/O 지향에 따른 태스크 분류 그래프를 도시한다.
도 4 는 본 발명의 일 실시예에 따른 크레딧 대출/상환 메커니즘을 도시한다.
도 5 는 본 발명의 일 실시예에 따른 가상 머신 모니터의 스케줄링 방법의 순서도를 도시한다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예와 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다. 이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.
도 1 은 본 발명의 일 실시예에 따른 가상 머신 모니터를 포함하는 분리 드라이버 모델을 도시한다.
도 1 을 참조하면, 분리 드라이버 모델은 다수의 도메인(100,200), 가상 머신 모니터(300) 및 하드웨어 플랫폼(400)을 포함할 수 있다.
도메인(100,200)은 실제 머신은 아니지만 물리 머신이 있는 것 같은 환경을 제공할 수 있도록 운영체제 또는 응용 프로그램으로 구현될 수 있다. 이러한 도메인(100,200)은 드라이버 도메인(100)과 게스트 도메인(200)으로 구분할 수 있는데, 드라이버 도메인(100)은 하드웨어 플랫폼(400)에 직접 접근하여 I/O 이벤트 정보를 교환할 수 있는 도메인(100,200)이고, 게스트 도메인(200)은 드라이버 도메인(100)의 도움을 받아 간접적으로 하드웨어 플랫폼을 이용하는 도메인(100,200)을 말한다.
하드웨어 플랫폼(400)은 중앙 처리 장치(CPU), 메모리, 입출력 포트 등과 같은 물리적 장치가 될 수 있으며, 드라이버 도메인(100)과 직접 I/O 이벤트 정보를 교환할 수 있다.
가상 머신 모니터(300)는 단일 머신에서 다수의 도메인(100,200)을 동시에 운영하기 위한 플랫폼을 말하는 것으로, 추상화된 하드웨어 자원을 관리하거나 가상 머신 스케줄러를 통해 도메인에게 자원을 분배할 수 있다. 즉, 가상 머신 모니터(300)는 하나의 컴퓨터에 여러 개의 운영체제를 동시에 구동할 수 있게 만들어 주는 소프트웨어라고 할 수 있다.
가상 머신 모니터(300)는 다양한 가상 머신 스케줄러를 사용할 수 있으며, 대표적으로 Xen Project VMM이 제공하는 RTDS(Real Time Deferrable Server), ARINC 653, Credit, Credit2 스케줄러가 있다. 이 중 Credit 스케줄러는 범용적인 목적으로 사용되는 스케줄러로 도메인(100,200)이 갖는 지분에 비례해서 CPU 자원을 분배하는 비례공정 지분 스케줄러다.
Credit 스케줄러는 30ms 마다 도메인(100,200)이 갖는 weight 값에 비례해 크레딧을 해당 도메인(100,200)의 VCPU에 분배하는데, VCPU는 보유한 크레딧의 값에 따라 우선순위가 정해지고, 실행된 만큼 크레딧이 차감된다.
Credit 스케줄러는 VCPU에서 I/O 이벤트가 지연된 경우 I/O 이벤트가 지연된 VCPU를 최우선순위인 BOOST 상태로 부여하는 부스트 메커니즘을 수행하는데, 이때의 부스트 메커니즘은 비활성 상태의 도메인(100,200)의 VCPU에 I/O 이벤트가 지연된 경우에만 VCPU에 BOOST 상태를 부여하기 때문에, 활성 상태의 도메인(100,200)의 VCPU는 BOOST 상태를 부여 받기 어렵다.
이에 본 발명은 새로운 부스트 메커니즘을 적용하여 도메인(100,200)의 활성 여부에 관계 없이 도메인(100,200)의 VCPU의 I/O 이벤트가 지연되면, 지연된 VCPU에 해당하는 도메인(100,200)의 우선순위를 높인다. 이때, 특정 도메인이 지속적으로 BOOST 되어 CPU 자원을 독점하는 상황을 차단하기 위하여 도메인(100,200)의 태스크 특징에 따라 I/O 이벤트 지연에 따른 부스트 메커니즘 적용의 빈도수를 차등적으로 적용하는 부스트 메커니즘을 적용한다. 더 자세하게는 최초로 I/O 이벤트가 지연된 도메인(100,200)이거나 비활성 상태의 도메인(100,200)인 경우, 부스트 메커니즘의 적용 빈도수에대한 변화 없이 도메인(100,200)에 부스트 메커니즘을 적용하고, 활성 상태의 도메인(100,200)의 경우, 부스트 메커니즘의 적용 빈도수를 감소시켜 변경된 부스트 메커니즘을 도메인(100,200)에 적용한다.
이를 위해, 본 발명의 가상 머신 모니터(300)는 크레딧의 대출/상환 메커니즘을 실행하고, 대출/상환 메커니즘을 이용하여 도메인(100,200)의 태스크의 CPU 집중정도, I/O 집중정도를 평가하고, 산출한 CPU, I/O 집중정도에 기반하여 도메인(100,200)이 대출받을 수 있는 크레딧의 양을 산출하고, 산출한 도메인(100,200)의 대출받을 수 있는 크레딧의 양을 이용하여 태스크의 특성에 따라 BOOST 되는 빈도수가 조절되는 새로운 부스트 메커니즘을 실행한다.
가상 머신 모니터(300)는 도 2를 통하여 자세히 설명한다.
도 2를 참조하면, 가상 머신 모니터(300)는 스케줄러(310), 태스크 특징 평가부(320) 및 크레딧 관리부(330)를 포함할 수 있다. 태스크 특징 평가부(320)는 도메인(100,200)의 태스크가 CPU 집중적인지, I/O 집중적인지 분류하고, 그 정도를 CPU 집중정도, I/O 집중정도로 평가할 수 있다.
더 자세하게 설명하면, 스케줄러(310)는 도메인(100,200)의 VCPU에 최초로 I/O 이벤트가 지연됐을 경우, 미리 정해진
Figure 112015129179559-pat00067
만큼에 해당하는 대출 크레딧을 VCPU에 빌려주고 부스트 메커니즘을 적용한다. 스케줄러(310)는 VCPU가 부스트되어 실행된 만큼 대출 크레딧을 차감한다. 이때, 대출 크레딧은 I/O 이벤트 지연에 의해 VCPU가 부스트되어 실행될 때만 차감되는 것이며, I/O 이벤트에 의한 부스트 메커니즘의 적용은 대출 크레딧이 남아 있을 경우에만 가능하다. 스케줄러(310)는 j 주기 동안(j는 대출 크레딧의 사용 시작부터 소모 완료까지의 주기) VCPU가 대출 크레딧을 전부 사용할때까지 걸린 시간
Figure 112015129179559-pat00068
와 BOOST 된 횟수
Figure 112015129179559-pat00069
및 VCPU가 BOOST되어 실행되는 동안 소모한 크레딧 양을 구한다. 스케줄러(310)는 시간
Figure 112015129179559-pat00070
와 BOOST 된 횟수
Figure 112015129179559-pat00071
을 전달 및 및 VCPU가 BOOST되어 실행되는 동안 소모한 크레딧 양을 태스크 특징 평가부(320)로 전달한다.
본 발명의 일 실시예에 의한 태스크 특징 평가부(320)는 크레딧의 대출/상환 메커니즘을 이용하여 태스크의 특징을 평가할 수 있다.
그 전에 태스크의 특징에 대하여 설명한다. 태스크의 특징은 도메인(100,200)의 태스크가 CPU 집중적인지, I/O 집중적인지 분류할 수 있는데, 태스크가 CPU 집중적일수록 스케줄링 됐을 때 CPU 자원을 오래 점유할 수 있으며, 태스크가 I/O 집중적일수록 I/O 이벤트가 자주 발생할 수 있다. 즉, 태스크가 CPU 집중적인 경우에는 CPU 집중정도가 높을수록 CPU 자원을 오래 점유하여 BOOST 되는 경우 CPU 자원을 독점할 수 있고, 태스크가 I/O 집중적인 경우에는 I/O 집중정도가 높을수록 I/O 이벤트를 자주 발생시켜 I/O 집중적인 태스크를 수행하는 도메인이 자주 BOOST 되어 CPU 자원을 독점할 수 있다.
또한, 태스크의 특징은 CPU 집중적인지, I/O 집중적인지 종합적으로 판단하여 태스크 특징을 분류할 수 있다. 이러한 태스크의 특성은 도 3에 도시된 분류 그래프로 설명할 수 있다.
도 3을 참조하면, 태스크 특징은 CPU, I/O 집중정도에 따라 도 3에 도시된 분류 그래프와 같이 태스크 집중정도에 따라 A, B, C, D로 분류할 수 있다. 분류 그래프의 X축은 CPU 집중정도를 의미하고, Y축은 I/O 집중정도를 의미한다. 예를들어, 임의의 태스크가 CPU 집중정도와 I/O 집중정도가 모두 높으면, A타입으로 분류될 수 있으며, CPU 집중정도는 낮지만 I/O 집중정도가 높은 경우 B타입으로 분류될 수 있다. 태스크 특징은 A > B = C > D의 순으로 CPU자원에 대한 독점력이 강하다. 특정 도메인(100,200)이 CPU자원을 독점하게 되면 그만큼 I/O 이벤트 지연이 발생하게 되므로, 새로운 부스트 메커니즘이 적용된 가상 머신 모니터(300)는 스케줄러(310), 태스크 특징 평가부(320) 및 크레딧 관리부(330)의 연계를 통하여 CPU자원에 대한 독점력이 강한 도메인(100,200)의 부스트 메커니즘의 적용 빈도수를 줄인다.
태스크 특징 평가부(320)가 크레딧의 대출/상환 메커니즘을 이용하여 태스크의 특징을 평가하는 것은 도 4를 참조하여 설명할 수 있다.
도 4를 참조하면, 크레딧의 대출/상환 메커니즘은 도메인에 I/O 이벤트가 최초로 지연됐을 경우, 추가적인 크레딧을 빌려주고 부스트 메커니즘을 적용하여 I/O 성능을 향상시킬 수 있다.(도 4의 t0) 대출 크레딧은 I/O 이벤트 지연에 의해 부스트되어 실행된 만큼 차감된다.(도 4의 p0) 이때, 부스트되어 실행되던 도메인(100,200)이 일반적으로 스케줄링 된 후에는 크레딧이 더 이상 차감되지 않는다. 도메인(100,200)이 BOOST되어 대출 크레딧을 전부 소모했을 경우 대출받은 크레딧 전부를 상환하기 전까지는 I/O이벤트가 지연되어도 BOOST되지 않는다.(도 4의 r0) 이때, 도메인(100,200)은 자신의 지분에 따라 분배받는 크레딧을 대출받은 크레딧 상환에 사용할 수 있다.
이와 같은 과정을 통하여 태스크 특징 평가부(320)는 대출 크레딧의 소비 패턴과 대출 크레딧의 상환 패턴을 분석하여 태스크 특징을 평가할 수 있다. 더 자세하게 설명하면, 태스크 특징 평가부(320)는 도메인이 대출해준 크레딧을 빨리 소모할수록 태스크가 CPU 또는 I/O 집중적인 것으로 평가할 수 있고, 대출 크레딧의 상환이 빠를수록 태스크가 유휴하다고 평가할 수 있다.
태스크 특징 평가부(320)는 태스크의 특징을 분류하기 위한 CPU 집중정도와 I/O 집중정도를 크레딧의 대출/상환 메커니즘을 이용하여 산출할 수 있다. 이때, 크레딧의 대출/상환 메커니즘은 스케줄러(310)에 의해 수행되는 것이며, 태스크 특징 평가부(320)는 스케줄러(310)로부터 CPU 집중정도를 산출하기 위한 필요 정보를 전달받는 것일 수 있다.
태스크 특징 평가부(320)는 스케줄러(310)로부터 스케줄러(310)가 구한 j 주기 동안
Figure 112015129179559-pat00072
가 대출 크레딧을 전부 사용할 때까지 걸린 시간
Figure 112015129179559-pat00073
와 BOOST 된 횟수
Figure 112015129179559-pat00074
Figure 112015129179559-pat00075
가 대출받은 크레딧의 양인
Figure 112015129179559-pat00076
를 전달받고 (i는 부스트 횟수, j는 대출 크레딧의 사용 시작부터 소모 완료까지의 주기), 미리 정해진 [수학식 1]을 이용하여 CPU 집중정도를 평가하고, [수학식 2]를 이용하여 I/O 집중정도를 평가한다. 수학식은 다음과 같다.
[수학식 1]
Figure 112015129179559-pat00077
(여기서,
Figure 112015129179559-pat00078
:
Figure 112015129179559-pat00079
동안
Figure 112015129179559-pat00080
가 BOOST되어 소모한 크레딧의 양,
Figure 112015129179559-pat00081
Figure 112015129179559-pat00082
가 대출받은 크레딧의 양,
Figure 112015129179559-pat00083
: BOOST된 횟수)
[수학식 2]
Figure 112015129179559-pat00084
(여기서,
Figure 112015129179559-pat00085
: j 주기 동안
Figure 112015129179559-pat00086
가 대출 크레딧을 전부 사용할 때까지 걸린 시간,
Figure 112015129179559-pat00087
: BOOST된 횟수,
Figure 112015129179559-pat00088
:
Figure 112015129179559-pat00089
동안
Figure 112015129179559-pat00090
가 ms당 BOOST된 횟수)
[수학식 1]에 의해 산출된
Figure 112015129179559-pat00091
는 태스크의 CPU 집중적인 정도를 평가하는데 사용한다. 예를 들어,
Figure 112015129179559-pat00092
값이 클수록 BOOST되어 실행되는 동안 크레딧을 많이 소모한 것이다. 즉, 태스크가 CPU 집중적이라는 것을 나타낸다.
[수학식 2]에 의해 산출된
Figure 112015129179559-pat00093
는 태스크의 I/O 집중적인 정도를 평가하는데 사용한다. 예를 들어
Figure 112015129179559-pat00094
값이 클수록 I/O 이벤트가 많이 발생한 것이다. 즉, 태스크가 I/O 집중적이라는 것을 나타낸다.
또한, 태스크 특징 평가부(320)는 CPU 집중정도 및 I/O 집중정도를 포함하는 정합 특성을 평가할 수 있으며, 종합 특성은 [수학식 3]을 이용하여 평가할 수 있다. 수학식은 다음과 같다.
[수학식 3]
Figure 112015129179559-pat00095
(여기서,
Figure 112015129179559-pat00096
:
Figure 112015129179559-pat00097
가 ms당 소모한 대출 크레딧의 양,
Figure 112015129179559-pat00098
VCPU가 대출받은 크레딧의 양,
Figure 112015129179559-pat00099
: j 주기 동안
Figure 112015129179559-pat00100
가 대출 크레딧을 전부 사용할 때까지 걸린 시간,
Figure 112015129179559-pat00101
: BOOST된 횟수,
Figure 112015129179559-pat00102
:
Figure 112015129179559-pat00103
동안
Figure 112015129179559-pat00104
가 BOOST되어 소모한 크레딧의 양,
Figure 112015129179559-pat00105
:
Figure 112015129179559-pat00106
동안
Figure 112015129179559-pat00107
가 ms당 BOOST된 횟수)
태스크 특징 평가부(320)는 CPU 집중정도, I/O 집중정도 또는 종합 특성을 이용하여 도메인(100,200)의 태스크의 특징을 분류할 수 있고, CPU 집중정도, I/O 집중정도 또는 종합 특성을 포함하는 분류 정보를 크레딧 관리부(330)로 전달할 수 있다.
크레딧 관리부(330)는 도메인(100,200)의 태스크의 특징에 따라 차등적으로 부스트 메커니즘을 적용하기 위한 대출받을 수 있는 크레딧의 양을 결정할 수 있다. 이때의 대출받을 수 있는 크레딧의 양은 BOOST를 통해 한번 대출 크레딧을 모두 상환 후의 다음 주기(current+1)에 해당한다. 현재 대출받을 수 있는 크레딧의 양은 [수학식 4]를 이용하여 산출할 수 있으며, 수학식은 다음과 같다.
[수학식 4]
Figure 112015129179559-pat00108
(여기서,
Figure 112015129179559-pat00109
:
Figure 112015129179559-pat00110
가 ms당 소모한 대출 크레딧의 양,
Figure 112015129179559-pat00111
:
Figure 112015129179559-pat00112
가 대출받은 크레딧의 양,
Figure 112015129179559-pat00113
: 상환 후 다음 주기(current+1)에 대출받을 수 있는 크레딧의 양)
[수학식 4]에 따르면 상환 후 다음 주기에 대출받을 수 있는 크레딧의 양은 과거(전주기)의
Figure 112015129179559-pat00114
의 영향을 받는다. 즉, 태스크 특징이 도 2의 A에 가까울수록 다음 주기의 대출 받을 수 있는 크레딧의 양은 적어지고 반대로 태스크 특징이 도 2의 D에 가까울수록 다음 주기의 대출받을 수 있는 크레딧의 양은 늘어난다. 대출받을 수 있는 크레딧이 늘어난다는 것은 상환해야하는 크레딧이 늘어난다는 것과 동일하므로 결과적으로 상환 기간을 늘리는 효과를 주어, CPU자원의 독점력이 높은 도메인(100,200)이 BOOST 되는 빈도수를 감소시키는 효과를 발생시킨다.
다른 실시예에 따른 크레딧 관리부(330)는 CPU 집중정도 또는 I/O 집중정도를 이용하여 현재 대출받을 수 있는 크레딧의 양을 산출할 수 있다.
크레딧 관리부(330)는 산출된 현재 대출받을 수 있는 크레딧의 양을 스케줄러(310)에 전달한다.
본 발명의 일 실시예에 따른 스케줄러(310), 태스크 특징 평가부(320) 및 크레딧 관리부(330)는 따로 작동하지 않으며 서로 유기적으로 작동한다.
도 5는 본 발명의 일 실시예에 따른 가상 머신 모니터의 스케줄링 방법의 순서도를 도시한다.
먼저, 도메인(100,200)에 최초의 I/O 이벤트 지연이 발생하면,(510) 가상 머신 모니터(300)의 스케줄러(310)가 I/O 이벤트가 지연된 도메인(100,200)에 부스트 메커니즘을 적용한다.(515) 적용되는 부스트 메커니즘은 크레딧 대출/상환 메커니즘이 적용되는 부스트 메커니즘으로, 앞에서 설명하였으므로, 자세한 설명은 생략한다.
가상 머신 모니터(300)의 태스크 특징 평가부(320)는 스케줄러(310)가 실행하는 크레딧 대출/상환 메커니즘으로부터 j 주기 동안 VCPU가 대출 크레딧을 전부 사용할 때까지 걸린 시간
Figure 112015129179559-pat00115
, BOOST 된 횟수
Figure 112015129179559-pat00116
을 전달 및 및 VCPU가 BOOST되어 실행되는 동안 소모한 크레딧 양을 전달받고, 전달받은 정보를 기반으로 CPU 집중정도 및 I/O 집중정도를 평가한다.(520) 또한, 태스크 특징 평가부(320)는 평가한 CPU 집중정도 및 I/O 집중정도를 나타내는 평가 지표에 기반하여 종합 특성을 평가한다.(530) 언급한 CPU 집중정도, I/O 집중정도, 종합 특성은 각각 [수학식 1], [수학식 2], [수학식 3]을 통하여 산출한 지표에 기반하여 평가될 수 있으며, 그 설명은 앞에서 설명한 내용과 동일하다. 산출된 종합 특성은 크레딧 관리부(330)로 전달된다.
크레딧 관리부(330)는 전달받은 종합 특성에 기반하여 다음 주기의 대출 크레딧의 양을 산출할 수 있다.(530) 다음 주기의 대출 크레딧 양은 [수학식 4]를 이용하여 산출할 수 있으며 그 설명은 앞에서 설명한 내용과 동일하다.
크레딧 관리부(330)는 산출된 현재 대출 크레딧의 양을 스케줄러(310)로 전달하고, 스케줄러(310)는 전달받은 다음 주기의 대출 크레딧의 양을 크레딧 대출/상환 메커니즘에 적용하여 부스트 메커니즘을 실행시킨다.(535)
이와 같은, 가상 머신 모니터(300) 및 가상 머신 모니터(300) 스케줄링 방법은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD 와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 드라이버 도메인
200: 게스트 도메인
300: 가상 머신 모니터
400: 하드웨어 플랫폼

Claims (11)

  1. 적어도 두 개의 도메인을 구동하는 스케줄러, 태스크 특징 평가부 및 크레딧 관리부를 포함하는 가상 머신 모니터의 스케줄링 방법에 있어서,
    상기 스케줄러가 상기 도메인을 스케줄링하고, 스케줄링 된 상기 도메인의 I/O 이벤트가 지연되면, 태스크 특징 평가부가 상기 도메인의 CPU 집중정도 또는 I/O 집중정도에 기반하여 상기 도메인의 태스크 특징을 평가하고, 크레딧 관리부가 평가된 상기 태스크 특징에 따라 차등적으로 상기 도메인이 보유할 수 있는 크레딧 양을 결정하고, 상기 스케줄러가 결정된 상기 크레딧의 양에 따라 상기 도메인에 적용되는 부스트 메커니즘의 적용 빈도수를 결정하는 가상 머신 모니터의 스케줄링 방법.
  2. 제1항에 있어서,
    상기 CPU 집중정도는,
    아래의 수학식에 의해 산출되는 지표에 기반하여 평가되는 것인 가상 머신 모니터의 스케줄링 방법.
    [수학식 1]
    Figure 112016103183647-pat00117

    (여기서,
    Figure 112016103183647-pat00188
    : j 주기 동안
    Figure 112016103183647-pat00189
    가 대출 크레딧을 전부 사용할 때까지 걸린 시간,
    Figure 112016103183647-pat00118
    :
    Figure 112016103183647-pat00119
    동안
    Figure 112016103183647-pat00120
    가 BOOST되어 소모한 크레딧의 양,
    Figure 112016103183647-pat00121
    Figure 112016103183647-pat00122
    가 대출받은 크레딧의 양,
    Figure 112016103183647-pat00123
    : BOOST된 횟수)
  3. 제1항에 있어서,
    상기 I/O 집중정도는,
    아래의 수학식에 의해 산출되는 지표에 기반하여 평가되는 것인 가상 머신 모니터의 스케줄링 방법.
    [수학식 2]
    Figure 112015129179559-pat00124

    (여기서,
    Figure 112015129179559-pat00125
    : j 주기 동안
    Figure 112015129179559-pat00126
    가 대출 크레딧을 전부 사용할 때까지 걸린 시간,
    Figure 112015129179559-pat00127
    : BOOST된 횟수,
    Figure 112015129179559-pat00128
    :
    Figure 112015129179559-pat00129
    동안
    Figure 112015129179559-pat00130
    가 ms당 BOOST된 횟수)
  4. 제1항에 있어서,
    상기 태스크 특징은 CPU 집중정도 및 I/O 집중정도를 포함하는 종합 특성에 기반하여 평가되고,
    상기 종합 특성은,
    아래의 수학식에 의해 산출되는 지표에 기반하여 평가되는 것인 가상 머신 모니터의 스케줄링 방법.
    [수학식 3]
    Figure 112016103183647-pat00131

    (여기서,
    Figure 112016103183647-pat00132
    :
    Figure 112016103183647-pat00133
    가 ms당 소모한 대출 크레딧의 양,
    Figure 112016103183647-pat00134
    VCPU가 대출받은 크레딧의 양,
    Figure 112016103183647-pat00135
    : j 주기 동안
    Figure 112016103183647-pat00136
    가 대출 크레딧을 전부 사용할 때까지 걸린 시간,
    Figure 112016103183647-pat00137
    : BOOST된 횟수,
    Figure 112016103183647-pat00190
    : j 주기 동안
    Figure 112016103183647-pat00191
    가 대출 크레딧을 전부 사용할 때까지 걸린 시간,
    Figure 112016103183647-pat00138
    :
    Figure 112016103183647-pat00139
    동안
    Figure 112016103183647-pat00140
    가 BOOST되어 소모한 크레딧의 양,
    Figure 112016103183647-pat00141
    :
    Figure 112016103183647-pat00142
    동안
    Figure 112016103183647-pat00143
    가 ms당 BOOST된 횟수)
  5. 제4항에 있어서,
    상기 태스크 특징에 따라 차등적으로 상기 도메인이 보유할 수 있는 크레딧의 양을 결정하는 것은,
    아래의 수학식에 의해 결정되는 것인 가상 머신 모니터의 스케줄링 방법.
    [수학식 4]
    Figure 112015129179559-pat00144

    (여기서,
    Figure 112015129179559-pat00145
    :
    Figure 112015129179559-pat00146
    가 ms당 소모한 대출 크레딧의 양,
    Figure 112015129179559-pat00147
    :
    Figure 112015129179559-pat00148
    가 대출받은 크레딧의 양,
    Figure 112015129179559-pat00149
    : 상환 후 다음 주기(current+1)에 대출받을 수 있는 크레딧의 양)
  6. 제1항 내지 제5항 중 어느 한 항에 따른 가상 머신 모니터의 스케줄링 방법을 컴퓨터에서 실행시키기 위한 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
  7. 적어도 두개의 도메인을 구동하는 가상 머신 모니터에 있어서,
    상기 도메인을 스케줄링 하는 스케줄러;
    스케줄링 된 상기 도메인의 I/O 이벤트가 지연되면, 상기 도메인의 CPU 집중정도 또는 I/O 집중정도에 기반하여 상기 도메인의 태스크 특징을 평가하는 태스크 특징 평가부; 및
    평가된 상기 태스크 특징에 따라 차등적으로 상기 도메인이 보유할 수 있는 크레딧 양을 결정하는 크레딧 관리부를 포함하되,
    상기 스케줄러는,
    결정된 상기 크레딧의 양에 따라 상기 도메인에 적용되는 부스트 메커니즘의 적용 빈도수를 결정하는 것을 더 포함하는 가상 머신 모니터.
  8. 제7항에 있어서,
    상기 CPU 집중정도는,
    아래의 수학식에 의해 산출되는 지표에 기반하여 평가되는 것인 가상 머신 모니터.
    [수학식 1]
    Figure 112016103183647-pat00150

    (여기서,
    Figure 112016103183647-pat00192
    : j 주기 동안
    Figure 112016103183647-pat00193
    가 대출 크레딧을 전부 사용할 때까지 걸린 시간,
    Figure 112016103183647-pat00151
    :
    Figure 112016103183647-pat00152
    동안
    Figure 112016103183647-pat00153
    가 BOOST되어 소모한 크레딧의 양,
    Figure 112016103183647-pat00154
    Figure 112016103183647-pat00155
    가 대출받은 크레딧의 양,
    Figure 112016103183647-pat00156
    : BOOST된 횟수)
  9. 제7항에 있어서,
    상기 I/O 집중정도는,
    아래의 수학식에 의해 산출되는 지표에 기반하여 평가되는 것인 가상 머신 모니터.
    [수학식 2]
    Figure 112015129179559-pat00157

    (여기서,
    Figure 112015129179559-pat00158
    : j 주기 동안
    Figure 112015129179559-pat00159
    가 대출 크레딧을 전부 사용할 때까지 걸린 시간,
    Figure 112015129179559-pat00160
    : BOOST된 횟수,
    Figure 112015129179559-pat00161
    :
    Figure 112015129179559-pat00162
    동안
    Figure 112015129179559-pat00163
    가 ms당 BOOST된 횟수)
  10. 제7항에 있어서,
    상기 태스크 특징은 CPU 집중정도 및 I/O 집중정도를 포함하는 종합 특성에 기반하여 평가되고,
    상기 종합 특성은,
    아래의 수학식에 의해 산출되는 지표에 기반하여 평가되는 것인 가상 머신 모니터.
    [수학식 3]
    Figure 112016103183647-pat00164

    (여기서,
    Figure 112016103183647-pat00165
    :
    Figure 112016103183647-pat00166
    가 ms당 소모한 대출 크레딧의 양,
    Figure 112016103183647-pat00167
    VCPU가 대출받은 크레딧의 양,
    Figure 112016103183647-pat00168
    : j 주기 동안
    Figure 112016103183647-pat00169
    가 대출 크레딧을 전부 사용할 때까지 걸린 시간,
    Figure 112016103183647-pat00170
    : BOOST된 횟수,
    Figure 112016103183647-pat00194
    : j 주기 동안
    Figure 112016103183647-pat00195
    가 대출 크레딧을 전부 사용할 때까지 걸린 시간,
    Figure 112016103183647-pat00171
    :
    Figure 112016103183647-pat00172
    동안
    Figure 112016103183647-pat00173
    가 BOOST되어 소모한 크레딧의 양,
    Figure 112016103183647-pat00174
    :
    Figure 112016103183647-pat00175
    동안
    Figure 112016103183647-pat00176
    가 ms당 BOOST된 횟수)
  11. 제10항에 있어서,
    상기 태스크 특징에 따라 차등적으로 상기 도메인이 보유할 수 있는 크레딧의 양을 결정하는 것은,
    아래의 수학식에 의해 결정되는 것인 가상 머신 모니터.
    [수학식 4]
    Figure 112015129179559-pat00177

    (여기서,
    Figure 112015129179559-pat00178
    :
    Figure 112015129179559-pat00179
    가 ms당 소모한 대출 크레딧의 양,
    Figure 112015129179559-pat00180
    :
    Figure 112015129179559-pat00181
    가 대출받은 크레딧의 양,
    Figure 112015129179559-pat00182
    : 상환 후 다음 주기(current+1)에 대출받을 수 있는 크레딧의 양)
KR1020150190583A 2015-12-31 2015-12-31 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법 KR101707601B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150190583A KR101707601B1 (ko) 2015-12-31 2015-12-31 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법
US15/359,374 US10521257B2 (en) 2015-12-31 2016-11-22 Method, non-transitory computer readable recording medium, and apparatus for scheduling virtual machine monitor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150190583A KR101707601B1 (ko) 2015-12-31 2015-12-31 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법

Publications (1)

Publication Number Publication Date
KR101707601B1 true KR101707601B1 (ko) 2017-02-16

Family

ID=58265006

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150190583A KR101707601B1 (ko) 2015-12-31 2015-12-31 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법

Country Status (2)

Country Link
US (1) US10521257B2 (ko)
KR (1) KR101707601B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101852608B1 (ko) * 2017-02-10 2018-06-07 숭실대학교산학협력단 가상 머신 모니터, 가상 머신 모니터의 스케줄링 방법 및 이를 제공하기 위한 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체
CN109684070A (zh) * 2018-08-29 2019-04-26 西安电子科技大学 一种云计算并行操作中的调度方法
KR20190052440A (ko) * 2017-11-08 2019-05-16 한국전자통신연구원 가상 머신 프로세서의 원격 처리 장치 및 방법
KR101996768B1 (ko) * 2018-11-30 2019-07-04 건국대학교 산학협력단 자원 관리 방법 및 장치
KR20220070625A (ko) 2020-11-23 2022-05-31 고려대학교 산학협력단 가상화 환경에서 가상머신의 i/o 성능을 높이기 위한 스케줄링 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11194620B2 (en) * 2018-10-31 2021-12-07 Nutanix, Inc. Virtual machine migration task management
US11188368B2 (en) 2018-10-31 2021-11-30 Nutanix, Inc. Asynchronous workload migration control
CN113434262A (zh) * 2021-08-30 2021-09-24 云宏信息科技股份有限公司 dom0调度方法、虚拟机运行方法、存储介质和计算机

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110103257A (ko) 2010-03-12 2011-09-20 삼성전자주식회사 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법
KR20120035387A (ko) 2010-10-05 2012-04-16 삼성전자주식회사 가상화 환경에서의 자원사용정책 조정장치 및 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7065762B1 (en) * 1999-03-22 2006-06-20 Cisco Technology, Inc. Method, apparatus and computer program product for borrowed-virtual-time scheduling
US6964048B1 (en) * 1999-04-14 2005-11-08 Koninklijke Philips Electronics N.V. Method for dynamic loaning in rate monotonic real-time systems
US8255910B2 (en) * 2006-07-18 2012-08-28 Hewlett-Packard Development Company, L.P. Fair weighted proportional-share virtual time scheduler
US8245234B2 (en) 2009-08-10 2012-08-14 Avaya Inc. Credit scheduler for ordering the execution of tasks
CN103064746B (zh) * 2013-01-23 2015-08-12 上海交通大学 基于当前credit进行预测调度的处理器资源精确分配方法
US10102025B2 (en) * 2016-05-31 2018-10-16 Huawei Technologies Co., Ltd. Virtual machine resource utilization in a data center

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110103257A (ko) 2010-03-12 2011-09-20 삼성전자주식회사 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법
KR20120035387A (ko) 2010-10-05 2012-04-16 삼성전자주식회사 가상화 환경에서의 자원사용정책 조정장치 및 방법

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
김병기 외 1명. 'Xen 가상화 환경에서 지연시간에 예민한 도메인을 지원하기 위한 스케줄링 기법.' 한국정보기술학회지 제10권 제11호, 2012.11., pp.135-141. *
양은지 외 3명. 'Xen 환경에서 스케줄링 지연을 고려한 가상머신 우선순위 할당 기법.' 정보과학회논문지: 시스템 및 이론 제37권 제4호, 2010.08., pp.246-256. *
윤현준 외 3명. 'Xen 가상화 환경에서 관리 도메인의 오버헤드를 고려한 CPU 할당 방법.' 정보과학회논문지: 시스템 및 이론 제39권 제1호, 2012.02., pp.1-11. *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101852608B1 (ko) * 2017-02-10 2018-06-07 숭실대학교산학협력단 가상 머신 모니터, 가상 머신 모니터의 스케줄링 방법 및 이를 제공하기 위한 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체
KR20190052440A (ko) * 2017-11-08 2019-05-16 한국전자통신연구원 가상 머신 프로세서의 원격 처리 장치 및 방법
KR102505996B1 (ko) 2017-11-08 2023-03-08 한국전자통신연구원 가상 머신 프로세서의 원격 처리 장치 및 방법
CN109684070A (zh) * 2018-08-29 2019-04-26 西安电子科技大学 一种云计算并行操作中的调度方法
KR101996768B1 (ko) * 2018-11-30 2019-07-04 건국대학교 산학협력단 자원 관리 방법 및 장치
KR20220070625A (ko) 2020-11-23 2022-05-31 고려대학교 산학협력단 가상화 환경에서 가상머신의 i/o 성능을 높이기 위한 스케줄링 방법
KR102443894B1 (ko) * 2020-11-23 2022-09-20 고려대학교 산학협력단 가상화 환경에서 가상머신의 i/o 성능을 높이기 위한 스케줄링 방법

Also Published As

Publication number Publication date
US20170192812A1 (en) 2017-07-06
US10521257B2 (en) 2019-12-31

Similar Documents

Publication Publication Date Title
KR101707601B1 (ko) 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법
US8739171B2 (en) High-throughput-computing in a hybrid computing environment
US8914805B2 (en) Rescheduling workload in a hybrid computing environment
US9405585B2 (en) Management of heterogeneous workloads
US9471318B2 (en) System management and instruction counting
JP2018190454A (ja) 動的仮想マシンサイジング
US20050132362A1 (en) Virtual machine management using activity information
US9170840B2 (en) Duration sensitive scheduling in a computing environment
US20140373010A1 (en) Intelligent resource management for virtual machines
CN104011680A (zh) 在物理处理单元中调度虚拟机的虚拟中央处理单元
US20150227192A1 (en) Virtual machine switching based on processor power states
US20150378782A1 (en) Scheduling of tasks on idle processors without context switching
US10120721B2 (en) Pluggable engine for application specific schedule control
US8032882B2 (en) System and method for controlling aggregate CPU usage by virtual machines and driver domains
Varga et al. Deadline scheduling algorithm for sustainable computing in Hadoop environment
Monge et al. Autoscaling Scientific Workflows on the Cloud by Combining On-demand and Spot Instances.
Jang et al. An efficient virtual CPU scheduling in cloud computing
US9612907B2 (en) Power efficient distribution and execution of tasks upon hardware fault with multiple processors
KR101852608B1 (ko) 가상 머신 모니터, 가상 머신 모니터의 스케줄링 방법 및 이를 제공하기 위한 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체
US11934890B2 (en) Opportunistic exclusive affinity for threads in a virtualized computing system
Sena et al. Harnessing Low-Cost Virtual Machines on the Spot
RahimiZadeh et al. Workload-Aware Placement of Multi-Tier Applications in Virtualized Datacenters
WO2017045121A1 (en) Provisioning of virtual machines with security requirements
KR102443894B1 (ko) 가상화 환경에서 가상머신의 i/o 성능을 높이기 위한 스케줄링 방법
Lloyd et al. The virtual machine (VM) Scaler: An infrastructure manager supporting environmental modeling on IaaS clouds

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: 20200203

Year of fee payment: 4