KR101852608B1 - Virtual machine monitor, schduling method of virtual machine monitor and computer readable medium of thereof - Google Patents

Virtual machine monitor, schduling method of virtual machine monitor and computer readable medium of thereof Download PDF

Info

Publication number
KR101852608B1
KR101852608B1 KR1020170018583A KR20170018583A KR101852608B1 KR 101852608 B1 KR101852608 B1 KR 101852608B1 KR 1020170018583 A KR1020170018583 A KR 1020170018583A KR 20170018583 A KR20170018583 A KR 20170018583A KR 101852608 B1 KR101852608 B1 KR 101852608B1
Authority
KR
South Korea
Prior art keywords
credit
boost
time
variable
period
Prior art date
Application number
KR1020170018583A
Other languages
Korean (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 KR1020170018583A priority Critical patent/KR101852608B1/en
Application granted granted Critical
Publication of KR101852608B1 publication Critical patent/KR101852608B1/en

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Abstract

Disclosed are a virtual machine monitor, a virtual machine monitor scheduling method, and a computer-readable recording medium including computer program therefor. The virtual machine monitor includes: a scheduler operating at least two domains; a task characteristic evaluating part; and a credit management part. According to the method of scheduling the virtual machine monitor, the scheduler schedules the domains and executes a boost mechanism for the domains when an even of the domains is delayed, and once the boost mechanism is executed, the task characteristic evaluating part calculates an I/O distribution ratio of the domains and an average boost use time, which is an average CPU use time for the execution of the boost mechanism, and then evaluates task characteristics of the domains based on the calculated information, and the credit management part determines a credit allocation amount and a repayment period in accordance with the evaluated task characteristics. According to the present invention, when the boost mechanism is executed, consumption patterns of a boost credit and an under credit are analyzed in relation to the mechanism, and then, task characteristics are evaluated based on the patterns and a credit allocation amount and repayment period are determined in accordance with the evaluated characteristics, and thus, a differential and dynamic boost mechanism is able to be applied. As such, the present invention is capable of improving I/O responsibility and fairly distributing CPU resources.

Description

가상 머신 모니터, 가상 머신 모니터의 스케줄링 방법 및 이를 제공하기 위한 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체{VIRTUAL MACHINE MONITOR, SCHDULING METHOD OF VIRTUAL MACHINE MONITOR AND COMPUTER READABLE MEDIUM OF THEREOF}TECHNICAL FIELD [0001] The present invention relates to a scheduling method for a virtual machine monitor, a virtual machine monitor, and a computer-readable recording medium on which a computer program for providing the same is recorded.

본 발명은 가상 머신 모니터, 가상 머신 모니터의 스케줄링 방법 및 이를 제공하기 위한 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체에 관한 발명으로서, 보다 상세하게는 가상 머신의 스케줄링의 I/O 응답성을 향상시키는 가상 머신 모니터, 가상 머신 모니터의 스케줄링 방법 및 이를 제공하기 위한 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체에 관한 발명이다.The present invention relates to a scheduling method of a virtual machine monitor, a virtual machine monitor, and a computer-readable recording medium on which a computer program for providing the same is recorded. More specifically, the present invention relates to a scheduling method for improving the I / O responsiveness of scheduling of a virtual machine A virtual machine monitor, a scheduling method of a virtual machine monitor, and a computer-readable recording medium on which a computer program for providing the same is recorded.

가상화는 다수의 물리적인 자원을 논리적인 자원으로 통합하거나 반대로 단일 물리적인 자원을 다수의 논리적인 자원으로 분할하여 자원을 효율적으로 사용하는 것을 말한다. 가상화 기술은 가상화 계층을 도입하여 단일 머신에서 다수의 시스템을 운용할 수 있다. 이와 같이 물리적 자원을 추상화하는 소프트웨어를 가상 머신 모니터(Virtual Machine Monitor) 또는 하이퍼바이저라고 하며, 우리가 흔히 접할 수 있는 가상 머신 모니터로는 Hyper-V, VirtualBox, VMware, Xen, KVM 등이 있다.Virtualization refers to the efficient use of resources by consolidating multiple physical resources into logical resources or conversely by dividing a single physical resource into multiple logical resources. Virtualization technology can introduce a virtualization layer to run multiple systems on a single machine. Software that abstracts physical resources is called a virtual machine monitor or a hypervisor. Some of the virtual machine monitors that we often encounter are Hyper-V, VirtualBox, VMware, Xen, and KVM.

가상 머신은 가상 머신 모니터에 의해 추상화된 논리적 자원 즉, 실제 머신은 아니지만 물리 머신이 있는 것 같은 머신 환경을 의미하며 Xen에서는 가상 머신을 도메인이라고 표현하기도 한다. 가상 머신 모니터와 가상 머신 간의 관계는 운영체제와 프로세스의 관계와 흡사하다. 운영체제는 물리적인 자원을 추상화하여 다수의 프로세스에게 제공하는데, 이와 비슷하게 가상 머신 모니터도 CPU, 메모리, I/O를 가상화하여 가상 머신에게 제공한다.A virtual machine is a logical resource that is abstracted by a virtual machine monitor, that is, a machine environment, such as a physical machine that is not a physical machine. Xen also refers to a virtual machine as a domain. The relationship between a virtual machine monitor and a virtual machine is similar to that of an operating system and a process. The operating system abstracts physical resources and provides them to multiple processes. Similarly, virtual machine monitors also virtualize CPU, memory, and I / O to provide virtual machines.

VCPU는 실제 물리적 자원인 CPU를 가상 머신 모니터가 논리적으로 추상화 한 것을 말하며, 단일 물리 머신에서 동작하는 다수의 가상머신은 실제 CPU가 아닌 VCPU를 가지게 된다. VCPU는 운영체제-프로세스 관계에서 프로세스에 해당하며, 운영체제가 CPU 자원을 사용할 프로세스를 선택하는 것처럼 가상 머신 모니터 또한 CPU 자원을 사용할 VCPU를 스케줄링 정책을 통해 선택한다. 이처럼 CPU 자원을 사용할 VCPU를 결정하는 스케줄링을 가상 머신 스케줄링이라고 한다.VCPU refers to a logical abstraction of a CPU, which is a real physical resource, and a plurality of virtual machines running on a single physical machine have a VCPU, not a real CPU. The VCPU corresponds to the process in the operating system-process relationship. As the operating system selects the process to use the CPU resource, the virtual machine monitor also selects the VCPU to use the CPU resource through the scheduling policy. The scheduling that determines the VCPU to use CPU resources is called virtual machine scheduling.

한편, 크레딧 스케줄러에서 I/O 이벤트 처리를 위해서는, 해당 VCPU 가 대기큐 내에 스케줄링되어야한다. 이때, 도메인 내의 태스크가 없어서 유휴하거나 I/O 집중적인 작업만을 진행하여 300 크레딧 이상을 보유하고 있는 VCPU는 비활성화 상태가 된다. 이렇게 비활성화된 VCPU 의 경우는 크레딧 스케줄러의 대기큐에서 제외되기 때문에 다시 활성화 상태가 되고 스케줄링될 때까지 I/O 이벤트 응답성에 대한 지연이 발생한다. On the other hand, in order to process I / O events in the credit scheduler, the corresponding VCPUs must be scheduled in the waiting queue. At this time, there is no task in the domain, and the VCPU having 300 credits or more is idled or only I / O intensive work is performed, and the VCPU becomes inactive. In this case, the VCPUs are deactivated because they are excluded from the waiting queue of the credit scheduler, and thus a delay occurs in the I / O event responsiveness until they are activated.

부스트 매커니즘은 이러한 비활성화된 VCPU에 대한 I/O 이벤트 응답성에 대한 지연을 해결하기 위한 방법이다. 부스트 메커니즘은 비활성화 상태의 VCPU에 이벤트가 지연되었을 경우 해당 VCPU를 실행가능 상태로 변경하고, 가장 높은 우선순위인 BOOST를 부여한다. 이렇게 부스트 우선순위의 VCPU는 우선적으로 실행되어 지연된 이벤트를 빠르게 처리하여 도메인의 응답성을 향상시킨다. The boost mechanism is a way to resolve the delay for I / O event responsiveness for this deactivated VCPU. When the event is delayed to the VCPU in the inactive state, the boost mechanism changes the corresponding VCPU to the executable state and gives the highest priority BOOST. The VCPU of the boost priority order is executed first, and the delayed event is rapidly processed to improve the responsiveness of the domain.

그러나 이러한 부스트 메커니즘은 비활성화 VCPU 가 가장 높은 부스트 우선순위를 가지게 되어 가장 먼저 스케줄링되는 것으로서, 오히려 활성화 VCPU 의 I/O 이벤트 응답성을 저하시키는 문제가 발생한다. 또한, 스케줄러의 대기큐에 CPU 집중적인 활성화 VCPU 가 많을 경우 이로 인해 다른 활성화 VCPU 의 I/O 이벤트 응답성이 저하되는 문제가 발생한다. However, such a boost mechanism has a problem in that the inactive VCPU has the highest boost priority and is the first to be scheduled, rather, the I / O event responsiveness of the activated VCPU is lowered. In addition, when there are many CPU-intensive active VCPUs in the scheduler's wait queue, the I / O event responsiveness of other activated VCPUs is lowered.

한국공개특허 제2011-0103257호Korea Patent Publication No. 2011-0103257 한국공개특허 제2012-0035387호Korea Patent Publication No. 2012-0035387

본 발명의 일 측면은 도메인에 대해 부스트 매커니즘이 실행되면 I/O 분배비율과 부스트 평균 사용시간을 산출하여 이를 통해 도메인의 태스크 특징을 평가하고, 평가된 태스크 특징에 따라 크레딧 할당량 및 상환기간을 결정하는 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법을 제공하고자 한다.According to an aspect of the present invention, when the boost mechanism is executed for a domain, an I / O distribution ratio and a boost average use time are calculated to evaluate a task characteristic of a domain, and a credit allocation amount and a repayment period are determined according to an evaluated task characteristic And a scheduling method of the virtual machine monitor and the virtual machine monitor.

본 발명의 일 측면에 따른 가상 머신 모니터의 스케줄링 방법은 적어도 두개 이상의 도메인을 구동시키는 스케줄러, 태스크 특징 평가부 및 크레딧 관리부를 포함하는 가상 머신 모니터의 스케줄링 방법으로서, 상기 스케줄러가 상기 도메인을 스케줄링하고 스케줄링된 상기 도메인의 이벤트가 지연되면 상기 도메인에 대한 부스트 매커니즘을 실행하고, 상기 부스트 매커니즘이 실행되면 상기 태스크 특징 평가부가 상기 도메인의 I/O 분배비율과 상기 부스트 매커니즘 실행시 사용된 CPU 평균시간인 부스트 평균 사용시간을 산출하고 이를 기초로 상기 도메인의 태스크 특징을 평가하고, 상기 크레딧 관리부가 상기 평가된 태스크 특징에 따라 크레딧 할당량 및 상환기간을 결정한다.A scheduling method of a virtual machine monitor according to an aspect of the present invention is a scheduling method of a virtual machine monitor including a scheduler that drives at least two domains, a task characteristic evaluation unit, and a credit management unit. The scheduler schedules the domain, When the event of the domain is delayed, executes a boost mechanism for the domain, and when the boost mechanism is executed, the task characteristic evaluator calculates a boost ratio of the domain, which is the CPU average time used in the execution of the boost mechanism, Calculates the average usage time, evaluates the task characteristics of the domain based on the average usage time, and the credit management unit determines the credit allocation amount and the repayment period according to the evaluated task characteristic.

한편, 스케줄러가 상기 부스트 매커니즘이 실행되면 크레딧을 분류하는 것을 더 포함하되, 상기 크레딧은, 크레딧 소비 시작부터 다음 부스트 매커니즘이 실행되기 이전까지인 제 1 주기의 크레딧 할당량을 정의하는 크레딧 변수와, 크레딧 할당량 중 상기 부스트 매커니즘에 사용될 수 있는 부스트 크레딧 할당량을 정의하는 부스트 크래딧 변수와, 상기 크레딧 할당량 중 상기 부스트 매커니즘 이외에 사용될 수 있는 언더 크레딧 할당량을 정의하는 언더 크래딧 변수로 분류될 수 있다.The method may further include classifying the credit when the scheduler executes the boost mechanism, wherein the credit includes a credit variable defining a credit allocation of the first cycle from the start of credit consumption until the next boost mechanism is executed, A boost credit variable that defines a boost credit quota that can be used for the boost mechanism among the quota quantities and an undercredit variable that defines an amount of under credit that can be used in addition to the boost mechanism among the credit quota.

또한, 크레딧 변수는 아래의 수학식 1에 의해 정의되고, 상기 부스트 크레딧 변수는 아래의 수학식 2 에 의해 정의되며, 상기 언더 크레딧 변수는 아래의 수학식 3 에 의해 정의될 수 있다.Also, the credit variable is defined by Equation (1) below, and the boost credit variable is defined by Equation (2) below, and the under credit variable can be defined by Equation (3) below.

[수학식 1][Equation 1]

Figure 112017013960854-pat00001
Figure 112017013960854-pat00001

여기서, ci,j(t) 는 크레딧 변수이고, wi 는 추가 크레딧 할당시 적용되는 가중치값이고, ACCUM 은 추가 크레딧을 할당받는 주기이고, ti,j,1 은 상기 제 1 주기의 시작이고, ti,j,s 는 상기 부스트 크레딧 변수 및 상기 언더 크래딧 변수 중 적어도 하나의 크레딧에 대한 소비가 완료되는 시점이고, ti,j,r 은 소비된 상기 부스트 크레딧에 대한 상환이 완료되는 시점이며, ti,j +1,1 은 제 2 주기의 시작이고, nonboost Timei 는 상기 제 1 주기동안 상기 부스트 매커니즘을 적용받지 않고 사용된 CPU 시간이다.Here, c i, j (t) is a credit variable, w i is a weight value applied at the time of allocating additional credit, ACCUM is a period in which additional credit is allocated, t i, j, T i, j, s is a time point at which consumption of at least one of the boost credit variable and the under credit variable is completed, and t i, j, r is a time when the reimbursement for the consumed boost credit is completed T i, j +1,1 is the start of the second period, and nonboost Time i is the CPU time used without applying the boost mechanism during the first period.

[수학식 2]&Quot; (2) "

Figure 112017013960854-pat00002
Figure 112017013960854-pat00002

여기서, bi,j(t) 는 상기 부스트 크레딧 변수이고, ci,j(ti,j,1)는 상기 제 1 주기의 시작시 할당된 크레딧 양이고, ioi,j 는 상기 태스크 특징 평가부에 의해 산출된 I/O 분배비율이며, boostTimei 는 상기 제 1 주기동안 상기 부스트 매커니즘이 적용되어 사용된 CPU 시간이다. J i (t i, j, 1 ) is the amount of credit allocated at the beginning of the first period, and io i, j is the amount of the task characteristic I / O distribution ratio calculated by the evaluation unit, and boostTime i is the CPU time used by the boost mechanism during the first period.

[수학식 3]&Quot; (3) "

Figure 112017013960854-pat00003
Figure 112017013960854-pat00003

여기서 ui,j(t) 는 상기 언더 크레딧 변수이다. Where u i, j (t) is the under-credit variable.

또한, 태스크 특징 평가부가 상기 도메인의 I/O 분배비율을 산출하는 것은,In addition, the task characteristic evaluation unit calculates the I / O distribution ratio of the domain,

상기 제 1 주기에서의 상기 부스트 크레딧 소비량과 상기 언더 크레딧의 소비량을 산출하고, 전체 크레딧 소비량 대비 상기 부스트 크레딧 소비량의 비율로 제 2 주기의 I/O 분배비율을 산출하는 것을 포함할 수 있다.Calculating the consumption amount of the boost credit in the first period and the consumption amount of the under credit and calculating an I / O distribution ratio of the second period as a ratio of the consumption amount of the boost credit to the total credit consumption.

또한, I/O 분배비율은 아래 수학식에 의해 산출될 수 있다.Further, the I / O distribution ratio can be calculated by the following equation.

Figure 112017013960854-pat00004
Figure 112017013960854-pat00004

여기서, ioi,j 는 I/O 분배비율이고, j=1 일 때는 최초로 부스트 매커니즘이 적용될 때를 의미하고, Δbi,j - 1 과 Δui,j -1 은 각각 이전주기에서의 상기 부스트 크레딧 소비량과 상기 언더 크레딧 소비량을 의미한다. Here, io i, j denotes an I / O division ratio, and when j = 1, the first time the boost mechanism is applied, and? B i, j - 1 and? U i, j -1 denote the boost The credit consumption amount and the under-credit consumption amount.

또한, 태스크 특징 평가부가 상기 부스트 평균 사용시간을 산출하는 것은,In addition, the task characteristic evaluation section calculates the boost average use time,

상기 제 1 주기동안의 부스트 매커니즘을 적용받은 횟수 대비 부스트 매커니즘이 적용되어 사용된 CPU 시간을 기초로 산출하는 것일 수 있다. Based on the CPU time applied by the boost mechanism to the number of times the boost mechanism during the first period is applied.

또한, 크레딧 관리부가 상기 평가된 태스크 특징에 따라 크레딧 할당량 및 상환기간을 결정하는 것은, 상기 I/O 분배비율과 부스트 평균 사용시간에 기초하여 아래 수학식과 같이 추가 크레딧 중 상환에 사용되는 상환비율을 결정하는 것을 포함할 수 있다. Also, the credit managing unit determines the credit allocation amount and the redeeming period according to the evaluated task characteristic, based on the I / O distribution ratio and the boost average usage time, the redeemable rate used for the redemption, And < / RTI >

Figure 112017013960854-pat00005
Figure 112017013960854-pat00005

여기서, rri,j 는 상기 상환비율이고, ioi,j 는 I/O 분배비율이고, avgboostTimei 는 상기 부스트 평균 사용시간을 의미한다.Here, rr i, j is the repayment rate, io i, j is the I / O distribution ratio, and avgboostTime i means the boost average usage time.

또한, 상술한 방법에 따라 가상 머신 모니터를 제공하기 위한, 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체를 포함할 수 있다.Further, a computer-readable recording medium on which a computer program is recorded for providing a virtual machine monitor according to the above-described method may be included.

본 발명의 다른 측면에 따른 가상 머신 모니터는 적어도 두개 이상의 도메인을 구동시키는 가상 머신 모니터로서, 상기 도메인을 스케줄링하고 스케줄링된 상기 도메인의 이벤트가 지연되면 상기 도메인에 대한 부스트 매커니즘을 실행하는 스케줄러, 상기 부스트 매커니즘이 실행되면 상기 도메인의 I/O 분배비율과 상기 부스트 매커니즘시 사용된 CPU 평균시간인 부스트 평균 사용시간을 산출하고 이를 기초로 상기 도메인의 태스크 특징을 평가하는 태스크 특징 평가부 및 상기 태스크 특징에 기초하여 크레딧 할당량 및 상환시간을 결정하는 크레딧 관리부를 포함한다.A virtual machine monitor according to another aspect of the present invention is a virtual machine monitor that drives at least two or more domains and includes a scheduler for scheduling the domain and executing a boost mechanism for the domain when an event of the scheduled domain is delayed, A task characteristic evaluation unit for calculating an I / O distribution ratio of the domain and a CPU average time used in the boost mechanism when the mechanism is executed, and evaluating a task characteristic of the domain based on the I / O distribution ratio, And determines a credit allocation amount and a redeeming time based on the credit allocation.

한편, 스케줄러는, 상기 부스트 매커니즘이 실행되면 크레딧을 분류하되, 상기 크레딧은, 크레딧 소비 시작부터 다음 부스트 매커니즘이 실행되기 이전까지인 제 1 주기의 크레딧 할당량을 정의하는 크레딧 변수와, 상기 크레딧 할당량 중 상기 부스트 매커니즘에 사용될 수 있는 부스트 크레딧 할당량을 정의하는 부스트 크래딧 변수와, 상기 크레딧 할당량 중 상기 부스트 매커니즘 이외에 사용될 수 있는 언더 크레딧 할당량을 정의하는 언더 크래딧 변수로 분류될 수 있다.Meanwhile, the scheduler classifies the credit when the boost mechanism is executed, wherein the credit is a credit variable that defines a credit allocation amount of the first cycle from the start of credit consumption until the next boost mechanism is executed, A boost credit variable that defines a boost credit quota that can be used in the boost mechanism and an undercredit variable that defines an amount of under credit that can be used in addition to the boost mechanism among the credit quota.

또한, 크레딧 변수는 아래의 수학식 1에 의해 정의되고, 상기 부스트 크레딧 변수는 아래의 수학식 2 에 의해 정의되며, 상기 언더 크레딧 변수는 아래의 수학식 3 에 의해 정의될 수 있다.Also, the credit variable is defined by Equation (1) below, and the boost credit variable is defined by Equation (2) below, and the under credit variable can be defined by Equation (3) below.

[수학식 1][Equation 1]

Figure 112017013960854-pat00006
Figure 112017013960854-pat00006

여기서, ci,j(t) 는 크레딧 변수이고, wi 는 추가 크레딧 할당시 적용되는 가중치값이고, ACCUM 은 추가 크레딧을 할당받는 주기이고, ti,j,1 은 상기 제 1 주기의 시작이고, ti,j,s 는 상기 부스트 크레딧 변수 및 상기 언더 크래딧 변수 중 적어도 하나의 크레딧에 대한 소비가 완료되는 시점이고, ti,j,r 은 소비된 상기 부스트 크레딧에 대한 상환이 완료되는 시점이며, ti,j +1,1 은 제 2 주기의 시작이고, nonboost Timei 는 상기 제 1 주기동안 상기 부스트 매커니즘을 적용받지 않고 사용된 CPU 시간이다.Here, c i, j (t) is a credit variable, w i is a weight value applied at the time of allocating additional credit, ACCUM is a period in which additional credit is allocated, t i, j, T i, j, s is a time point at which consumption of at least one of the boost credit variable and the under credit variable is completed, and t i, j, r is a time when the reimbursement for the consumed boost credit is completed T i, j +1,1 is the start of the second period, and nonboost Time i is the CPU time used without applying the boost mechanism during the first period.

[수학식 2]&Quot; (2) "

Figure 112017013960854-pat00007
Figure 112017013960854-pat00007

여기서, bi,j(t) 는 상기 부스트 크레딧 변수이고, ci,j(ti,j,1)는 상기 제 1 주기의 시작시 할당된 크레딧 양이고, ioi,j 는 상기 태스크 특징 평가부에 의해 산출된 I/O 분배비율이며, boostTimei 는 상기 제 1 주기동안 상기 부스트 매커니즘이 적용되어 사용된 CPU 시간이다. J i (t i, j, 1 ) is the amount of credit allocated at the beginning of the first period, and io i, j is the amount of the task characteristic I / O distribution ratio calculated by the evaluation unit, and boostTime i is the CPU time used by the boost mechanism during the first period.

[수학식 3]&Quot; (3) "

Figure 112017013960854-pat00008
Figure 112017013960854-pat00008

여기서 ui,j(t) 는 상기 언더 크레딧 변수이다.Where u i, j (t) is the under-credit variable.

또한, 태스크 특징 평가부는 상기 제 1 주기에서의 상기 부스트 크레딧 소비량과 상기 언더 크레딧의 소비량을 산출하고, 전체 크레딧 소비량 대비 상기 부스트 크레딧 소비량의 비율로 제 2 주기의 I/O 분배비율을 결정할 수 있다.Also, the task characteristic evaluation unit may calculate the consumption amount of the boost credit and the consumption amount of the under credit in the first cycle, and determine the I / O distribution ratio of the second cycle as the ratio of the consumption amount of the boost credit to the total credit consumption .

또한, I/O 분배비율은 아래 수학식에 의해 정의될 수 있다.Further, the I / O distribution ratio can be defined by the following equation.

Figure 112017013960854-pat00009
Figure 112017013960854-pat00009

여기서, ioi,j 는 I/O 분배비율이고, j=1 일 때는 최초로 부스트 매커니즘이 적용될 때를 의미하고, Δbi,j - 1 과 Δui,j -1 은 각각 이전주기에서의 상기 부스트 크레딧 소비량과 상기 언더 크레딧 소비량을 의미한다. Here, io i, j denotes an I / O division ratio, and when j = 1, the first time the boost mechanism is applied, and? B i, j - 1 and? U i, j -1 denote the boost The credit consumption amount and the under-credit consumption amount.

또한, 태스크 특징 평가부는, 상기 제 1 주기동안의 부스트 매커니즘을 적용받은 횟수 대비 부스트 매커니즘이 적용되어 사용된 CPU 시간을 산출하여 상기 부스트 평균 사용시간을 산출할 수 있다.Also, the task characteristic evaluation unit may calculate the CPU time used by applying the boost mechanism to the number of times the boost mechanism during the first period is applied, and calculate the boost average use time.

또한, 크레딧 관리부는, 상기 부스트 평균 사용시간에 기초하여 아래 수학식과 같이 추가 크레딧 중 상환에 사용되는 상환비율을 결정할 수 있다.Also, the credit managing unit may determine a repayment ratio to be used for repayment of the additional credit based on the boost average usage time as shown in the following equation.

Figure 112017013960854-pat00010
Figure 112017013960854-pat00010

여기서, rri,j 는 상기 상환비율이고, ioi,j 는 I/O 분배비율이고, avgboostTimei 는 상기 부스트 평균 사용시간을 의미한다.Here, rr i, j is the repayment rate, io i, j is the I / O distribution ratio, and avgboostTime i means the boost average usage time.

상술한 본 발명에 따르면, 부스트 매커니즘이 실행되면 이에 대한 부스트 크레딧 및 언더 크레딧의 소비패턴을 분석하고 이를 기초로 태스크 특징을 평가하고 평가된 태스크 특징에 따라 크레딧 할당량과 상환기간을 결정함으로써, 차등적이고 동적인 부스트 메커니즘의 적용이 가능하다. 이를 통해 종국적으로는 I/O 응답성을 향상시킬 수 있고 CPU 자원에 대한 공정성 높은 분배가 가능하다.According to the present invention, when the boost mechanism is executed, the consumption patterns of the boost credit and the under credit are analyzed, the task characteristic is evaluated based on the consumption pattern, and the credit allocation amount and the repayment period are determined according to the evaluated task characteristic. The dynamic boost mechanism can be applied. This can ultimately improve I / O responsiveness and enable fair distribution of CPU resources.

도 1 은 본 발명의 일 실시예에 따른 가상 머신 모니터를 포함하는 분리 드라이버 모델을 도시한 도면이다.
도 2 는 도 1 에 도시된 가상 머신 모니터의 구체적 구성을 도시한 도면이다.
도 3 은 스케줄러에 의해 실행되는 크레딧 생애주기를 도시한 도면이다.
도 4 는 태스크 특징 평가부에 의해 평가된 도메인의 태스크 특징을 도시한 도면이다.
도 5 는 본 발명의 다른 실시예에 따른 가상 머신 모니터의 스케줄링 방법을 도시한 순서도이다.
1 is a diagram illustrating a separate driver model including a virtual machine monitor according to an embodiment of the present invention.
2 is a diagram showing a specific configuration of the virtual machine monitor shown in FIG.
3 is a diagram showing a credit lifecycle executed by the scheduler.
4 is a diagram showing task characteristics of the domain evaluated by the task characteristic evaluation unit.
5 is a flowchart illustrating a scheduling method of a virtual machine monitor according to another embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention, and the manner of achieving them, will be apparent from and elucidated with reference to the embodiments described hereinafter in conjunction with the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Is provided to fully convey the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout the specification.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계 및 동작은 하나 이상의 다른 구성요소, 단계 및 동작의 존재 또는 추가를 배제하지 않는다.The terminology used herein is for the purpose of illustrating embodiments and is not intended to be limiting of the present invention. In the present specification, the singular form includes plural forms unless otherwise specified in the specification. It is noted that the terms " comprises "and / or" comprising ", as used herein, do not exclude the presence or addition of one or more other elements, steps and operations.

도 1 은 본 발명의 일 실시예에 따른 가상 머신 모니터를 포함하는 분리 드라이버 모델을 도시한다.1 shows a separate driver model including a virtual machine monitor according to an embodiment of the present invention.

도 1 을 참조하면, 분리 드라이버 모델은 다수의 도메인(100,200), 가상 머신 모니터(300) 및 하드웨어 플랫폼(400)을 포함할 수 있다.Referring to FIG. 1, a separate driver model may include a plurality of domains 100, 200, a virtual machine monitor 300, and a hardware platform 400.

도메인(100,200)은 실제 머신은 아니지만 물리 머신이 있는 것 같은 환경을 제공할 수 있도록 운영체제 또는 응용 프로그램으로 구현될 수 있다. 이러한 도메인(100,200)은 드라이버 도메인(100)과 게스트 도메인(200)으로 구분할 수 있는데, 드라이버 도메인(100)은 하드웨어 플랫폼(400)에 직접 접근하여 I/O 이벤트 정보를 교환할 수 있는 도메인(100,200)이고, 게스트 도메인(200)은 드라이버 도메인(100)의 도움을 받아 간접적으로 하드웨어 플랫폼을 이용하는 도메인(100,200)을 말한다.The domains 100 and 200 may be implemented as an operating system or an application program so as to provide an environment that is not a real machine but a physical machine. These domains 100 and 200 can be divided into a driver domain 100 and a guest domain 200. The driver domain 100 includes domains 100 and 200 that can directly access the hardware platform 400 and exchange I / And the guest domain 200 refers to the domains 100 and 200 that indirectly use the hardware platform with the help of the driver domain 100. [

하드웨어 플랫폼(400)은 중앙 처리 장치(CPU), 메모리, 입출력 포트 등과 같은 물리적 장치가 될 수 있으며, 드라이버 도메인(100)과 직접 I/O 이벤트 정보를 교환할 수 있다.The hardware platform 400 may be a physical device such as a central processing unit (CPU), a memory, an input / output port, etc. and may exchange direct I / O event information with the driver domain 100.

가상 머신 모니터(300)는 단일 머신에서 다수의 도메인(100,200)을 동시에 운영하기 위한 플랫폼을 말하는 것으로, 추상화된 하드웨어 자원을 관리하거나 가상 머신 스케줄러를 통해 도메인에게 자원을 분배할 수 있다. 즉, 가상 머신 모니터(300)는 하나의 컴퓨터에 여러 개의 운영체제를 동시에 구동할 수 있게 만들어 주는 소프트웨어라고 할 수 있다. The virtual machine monitor 300 is a platform for simultaneously operating a plurality of domains 100 and 200 in a single machine, and can manage abstraction of hardware resources or distribute resources to domains through a virtual machine scheduler. That is, the virtual machine monitor 300 is software that enables a plurality of operating systems to be simultaneously operated on one computer.

가상 머신 모니터(300)는 다양한 가상 머신 스케줄러를 사용할 수 있으며, 대표적으로 Xen Project VMM이 제공하는 RTDS(Real Time Deferrable Server), ARINC 653, Credit, Credit2 스케줄러가 있다. 이 중 Credit 스케줄러는 범용적인 목적으로 사용되는 스케줄러로 도메인(100,200)이 갖는 지분에 비례해서 CPU 자원을 분배하는 비례공정 지분 스케줄러다.The virtual machine monitor 300 can use various virtual machine schedulers, and is typically a real time deferrable server (RTDS), ARINC 653, credit, and credit 2 scheduler provided by the Xen Project VMM. Among these, the credit scheduler is a general purpose scheduler, which is a proportional process equity scheduler that distributes CPU resources in proportion to the equity of the domains (100, 200).

Credit 스케줄러는 30ms 마다 도메인(100,200)이 갖는 weight 값에 비례해 크레딧을 해당 도메인(100,200)의 VCPU에 분배하는데, VCPU는 보유한 크레딧의 값에 따라 우선순위가 정해지고, 실행된 만큼 크레딧이 차감된다. The credit scheduler distributes the credit to the VCPUs of the domains 100 and 200 in proportion to the weight value of the domains 100 and 200 every 30 ms. The VCPU is prioritized according to the value of the credit held, and the credit is deducted as much as the executed credit .

Credit 스케줄러는 VCPU에서 I/O 이벤트가 지연된 경우 I/O 이벤트가 지연된 VCPU를 최우선순위인 BOOST 상태로 부여하는 부스트 메커니즘을 수행하는데, 이때의 부스트 메커니즘은 비활성 상태의 도메인(100,200)의 VCPU에 I/O 이벤트가 지연된 경우에만 VCPU에 BOOST 상태를 부여하기 때문에, 활성 상태의 도메인(100,200)의 VCPU는 BOOST 상태를 부여 받기 어렵다. 또한, 스케줄러의 대기큐에 CPU 집중적인 활성화 VCPU 가 많을 경우 이로 인해 다른 활성화 VCPU 의 I/O 이벤트 응답성이 저하되는 문제가 발생한다.The credit scheduler performs a boost mechanism that assigns a VCPU with a delayed I / O event to the BOOST state, which is the highest priority, when the I / O event is delayed in the VCPU. In this case, the boost mechanism sets the VCPU of the inactive domain (100,200) Since the BOOST state is given to the VCPU only when the / O event is delayed, the VCPUs of the active domains 100 and 200 are hardly given the BOOST state. In addition, when there are many CPU-intensive active VCPUs in the scheduler's wait queue, the I / O event responsiveness of other activated VCPUs is lowered.

이에 본 발명은 부스트 매커니즘이 실행되면 크레딧 소비패턴을 분석하여 태스크 특징을 평가하고, 평가된 태스크 특징에 따라 다음 부스트 매커니즘시 할당될 크레딧과 상환기간을 결정함으로써 차등적이고 동적인 새로운 부스트 매커니즘을 제공한다.Accordingly, the present invention provides a differential and dynamic new boost mechanism by analyzing the credit consumption pattern when the boost mechanism is executed, evaluating the task characteristic, and determining the credit and the repayment period to be allocated in the next boost mechanism according to the estimated task characteristic .

이를 위해, 본 발명은 크레딧 생애주기에 따라 크레딧 소비패턴을 분석하기 위해, 크레딧을 크레딧 변수, 부스트 크레딧 변수 및 언더 크레딧 변수로 분류한다. 상기 크레딧 소비패턴을 분석하는 것은, 제 1 부스트 매커니즘시 소비된 부스트 크레딧 변수 및 언더 크레딧 변수를 기초로 제 2 부스트 매커니즘에 적용할 I/O 분배비율을 결정하고, 부스트 매커니즘을 적용받은 횟수 대비 사용된 CPU 시간을 기초로 부스트 평균 사용시간을 산출한다. 이렇게 분석된 크레딧 소비패턴을 기초로 태스크 특징을 평가하고, 소정 기준으로 나뉘어진 태스크 특징에 따라 제 2 부스트 매커니즘이 시작되는 다음 주기에서의 크레딧 할당량 및 상환시간을 결정한다. To this end, the present invention classifies the credit as a credit variable, a boost credit variable and an under credit variable in order to analyze the credit consumption pattern according to the credit life cycle. The analysis of the credit consumption pattern may include determining an I / O distribution ratio to be applied to the second boost mechanism based on the boost credit variable and the under-credit variable consumed in the first boost mechanism, and comparing the number of times the boost mechanism is applied And calculates the boost average usage time based on the CPU time that has been consumed. Evaluates the task characteristic based on the analyzed credit consumption pattern, and determines the credit allocation amount and the redeeming time in the next cycle in which the second boost mechanism starts according to the task characteristic divided into the predetermined criteria.

이를 위해, 본 발명의 가상 머신 모니터(300)는 크레딧의 대출/상환 메커니즘을 실행하고, 대출/상환 메커니즘을 이용하여 도메인(100,200)의 I/O 분배비율과 부스트 평균 사용시간을 산출하여 이를 통해 태스크를 평가하고, 평가된 태스크 특징에 기반하여 추가 크레딧 중 상환에 사용되는 상환비율을 결정하여 크레딧 할당량과 상환기간이 조절되는 새로운 부스트 메커니즘을 실행한다.To this end, the virtual machine monitor 300 of the present invention executes the credit / repayment mechanism of the credit, calculates the I / O distribution ratio and the boost average usage time of the domains 100 and 200 using a loan / redemption mechanism, Evaluates the task, and determines a reimbursement rate to be used for reimbursement among the additional credits based on the evaluated task characteristic, and executes a new boost mechanism in which the credit quota and reimbursement period are adjusted.

가상 머신 모니터(300)는 도 2를 통하여 자세히 설명한다.The virtual machine monitor 300 will be described in detail with reference to FIG.

도 2 를 참조하면, 가상 머신 모니터(300)는 스케줄러(310), 태스크 특징 평가부(320) 및 크레딧 관리부(330)를 포함한다. Referring to FIG. 2, the virtual machine monitor 300 includes a scheduler 310, a task characteristic evaluation unit 320, and a credit management unit 330.

보다 구체적으로, 스케줄러(310)는 도메인을 스케줄링하고 스케줄링된 도메인의 이벤트가 지연되면 상기 도메인에 대한 부스트 매커니즘을 실행한다. 이를 위해, 스케줄러(310)는 대출/상환 매커니즘에 기반하여 스케줄링한다. 상기 대출/상환 매커니즘에 대해 설명하면 다음과 같다. 먼저, 도메인의 VCPU 에 I/O 이벤트가 지연되었을 경우 스케줄러는 대출 크레딧을 VCPU 에 빌려주고 부스트 매커니즘을 적용한다. 상기 대출 크레딧은 VCPU 가 부스트되어 실행된 만큼 차감되며, 스케줄러는 이후 추가된 크레딧에서 사용된 대출 크레딧만큼 상환하고, 남은 크레딧을 할당한다.More specifically, the scheduler 310 schedules a domain and performs a boost mechanism for the domain if an event of the scheduled domain is delayed. To this end, the scheduler 310 schedules based on a lending / redemption mechanism. The lending / repayment mechanism will be described as follows. First, when the I / O event is delayed in the VCPU of the domain, the scheduler lends the loan credit to the VCPU and applies the boost mechanism. The loan credit is deducted as much as the VCPU is boosted and executed, and the scheduler redeems the loan credit used in the later added credit and allocates the remaining credit.

특히, 본 실시예에 따른 스케줄러(310)는 상술한 대출/상환 매커니즘을 따르되, 부스트 매커니즘이 실행된 이후의 크레딧을 세 종류의 크레딧 변수로 분류하고, 도 3 과 같은 크레딧 생애주기를 스케줄링한다.Particularly, the scheduler 310 according to the present embodiment classifies the credit after the boost mechanism is executed into three kinds of credit variables according to the loan / redemption mechanism described above, and schedules the credit lifecycle as shown in FIG.

도 3 을 참조하면, 먼저, 스케줄러(310)는 최초로 VCPU 가 부스트 매커니즘을 적용받은 시점 (ti,j,1) 부터 다음 부스트 매커니즘이 실행(ti,j +1, 1)되는 시점 이전까지인 제 1 주기(ti,j,1~ ti,j +1, 1)의 크레딧 할당량을 정의하는 크레딧 변수와, 크레딧 할당량 중 부스트 매커니즘에 사용되어 대출받을 수 있는 크레딧 할당량을 정의하는 부스트 크레딧 변수와, 상기 크레딧 할당량 중 부스트 매커니즘 이외에 사용될 수 있는 즉, CPU 작업처리를 위한 언더 크레딧 할당량을 정의하는 언더 크레딧 변수로 분류한다. 3, the first, the scheduler 310 first VCPU from the time (t i, j, 1) who applies the boost mechanism the next boost mechanism is executed (t i, j +1, 1) prior to the time that A credit variable that defines the credit quota of the first cycle (t i, j, 1 to t i, j +1, 1 ) in the first cycle and a boost credit that defines the credit quota used in the boost mechanism Variable and an under-credit variable that can be used in addition to the boost mechanism among the above credit allocations, that is, an under-credit quota for CPU operation processing.

이렇게 크레딧 할당량이 정의되면, 최초로 VCPU 가 부스트 매커니즘을 적용받은 시점(ti,j,1)부터 크레딧 소비가 시작된다. 상기 크레딧 소비가 시작된 이후 부스트 크레딧 변수 및 언더 크레딧 변수 중 적어도 어느 하나의 크레딧 소비가 완료되면 해당 시점(ti,j,s)까지가 소비기간(spi,j)으로 정의된다. 상기 소비기간(spi,j) 이후에는 소비기간동안 소비된 부스트 크레딧양만큼의 상환이 개시되며, 상기 상환시작(ti,j,s)부터 상환완료(ti,j,r)될 때까지의 상환기간(rpi,j)이 정의된다. Once the credit quota is defined, credit consumption begins at the time the VCPU first applies the boost mechanism (t i, j, 1 ). When the credit consumption of at least one of the boost credit variable and the under credit variable is completed after the credit consumption is started, up to the time t i, j, s is defined as the consumption period sp i, j . And have paid off a by the consumption boost credit amount disclosed for since the consumption period (sp i, j), the consumption period, the redemption start (t i, j, s) completing repayment from (t i, j, r) when (Rp i, j ) are defined.

한편, 상술한 크레딧 생애주기에 따른 각 크레딧 변수의 정의는 다음과 같다. The definition of each credit variable according to the above-mentioned credit life cycle is as follows.

먼저, 상기 제 1 주기(ti,j,1~ ti,j +1, 1)까지의 크레딧 할당량을 정의하는 크레딧 변수는 [수학식 1] 에 따라 정의된다.First, a credit variable defining a credit allocation amount up to the first period (t i, j, 1 to t i, j +1, 1 ) is defined according to Equation (1).

[수학식 1][Equation 1]

Figure 112017013960854-pat00011
Figure 112017013960854-pat00011

여기서, ci,j(t) 는 크레딧 변수이고, wi 는 추가 크레딧 할당시 적용되는 가중치값이고, ACCUM 은 추가 크레딧을 할당받는 주기(예컨대, 30ms 일 수 있다)이고, ti,j,1 은 상기 제 1 주기의 시작이고, ti,j,s 는 상기 부스트 크레딧 변수 및 상기 언더 크래딧 변수 중 적어도 하나의 크레딧에 대한 소비가 완료되는 시점이고, ti,j,r 은 소비된 상기 부스트 크레딧에 대한 상환이 완료되는 시점이며, nonboost Timei 는 상기 제 1 주기동안 상기 부스트 매커니즘을 적용받지 않고 사용된 CPU 시간을 정의한다.Here, c i, and j (t) is a credit variable and, w i is the weight value to be applied when additional credit allocation, ACCUM is (can be, for example, 30ms) periods taking allocation of additional credit, t i, j, 1 is the start of the first period, t i, j, s is the time when consumption of at least one of the boost credit variable and the under credit variable is completed, t i, j, The nonboost Time i defines the CPU time used without applying the boost mechanism during the first period.

즉, 크레딧 변수는 최초로 VCPU 가 부스트 매커니즘을 적용받은 시점(ti,j,1) 부터 다음 부스트 매커니즘이 실행(ti,j +1, 1)되기 이전까지인 제 1 주기(ti,j,1~ ti,j+1,1)에서 세 기간으로 나뉘어 각각 정의된다. That is, the credit parameter is the first point of time when receiving the VCPU applying the boost mechanism (t i, j, 1) from the next boost mechanism is executed (t i, j +1, 1) to the first cycle (t i, j up to the previous , 1 to t i, j + 1,1 ), respectively.

먼저, 1) 소비기간(spi,j: ti,j,1~ti,j,s) 동안에는 ACCUM마다 한번씩 가중치값만큼 추가 크레딧을 할당받는다. First, during the consumption period (sp i, j : t i, j, 1 to t i, j, s ) , additional credit is assigned to each ACCUM as much as the weight value once.

그리고 2) 상환기간(rpi,j: ti,j,s~ti,j,r) 동안에는 ACCUM마다 한번씩 가중치값만큼 증가하는 크레딧에서 상환비율을 제외한 만큼 추가 크레딧을 할당받되, 해당 기간동안 사용한 CPU 시간(nonboostTimei) 만큼은 제외하고 추가 크레딧을 할당받는다. 여기서, 상환비율은 추가 크레딧 중 상환에 사용되는 비율로서, 크레딧 관리부에 의해 산출되며 산출방식은 추후 설명한다.2) During the redemption period (rp i, j : t i, j, s to t i, j, r ) , additional credits are allocated for each ACCUM No additional CPU time (nonboostTime i ) except for the additional credit is allocated. Here, the repayment rate is a rate used for repayment among additional credits, which is calculated by the credit management unit, and the calculation method is explained later.

또한, 3) 상환이 완료되고 다음 부스트 매커니즘이 실행되기 이전(ti,j,r ~ ti,j+1,1)까지는 원래대로 ACCUM마다 한번씩 가중치값만큼 추가 크레딧을 할당받되, 해당 기간동안 사용한 CPU 시간(nonboostTimei) 만큼은 제외하고 추가 크레딧을 할당받는다3) Additional credits are assigned to ACCUMs as much as the weight value once before the recharging is completed and before the next boost mechanism is executed (t i, j, r to t i, j + 1,1 ) No more CPU time (nonboostTime i ), but additional credit

또한, 제 1 주기(ti,j,1~ ti,j +1, 1)까지의 크레딧 할당량 중 부스트 매커니즘에 사용될 수 있는 부스트 크레딧을 정의하는 부스트 크레딧 변수는 [수학식 2] 에 따라 정의된다.Also, the boost credit variable that defines the boost credit that can be used for the boost mechanism among the credit allocations up to the first period (t i, j, 1 to t i, j +1, 1 ) do.

[수학식 2]&Quot; (2) "

Figure 112017013960854-pat00012
Figure 112017013960854-pat00012

여기서, bi,j(t) 는 상기 부스트 크레딧 변수이고, ioi,j 는 I/O 분배비율이고, boostTimei 는 상기 제 1 주기(ti,j,1~ ti,j+1,1)동안 상기 부스트 매커니즘이 적용되어 사용된 CPU 시간을 정의한다. Here, b i, j (t) is the boost credit variables, io i, j is the I / O allocation ratio, boostTime i is the first cycle (t i, j, 1 ~ t i, j + 1, 1 ) < / RTI > the CPU time that the boost mechanism is applied to.

즉, 부스트 크레딧 변수와 관련하여, 1) 소비기간(spi,j: ti,j,1~ti,j,s)이 시작되는 시점(ti,j,1)에는 해당 시점의 크레딧 할당량 중 I/O 분배비율에 비례한만큼 최초 부스트 크레딧이 할당된다. 여기서, I/O 분배비율은 소비시간에 분배할 부스트 크레딧의 비율로서 이전 소비기간의 소비패턴으로부터 산출된다. 상기 I/O 분배비율의 구체적 산정방법은 추후 설명한다. 2) 이후 소비기간(spi,j: ti,j,1~ti,j,s)동안에는 최초 할당된 부스트 크레딧에서 부스트 매커니즘이 적용되어 사용된 CPU 시간인 부스트 타임(boostTime)만큼 차감되어 정의된다. 3) 또한, 상환기간(rpi,j: ti,j,s~ti,j,r) 동안에는 소비기간이 완료되었으므로 '0'으로 정의된다.(T i, j, 1 ) at the start of the consumption period (sp i, j : t i, j, 1 to t i, j, s ) The initial boost credit is allocated as much as the quota is proportional to the I / O distribution ratio. Here, the I / O distribution ratio is calculated from the consumption pattern of the previous consumption period as a ratio of the boost credit to be distributed to the consumption time. The method of calculating the I / O distribution ratio will be described later. During the subsequent consumption period (sp i, j : t i, j, 1 to t i, j, s ), the boost mechanism in the initially allocated boost credit is applied and subtracted by the boost time (boostTime) Is defined. 3) Also, during the repayment period (rp i, j : t i, j, s to t i, j, r ), the consumption period is completed and is defined as '0'.

한편, 제 1 주기(ti,j,1~ ti,j +1, 1)까지의 크레딧 할당량 중 부스트 매커니즘 이외에 사용될 수 있는 언더 크레딧 할당량을 정의하는 언더 크레딧 변수는 [수학식 3] 에 따라 정의된다.On the other hand, the first cycle (t i, j, 1 ~ t i, j +1, 1) Credits allocation of under-credit variables that define the under credit quota that may be used in addition to the boost mechanism is according to the formula 3; Is defined.

[수학식 3]&Quot; (3) "

Figure 112017013960854-pat00013
Figure 112017013960854-pat00013

즉, 언더 크레딧 변수와 관련하여, 1) 소비기간(spi,j: ti,j,1~ti,j,s)이 시작되는 시점(ti,j,1)에는 해당 시점의 크레딧 할당량 중 부스트 크레딧을 제외한 만큼 최초의 언더 크레딧이 할당되고, 2) 이후 소비기간(spi,j: ti,j,1~ti,j,s)동안에는 최초 할당된 언더 크레딧에서 부스트 매커니즘에 적용받지 않고 언더 우선순위로 사용된 CPU 시간(nonboostTimei)만큼 차감되어 정의된다. 3) 또한, 상환기간동안에는 소비기간이 완료되었으므로 '0'으로 정의된다.That is, with respect to the under credit variables: 1) consumption period (sp i, j: t i, j, 1 ~ t i, j, s), time (t i, j, 1) at the start, the credit of the time The initial undercredit is allocated as much as the quota credit except for the boost credit, and 2) during the subsequent consumption period (sp i, j : t i, j, 1 to t i, j, s ) (NonboostTime i ) which is not used and under-priority. 3) Also, during the redemption period, the consumption period is completed and is defined as '0'.

스케줄러(310)는 제 1 주기(ti,j,1~ ti,j +1, 1)의 소비기간(spi,j: ti,j,1~ti,j,s)이 완료되면 소비기간(spi,j: ti,j,1~ti,j,s)동안의 부스트 크레딧 변수, 언더 크레딧 변수, 부스트 매커니즘이 적용되어 사용된 CPU 시간인 부스트 타임, 부스트 매커니즘을 적용받은횟수 정보인 부스트 카운트정보를 태스크 특징 평가부(320)에 전송한다.Scheduler 310 includes a first consumption cycle period (t i, j, 1 ~ t i, j +1, 1) (sp i, j: t i, j, 1 ~ t i, j, s) is complete The boost time, the boost time, the CPU time used by the boost mechanism, and the boost mechanism during the consumption period (sp i, j : t i, j, 1 to t i, j, s ) And transmits the boost count information, which is the received count information, to the task characteristic evaluation unit 320. [

태스크 특징 평가부(320)는 스케줄러(310)로부터 수신한 정보를 기초로 도메인의 I/O 분배비율과 부스트 매커니즘시 사용된 CPU 평균시간인 부스트 평균 사용시간을 산출하고 이를 기초로 도메인의 태스크 특징을 평가한다.Based on the information received from the scheduler 310, the task characteristic evaluation unit 320 calculates the I / O distribution ratio of the domain and the average CPU utilization time, which is the CPU average time used in the boost mechanism, .

구체적으로, 태스크 특징 평가부(320)는 제 1 주기(ti,j,1~ ti,j +1, 1)의 소비기간(spi,j: ti,j,1~ti,j,s)동안 사용된 부스트 크레딧(Δbi,j)과 언더 크레딧 양(Δui,j)을 아래 수학식 4 에 의해 산출한다.Specifically, the task characteristics evaluating unit 320 includes a first consumption cycle period (t i, j, 1 ~ t i, j +1, 1) (sp i, j: t i, j, 1 ~ t i, the boost credits (Δb i, j) and the under-credit amount (Δu i, j) used for a j, s) is calculated by the equation (4) below.

[수학식 4]&Quot; (4) "

Figure 112017013960854-pat00014
Figure 112017013960854-pat00014

또한, 태스크 특징 평가부(320)는 전체 크레딧 소비량 대비 부스트 크레딧 소비량의 비율로 제 2 주기의 I/O 분배비율을 산출하며, 산출된 I/O 분배비율의 정의는 아래 수학식 5 와 같다.Also, the task characteristic evaluation unit 320 calculates the I / O distribution ratio of the second period by the ratio of the total credit consumption amount and the boost credit consumption amount, and the calculated I / O distribution ratio is defined by Equation (5).

[수학식 5]&Quot; (5) "

Figure 112017013960854-pat00015
Figure 112017013960854-pat00015

여기서, ioi,j 는 I/O 분배비율이고, j=1 일 때는 최초로 부스트 매커니즘이 적용될 때를 의미하고, Δbi,j - 1 과 Δui,j -1 은 각각 이전주기에서의 상기 부스트 크레딧 소비량과 상기 언더 크레딧 소비량을 의미한다.Here, io i, j denotes an I / O division ratio, and when j = 1, the first time the boost mechanism is applied, and? B i, j - 1 and? U i, j -1 denote the boost The credit consumption amount and the under-credit consumption amount.

즉, 최초 부스트 매커니즘이 적용된 때는 이전 소비기간에서의 소비패턴을 알 수 없으므로, 부스트 크레딧과 언더 크레딧은 최초 할당된 크레딧양의 반씩 할당받는다. 이후 주기에서는 이전 소비기간에서의 소비패턴을 반영하여 I/O 위주의 작업을 하는 VCPU 는 더 많은 부스트 크레딧 비율을 힐당받고, CPU 위주의 작업을 하는 VCPU 는 더 많은 언더 크레딧 비율을 할당받도록 할 수 있다. 따라서, 동적으로 태스크 특징이 추적되어 VCPU 작업의 특징에 맞춰 크레딧 자원이 효율적으로 분배될 수 있다. That is, when the first boost mechanism is applied, consumption patterns in the previous consumption period are not known, so boost credit and under credit are allocated in half of the initial allocated credit amount. In the subsequent cycle, VCPUs that perform I / O-oriented operations reflecting the consumption patterns in the previous consumption period receive more boost credit ratios and VCPUs that perform CPU-based tasks are assigned more under credit ratios have. Thus, task characteristics can be tracked dynamically and credit resources can be efficiently distributed to the characteristics of the VCPU task.

태스크 특징 평가부(320)는 제 1 주기동안의 부스트 매커니즘을 적용받은 횟수 대비 부스트 매커니즘이 적용되어 사용된 CPU 시간을 기초로 부스트 평균 사용시간을 산출한다. 상기 부스트 평균 사용시간의 산출방법은 아래 수학식 6 에 따른다.The task characteristic evaluation unit 320 calculates a boost average usage time based on the CPU time applied to the number of times that the boost mechanism during the first period is applied to the boost mechanism. The calculation method of the boost average use time is given by Equation (6) below.

[수학식 6]&Quot; (6) "

Figure 112017013960854-pat00016
Figure 112017013960854-pat00016

여기서, avgboostTime 은 부스트 평균 사용시간이고, boostTime 은 t1 부터 t2까지의 부스트 매커니즘이 적용되어 사용된 CPU 시간이고, boostCount 는 t1 부터 t2까지의 부스트 매커니즘을 적용받은 횟수를 의미한다. 한편, 부스트 평균 사용시간은 부스트 매커니즘이 적용되는 동안의 평균 사용시간을 의미하므로, 상기 t1 부터 t2 는 상기 제 1 주기 중 소비기간을 의미할 수 있다. Where avgboostTime is the average time to use the boost, boostTime is the CPU time used by the boost mechanism from t1 to t2, and boostCount is the number of times the boost mechanism from t1 to t2 has been applied. On the other hand, the boost average usage time means an average usage time during the application of the boost mechanism, so t1 to t2 may mean the consumption period during the first period.

태스크 특징 평가부(320)는 I/O 분배비율과 부스트 평균 사용시간을 기준으로 하여 태스크 특징을 도 4 와 같이 분류하고, 산출된 I/O 분배비율과 부스트 평균 사용시간을 기초로 분류된 태스크 특징 중 어느 것에 속하는지 평가할 수 있다.The task characteristic evaluation unit 320 classifies the task characteristics as shown in FIG. 4 on the basis of the I / O distribution ratio and the boost average use time, and classifies the tasks classified based on the calculated I / O distribution ratio and the boost average usage time It is possible to evaluate which one of the characteristics belongs.

먼저 태스크 특징에 대해 설명한다. 태스크 특징은 I/O 집중적인지 CPU 집중적인지 분류할 수 있는데, I/O 집중도가 높을수록 언더 크레딧 대비 부스트 크레딧 비율이 높으며, CPU 집중도가 높을수록 부스트 크레딧 대비 언더 크레딧 비율이 높다. 따라서, I/O 위주 작업의 태스크를 보유한 VCPU 는 부스트 매커니즘을 더 많이 적용받을 수 있지만, CPU 집중도가 높은 태스크를 보유한 VCPU 는 우선순위가 밀려 스케줄링되지 않을 수 있다. 또한, I/O, CPU 집중적 복합 태스크를 보유한 VCPU 같은 경우 스케줄링시 CPU 자원을 독점하는 경우가 발생할 수 있다. 상환기간 중에는 부스트 매커니즘을 적용받지 않아 그동안 우선순위가 밀려 스케줄링되지 않았던 CPU 집중도가 높은 태스크를 보유한 VCPU 들이 스케줄링될 수 있으므로, 이러한 점을 이용하여 크레딧 관리부(330)는 추가 크레딧 할당량 중 상환에 사용되는 비율인 상환비율을 결정하여 이를 통해 크레딧 할당량과 상환시간을 결정한다. First, the task characteristic will be described. Task characteristics can be classified as I / O intensive or CPU intensive. The higher the I / O concentration, the higher the boost credit ratio compared to the under credit, and the higher the CPU concentration, the higher the under credit ratio compared to the boost credit. Therefore, although the VCPU having the task of the I / O-centric task can receive the boost mechanism more, the VCPU having the task with the high CPU concentration may not be scheduled due to the priority being pushed. In the case of a VCPU having an I / O and a CPU-intensive hybrid task, CPU resources may be monopolized in scheduling. During the repayment period, the VCPUs having tasks with high CPU concentration can be scheduled because the boost mechanism has not been applied and the priorities have been pushed out so that the credit management unit 330 can use the additional credit allocation amount And determines the credit allocation amount and the repayment time.

태스크의 특징은 CPU 집중적인지, I/O 집중적인지 종합적으로 판단하여 분류될 수 있다. 태스크 특징은 I/O 분배비율과 소비기간동안 부스트 매커니즘을 적용받아 사용된 평균시간인 부스트 평균 사용시간에 따라 도 4 와 같이 분류될 수 있다. 도 4 를 참조하면, 태스크 특징은 I/O 분배비율과 부스트 평균 사용시간을 기준으로 태스크 집중정도를 파악하여 A, B, C, D 타입으로 분류될 수 있다. 도 4 의 분류 그래프에서 X 축은 부스트 평균 사용시간이고, Y 축은 I/O 분배비율이다. I/O 분배비율이 높다는 것은 현재 소비기간에서 해당 VCPU 가 부스트 매커니즘을 적용받아 소비한 부스트 크레딧이 많다는 것을 의미하므로, I/O 집중도가 높다는 것을 의미한다. 또한, 부스트 평균 사용시간이 많다는 것은 I/O 작업 이외로 CPU 작업을 추가로 진행하였다는 것으로서 CPU 집중도가 높다는 것을 의미한다. 따라서, 도 4 의 그래프 상에서의 A 타입은 I/O 집중도가 높은 태스크를 의미하고, B 타입은 I/O 집중도와 CPU 집중도가 모두 높은 복합 태스크를 의미한다. 또한, C 타입은 I/O 집중도와 CPU 집중도가 모두 낮은 유휴 태스크를 의미하고, D 타입은 CPU 집중적 태스크를 의미한다. The characteristics of the task can be classified according to whether they are CPU intensive or I / O intensive. The task characteristics can be classified as shown in FIG. 4 according to the I / O distribution ratio and the average time of use, which is the average time used by the boost mechanism during the consumption period. Referring to FIG. 4, the task characteristic can be classified into A, B, C, and D types by grasping the degree of task concentration based on the I / O distribution ratio and the boost average usage time. In the classification graph of FIG. 4, the X axis is the boost average use time and the Y axis is the I / O distribution ratio. The high I / O distribution ratio means that the VCPUs in the current consumption period have a lot of boost credits consumed by the boost mechanism, which means that the I / O concentration is high. In addition, the fact that the average CPU usage time is high means that the CPU operation is performed in addition to the I / O operation, which means that the CPU concentration is high. Therefore, in the graph of FIG. 4, the A type indicates a task having a high I / O concentration, and the B type indicates a composite task having a high I / O concentration and a CPU concentration. Also, C type means idle task with low I / O concentration and CPU concentration, and D type means CPU intensive task.

크레딧 관리부(330)는 태스크 특징 평가부(320)에 의해 평가된 태스크 특징에 기초하여 크레딧 할당량 및 상환시간을 결정한다. 구체적으로, 크레딧 관리부(330)는 상술한 4가지 유형에 따라 부스트 크레딧을 상환하는데 필요한 시간, 즉 상환비율을 달리 결정한다. The credit managing unit 330 determines the credit allocation amount and the redeeming time based on the task characteristic evaluated by the task characteristic evaluating unit 320. [ Specifically, the credit management unit 330 determines the time required to repay the boost credit, that is, the repayment rate, in accordance with the above-described four types.

크레딧 관리부(330)은 아래 수학식 7 에 따라 추가 크레딧 중 상환에 사용되는 크레딧의 비율인 상환비율을 결정한다. The credit managing unit 330 determines the repayment ratio, which is the ratio of the credit used for the redemption among the additional credits according to Equation (7) below.

[수학식 7]&Quot; (7) "

Figure 112017013960854-pat00017
Figure 112017013960854-pat00017

여기서, rri,j 는 상기 상환비율이고, ioi,j 는 I/O 분배비율이고, avgboostTimei 는 상술한 수학식 6 에 의해 산출되는 부스트 평균 사용시간을 의미한다. 즉, 크레딧 관리부(330)는 상환비율을 I/O 분배비율에는 비례하고, 부스트 평균 사용시간에는 반비례하도록 결정한다.Here, rr i, j is the repayment rate, io i, j is the I / O distribution ratio, and avgboostTime i means the boost average usage time calculated by Equation (6). That is, the credit managing unit 330 determines that the repayment rate is proportional to the I / O distribution ratio and inversely proportional to the boost average usage time.

구체적으로, 상술한 도 4 의 태스크 유형과 함께 크레딧 관리부(330)의 크레딧 할당량 및 상환기간을 결정하는 과정을 설명하면 다음과 같다. A process for determining the credit allocation amount and the repayment period of the credit management unit 330 together with the task type of FIG. 4 will be described below.

먼저, 크레딧 관리부(330)는 I/O 집중적인 A와 B 타입은 많은 부스트 크레딧을 소모하였으므로, 상환에 필요한 크레딧 양을 높게 결정한다. 한편, B 타입은 I/O 집중적일 뿐만 아니라 CPU 집중적이므로, A 타입보다 부스트 매커니즘을 적용받을 때 더 많은 CPU 자원을 독점하게 된다. 따라서, 크레딧 관리부(330)는 상대적으로 A타입보다 B 타입의 상환시간을 길게 만들어 공평하게 CPU자원이 분배되도록 상환비율을 결정한다. 크레딧 관리부(330)는 C 타입의 경우는 I/O 집중도와 CPU 집중도가 모두 낮으므로 유휴 태스크로 간주한다. 또한, 크레딧 관리부(330)는 CPU 집중적인 D 타입의 경우는 부스트 크레딧을 작게 할당하고 상환시간을 길게 만들어 A, B 타입보다는 더 적은 횟수의 부스트 매커니즘이 적용되도록 한다. First, since the I / O intensive A and B types have consumed a lot of boost credits, the credit managing unit 330 determines a high amount of credit required for redemption. On the other hand, type B is not only I / O intensive, but also CPU-intensive, so that more CPU resources are monopolized when the boost mechanism is applied than type A. Accordingly, the credit managing unit 330 determines the repayment rate so that the B type redeeming time is relatively longer than that of the A type, and the CPU resources are distributed equitably. In the case of the C type, the credit managing unit 330 regards the I / O concentration and the CPU concentration as low, and therefore, it is regarded as an idle task. Also, in the case of the CPU-intensive D type, the credit managing unit 330 allocates the boost credit to a small amount and makes the repayment time longer, so that the number of boost mechanisms is less than that of the A and B types.

도 5 는 본 발명의 다른 실시예에 따른 가상 머신 모니터의 스케줄링 방법을 도시한 순서도이다.5 is a flowchart illustrating a scheduling method of a virtual machine monitor according to another embodiment of the present invention.

도 5 를 참조하면, 본 실시예에 따른 가상 머신 모니터의 스케줄링 방법은 적어도 두개 이상의 도메인을 구동시키는 스케줄러, 태스크 특징 평가부 및 크레딧 관리부를 포함하는 가상 머신 모니터에서의 스케줄링 방법으로서, 스케줄러가 도메인을 스케줄링하고 스케줄링된 도메인의 이벤트가 지연(510)되면 상기 도메인에 대한 부스트 매커니즘을 적용한다(520).Referring to FIG. 5, a scheduling method of a virtual machine monitor according to an embodiment of the present invention is a scheduling method in a virtual machine monitor including a scheduler for driving at least two domains, a task characteristic evaluation unit, and a credit management unit, When an event of the scheduled and scheduled domain is delayed 510, a boost mechanism for the domain is applied (520).

부스트 매커니즘이 적용(520)되면 태스크 특징 평가부는 부스트 매커니즘을 적용한 결과 데이터로서 I/O 분배비율과 부스트 매커니즘 실행시 사용된 CPU 평균시간인 부스트 평균 사용시간을 산출(530)하고, 이를 기초로 도메인의 태스크 특징을 평가한다(540).When the boost mechanism is applied (520), the task characteristic evaluation unit calculates the I / O distribution ratio as the result of applying the boost mechanism, and calculates the boost average usage time, which is the CPU average time used in the execution of the boost mechanism (530) (540). ≪ / RTI >

크레딧 관리부는 상기 평가된 태스크 특징에 따라 다음 주기에서의 크레딧 할당량과 상환기간을 결정한다(550). The credit management unit determines the credit allocation amount and the repayment period in the next cycle according to the evaluated task characteristic (550).

상술한 본 발명에 따르면, 부스트 매커니즘이 실행되면 이에 대한 부스트 크레딧 및 언더 크레딧의 소비패턴을 분석하고 이를 기초로 태스크 특징을 평가하고 평가된 태스크 특징에 따라 크레딧 할당량과 상환기간을 결정함으로써, 차등적이고 동적인 부스크 메커니즘의 적용이 가능하다. 이를 통해 종국적으로는 I/O 응답성을 향상시킬 수 있고 CPU 자원에 대한 공정성 높은 분배가 가능하다.According to the present invention, when the boost mechanism is executed, the consumption patterns of the boost credit and the under credit are analyzed, the task characteristic is evaluated based on the consumption pattern, and the credit allocation amount and the repayment period are determined according to the evaluated task characteristic. Dynamic bushing mechanism can be applied. This can ultimately improve I / O responsiveness and enable fair distribution of CPU resources.

이와 같은, 가상 머신 모니터(300) 및 가상 머신 모니터(300) 스케줄링 방법은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.As such, the virtual machine monitor 300 and virtual machine monitor 300 scheduling methods may be implemented in the form of program instructions that can be executed through various computer components and recorded on a computer-readable recording medium. The computer-readable recording medium may include program commands, data files, data structures, and the like, alone or in combination.

상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.The program instructions recorded on the computer-readable recording medium may be ones that are specially designed and configured for the present invention and are known and available to those skilled in the art of computer software.

컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD 와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like.

프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Examples of program instructions include machine language code such as those generated by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules for performing the processing according to the present invention, and vice versa.

이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, You will understand. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive.

300: 가상 머신 모니터
310: 스케줄러
320: 태스크 특징 평가부
330: 크레딧 관리부
300: Virtual Machine Monitor
310: Scheduler
320: task characteristic evaluation unit
330: Credit management part

Claims (15)

적어도 두개 이상의 도메인을 구동시키는 스케줄러, 태스크 특징 평가부 및 크레딧 관리부를 포함하는 가상 머신 모니터의 스케줄링 방법에 있어서,
상기 스케줄러가 상기 도메인을 스케줄링하고 스케줄링된 상기 도메인의 이벤트가 지연되면 상기 도메인에 대한 부스트 매커니즘을 실행하고,
상기 부스트 매커니즘이 실행되면 상기 태스크 특징 평가부가 상기 도메인의 I/O 분배비율과 상기 부스트 매커니즘 실행시 사용된 CPU 평균시간인 부스트 평균 사용시간을 산출하고 이를 기초로 상기 도메인의 태스크 특징을 평가하고,
상기 크레딧 관리부가 상기 평가된 태스크 특징에 따라 크레딧 할당량 및 상환기간을 결정하고,
상기 스케줄러가 상기 부스트 매커니즘이 실행되면 크레딧을 분류하고,
상기 크레딧은,
크레딧 소비 시작부터 다음 부스트 매커니즘이 실행되기 이전까지인 제 1 주기의 크레딧 할당량을 정의하는 크레딧 변수와,
상기 크레딧 할당량 중 상기 부스트 매커니즘에 사용될 수 있는 부스트 크레딧 할당량을 정의하는 부스트 크레딧 변수와,
상기 크레딧 할당량 중 상기 부스트 매커니즘 이외에 사용될 수 있는 언더 크레딧 할당량을 정의하는 언더 크레딧 변수로 분류되고,
상기 부스트 매커니즘이 최초로 적용되는 경우, 상기 부스트 크레딧과 상기 언더 크레딧은 최초 할당된 크레딧 양의 반씩 할당받는 가상 머신 모니터의 스케줄링 방법.
A scheduling method of a virtual machine monitor including a scheduler for driving at least two domains, a task characteristic evaluation unit, and a credit management unit,
Wherein the scheduler schedules the domain and performs a boost mechanism for the domain when an event of the scheduled domain is delayed,
Wherein when the boost mechanism is executed, the task characteristic evaluation unit calculates an I / O distribution ratio of the domain and a boost average use time which is a CPU average time used when the boost mechanism is executed, evaluates a task characteristic of the domain based on the calculated average,
Wherein the credit managing unit determines a credit allocation amount and a redeeming period according to the evaluated task characteristic,
The scheduler classifies the credit when the boost mechanism is executed,
The credit may include:
A credit variable for defining a credit allocation of the first cycle from the start of the credit consumption until the next boost mechanism is executed,
A boost credit variable that defines a boost credit quota that can be used for the boost mechanism among the credit quota,
And an under-credit variable that defines an amount of under-credit that can be used in addition to the boost mechanism,
Wherein when the boost mechanism is applied for the first time, the boost credit and the under credit are allocated in half the amount of the initially allocated credit.
삭제delete 제 1 항에 있어서,
상기 크레딧 변수는 아래의 수학식 1에 의해 정의되고, 상기 부스트 크레딧 변수는 아래의 수학식 2 에 의해 정의되며, 상기 언더 크레딧 변수는 아래의 수학식 3 에 의해 정의되는 가상 머신 모니터의 스케줄링 방법.
[수학식 1]
Figure 112018014636553-pat00018

여기서, ci,j(t) 는 크레딧 변수이고, wi 는 추가 크레딧 할당시 적용되는 가중치값이고, ACCUM 은 추가 크레딧을 할당받는 주기이고, ti,j,1 은 상기 제 1 주기의 시작이고, ti,j,s 는 상기 부스트 크레딧 변수 및 상기 언더 크레딧 변수 중 적어도 하나의 크레딧에 대한 소비가 완료되는 시점이고, ti,j,r 은 소비된 상기 부스트 크레딧에 대한 상환이 완료되는 시점이며, ti,j+1,1 은 제 2 주기의 시작이고, nonboost Timei 는 상기 제 1 주기동안 상기 부스트 매커니즘을 적용받지 않고 사용된 CPU 시간이다.
[수학식 2]
Figure 112018014636553-pat00019

여기서, bi,j(t) 는 상기 부스트 크레딧 변수이고, ci,j(ti,j,1)는 상기 제 1 주기의 시작시 할당된 크레딧 양이고, ioi,j 는 상기 태스크 특징 평가부에 의해 산출된 I/O 분배비율이며, boostTimei 는 상기 제 1 주기동안 상기 부스트 매커니즘이 적용되어 사용된 CPU 시간이다.
[수학식 3]
Figure 112018014636553-pat00020

여기서 ui,j(t) 는 상기 언더 크레딧 변수이다.
The method according to claim 1,
Wherein the credit variable is defined by Equation (1) below, the boost credit variable is defined by Equation (2) below, and the under-credit variable is defined by Equation (3) below.
[Equation 1]
Figure 112018014636553-pat00018

Here, c i, j (t) is a credit variable, w i is a weight value applied at the time of allocating additional credit, ACCUM is a period in which additional credit is allocated, t i, j, T i, j, s is a time point at which consumption of at least one of the boost credit variable and the under credit variable is completed, t i, j, r is a time when the reimbursement for the consumed boost credit is completed T i, j + 1,1 is the start of the second period, and nonboost Time i is the CPU time used without applying the boost mechanism during the first period.
&Quot; (2) "
Figure 112018014636553-pat00019

J i (t i, j, 1 ) is the amount of credit allocated at the beginning of the first period, and io i, j is the amount of the task characteristic I / O distribution ratio calculated by the evaluation unit, and boostTime i is the CPU time used by the boost mechanism during the first period.
&Quot; (3) "
Figure 112018014636553-pat00020

Where u i, j (t) is the under-credit variable.
제 3 항에 있어서,
상기 태스크 특징 평가부가 상기 도메인의 I/O 분배비율을 산출하는 것은,
상기 제 1 주기에서의 상기 부스트 크레딧 소비량과 상기 언더 크레딧의 소비량을 산출하고,
전체 크레딧 소비량 대비 상기 부스트 크레딧 소비량의 비율로 제 2 주기의 I/O 분배비율을 산출하는 것을 포함하는 가상 머신 모니터의 스케줄링 방법.
The method of claim 3,
The task feature evaluator calculates the I / O distribution ratio of the domain by:
Calculating a consumption amount of the boost credit and a consumption amount of the under credit in the first cycle,
And calculating an I / O distribution ratio of the second cycle at a ratio of the total credit consumption to the boost credit consumption.
제 4 항에 있어서,
상기 I/O 분배비율은 아래 수학식에 의해 산출되는 가상 머신 모니터의 스케줄링 방법.
Figure 112017013960854-pat00021

여기서, ioi,j 는 I/O 분배비율이고, j=1 일 때는 최초로 부스트 매커니즘이 적용될 때를 의미하고, Δbi,j - 1 과 Δui,j -1 은 각각 이전주기에서의 상기 부스트 크레딧 소비량과 상기 언더 크레딧 소비량을 의미한다.
5. The method of claim 4,
Wherein the I / O distribution ratio is calculated according to the following equation.
Figure 112017013960854-pat00021

Here, io i, j denotes an I / O division ratio, and when j = 1, the first time the boost mechanism is applied, and? B i, j - 1 and? U i, j -1 denote the boost The credit consumption amount and the under-credit consumption amount.
제 3 항에 있어서,
상기 태스크 특징 평가부가 상기 부스트 평균 사용시간을 산출하는 것은,
상기 제 1 주기동안의 부스트 매커니즘을 적용받은 횟수 대비 부스트 매커니즘이 적용되어 사용된 CPU 시간을 기초로 산출하는 것인 가상 머신 모니터의 스케줄링 방법.
The method of claim 3,
The task characteristic evaluating section calculates the boost average use time,
Wherein a boost mechanism is applied to the number of times the boost mechanism during the first period is applied, and is calculated based on the CPU time used.
제 6 항에 있어서,
상기 크레딧 관리부가 상기 평가된 태스크 특징에 따라 크레딧 할당량 및 상환기간을 결정하는 것은,
상기 I/O 분배비율과 부스트 평균 사용시간에 기초하여 아래 수학식과 같이 추가 크레딧 중 상환에 사용되는 상환비율을 결정하는 것을 포함하는 가상 머신 모니터의 스케줄링 방법.
Figure 112017013960854-pat00022

여기서, rri,j 는 상기 상환비율이고, ioi,j 는 I/O 분배비율이고, avgboostTimei 는 상기 부스트 평균 사용시간을 의미한다.
The method according to claim 6,
Wherein the credit managing unit determines the credit allocation amount and the redeeming period according to the evaluated task characteristic,
Based on the I / O distribution ratio and the boost average usage time, determining a redemption rate to be used for redemption among additional credits as shown in the following equation.
Figure 112017013960854-pat00022

Here, rr i, j is the repayment rate, io i, j is the I / O distribution ratio, and avgboostTime i means the boost average usage time.
제 1 항, 제 3 항 내지 제 7 항 중 어느 하나의 항에 따른 가상 머신 모니터의 스케줄링 방법을 컴퓨터에서 실행시키기 위한 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.A computer-readable recording medium having recorded thereon a computer program for causing a computer to execute a scheduling method of a virtual machine monitor according to any one of claims 1 to 9. 적어도 두개 이상의 도메인을 구동시키는 가상 머신 모니터에 있어서,
상기 도메인을 스케줄링하고 스케줄링된 상기 도메인의 이벤트가 지연되면 상기 도메인에 대한 부스트 매커니즘을 실행하는 스케줄러;
상기 부스트 매커니즘이 실행되면 상기 도메인의 I/O 분배비율과 상기 부스트 매커니즘 실행시 사용된 CPU 평균시간인 부스트 평균 사용시간을 산출하고 이를 기초로 상기 도메인의 태스크 특징을 평가하는 태스크 특징 평가부; 및
상기 태스크 특징에 기초하여 크레딧 할당량 및 상환시간을 결정하는 크레딧 관리부를 포함하고,
상기 스케줄러는 상기 부스트 매커니즘이 실행되면 크레딧을 분류하되,
상기 크레딧은,
크레딧 소비 시작부터 다음 부스트 매커니즘이 실행되기 이전까지인 제 1 주기의 크레딧 할당량을 정의하는 크레딧 변수와,
상기 크레딧 할당량 중 상기 부스트 매커니즘에 사용될 수 있는 부스트 크레딧 할당량을 정의하는 부스트 크레딧 변수와,
상기 크레딧 할당량 중 상기 부스트 매커니즘 이외에 사용될 수 있는 언더 크레딧 할당량을 정의하는 언더 크레딧 변수로 분류되고,
상기 부스트 매커니즘이 최초로 적용되는 경우, 상기 부스트 크레딧과 상기 언더 크레딧은 최초 할당된 크레딧 양의 반씩 할당받는 가상 머신 모니터.
1. A virtual machine monitor for driving at least two domains,
A scheduler that schedules the domain and performs a boost mechanism for the domain when an event of the scheduled domain is delayed;
A task characteristic evaluation unit for calculating a boost average usage time which is an average CPU time used when the boost mechanism is executed and an I / O distribution ratio of the domain when the boost mechanism is executed, and evaluating a task characteristic of the domain based on the calculated average boost time; And
And a credit managing unit for determining a credit allocation amount and a redeeming time based on the task characteristic,
The scheduler classifies the credit when the boost mechanism is executed,
The credit may include:
A credit variable for defining a credit allocation of the first cycle from the start of the credit consumption until the next boost mechanism is executed,
A boost credit variable that defines a boost credit quota that can be used for the boost mechanism among the credit quota,
And an under-credit variable that defines an amount of under-credit that can be used in addition to the boost mechanism,
Wherein when the boost mechanism is applied for the first time, the boost credit and the under credit are allocated in half of the initially allocated credit amount.
삭제delete [청구항 11은(는) 설정등록료 납부시 포기되었습니다.][Claim 11 is abandoned upon payment of the registration fee.] 제 9 항에 있어서,
상기 크레딧 변수는 아래의 수학식 1에 의해 정의되고, 상기 부스트 크레딧 변수는 아래의 수학식 2 에 의해 정의되며, 상기 언더 크레딧 변수는 아래의 수학식 3 에 의해 정의되는 가상 머신 모니터.
[수학식 1]
Figure 112018014636553-pat00023

여기서, ci,j(t) 는 크레딧 변수이고, wi 는 추가 크레딧 할당시 적용되는 가중치값이고, ACCUM 은 추가 크레딧을 할당받는 주기이고, ti,j,1 은 상기 제 1 주기의 시작이고, ti,j,s 는 상기 부스트 크레딧 변수 및 상기 언더 크레딧 변수 중 적어도 하나의 크레딧에 대한 소비가 완료되는 시점이고, ti,j,r 은 소비된 상기 부스트 크레딧에 대한 상환이 완료되는 시점이며, ti,j+1,1 은 제 2 주기의 시작이고, nonboost Timei 는 상기 제 1 주기동안 상기 부스트 매커니즘을 적용받지 않고 사용된 CPU 시간이다.
[수학식 2]
Figure 112018014636553-pat00024

여기서, bi,j(t) 는 상기 부스트 크레딧 변수이고, ci,j(ti,j,1)는 상기 제 1 주기의 시작시 할당된 크레딧 양이고, ioi,j 는 상기 태스크 특징 평가부에 의해 산출된 I/O 분배비율이며, boostTimei 는 상기 제 1 주기동안 상기 부스트 매커니즘이 적용되어 사용된 CPU 시간이다.
[수학식 3]
Figure 112018014636553-pat00025

여기서 ui,j(t) 는 상기 언더 크레딧 변수이다.
10. The method of claim 9,
Wherein the credit variable is defined by Equation (1) below, the boost credit variable is defined by the following Equation (2), and the under-credit variable is defined by Equation (3) below.
[Equation 1]
Figure 112018014636553-pat00023

Here, c i, j (t) is a credit variable, w i is a weight value applied at the time of allocating additional credit, ACCUM is a period in which additional credit is allocated, t i, j, T i, j, s is a time point at which consumption of at least one of the boost credit variable and the under credit variable is completed, t i, j, r is a time when the reimbursement for the consumed boost credit is completed T i, j + 1,1 is the start of the second period, and nonboost Time i is the CPU time used without applying the boost mechanism during the first period.
&Quot; (2) "
Figure 112018014636553-pat00024

J i (t i, j, 1 ) is the amount of credit allocated at the beginning of the first period, and io i, j is the amount of the task characteristic I / O distribution ratio calculated by the evaluation unit, and boostTime i is the CPU time used by the boost mechanism during the first period.
&Quot; (3) "
Figure 112018014636553-pat00025

Where u i, j (t) is the under-credit variable.
[청구항 12은(는) 설정등록료 납부시 포기되었습니다.][12] has been abandoned due to the registration fee. 제 11 항에 있어서,
상기 태스크 특징 평가부는
상기 제 1 주기에서의 상기 부스트 크레딧 소비량과 상기 언더 크레딧의 소비량을 산출하고,
전체 크레딧 소비량 대비 상기 부스트 크레딧 소비량의 비율로 제 2 주기의 I/O 분배비율을 결정하는 가상 머신 모니터.
12. The method of claim 11,
The task characteristic evaluation unit
Calculating a consumption amount of the boost credit and a consumption amount of the under credit in the first cycle,
A virtual machine monitor that determines an I / O distribution ratio of a second cycle at a ratio of the total credit consumption to the boost credit consumption.
[청구항 13은(는) 설정등록료 납부시 포기되었습니다.][13] has been abandoned due to the registration fee. 제 12 항에 있어서,
상기 I/O 분배비율은 아래 수학식에 의해 정의되는 가상 머신 모니터.
Figure 112017013960854-pat00026

여기서, ioi,j 는 I/O 분배비율이고, j=1 일 때는 최초로 부스트 매커니즘이 적용될 때를 의미하고, Δbi,j - 1 과 Δui,j -1 은 각각 이전주기에서의 상기 부스트 크레딧 소비량과 상기 언더 크레딧 소비량을 의미한다.
13. The method of claim 12,
Wherein the I / O distribution ratio is defined by the following equation:
Figure 112017013960854-pat00026

Here, io i, j denotes an I / O division ratio, and when j = 1, the first time the boost mechanism is applied, and? B i, j - 1 and? U i, j -1 denote the boost The credit consumption amount and the under-credit consumption amount.
[청구항 14은(는) 설정등록료 납부시 포기되었습니다.][14] has been abandoned due to the registration fee. 제 11 항에 있어서,
상기 태스크 특징 평가부는,
상기 제 1 주기동안의 부스트 매커니즘을 적용받은 횟수 대비 부스트 매커니즘이 적용되어 사용된 CPU 시간을 산출하여 상기 부스트 평균 사용시간을 산출하는 가상 머신 모니터.
12. The method of claim 11,
The task characteristic evaluation unit
Wherein the controller calculates the CPU time by applying a boost mechanism to the number of times the boost mechanism is applied for the first period, and calculates the boost average usage time.
[청구항 15은(는) 설정등록료 납부시 포기되었습니다.][Claim 15 is abandoned upon payment of registration fee] 제 14 항에 있어서,
상기 크레딧 관리부는,
상기 부스트 평균 사용시간에 기초하여 아래 수학식과 같이 추가 크레딧 중 상환에 사용되는 상환비율을 결정하는 가상 머신 모니터.
Figure 112017013960854-pat00027

여기서, rri,j 는 상기 상환비율이고, ioi,j 는 I/O 분배비율이고, avgboostTimei 는 상기 부스트 평균 사용시간을 의미한다.
15. The method of claim 14,
The credit management unit,
And determines a repayment ratio to be used for repayment of the additional credit based on the boost average usage time as shown in the following equation.
Figure 112017013960854-pat00027

Here, rr i, j is the repayment rate, io i, j is the I / O distribution ratio, and avgboostTime i means the boost average usage time.
KR1020170018583A 2017-02-10 2017-02-10 Virtual machine monitor, schduling method of virtual machine monitor and computer readable medium of thereof KR101852608B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170018583A KR101852608B1 (en) 2017-02-10 2017-02-10 Virtual machine monitor, schduling method of virtual machine monitor and computer readable medium of thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170018583A KR101852608B1 (en) 2017-02-10 2017-02-10 Virtual machine monitor, schduling method of virtual machine monitor and computer readable medium of thereof

Publications (1)

Publication Number Publication Date
KR101852608B1 true KR101852608B1 (en) 2018-06-07

Family

ID=62621913

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170018583A KR101852608B1 (en) 2017-02-10 2017-02-10 Virtual machine monitor, schduling method of virtual machine monitor and computer readable medium of thereof

Country Status (1)

Country Link
KR (1) KR101852608B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111402034A (en) * 2020-03-17 2020-07-10 深圳市卡牛信息科技有限公司 Credit auditing method, device, equipment and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110103257A (en) 2010-03-12 2011-09-20 삼성전자주식회사 Virtual machine monitor and scheduling method of virtual machine monitor
KR20120035387A (en) 2010-10-05 2012-04-16 삼성전자주식회사 Control apparatus and method for the resource utilization policy over the virtual environment
KR101707601B1 (en) * 2015-12-31 2017-02-16 숭실대학교산학협력단 Virtual machine monitor and schduling method of virtual machine monitor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110103257A (en) 2010-03-12 2011-09-20 삼성전자주식회사 Virtual machine monitor and scheduling method of virtual machine monitor
KR20120035387A (en) 2010-10-05 2012-04-16 삼성전자주식회사 Control apparatus and method for the resource utilization policy over the virtual environment
KR101707601B1 (en) * 2015-12-31 2017-02-16 숭실대학교산학협력단 Virtual machine monitor and schduling method of virtual machine monitor

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
김기수 외 2명. '가상머신 스케줄러의 I/O 성능 향상을 위한 대출/상환 기법'. 스마트미디어저널, Vol.5, No.4, 2016.12, pp.18-25. *
김기수. '가상 머신의 I/O 응답성 향상을 위한 자원 할당 스케줄러'. 숭실대학교 대학원 석사학위 논문, 2016.12.* *
황태규. '태스크 특징 기반 가상머신 스케줄링'. 숭실대학교 대학원 석사학위 논문, 2015.12. *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111402034A (en) * 2020-03-17 2020-07-10 深圳市卡牛信息科技有限公司 Credit auditing method, device, equipment and storage medium

Similar Documents

Publication Publication Date Title
KR101707601B1 (en) Virtual machine monitor and schduling method of virtual machine monitor
US9405585B2 (en) Management of heterogeneous workloads
US8918784B1 (en) Providing service quality levels through CPU scheduling
Villegas et al. An analysis of provisioning and allocation policies for infrastructure-as-a-service clouds
US8739171B2 (en) High-throughput-computing in a hybrid computing environment
CN102103516B (en) Virtual-CPU based frequency and voltage scaling
US20050132362A1 (en) Virtual machine management using activity information
CN103064746B (en) The accurate distribution method of processor resource of forecast dispatching is carried out based on current credit
Cai et al. Elasticsim: A toolkit for simulating workflows with cloud resource runtime auto-scaling and stochastic task execution times
US20150317179A1 (en) Efficient input/output-aware multi-processor virtual machine scheduling
US8020164B2 (en) System for determining and reporting benefits of borrowed computing resources in a partitioned environment
WO2014015725A1 (en) Resource scheduling system and method in graphics card virtualization and based on instant feedback of application effect
KR20130011491A (en) Apparatus or task assignment, method for task assignment and a computer-readable storage medium
KR20100018289A (en) System and method for simulating multi-tasking performance
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
Liu et al. CCRP: Customized cooperative resource provisioning for high resource utilization in clouds
Garbacki et al. Efficient resource virtualization and sharing strategies for heterogeneous grid environments
Varga et al. Deadline scheduling algorithm for sustainable computing in Hadoop environment
KR101852608B1 (en) Virtual machine monitor, schduling method of virtual machine monitor and computer readable medium of thereof
Tsog et al. Static allocation of parallel tasks to improve schedulability in cpu-gpu heterogeneous real-time systems
Sena et al. Harnessing Low-Cost Virtual Machines on the Spot
Upadhye et al. Cloud resource allocation as non-preemptive approach
Villegas et al. An analysis of provisioning and allocation policies for infrastructure-as-a-service clouds: extended results
Amar et al. On the importance of migration for fairness in online grid markets

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant