KR101465657B1 - Method for Coordinated Scheduling For virtual machine - Google Patents

Method for Coordinated Scheduling For virtual machine Download PDF

Info

Publication number
KR101465657B1
KR101465657B1 KR1020140027817A KR20140027817A KR101465657B1 KR 101465657 B1 KR101465657 B1 KR 101465657B1 KR 1020140027817 A KR1020140027817 A KR 1020140027817A KR 20140027817 A KR20140027817 A KR 20140027817A KR 101465657 B1 KR101465657 B1 KR 101465657B1
Authority
KR
South Korea
Prior art keywords
virtual
processor
scheduling
processors
inter
Prior art date
Application number
KR1020140027817A
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 KR1020140027817A priority Critical patent/KR101465657B1/en
Application granted granted Critical
Publication of KR101465657B1 publication Critical patent/KR101465657B1/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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Abstract

The present invention provides a method for coordinated scheduling of a hypervisor for a virtual machine, capable of managing a plurality of virtual machines including an operating system to drive a plurality of virtual central processing units (vCPU). The method includes the steps of: (a) allocating virtual processors to a physical processor; (b) determining a coordination state between multithreaded workloads based on inter-processor interrupt between virtual processors and selecting the thread workloads, which are determined as being coordinated thread workloads, as coordinated scheduling targets; and (c) primarily performing scheduling (Urgent vCPU First Scheduling) with respect to an urgent virtual processor among a plurality of virtual processes based on inter-processor interrupt between virtual processors. The urgent virtual processor in the step (c) is based on the threads selected as the coordinated scheduling targets in the step (b). The inter-processor interrupt includes Translation Lookaside Buffer (TLB) inter-invalidation processor interrupt. If inter-TLB processor interrupt occurs, the virtual processor received the inter-TLB processor interrupt is scheduled, thereby reducing time required for synchronization.

Description

가상머신을 위한 협력 스케줄링 방법{Method for Coordinated Scheduling For virtual machine}[0001] The present invention relates to a cooperative scheduling method for a virtual machine,

본 발명은 복수의 가상 프로세서(Virtual CPU, vCPU)를 구동하는 운영체계를 포함하는 복수의 가상 머신(Virtual Machine)을 관리하는 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법에 관한 것이다.
The present invention relates to a cooperative scheduling method of a hypervisor for a virtual machine managing a plurality of virtual machines including an operating system for driving a plurality of virtual processors (Virtual CPU, vCPU).

일반적으로 운영체계는 독점적으로 CPU 자원을 소유하고 있는 것으로 가정하고 프로세스들을 스케줄링한다. 하지만, 가상화된 환경에서는 여러 가상 머신들의 가상 프로세서들이 동일한 물리 프로세서 자원을 공유하여 사용하는 방식으로 인해서 가상 머신 내의 운영체계와 호스트 머신의 하이퍼바이저 두 개의 스케쥴링 계층이 존재하기 때문에 기존의 가정이 맞지 않는 상황이 발생한다. 이러한 가상화된 환경에서의 의미적인 격차로 인해서 서로 협력하는 멀티 쓰레드 기반의 응용 프로그램이 가상 머신에서 수행되는 경우에 성능이 저하되는 문제가 발생할 수 있다.In general, the operating system schedules processes exclusively assuming that they own CPU resources. However, in a virtualized environment, because there are two scheduling layers of the operating system in the virtual machine and the hypervisor of the host machine due to the way in which the virtual processors of the plurality of virtual machines share the same physical processor resources, A situation arises. Due to the semantic gap in the virtualized environment, performance may be degraded when multithreaded application programs cooperating with each other are executed in a virtual machine.

가상화된 환경에서 의미적인 격차로 인해 발생하는 대표적인 문제로는 하나의 가상머신에 속하는 가상 프로세서들이 하나의 물리 프로세서에 스케줄링되면서 서로 경쟁하는 경우를 들 수 있다. 특히, 가상 프로세서 중 하나가 스핀락을 수행하고 있는 경우 의미 있는 작업을 하지 않으면서도 같은 물리 프로세서에 스케줄링된 같은 가상머신 내 다른 가상 프로세서를 선점함으로써 성능을 떨어뜨리는 요인이 된다.A representative problem caused by a semantic gap in a virtualized environment is that virtual processors belonging to one virtual machine compete with each other while being scheduled on one physical processor. In particular, if one of the virtual processors is performing a spin lock, the performance is degraded by preempting another virtual processor in the same virtual machine scheduled to the same physical processor without performing a meaningful operation.

이러한 문제를 해결하기 위해서 하나의 가상머신에 속하는 가상 프로세서들은 서로 다른 물리 프로세서에 함께 스케줄링하는 다양한 협력 스케줄링 기법이 제안되었다. 최근에는 협력 스케줄링의 엄격한 정책이 시스템의 CPU 사용률을 떨어뜨릴 수 있다는 문제를 해결하기 위해 완화된 협력 스케줄링 기법과 균형 스케줄링 기법이 추가적으로 제안되었다. 하지만, 앞서 소개된 기법들은 실제로 수행되고 있는 워크로드의 협력 스케줄링에 대한 요구를 반영하지 않고 있는 단점이 존재한다.
To solve this problem, various collaborative scheduling schemes for scheduling virtual processors belonging to one virtual machine together with different physical processors have been proposed. Recently, a relaxed cooperative scheduling scheme and a balanced scheduling scheme have been proposed to solve the problem that the strict policy of cooperative scheduling may lower the CPU utilization of the system. However, there is a disadvantage that the techniques introduced above do not reflect the need for collaborative scheduling of workloads that are actually being performed.

한국 등록특허공보 10-1145144(2012년05월04일 등록); 가상머신 스케줄링 방법 및 시스템Korean Registered Patent No. 10-1145144 (registered May 05, 2012); Virtual machine scheduling method and system

본 발명은 상기의 문제를 해결하기 위한 것으로, 병렬 워크로드의 동기화 지연 시간을 단축하고 불필요한 프로세서 시간 소모를 줄임으로써 전체적으로 성능이 향상된 스케줄링 방법을 제공하는 데 그 목적이 있다.
SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and it is an object of the present invention to provide a scheduling method which improves overall performance by shortening the synchronization delay time of parallel workloads and reducing unnecessary processor time consumption.

상기한 문제를 해결하기 위한 본 발명의 복수의 가상 프로세서(Virtual CPU, vCPU)를 구동하는 운영체계를 포함하는 복수의 가상 머신(Virtual Machine)을 관리하는 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법은 (a) 물리 프로세서(pCPU)에 상기 복수의 가상 프로세서를 할당하는 단계; (b) 상기 복수의 가상 프로세서 간의 프로세서간 인터럽트를 기반으로 멀티 쓰레드 워크로드들(multithreaded workloads)의 쓰레드(thread) 사이의 협력 여부를 판단하고, 상기 협력된 것으로 판단된 상기 쓰레드들을 협력 스케줄링 대상으로 선정하는 단계;(c) 상기 가상 프로세서 간의 프로세서간 인터럽트를 기반으로 상기 할당된 복수의 가상 프로세서 중에서 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하는 단계;를 포함하며, 상기 (c) 단계의 긴급 가상 프로세서는 상기 (b) 단계에서 협력 스케줄링 대상으로 선정된 쓰레드들을 기반으로 할 수 있다. A collaborative scheduling method of a hypervisor for a virtual machine managing a plurality of virtual machines including an operating system for driving a plurality of virtual processors (virtual CPUs, vCPUs) of the present invention for solving the above- (a) allocating the plurality of virtual processors to a physical processor (pCPU); (b) determining whether cooperation among threads of multithreaded workloads is based on interprocessor interrupts among the plurality of virtual processors, and determining whether the cooperatively determined threads are cooperative scheduling targets (C) an Urgent vCPU First Scheduling step of scheduling an emergency virtual processor among the plurality of allocated virtual processors based on an inter-processor interruption between the virtual processors; and (c) The emergency virtual processor of step (b) may be based on threads selected for cooperative scheduling.

또한, 상기 (c) 단계는, (c-1) 상기 각각의 물리 프로세서마다 FIFO(First Input First Out) 순서에 따라 긴급 큐(Urgent Queue)를 상기 하이퍼바이저 스케줄러의 런큐(Run Queue)에 삽입하는 단계를 포함할 수 있다. The step (c) further includes: (c-1) inserting an Urgent Queue into a run queue of the hypervisor scheduler according to a FIFO (First Input First Out) order for each of the physical processors Step < / RTI >

또한, 하이퍼바이저의 가상머신 협력 스케줄링 방법은 상기 (c) 단계 이후에, (d) 상기 긴급 큐에 대기하고 있는 복수의 가상 프로세서 중 스케줄링될 수 있는 가상 프로세서가 존재 여부를 확인하는 단계, (e)상기 스케줄링될 수 있는 가상 프로세서가 존재하는 경우, 상기 스케줄링될 수 있는 가상 프로세서는 수행중인 다른 가상 프로세서를 선점하여, 상기 스케줄링될 수 있는 가상 프로세서를 실행하는 단계를 더 포함할 수 있다. The virtual machine cooperative scheduling method of the hypervisor further comprises: after step (c), (d) checking whether there is a virtual processor that can be scheduled among a plurality of virtual processors waiting in the emergency queue, ) If there is a virtual processor that can be scheduled, the schedulable virtual processor may further include preempting another virtual processor that is being executed, and executing the virtual processor that can be scheduled.

또한, 상기 프로세서간 인터럽트는 특정 이벤트가 완료될때까지, 상기 긴급 가상 프로세서가 상기 실행을 유지하도록 요청할 수 있다. Further, the inter-processor interrupt may request the emergency virtual processor to maintain the execution until a specific event is completed.

또한, 상기 프로세서간 인터럽트는 특정 시간동안, 상기 긴급 가상 프로세서가 상기 긴급 상태로 유지될 시간을 요청할 수 있게 허용할 수 있다. In addition, the inter-processor interrupt may allow the emergency virtual processor to request a time to remain in the emergency state for a specified time.

또한, 상기 프로세서간 인터럽트는 TLB(Translation Lookaside Buffer) 무효화 프로세서간 인터렙트를 포함하고, 상기 TLB 프로세서간 인터렙트가 발생된 경우에, 상기 TLB 프로세서간 인터렙트를 수신한 상기 가상 프로세서를 스케줄링할 수 있다. In addition, the interprocessor interrupt includes interleaving between TLB (Translation Lookaside Buffer) invalidation processors, and when the interleave between the TLB processors occurs, the virtual processor that has received interleaves between the TLB processors can be scheduled have.

또한, 상기 프로세서간 인터럽트는 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)를 포함하고, 상기 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)가 발생한 경우에, 상기 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)를 송신한 상기 가상 프로세서의 스케줄링을 지연시킬 수 있다. Also, the inter-processor interrupt includes a reschedule interprocessor interrupt, and when the reschedule interprocessor interrupt occurs, transmits the reschedule interprocessor interrupt (reschedule interprocessor interrupt) The scheduling of one virtual processor may be delayed.

또한, 상기 (a) 단계는 하나의 상기 가상 머신에 속하는 복수의 가상 프로세서들을 서로 다른 상기 물리 프로세서에 할당할 수 있다. In addition, the step (a) may allocate a plurality of virtual processors belonging to one virtual machine to different physical processors.

또한, 상기 (a) 단계는 모든 물리 프로세서 각각에 가상 프로세서가 할당된 경우에 한해서, 하나의 가상 머신에 속하는 복수의 가상 프로세서들 중 적어도 둘 이상이 하나의 물리 프로세서에 함께 할당되는 부하인지 밸런스 스케줄링 방법(load-conscious balance scheduling)에 의할 수 있다.
In the step (a), only when a virtual processor is allocated to each of the physical processors, at least two of the plurality of virtual processors belonging to one virtual machine are allocated to one physical processor, (Load-conscious balance scheduling).

본 발명은 멀티 쓰레드 워크로드들(multithreaded workloads)의 쓰레드(thread) 사이의 협력 여부를 판단하고, 상기 협력된 것으로 판단된 상기 쓰레드들을 협력 스케줄링 대상으로 선정하여, 쓰레드 간의 동기화로 인한 지연 시간을 최소화하는 장점이 있다. The present invention determines cooperations between threads of multithreaded workloads and selects the cooperatively determined threads as collaborative scheduling targets to minimize delay time due to synchronization between threads .

또한, 본 발명은 동일한 물리 프로세서 내의 상기 복수의 가상 프로세서 중에서 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하여, TLB 무효화 애플리케이션들의 성능을 향상시키는 효과가 있다. In addition, the present invention has an effect of improving the performance of TLB invalidation applications by preferentially scheduling an emergency virtual processor among the plurality of virtual processors in the same physical processor (Urgent vCPU First Scheduling).

또한, 본 발명은 긴급 가상 프로세서를 우선적으로 스케줄링하는 기법과 부하인지 밸런스 스케줄링 기법을 통합하여, 가상화 환경에서, 높은 반응성을 요구하는 인터렉티브 워크로드의 성능 저하 없이 커뮤니케이션이 많은 병렬 워크로드의 성능을 높일 수 있는 효과가 있다.
In addition, the present invention integrates a priority scheduling method for an emergency virtual processor and a load / balance scheduling technique, thereby enhancing the performance of a parallel workload having many communications without degrading the performance of interactive workloads requiring high responsiveness in a virtualized environment There is an effect that can be.

도 1은 각각의 PARSEC 애플리케이션이 실행되는 동안 측정한 총 IPI 발생횟수를 나타낸 그래프이다.
도 2는 각각의 PARSEC 애플리케이션이 streamcluster와 같이 실행되는 경우 증폭되는 커널에서의 실행 시간 비율을 나타낸 그래프이다.
도 3은 락 스피닝 시간이 크게 증폭된 애플리케이션들의 스핀락에 소모된 시간을 나타낸 그래프이다.
도 4는 8개의 가상 프로세서를 가진 가상 머신 내에서 streamcluster가 실행되는 동안 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)를 기록한 그래프이다.
도 5는 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법을 도시한 순서도이다.
도 6은 밸런스 스케줄링과 부하인지 밸런스 스케줄링의의 가상 프로세서에서의 물리 프로세서 할당 시나리오를 도시한 것이다.
도 7은 병렬 워크로드를 수행하는 8개의 가상 프로세서를 가진 하나의 가상 머신(8-vCPU VM)과 순차 워크로드를 각각 수행하는 하나의 가상 프로세서를 갖는 네 개의 가상 머신(하나의 가상 프로세서를 갖는 가상 머신(UP VM))이 하나의 물리 머신에 통합되어 실행되는 경우에 병렬 워크로드의 Baseline 대비 성능을 나타낸 그래프이다.
도 8은 병렬 워크로드를 수행하는 8개의 가상 프로세서를 가진 하나의 가상 머신(8-vCPU VM)과 순차 워크로드를 각각 수행하는 하나의 가상 프로세서를 갖는 네 개의 가상 머신(UP VM)이 하나의 물리 머신에 통합되어 실행되는 경우에 순차 워크로드의 독립적으로 수행되었을 경우 대비 성능저하를 나타낸 그래프이다.
도 9는 freqmine과 함께 수행된 경우 가중치가 적용된 성능 개선을 나타낸 그래프이다
도 10(a)는 Resched-Co가 적용된 경우에 streamcluster의 성능 개선을 나타내는 그래프이다.
도 10(b)는 실제로 성능에 영향을 미치는 block 횟수를 Resched-Co가 적용된 경우 얼마나 줄일 수 있었는지 확인하기 위해 실험한 결과를 나타낸 그래프이다.
1 is a graph showing the total number of IPI occurrences measured during execution of each PARSEC application.
2 is a graph showing the execution time ratio in the kernel to be amplified when each PARSEC application is executed as a streamcluster.
3 is a graph showing the time spent on the spin lock of applications with greatly amplified lock spinning time.
4 is a graph illustrating a reschedule interprocessor interrupt during execution of a streamcluster in a virtual machine having eight virtual processors.
5 is a flowchart showing a cooperative scheduling method of a hypervisor for a virtual machine.
Figure 6 shows a physical processor allocation scenario in a virtual processor of balance scheduling and load or balance scheduling.
FIG. 7 is a flow chart of a process for creating a virtual machine (8-vCPU VM) having eight virtual processors for performing parallel workloads and four virtual machines having one virtual processor A virtual machine (UP VM)) is integrated into one physical machine and executed.
FIG. 8 is a diagram showing a case where one virtual machine (8-vCPU VM) having eight virtual processors for performing a parallel workload and four virtual machines (UP VM) having one virtual processor for performing sequential workloads It is a graph showing performance degradation when sequential workloads are executed independently when executed in a physical machine.
9 is a graph illustrating weighted performance improvements when performed with freqmine
10 (a) is a graph showing the performance improvement of streamcluster when Resched-Co is applied.
FIG. 10 (b) is a graph showing the results of experiments to see how much the number of blocks affecting the performance is reduced when Resched-Co is applied.

본 발명의 일 실시예에 따른 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법은 커뮤니케이션이 많은 병렬 워크로드를 수행하는 쓰레드들의 협력 요구를 파악하기 위해 가상 프로세서간 커뮤니케이션을 관찰하는 방식이다. 운영체계의 수정 없이 투명한 하이퍼바이저 수준의 협력 스케줄링을 제공하기 위해서 본 발명의 일 실시예에서는 프로세서간 인터럽트(interprocessor interrupt, IPI)를 가상 프로세서간 발생하는 커뮤니케이션 신호로 할 수 있다. The hypervisor collaborative scheduling method for a virtual machine according to an embodiment of the present invention is a method for observing communication between virtual processors in order to grasp a cooperation request of threads that perform communication with parallel workloads. In an embodiment of the present invention, an interprocessor interrupt (IPI) may be a communication signal generated between virtual processors in order to provide cooperative scheduling at a transparent hypervisor level without modification of the operating system.

도 1은 각각의 PARSEC 애플리케이션이 실행되는 동안 측정한 총 IPI 발생횟수로, 8개의 가상 프로세서를 가진 하나의 가상 머신 위에서 다양한 특성을 지닌 멀티쓰레드 워크로드들((multithreaded workloads)을 포함하는 PARSEC 2.1 벤치마크를 이용한 실험 결과를 나타낸 그래프이다. 도 1은 각 애플리케이션이 하나의 가상머신 안에서 8개의 쓰레드를 이용하여 독자적으로 수행되면서 발생시킨 총 프로세서간 인터럽트의 횟수를 수행된 총 시간과 가상 프로세서의 개수로 나눈 값을 나타낸 그래프로, 통합된 멀티쓰레드 기반의 워크로드에서 프로세서간 인터럽트의 역할과 그 의미를 알 수 있다. 도 1을 참조하면, 애플리케이션마다 다양한 종류의 프로세서간 인터럽트가 발생되고, 그 빈도도 다양하다. Figure 1 shows the results of a total number of IPI occurrences measured during the execution of each PARSEC application on a virtual machine with eight virtual processors and a PARSEC 2.1 bench with multithreaded workloads FIG. 1 is a graph showing the total number of inter-processor interrupts generated while each application is independently executed using eight threads in one virtual machine, and the number of virtual processors Figure 1 shows the inter-processor interrupts in an integrated multithreaded workload. Figure 1 shows that inter-processor interrupts of various types are generated for each application, and the frequency Varies.

도 2는 각각의 PARSEC 애플리케이션이 streamcluster와 같이 실행되는 경우 증폭되는 커널에서의 실행 시간 비율을 나타낸 그래프이다. 도 2는 커널 수준의 협력 요구를 규명하기 위하여 두 개의 가상 머신이 물리 프로세서에 대해 서로 경쟁하면서 각각 워크로드를 실행할 때 커널에서 소모되는 시간의 비중이 협력 스케줄링이 적용되지 않는 경우에 발생하는 영향에 대한 것으로, 프로세서간 인터럽트의 역할 및 커널과 사용자 수준의 협력 요구와의 관계를 알 수 있다. 2 is a graph showing the execution time ratio in the kernel to be amplified when each PARSEC application is executed as a streamcluster. FIG. 2 is a graph showing the relationship between the amount of time consumed in the kernel when two virtual machines compete with each other for a physical processor and the cooperative scheduling is not applied, For example, the role of interprocessor interrupts and the relationship between kernel and user-level collaboration requirements can be seen.

도 2는 리눅스의 기본 스케줄러인 CFS(Compeletely Fair Scheduler)를 사용하고, PARSEC 애플리케이션 중 많은 양의 커뮤니케이션을 발생시키면서 프로세서 소비 또한 많은 streamcluster를 같이 실행되는 워크로드로 선정하여 실험한 결과이다. FIG. 2 shows a result of experiments using a CFS (Compeletely Fair Scheduler), which is a basic scheduler of Linux, and experimenting with a streamcluster having a large amount of processor consumption while generating a large amount of communication among PARSEC applications.

도 2를 참조하면, 커널에서 소모되는 프로세서 시간은 다른 경쟁 워크로드와 함께 실행되었을 때 최대 30배까지 증폭되는 것을 확인할 수 있다. 이러한 증폭은 독자적으로 실행되었을 때 대부분의 시간을 사용자 수준에서 실행되는 애플리케이션에서도 발생한다는 것을 나타낸다. 또한, 크게 증폭된 커널 시간을 보이는 애플리케이션들은 프로세서간 인터럽트 발생 횟수가 많았던 애플리케이션들이었음을 알 수 있다. 이러한 결과는 커널 수준에서의 협력이 커뮤니케이션 집중적인 애플리케이션들을 위해 필요하다는 것을 의미한다. Referring to FIG. 2, it can be seen that the processor time consumed in the kernel is amplified up to 30 times when executed with other competitive workloads. This amplification indicates that most of the time when executed independently also occurs in applications running at the user level. Also, applications that showed significantly increased kernel time were applications that had a high number of inter-processor interrupts. This result means that collaboration at the kernel level is required for communication-intensive applications.

또한, 상기 증폭된 커널 시간은 TLB(Translation Lookaside Buffer) 무효화와 락 스피닝 함수에서 소모된 것을 의미한다. 대부분의 운영체계들에서는 다른 프로세서에 TLB 엔트리가 무효화되었음을 알려주기 위해 프로세서간 인터럽트를 이용한다. 프로세서간 인터럽트를 보내는 프로세서는 TLB의 동기화를 위해서 TLB 무효화를 위한 프로세서간 인터럽트를 다른 프로세서에 보내고 해당 프로세서로부터 응답이 올 때까지 busy-waiting을 수행한다. 이러한 방식은 가상화 되지 않은 환경에서는 문제 없이 동작하지만, 본 발명과 같이, 가상화된 환경에서는 프로세서간 인터럽트의 수신 가상 프로세서가 하이퍼바이저 스케줄러에 의해 스케줄링이 지연되어 프로세서간 인터럽트를 보내는 가상 프로세서의 불필요한 프로세서 소비를 유발하는 원인이 된다. 따라서 TLB 무효화 프로세서간 인터럽트는 불필요한 프로세서의 소모를 줄이기 위해 긴급하게 스케줄링 되어야 할 가상 프로세서가 있음을 알려주는 신호로 볼 수 있다. Also, the amplified kernel time means that TLB (Translation Lookaside Buffer) invalidation and the lock spinning function are consumed. Most operating systems use interprocessor interrupts to signal that another processor has invalidated TLB entries. A processor that sends an inter-processor interrupt sends an inter-processor interrupt for TLB invalidation to another processor for synchronization of the TLB and performs busy-waiting until a response is received from the processor. In the virtualized environment, the receiving virtual processor of the inter-processor interrupt is delayed in scheduling by the hypervisor scheduler so that the unnecessary processor consumption of the virtual processor, which sends the inter-processor interrupt, . ≪ / RTI > Therefore, interrupts between the TLB invalidation processors can be seen as a signal to indicate that there is a virtual processor to be urgently scheduled to reduce unnecessary processor consumption.

도 3은 락 스피닝 시간이 크게 증폭된 애플리케이션들의 스핀락에 소모된 시간을 나타낸 그래프로 리눅스의 lockstat을 이용하여 실행을 수행하였다. 도 3을 참조하면, 커널 내에서 정확히 어떤 락이 실제로 불필요한 프로세서 소비를 유발하는지 파악할 수 있다. FIG. 3 is a graph showing the time spent in the spin lock of applications with greatly amplified lock spinning time, and executed using lockstat of Linux. Referring to FIG. 3, it is possible to determine exactly what lock in the kernel actually causes unnecessary processor consumption.

도 3을 참조하면, futex-queue lock이 대부분의 증폭된 락 스피닝의 원인이 된다는 사실을 알 수 있다. futex는 사용자 수준의 애플리케이션에 동기화 기능을 제공하는 커널 수준의 지원으로, 많은 애플리케이션들이 동기화가 필요한 객체들의 대기큐를 보호하기 위해 futex를 사용하고 있다. 이로 인해 동기화 작업이 많은 경우에 집중적인 큐잉 작업을 요청함으로써 futex-queue lock에 대한 과도한 경쟁을 유발하게 된다. 이러한 문제는 TLB 무효화와는 달리 직접적으로 프로세서간 인터럽트를 발생시키지 않지만, 초과적인 락 스피닝은 도 1을 참조하면, 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)가 많이 발생하는 애플리케이션에 집중되는 것을 알 수 있다. 이는 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)가 지역 프로세서에 의해 다른 프로세서에 새로운 쓰레드가 스케줄링될 수 있는 상태로 되었음을 알려주는 용도로 사용되기 때문이다. 결국 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)는 하이퍼바이저 스케줄러에게 프로세서간 인터럽트를 발생시킨 가상 프로세서가 잠재적으로 스핀락을 획득한 상태임을 알려주는 작용을 한다. 이를 바탕으로 해서 본 발명의 일 실시예에 따른 하이퍼바이저는 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)를 송신한 가상 프로세서가 선점당하는 것을 방지(스케줄링을 지연)함으로써 커뮤니케이션 지연을 단축시킬 수 있다.Referring to FIG. 3, it can be seen that the futex-queue lock is responsible for most of the amplified rock spinning. Futex is kernel-level support that provides synchronization for user-level applications, and many applications use futex to protect the waiting queue of objects that need to be synchronized. This causes excessive competition for futex-queue locks by requesting intensive queuing when there are many synchronizations. This problem does not directly cause inter-processor interrupts unlike TLB invalidation, but excessive lock spinning can be seen with reference to FIG. 1, concentrating on applications where reschedule interprocessor interrupts are frequently generated have. This is because the reschedule interprocessor interrupt is used by the local processor to notify another processor that a new thread can be scheduled. Eventually, the reschedule interprocessor interrupt informs the hypervisor scheduler that the virtual processor that caused the inter-processor interrupt is potentially acquiring the spin lock. Based on this, the hypervisor according to the embodiment of the present invention can shorten the communication delay by preventing the virtual processor that has transmitted the reschedule interprocessor interrupt from being preempted (delaying the scheduling).

본 발명의 일 실시예에 따른 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)는 사용자 수준의 협력 요구를 알아내기 위해 이용될 수 있다. 사용자 수준의 동기화는 일반적으로 block 또는 spin-then-block 기반의 함수를 사용하기 때문에 하이퍼바이저의 관점에서 사용자 수준의 커뮤니케이션은 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)를 동반할 가능성이 높다. 따라서 하이퍼바이저 스케줄러는 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)를 사용자 수준의 협력 요구를 파악하는데에 활용할 수 있다. A reschedule interprocessor interrupt according to an embodiment of the present invention can be used to find a user level cooperation request. Because user-level synchronization typically uses block- or spin-then-block-based functions, user-level communication from a hypervisor's perspective is likely to be accompanied by reschedule interprocessor interrupts. Therefore, the hypervisor scheduler can utilize reschedule interprocessor interrupts to identify user-level collaboration requirements.

도 4는 8개의 가상 프로세서를 가진 가상 머신 내에서 streamcluster가 실행되는 동안 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)를 기록한 것을 시간의 흐름에 따라 나타낸 것이다. 이 애플리케이션은 barrier 기반의 동기화 방식을 사용하기 때문에 동기화 지점까지는 각자의 가상 프로세서를 이용하여 수행되다가 동기화 지점에서 집중적으로 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)가 발생하는 것을 알 수 있다. 따라서, 가상 프로세서들이 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)의 발생함에 따라 동시에 스케줄링 되는 경우에, 동기화를 위해 소모되는 시간을 단축된다. FIG. 4 shows a flow of time during which a reschedule interprocessor interrupt is recorded during execution of a streamcluster in a virtual machine having eight virtual processors. Since this application uses a barrier-based synchronization method, it can be seen that a reschedule interprocessor interrupt occurs intensively at the synchronization point, while the synchronization point is performed using each virtual processor. Thus, when virtual processors are scheduled simultaneously as reschedule interprocessor interrupts occur, the time consumed for synchronization is reduced.

도 1 내지 도 4의 결과를 참조하면, 본 발명의 일 실시예에 따른 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하는 는 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법은 복수의 가상 프로세서(Virtual CPU, vCPU)를 구동하는 운영체계를 포함하는 복수의 가상 머신(Virtual Machine)을 관리하는 하이퍼바이저의 협력 스케줄링 방법에 관한 것으로, 가상 프로세서 간의 프로세서간 인터럽트를 기반으로 할당된 물리 프로세서 내의 상기 복수의 가상 프로세서 중에서 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하는 하이퍼바이저 수준의 협력 스케줄링이다. Referring to the results of FIGS. 1 to 4, a collaborative scheduling method of a hypervisor for a virtual machine that prioritizes an emergency virtual processor according to an embodiment of the present invention (Urgent vCPU First Scheduling) A plurality of virtual machines including an operating system for operating a plurality of virtual machines, a virtual CPU, and a virtual CPU (vCPU), wherein the plurality of virtual machines (Urgent vCPU First Scheduling) of the virtual processors among the virtual processors of the virtual processors of the virtual processors.

도 5는 본 발명의 일 실시예에 따른 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법을 도시한 순서도이다. 도 5를 참조하면, 본 발명의 일 실시예에 따른 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법은 물리 프로세서에 상기 복수의 가상 프로세서를 할당하는 단계(S100); 상기 복수의 가상 프로세서 간의 프로세서간 인터럽트를 기반으로 멀티 쓰레드 워크로드들(multithreaded workloads)의 쓰레드(thread) 사이의 협력 여부를 판단하고, 상기 협력된 것으로 판단된 상기 쓰레드들을 협력 스케줄링 대상으로 선정하는 단계(S200); 가상 프로세서 간의 프로세서간 인터럽트를 기반으로 할당된 물리 프로세서 내의 상기 복수의 가상 프로세서 중에서 긴급 가상 프로세서 선정하고, 상기 선정되 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하는 단계(S300);를 포함할 수 있다. 5 is a flowchart illustrating a collaborative scheduling method of a hypervisor for a virtual machine according to an embodiment of the present invention. Referring to FIG. 5, a hypervisor cooperative scheduling method for a virtual machine according to an embodiment of the present invention includes allocating (S100) the plurality of virtual processors to a physical processor; Determining whether cooperation among threads of multithreaded workloads is based on interprocessor interrupts between the plurality of virtual processors, and selecting the cooperatively determined threads as collaborative scheduling targets (S200); Selecting an emergency virtual processor among the plurality of virtual processors in an allocated physical processor based on inter-processor interrupts between virtual processors, and (S300) performing an Urgent vCPU First Scheduling operation on the selected emergency virtual processor can do.

본 발명의 일 실시예에 따른 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하는 하이퍼바이저의 협력 스케줄링 방법은 가상 머신간 공평을 유지하기 위해 기존의 운영체계에서 사용되고 있는 proportional-share 기반의 스케줄러를 대체하는 것이 아니며, 상기 proportional-share 기반의 스케줄러를 보완할 수 있다. 이를 위해서, 상기 할당된 물리 프로세서 내의 상기 복수의 가상 프로세서 중에서 긴급 가상 프로세서를 우선적으로 실행하는 단계(S300)는 상기 각각의 물리 프로세서마다 FIFO(First Input First Out) 순서에 따라 긴급 큐(Urgent Queue)를 스케줄러의 런큐(Run Queue)에 삽입하는 단계를 포함할 수 있다. 가상 프로세서가 프로세서간 인터럽트에 반응하여 긴급 상태로 들어가면, 상기 긴급 상태의 가상 프로세서는 상기 긴급 큐(Urgent Queue)와 상기 스케줄러의 런큐(Run Queue)에 삽입될 수 있다. A collaborative scheduling method of a hypervisor that prioritizes an emergency virtual processor according to an embodiment of the present invention is a proportional-share based scheduler used in an existing operating system to maintain fairness among virtual machines. And it is possible to supplement the proportional-share based scheduler. To this end, the step (S300) of preferentially executing the emergency virtual processor among the plurality of virtual processors in the allocated physical processor may include, for each of the physical processors, an Urgent Queue according to a FIFO (First Input First Out) Into the Run Queue of the scheduler. When a virtual processor enters an emergency state in response to an inter-processor interrupt, the emergency virtual processor may be inserted into the Urgent Queue and the Run Queue of the scheduler.

이후, 도 5를 참조하면, 하이퍼바이저를 위한 스케줄러는 다음에 실행될 가상 프로세서를 선택할때 먼저 긴급 큐(Urgent Queue)에 대기하고 있는 가상 프로세서 중에 가상 머신 간 공평성을 깨지 않으면서 스케줄링될 수 있는 가상 프로세서가 존재하는지 여부를 확인한다(S400). 만일 스케줄링될 수 있는 가상 프로세서가 존재한다면 스케줄링될 수 있는 가상 프로세서는 수행중인 다른 가상 프로세서를 선점(preempt)하여 상기 스케줄링될 수 있는 가상 프로세서를 실행할 수 있다(S500). 5, a scheduler for a hypervisor may select a virtual processor to be executed next, a virtual processor that can be scheduled without breaking the inter-virtual machine fairness among the virtual processors waiting in the Urgent Queue first, (Step S400). If there is a virtual processor that can be scheduled, the virtual processor that can be scheduled may preempt another virtual processor that is being executed to execute the virtual processor that can be scheduled (S500).

본 발명의 일 실시예에 따른 가상 프로세서는 프로세서간 인터럽트의 종류에 따라서, 이벤트 기반과 시간 기반 방식으로 자신의 긴급 상태를 요청할 수 있다. The virtual processor according to an embodiment of the present invention can request its own emergency status in an event-based and time-based manner depending on the type of inter-processor interrupt.

본 발명의 일 실시예에 따른 프로세서간 인터럽트는 이벤트 기반 방식으로, 특정 이벤트가 완료될때까지, 긴급 가상 프로세서가 실행을 유지하도록 요청할 수 있다. 또는, 상기 프로세서간 인터럽트는 시간 기반 방식으로, 특정 시간동안, 긴급 가상 프로세서가 긴급 상태로 유지될 시간을 요청할 수 있게 허용하는 방식일 수 있다. The inter-processor interrupt according to an embodiment of the present invention may be an event-based method, and may request the emergency virtual processor to maintain execution until a specific event is completed. Alternatively, the inter-processor interrupt may be in a time-based manner, allowing the emergency virtual processor to request a time to remain in an emergency state for a specified time.

본 발명의 일 실시예에 따른 프로세서간 인터럽트 종류는 TLB(Translation Lookaside Buffer) 무효화 프로세서간 인터렙트 및/또는 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)일 수 있다. The type of interprocessor interrupt according to an exemplary embodiment of the present invention may be a translation lookaside buffer (TLB) invalidation processor interleave and / or a reschedule interprocessor interrupt.

본 발명의 일 실시예에 따른 TLB(Translation Lookaside Buffer) 무효화 프로세서간 인터렙트는 각 CPU의 TLB 동기화를 위해 이용되는 것으로, 상기 TLB 프로세서간 인터렙트가 발생된 경우에, 상기 TLB 프로세서간 인터렙트를 수신한 상기 가상 프로세서를 스케줄링할 수 있다. The TLB translation look-aside buffer interleaving according to an embodiment of the present invention is used for TLB synchronization of each CPU. When an interleave occurs between the TLB processors, interleaving between the TLB processors is performed And may schedule the received virtual processor.

본 발명의 일 실시예에 따른 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)는 새로운 쓰레드가 스케줄링 가능해졌음을 알려주기 위한 것으로, 상기 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)가 발생한 경우에, 상기 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)를 송신한 가상 프로세서의 스케줄링을 지연시킬 수 있다. A reschedule interprocessor interrupt according to an embodiment of the present invention is for informing that a new thread has become schedulable, and when the reschedule interprocessor interrupt occurs, the reschedule interprocessor interrupt And may delay the scheduling of a virtual processor that has transmitted a reschedule interprocessor interrupt.

본 발명의 일 실시예에 따른 하이퍼바이저의 가상머신 스케줄링 기법은 복수의 가상 프로세서들이 요청된 작업을 긴급 상태로 처리할 수 있도록 urgent tslice라 불리는 자신만의 타임 슬라이스를 사용할 수 있다. 복수의 가상 머신들이 동시에 urgent 프로세서간 인터럽트에 연관되기 때문에 전체 반응성을 높이기 위해서는 상기 urgent tslice는 짧게 유지해야하는 동시에 타임 슬라이스 내에서 가상 프로세서가 유용한 하나의 작업을 마무리하기 위해서는 충분히 길어야 한다. 또한, 본 발명의 일 실시예에 따른 하이퍼바이저의 가상머신 협력 스케줄링에서는 단기간의 공평성을 전체 효율성과 교환함으로써 가상 프로세서에게 자신의 미래의 CPU 시간을 빌려와 사용할 수 있는 범위를 제한하기 위해 urgent allowance라 불리는 추가적인 제어 값을 사용할 수 있다. 따라서 가상 프로세서는 현재 실행중인 가상 프로세서의 CPU 사용 시간보다 자신의 CPU 사용 시간이 urgent allowance 값의 범위 안에서 큰 경우 실행중인 가상 프로세서를 선점함으로써 자신의 미래의 CPU 시간을 이용해 urgent tslice를 빌려올 수 있다. The virtual machine scheduling technique of the hypervisor according to an embodiment of the present invention can use its own time slice called urgent tslice so that a plurality of virtual processors can process a requested task in an emergency state. Since multiple virtual machines are concurrently involved in an urgent interprocessor interrupt, the urgent tslice must be kept short to increase overall responsiveness and at the same time long enough for the virtual processor to complete a useful task within the time slice. In the virtual machine cooperative scheduling of the hypervisor according to an embodiment of the present invention, urgent allowance is used to limit the range in which the virtual processor can borrow and use its future CPU time by exchanging short-term fairness with overall efficiency Additional control values called are available. Therefore, a virtual processor can borrow urgent tslice from its future CPU time by preempting a running virtual processor if its CPU usage time is within the range of urgent allowance than the CPU time of the currently executing virtual processor .

본 발명의 일 실시예에 따른 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하는 는 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법은 커뮤니케이션이 많은 병렬 워크로드에서의 가상화 환경에서 발생하는 시맨틱 갭을 완화할 수 있다. 하지만, 다양한 특성의 워크로드가 수행되는 가상 데스크탑 환경 환경에서의 각 물리 프로세서간 부하를 고려하여 가상 프로세서를 어느 물리 프로세서에 할당할 것인지에 대한 이슈는 하이퍼바이저 가상머신 협력스케줄링 방법를 통해 해결될 수 없다. 기존의 방식 중 단순하면서도 효과적인 가상 프로세서에서의 물리 프로세서 (vCPU-to-pCPU) 할당 알고리즘은 하나의 가상 머신에 속하는 가상 프로세서들을 서로 모두 다른 물리 프로세서에 할당하는 밸런스 스케줄링 (balance scheduling)이다. 이러한 방식은 복수의 가상 프로세서들을 서로 다른 물리 프로세서서에서 실행되도록 함으로써 함께 스케줄링 되어 실행될 확률을 높여주어 동기화 지연을 줄일 수 있다. The hypervisor's collaborative scheduling method for the virtual machine, which prioritizes the emergency virtual processor according to the embodiment of the present invention, is characterized in that the semantic gap generated in the virtual environment in the parallel communication workload Can be mitigated. However, the issue of how to allocate a virtual processor to a physical processor in consideration of the load between each physical processor in a virtual desktop environment where various workloads of various characteristics are performed can not be solved by the hypervisor virtual machine cooperative scheduling method. Among the existing methods, a simple yet effective vCPU-to-pCPU allocation algorithm in a virtual processor is balance scheduling that allocates virtual processors belonging to one virtual machine to all other physical processors. This scheme increases the probability of being scheduled and executed together by having a plurality of virtual processors execute in different physical processors, thereby reducing the synchronization delay.

그러나, 밸런스 스케줄링은 복수의 물리 프로세서간 부하의 불균형이 발생하는 경우에 동기화 시간을 지연 시키는 문제를 발생시킬 수 있다. 밸런스 스케줄링은 시스템 전체적인 CPU 부하를 고려하지 않고, 하나의 가상 머신에 속하는 복수의 가상 프로세서들을 서로 다른 물리 프로세서에 할당하기 때문에 상대적으로 여유로운 물리 프로세서가 존재하더라도 경쟁이 심한 물리 프로세서로 할당할 가능성이 있다. However, the balance scheduling may cause a problem of delaying the synchronization time when an imbalance in load occurs between a plurality of physical processors. Since balance scheduling allocates a plurality of virtual processors belonging to one virtual machine to different physical processors without considering the overall CPU load of the system, there is a possibility that even if there is a relatively lenient physical processor, .

도 6은 밸런스 스케줄링과 부하인지 밸런스 스케줄링의의 가상 프로세서에서의 물리 프로세서 할당 시나리오를 도시한 것이다. Figure 6 shows a physical processor allocation scenario in a virtual processor of balance scheduling and load or balance scheduling.

도 6(a)는 제1 내지 제4 가상 프로세서(vCPU1, vCPU2, vCPU3, vCPU4)를 갖는 제1 가상 머신(VM1), 제5 가상 프로세서(vCPU5)를 갖는 제2 가상머신(VM2) 및 제6 가상 프로세서(vCPU6)를 갖는 제 3 가상머신(VM3)이 통합된 환경에서 경쟁이 심한 물리 프로세서로 할당되는 가상 프로세서를 도식화 한 것이다. 도 6(a)를 참조하면, 제1 내지 제4 물리 프로세서(pCPU1, pCPU2, pCPU3, pCPU4)간 부하가 불균형을 이루었음에도 불구하고 밸런스 스케줄링의 정책에 따라 제1 가상머신(VM1)의 제1 및 제2 가상 프로세서(vCPU1, vCPU2)는 각각 제1 및 제2 물리 프로세서(pCPU1와 pCPU2)에 할당되는 것을 확인할 수 있다. 6A shows a first virtual machine VM1 having first through fourth virtual processors vCPU1, vCPU2, vCPU3 and vCPU4, a second virtual machine VM2 having a fifth virtual processor vCPU5, 6 is a schematic diagram of a virtual processor allocated to a highly competitive physical processor in an environment in which a third virtual machine (VM3) having a virtual processor (vCPU6) is integrated. 6A, although the load is unbalanced between the first to fourth physical processors (pCPU1, pCPU2, pCPU3, pCPU4), the first virtual machine VM1 And the second virtual processors vCPU1 and vCPU2 are allocated to the first and second physical processors pCPU1 and pCPU2, respectively.

이러한 문제를 해소하기 위해 본 발명의 일 실시예에 따르면, 하이퍼바이저 가상머신 스케줄링 방법에 더하여 다양한 특성의 워크로드가 수행되는 가상 데스크탑 환경(virtual desktop infrastructure) 환경을 고려한 부하인지 밸런스 스케줄링(load-conscious balance scheduling) 방법을 이용할 수 있다. In order to solve such a problem, according to an embodiment of the present invention, a load-conscious (virtual) scheduling method considering a virtual desktop infrastructure environment in which various characteristics of workloads are performed in addition to a hypervisor virtual machine scheduling method balance scheduling method.

본 발명의 일 실시예에 따른 부하인지 밸런스 스케줄링 방법은 경쟁이 심한 물리 프로세서에 가상 프로세서를 할당하는 비효과적인 할당을 피하기 위해서 선택적으로 밸런스 스케줄링의 정책이 전체 부하의 불균형을 악화시키는 경우에 한해서, 하나의 가상 머신에 속하는 복수의 가상 프로세서들이 하나의 물리 프로세서에 함께 할당되는 것을 허용한다. 즉, 도 6(b)와 같이, 모든 물리 프로세서 각각에 가상 프로세서가 할당된 경우에 한해서, 하나의 가상 머신에 속하는 복수의 가상 프로세서들 중 적어도 둘 이상이 하나의 물리 프로세서에 함께 할당되는 것을 허용한다.The load-awareness balance scheduling method according to an embodiment of the present invention is a method in which, in order to avoid an ineffective allocation of a virtual processor to a competing physical processor, if the balance scheduling policy selectively worsens the imbalance of the overall load, Lt; RTI ID = 0.0 > virtual processors < / RTI > That is, as shown in FIG. 6 (b), only when a virtual processor is allocated to each physical processor, at least two of the plurality of virtual processors belonging to one virtual machine are allowed to be allocated to one physical processor together do.

부하인지 밸런스 스케줄링 기법을 6(a) 시나리오에 적용하게 되면 도 6(b)와 같이, 하나의 가상 머신에 속하는 복수의 가상 프로세서들이 같은 물리 프로세서에 할당되도록 허용함으로써 전체적인 부하의 균형을 맞출 수 있다. 다만, 부하인지 밸런스 스케줄링이 반대로 동기화 지연에 악영향을 미칠수도 있기 때문에 본 발명의 일 실시예에 따른 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하는 방법과 통합하여 이용할 수 있다. 본 발명의 일 실시예에 따라, 부하인지 밸런스 스케줄링이 통합된 하이퍼바이저의 협력 스케줄링을 통해, 가상 데스크탑 환경 환경(virtual desktop infrastructure; VDI)에서 높은 반응성을 요구하는 인터렉티브 워크로드의 성능 저하 없이 커뮤니케이션이 많은 병렬 워크로드의 성능을 높일 수 있는 장점이 있다. When the load / balance scheduling scheme is applied to the scenario 6 (a), the overall load can be balanced by allowing a plurality of virtual processors belonging to one virtual machine to be allocated to the same physical processor as shown in FIG. 6 (b) . However, since the load or balance scheduling may adversely affect the synchronization delay, the emergency virtual processor according to an embodiment of the present invention may be integrated with the method of priority scheduling (Urgent vCPU First Scheduling). In accordance with an embodiment of the present invention, collaborative scheduling of a hypervisor with integrated load or balance scheduling enables communication without degrading the performance of interactive workloads that require high responsiveness in a virtual desktop infrastructure (VDI) It has the advantage of increasing the performance of many parallel workloads.

도 8 내지 11은 본 발명의 일 실시예에 따른 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법에 관한 실험 결과로, 상기 실험은 리눅스 커널 3.2.0 버전의 KVM 기반 가상화 환경에서 수행하였고, 가상 머신간 공평성을 보장하기 위해서는 리눅스의 CFS 그룹 스케줄링 방식을 이용하였다. 본 발명의 일 실시예에 따른 하이퍼바이저의 가상머신 스케줄링 기법을 구현한 프로토타입은 두 개의 Intel Xeon X5550 2.67GHz 쿼드코어 프로세서와 24GB RAM을 장착한 Dell Poweredge R610에 설치하였다. 게스트 운영체계로는 리눅스 커널 3.2.0 버전을 적용한 우분투 11.04를 사용하였다. 제안된 기법의 효율성을 검증하기 위해 다음의 스케줄링 정책들을 적용하여 수행하였다.8 to 11 are experimental results of a collaborative scheduling method of a hypervisor for a virtual machine according to an embodiment of the present invention. The experiment was performed in a KVM-based virtualization environment of the Linux kernel version 3.2.0, In order to guarantee fairness, CFS group scheduling method of Linux was used. The prototype that implements the virtual machine scheduling technique of the hypervisor according to an embodiment of the present invention is installed in the Dell Poweredge R610 equipped with two Intel Xeon X5550 2.67GHz quad core processor and 24GB of RAM. The guest operating system used Ubuntu 11.04 with version 3.2.0 of the Linux kernel. To verify the efficiency of the proposed scheme, the following scheduling policies were applied.

본 발명의 일 실시예에 따른 Resched-DP은 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)를 초기화한 가상 프로세서를 시간 기반의 요청을 이용하여 선점을 지연시키기 위하여 urgent 상태로 들어가게 한다.Resched-DP according to an embodiment of the present invention allows a virtual processor that initiated a reschedule interprocessor interrupt to enter an urgent state to delay a preemption using a time-based request.

본 발명의 일 실시예에 따른 TLB-Co은 TLB(Translation Lookaside Buffer) 무효화 프로세서간 인터렙트를 수신하는 가상 프로세서를 이벤트 기반의 요청을 이용하여 IPI를 송신한 가상 프로세서와 함께 스케줄링되게 하기 위해 urgent 상태로 들어가게 한다.In accordance with an embodiment of the present invention, TLB-Co uses an event-based request to invoke a virtual processor that receives interleaving between TLB (Translation Lookaside Buffer) invalidation processors, .

본 발명의 일 실시예에 따른 Resched-Co은 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)를 수신하는 가상 프로세서를 시간 기반의 요청을 사용하여 IPI를 송신한 가상 프로세서와 함께 스케줄링되게 하기 위해서 urgent 상태로 들어가게 한다.Resched-Co according to an exemplary embodiment of the present invention uses an urgent state to schedule a virtual processor receiving a reschedule interprocessor interrupt with a virtual processor that has transmitted an IPI using a time-based request Let them enter.

본 발명의 일 실시예에 따른 Resched-DP과 TLB-Co 정책은 커널 수준의 경쟁을 완화하기 위한 것이고, Resched-Co정책은 사용자 수준의 경쟁을 완화하기 위한 것이다. 긴급 가상 프로세서를 우선적으로 실행하는 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하는 하이퍼바이저의 협력 스케줄링의 파라미터인 preemption delay, urgent tslice, urgent allowance 값으로는 각각 500us, 500us, 18ms를 기본 값으로 사용하였다. vCPU-to-pCPU 할당을 위해서는 앞서 제안한 부하인지 밸련스 스케줄링(load-conscious balance scheduling) (부하인지 밸런스 스케줄링 방법(load-conscious balance scheduling))이 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하는 하이퍼바이저의 협력 스케줄링과 통합되어 사용되었다. 또한, 리눅스의 기본 스케줄러인 CFS (Baseline)과 확률적인 협력 스케줄링을 구현한 밸런스 스케줄링(Balance)이 본 발명의 일 실시예에 따른 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법과의 비교를 위해 사용되었다. 실험은 동시에 실행되는 워크로드의 완전한 중첩을 위해 최소 세 번 이상 실행하였다.Resched-DP and TLB-Co policies according to an embodiment of the present invention are intended to alleviate kernel-level competition, and Resched-Co policies are intended to alleviate user-level competition. The preemption delay, urgent tslice, and urgent allowance values, which are parameters of cooperative scheduling of the hypervisor that prioritizes the emergency virtual processor that executes the urgent virtual processor preferentially, are 500us, 500us, and 18ms, respectively, Respectively. In order to allocate the vCPU-to-pCPU, the load-conscious balance scheduling (load-conscious balance scheduling) proposed above is performed by Urgent vCPU First Scheduling (Priority Scheduling) It is used in conjunction with the hypervisor's collaborative scheduling. In addition, CFS (Baseline), which is a basic scheduler of Linux, and Balance scheduling, which implements a probabilistic cooperative scheduling, are used for comparison with a collaborative scheduling method of a hypervisor for a virtual machine according to an embodiment of the present invention . Experiments have been run at least three times for complete overlapping of concurrently running workloads.

먼저 병렬 워크로드와 순차 워크로드가 하나의 물리 머신에 통합되어 실행되는 경우에 제안한 방식의 효율성을 검증한다. 실험을 위해 8개의 가상 프로세서를 가진 하나의 가상 머신(8-vCPU VM)과 하나의 가상 프로세서를 가진 네 개의 가상 머신(하나의 가상 프로세서를 갖는 가상 머신(UP VM))을 사용하였다. 상기 네 개의 가상 머신에는 각각 단일 쓰레드 버전의 x264 워크로드를 수행하게 하였다. First, we verify the efficiency of the proposed method when parallel workloads and sequential workloads are integrated into one physical machine. We used one virtual machine (8-vCPU VM) with eight virtual processors and four virtual machines (UP VM) with one virtual processor. Each of the four virtual machines has a single-threaded version of x264 workload.

도 7은 병렬 워크로드를 수행하는 8개의 가상 프로세서를 가진 하나의 가상 머신(8-vCPU VM)과 순차 워크로드를 각각 수행하는 하나의 가상 프로세서를 갖는 네 개의 가상 머신(하나의 가상 프로세서를 갖는 가상 머신(UP VM))이 하나의 물리 머신에 통합되어 실행되는 경우에 병렬 워크로드의 Baseline 대비 성능을 나타낸 그래프이다. FIG. 7 is a flow chart of a process for creating a virtual machine (8-vCPU VM) having eight virtual processors for performing parallel workloads and four virtual machines having one virtual processor A virtual machine (UP VM)) is integrated into one physical machine and executed.

도 7을 참조하면, 비효율적인 vCPU-to-pCPU 할당으로 인해 bodytrack, canneal, facesim, ferret, fluidanimate, vips는 밸런스 스케줄링을 적용한 경우에 성능이 저하되는 것을 알 수 있다. 부하인지 밸련스 스케줄링(load-conscious balance scheduling)은 프로세서 부하의 불균형을 감지하여 8개의 가상 프로세서를 가진 하나의 가상 머신(8-vCPU VM)의 가상 프로세서를 하나의 가상 프로세서를 갖는 가상 머신(UP VM)의 가상 프로세서가 할당되어 있는 물리 프로세서에 할당하지 않음으로써 성능을 개선하는 것을 확인할 수 있다. Referring to FIG. 7, performance is degraded when balance scheduling is applied to bodytrack, canneal, facesim, ferret, fluidanimate, and vips due to inefficient vCPU-to-pCPU allocation. Load-conscious balance scheduling detects the imbalance of the processor load and allocates a virtual processor of one virtual machine (8-vCPU VM) having eight virtual processors to a virtual machine (UP) having one virtual processor VM is not allocated to the physical processor to which the virtual processor of the VM is assigned.

추가적으로 부하인지 밸런스 스케줄링(load-conscious balance scheduling)과 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하는 하이퍼바이저의 협력 스케줄링을 통합하여 적용한 경우에, 서로 경쟁하는 가상 프로세서들을 조정해줌으로써 부하인지 밸런스 스케줄링(load-conscious balance scheduling) 대비 최대 80%의 성능 개선을 보였다. 세부적으로는 Resched-DP의 경우 dedup, facesim, ferret, fluidanimate, streamcluster, x264와 같은 wait-queue lock 경쟁이 심한 애플리케이션들의 성능을 개선하였고, TLB-Co의 경우에는 dedup, ferret, vips와 같은 TLB 무효화 집중적인 애플리케이션들의 성능을 개선하는데 기여하였다. 결과적으로 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하는 하이퍼바이저의 협력 스케줄링과 부하인지 밸련스 스케줄링(load-conscious balance scheduling)이 함께 적용된 경우에 가장 좋은 성능을 나타내는 것을 확인할 수 있었다.In addition, when the load-conscious balance scheduling and the collaborative scheduling of the hypervisor for the urgent virtual processor are integrally applied, the virtual processors which compete with each other are adjusted, Up to 80% performance improvement over load-conscious balance scheduling. In detail, Resched-DP improves performance of applications with severe wait-queue lock competition such as dedup, facesim, ferret, fluidanimate, streamcluster, and x264. TLB-Co improves performance of TLB-Co such as dedup, ferret, And contributed to improving the performance of intensive applications. As a result, it can be confirmed that the best performance is obtained when the cooperative scheduling of the hypervisor with Urgent vCPU First Scheduling is applied together with the load-conscious balance scheduling.

도 8은 병렬 워크로드를 수행하는 8개의 가상 프로세서를 가진 하나의 가상 머신(8-vCPU VM)과 순차 워크로드를 각각 수행하는 하나의 가상 프로세서를 갖는 네 개의 가상 머신(UP VM)이 하나의 물리 머신에 통합되어 실행되는 경우에 순차 워크로드의 독립적으로 수행되었을 경우 대비 성능저하를 나타낸 그래프이다. FIG. 8 is a diagram showing a case where one virtual machine (8-vCPU VM) having eight virtual processors for performing a parallel workload and four virtual machines (UP VM) having one virtual processor for performing sequential workloads It is a graph showing performance degradation when sequential workloads are executed independently when executed in a physical machine.

앞서 설명한 실험에서 순차 워크로드를 수행하는 하나의 가상 프로세서를 갖는 가상 머신(UP VM)의 독립적으로 수행되었을 경우 대비 성능저하를 나타낸 그래프이다. 실험에서는 다섯 대의 가상 머신 모두 동일한 share를 가지고 있기 때문에 하나의 가상 프로세서를 갖는 가상 머신(UP VM)은 다른 가상 머신에 의해 성능 영향을 받지 않아야 함에도 불구하고 밸런스 스케줄링의 경우에 8개의 가상 프로세서를 가진 하나의 가상 머신(8-vCPU VM)의 가상 프로세서를 하나의 가상 프로세서를 갖는 가상 머신(UP VM)의 가상 프로세서가 할당된 물리 프로세서에 할당함으로써 다른 스케줄링 기법들에 비해 성능을 저하시키는 것을 볼 수 있다. 이러한 성능 저하는 밸런스 스케줄링의 부하를 고려하지 않은 할당 방식이 가상 머신간 공평성을 해칠 수 있다는 것을 의미한다.In the experiment described above, it is a graph showing degradation of contrast performance when executed independently of a virtual machine (UP VM) having a single virtual processor performing a sequential workload. In the experiment, because all five virtual machines share the same share, the UP VM with one virtual processor should not be affected by the performance of other virtual machines, but with eight virtual processors in the case of balance scheduling We see that the virtual processor of one virtual machine (8-vCPU VM) is degraded compared to other scheduling techniques by allocating the virtual processor of the virtual machine (UP VM) with one virtual processor to the assigned physical processor have. This performance degradation implies that an allocation scheme that does not take into account the load of balance scheduling can impair fairness among virtual machines.

다음으로 병렬 워크로드를 수행하는 가상 머신들이 하나의 물리 머신에 통합되어 실행되는 경우에 제안한 방식의 효율성을 검증하도록 한다. 이 실험에서는 두 대의 8개의 가상 프로세서를 가진 하나의 가상 머신(8-vCPU VM)을 사용하여 두 개의 병렬 워크로드가 동시에 실행되도록 하였다. PARSEC 애플리케이션들과 함께 수행될 워크로드는 freqmine을 선택하였다. 두 워크로드의 성능 개선 정도를 파악하기 위해서 각각의 워크로드가 독자적으로 수행되었을 경우 대비 성능 개선 정도를 합산하는 방식을 사용하였다.Next, the efficiency of the proposed method is verified when the virtual machines that execute the parallel workload are integrated into one physical machine. In this experiment, two parallel workloads were run simultaneously using one virtual machine (8-vCPU VM) with two 8 virtual processors. The workload to be performed with PARSEC applications is freqmine. In order to understand the performance improvement of the two workloads, we used the method of summing up the degree of contrast improvement when each workload was performed independently.

도 9는 앞서 설명한 실험 시나리오에서 freqmine과 함께 수행된 경우 가중치가 적용된 성능 개선을 나타낸 그래프이다. 여기서, a는 baseline을 나타내며, b는 밸런스 스케줄링, c는 부하인지 밸런스 스케줄링, d는 부하인지 밸런스 스케줄링과 Resched-DP의 통합, d는 부하인지 밸런스 스케줄링, d는 부하인지 밸런스 스케줄링, Resched-DP의 통합 및 TLB-Co의 통합을 나타낸다. Figure 9 is a graph illustrating weighted performance improvement when performed with freqmine in the experimental scenario described above. D is load-aware balance scheduling, d is load-balanced scheduling, Resched-DP is a load-balanced scheduling, d is load-balanced scheduling, And integration of TLB-Co.

도 9를 참조하면, Baseline의 경우 프로세서 집중적인 freqmine으로 인해 커뮤니케이션 집중적인 애플리케이션들의 성능이 저하되는 것을 볼 수 있다. 이러한 문제는 실험의 특성상 모든 물리 프로세서의 부하가 균형을 이루게 되어 밸런스 스케줄링을 적용한 경우에 상당 부분 해소되어 Baseline에 비해 향상된 성능을 확인할 수 있다. 마찬가지로 부하인지 밸런스 스케줄링 방법(load-conscious balance scheduling)의 경우에도 밸런스 스케줄링과 유사한 성능을 보이고 있다. 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하는 하이퍼바이저의 협력 스케줄링을 적용한 경우에는 dedup, ferret, vips와 같은 TLB 무효화 집중적인 애플리케이션들의 성능을 추가적으로 향상시키는 결과를 얻을 수 있었다. 앞선 실험과 마찬가지로 병렬 워크로드만이 통합되어 실행되는 환경에서도 부하인지 밸런스 스케줄링(load-conscious balance scheduling)과 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하는 하이퍼바이저의 협력 스케줄링 기법을 통합하여 적용한 가장 좋은 성능을 내는 것을 확인할 수 있다.Referring to FIG. 9, in the case of Baseline, the performance of communication-intensive applications is degraded due to processor-intensive freqmine. This problem is due to the nature of the experiment that balances the loads of all the physical processors, so that the balance scheduling is solved to a great extent and the improved performance compared to the baseline can be confirmed. Likewise, load-conscious balance scheduling is similar to balance scheduling. When collaborative scheduling of the hypervisor with Urgent vCPU First Scheduling is applied, the performance of TLB invalidation intensive applications such as dedup, ferret, and vips is further improved. As in the previous experiment, we integrated the collaborative scheduling method of the hypervisor that performs the load-conscious balance scheduling and the urgent virtual processor first scheduling (Urgent vCPU First Scheduling) even in an environment where only the parallel workload is executed. It can be confirmed that the best performance is achieved.

아래는 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하는 하이퍼바이저의 협력 스케줄링 기법이 사용자 수준의 협력 스케줄링에 대한 요구를 효율적으로 반영하여 성능을 개선시키는지의 여부에 관한 실험이다. Below is an experiment on whether the collaborative scheduling scheme of the hypervisor, which prioritizes the emergency virtual processor (Urgent vCPU First Scheduling), effectively improves performance by reflecting the demand for user-level collaborative scheduling.

실험을 위해 자체 제작한 barrier를 집중적으로 사용하는 streamcluster를 사용하였다. streamcluster는 협력하는 쓰레드간 정밀한 동기화를 수행하기 위해 일정 시간 스피닝을 하고 프로세서를 다른 프로세스에게 넘겨주는 방식 (spin-then-block)을 사용하고 있다. 따라서 동기화를 수행하는 지점에서 다른 협력하는 쓰레드들의 진행률이 비슷하고 함께 스케줄링된다면 block되는 횟수를 줄임으로 인해 성능 개선을 기대해 볼 수 있다. 같이 실행되는 워크로드로는 streamcluster의 실행을 가장 많이 방해하는 bodytrack을 사용하였다.For the experiment, a streamcluster was used which intensively uses its own built-in barrier. The streamcluster uses a spin-then-block method to spin the coherent thread to perform precise synchronization between cooperating threads and to pass the processor to other processes. Therefore, if the progress of other cooperating threads is similar at the point where synchronization is performed, and if they are scheduled together, performance can be improved by reducing the number of blocks. We used a bodytrack that interfered with running streamcluster the most.

도 10(a)는 Resched-Co가 적용된 경우에 streamcluster의 성능 개선을 나타내는 그래프이다. Resched-Co는 spin-then-block barrier를 사용하는 경우에 bodytrack의 성능에는 영향을 주지 않으면서 streamcluster의 성능을 8% 개선하였다. 이러한 결과는 block기반의 barrier를 사용하는 경우에 비해 더 높은 수치를 보이고 있는데, 이는 spin-then-block barrier가 앞서 설명한 대로 협력하는 쓰레드들이 함께 실행될 경우 이득을 볼 확률이 더 크기 때문이다. 도 10(b)는 실제로 성능에 영향을 미치는 block 횟수를 Resched-Co가 적용된 경우 얼마나 줄일 수 있었는지 확인하기 위해 실험한 결과를 나타낸 그래프이다. 그래프에서 볼 수 있듯이 협력하는 쓰레드들을 동기화 구간에서 스피닝을 하는 동안 함께 스케줄링을 해줌으로써 38%의 block-wait 횟수를 줄인 것을 확인할 수 있다.10 (a) is a graph showing the performance improvement of streamcluster when Resched-Co is applied. Resched-Co improves streamcluster performance by 8% without affecting the performance of the bodytrack when using a spin-then-block barrier. This result is higher than when using a block-based barrier because the spin-then-block barrier is more likely to benefit when cooperating threads are executed together as described above. FIG. 10 (b) is a graph showing the results of experiments to see how much the number of blocks affecting the performance is reduced when Resched-Co is applied. As you can see in the graph, we can see that cooperative threads are scheduled together during spinning in the synchronization interval, which reduces 38% block-wait times.

실험을 통해 제안한 스케줄링 기법이 다양한 워크로드가 통합되어 실행되는 가상화된 클라우드 환경에서 기존의 시맨틱 갭을 완화하여 병렬 워크로드의 동기화 지연 시간을 단축하고 불필요한 프로세서 시간 소모를 줄임으로써 전체적인 성능을 효과적으로 개선할 수 있다는 것을 확인할 수 있다.
Experimental results show that the proposed scheduling technique can reduce the synchronization latency of parallel workloads and reduce unnecessary processor time by mitigating existing semantic gap in a virtualized cloud environment in which various workloads are integrated. .

Claims (9)

복수의 가상 프로세서(Virtual CPU, vCPU)를 구동하는 운영체계를 포함하는 복수의 가상 머신(Virtual Machine)을 관리하는 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법에 있어서,
(a) 물리 프로세서(pCPU)에 상기 복수의 가상 프로세서를 할당하는 단계;
(b) 상기 복수의 가상 프로세서 간의 프로세서간 인터럽트를 기반으로 멀티 쓰레드 워크로드들(multithreaded workloads)의 쓰레드(thread) 사이의 협력 여부를 판단하고, 상기 협력된 것으로 판단된 상기 쓰레드 워크로드들을 협력 스케줄링 대상으로 선정하는 단계;
(c) 상기 가상 프로세서 간의 프로세서간 인터럽트를 기반으로 상기 할당된 복수의 가상 프로세서 중에서 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하는 단계;를 포함하며,
상기 (c) 단계의 긴급 가상 프로세서는 상기 (b) 단계에서 협력 스케줄링 대상으로 선정된 쓰레드들을 기반으로 하고
상기 프로세서간 인터럽트는 TLB(Translation Lookaside Buffer) 무효화 프로세서간 인터럽트를 포함하고, 상기 TLB 프로세서간 인터럽트가 발생된 경우에, 상기 TLB 프로세서간 인터럽트를 수신한 상기 가상 프로세서를 스케줄링하는 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법.
A cooperative scheduling method of a hypervisor for a virtual machine managing a plurality of virtual machines including an operating system for driving a plurality of virtual processors (Virtual CPU, vCPU)
(a) allocating the plurality of virtual processors to a physical processor (pCPU);
(b) determining whether cooperation among threads of multithreaded workloads is based on interprocessor interrupts between the plurality of virtual processors, and determining whether the thread workloads determined to be cooperated are cooperative scheduling Selecting an object;
(c) Urgent vCPU First Scheduling of the emergency virtual processor among the plurality of allocated virtual processors based on inter-processor interrupts between the virtual processors,
The emergency virtual processor of step (c) may be based on threads selected for cooperative scheduling in step (b)
Wherein the interprocessor interrupt includes a TLB (Translation Lookaside Buffer) invalidation processor interrupts, and when an inter-TLB inter-processor interrupt occurs, a hypervisor for a virtual machine for scheduling the virtual processor that has received the inter- / RTI >
제1항에 있어서,
상기 (c) 단계는,
(c-1) 상기 물리 프로세서마다 FIFO(First Input First Out) 순서에 따라 긴급 큐(Urgent Queue)를 상기 하이퍼바이저 스케줄러의 런큐(Run Queue)에 삽입하는 단계를 포함하는 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법.
The method according to claim 1,
The step (c)
(c-1) inserting an Urgent Queue into the run queue of the hypervisor according to a FIFO (First Input First Out) sequence for each physical processor Cooperative scheduling method.
제2항에 있어서, 하이퍼바이저의 가상머신 협력 스케줄링 방법은
상기 (c) 단계 이후에,
(d) 상기 긴급 큐에 대기하고 있는 복수의 가상 프로세서 중 스케줄링될 수 있는 가상 프로세서가 존재 여부를 확인하는 단계,
(e)상기 스케줄링될 수 있는 가상 프로세서가 존재하는 경우, 상기 스케줄링될 수 있는 가상 프로세서는 수행중인 다른 가상 프로세서를 선점하여, 상기 스케줄링될 수 있는 가상 프로세서를 실행하는 단계를 더 포함하는 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법
3. The method of claim 2, wherein the virtual machine cooperative scheduling method of the hypervisor
After the step (c)
(d) checking whether there is a virtual processor that can be scheduled among a plurality of virtual processors waiting in the emergency queue,
(e) if there is a virtual processor that can be scheduled, the schedulable virtual processor pre-empts another virtual processor in execution and executes the virtual processor that can be scheduled A collaborative scheduling method for a hypervisor
제1항에 있어서,
상기 프로세서간 인터럽트는
특정 이벤트가 완료될때까지, 상기 긴급 가상 프로세서가 실행을 유지하도록 요청하는 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법.
The method according to claim 1,
The inter-processor interrupt
And requesting the emergency virtual processor to keep running until a specific event is completed.
삭제delete 삭제delete 삭제delete 제1항에 있어서,
상기 (a) 단계는
하나의 상기 가상 머신에 속하는 복수의 가상 프로세서들을 서로 다른 상기 물리 프로세서에 할당하는 밸런스 스케줄링에 의하는 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법.
The method according to claim 1,
The step (a)
A method for collaborative scheduling of a hypervisor for a virtual machine by balancing scheduling that allocates a plurality of virtual processors belonging to one virtual machine to different physical processors.
삭제delete
KR1020140027817A 2014-03-10 2014-03-10 Method for Coordinated Scheduling For virtual machine KR101465657B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140027817A KR101465657B1 (en) 2014-03-10 2014-03-10 Method for Coordinated Scheduling For virtual machine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140027817A KR101465657B1 (en) 2014-03-10 2014-03-10 Method for Coordinated Scheduling For virtual machine

Related Child Applications (3)

Application Number Title Priority Date Filing Date
KR1020140112265A Division KR101534138B1 (en) 2014-08-27 2014-08-27 Method for Coordinated Scheduling For virtual machine
KR1020140112266A Division KR101534139B1 (en) 2014-08-27 2014-08-27 Method for Coordinated Scheduling For virtual machine
KR1020140112264A Division KR101534137B1 (en) 2014-08-27 2014-08-27 Method for Coordinated Scheduling For virtual machine

Publications (1)

Publication Number Publication Date
KR101465657B1 true KR101465657B1 (en) 2014-12-10

Family

ID=52676838

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140027817A KR101465657B1 (en) 2014-03-10 2014-03-10 Method for Coordinated Scheduling For virtual machine

Country Status (1)

Country Link
KR (1) KR101465657B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107203428A (en) * 2017-05-25 2017-09-26 电子科技大学 A kind of VCPU multinuclear real-time schedulings based on Xen
US10372517B2 (en) 2017-07-21 2019-08-06 TmaxData Co., Ltd. Message scheduling method
KR20200014041A (en) * 2018-07-31 2020-02-10 아주대학교산학협력단 Apparatus and method for accelerating critical service in virtualized system
CN113032098A (en) * 2021-03-25 2021-06-25 深信服科技股份有限公司 Virtual machine scheduling method, device, equipment and readable storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010050505A (en) * 1999-09-28 2001-06-15 포만 제프리 엘 Method, system and program products for managing central processing unit resources of a computing environment
KR20070090649A (en) * 2006-03-03 2007-09-06 삼성전자주식회사 Apparatus and method for providing cooperative scheduling on multi-core system
KR20100073959A (en) * 2008-12-22 2010-07-01 한국전자통신연구원 System and method for resource management base of virtualization and computing system for resource management base of virtualization
JP2011186793A (en) * 2010-03-09 2011-09-22 Hitachi Ltd Hypervisor, computer system, and virtual processor scheduling method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010050505A (en) * 1999-09-28 2001-06-15 포만 제프리 엘 Method, system and program products for managing central processing unit resources of a computing environment
KR20070090649A (en) * 2006-03-03 2007-09-06 삼성전자주식회사 Apparatus and method for providing cooperative scheduling on multi-core system
KR20100073959A (en) * 2008-12-22 2010-07-01 한국전자통신연구원 System and method for resource management base of virtualization and computing system for resource management base of virtualization
JP2011186793A (en) * 2010-03-09 2011-09-22 Hitachi Ltd Hypervisor, computer system, and virtual processor scheduling method

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107203428A (en) * 2017-05-25 2017-09-26 电子科技大学 A kind of VCPU multinuclear real-time schedulings based on Xen
CN107203428B (en) * 2017-05-25 2020-09-08 电子科技大学 Xen-based VCPU multi-core real-time scheduling algorithm
US10372517B2 (en) 2017-07-21 2019-08-06 TmaxData Co., Ltd. Message scheduling method
KR20200014041A (en) * 2018-07-31 2020-02-10 아주대학교산학협력단 Apparatus and method for accelerating critical service in virtualized system
KR102115738B1 (en) * 2018-07-31 2020-05-27 아주대학교산학협력단 Apparatus and method for accelerating critical service in virtualized system
CN113032098A (en) * 2021-03-25 2021-06-25 深信服科技股份有限公司 Virtual machine scheduling method, device, equipment and readable storage medium
CN113032098B (en) * 2021-03-25 2024-04-09 深信服科技股份有限公司 Virtual machine scheduling method, device, equipment and readable storage medium

Similar Documents

Publication Publication Date Title
US11797327B2 (en) Dynamic virtual machine sizing
Kim et al. Demand-based coordinated scheduling for SMP VMs
Gu et al. A state-of-the-art survey on real-time issues in embedded systems virtualization
Xu et al. {vTurbo}: Accelerating Virtual Machine {I/O} Processing Using Designated {Turbo-Sliced} Core
US8918788B2 (en) Scheduling virtual CPU based on priority calculated using time statistics
Cheng et al. vScale: Automatic and efficient processor scaling for SMP virtual machines
TWI454933B (en) Apparatus and method for managing hypercalls in a hypervisor and the hypervisor thereof
Ding et al. Gleaner: Mitigating the {Blocked-Waiter} Wakeup Problem for Virtualized Multicore Applications
US8539499B1 (en) Symmetric multiprocessing with virtual CPU and VSMP technology
Rao et al. Towards fair and efficient SMP virtual machine scheduling
Ahn et al. Micro-sliced virtual processors to hide the effect of discontinuous cpu availability for consolidated systems
KR101534137B1 (en) Method for Coordinated Scheduling For virtual machine
KR101465657B1 (en) Method for Coordinated Scheduling For virtual machine
CN106339257B (en) Method and system for making client operating system light weight and virtualization operating system
Gioiosa et al. Designing OS for HPC applications: Scheduling
Miao et al. FlexCore: Dynamic virtual machine scheduling using VCPU ballooning
KR101330609B1 (en) Method For Scheduling of Mobile Multi-Core Virtualization System To Guarantee Real Time Process
KR101534139B1 (en) Method for Coordinated Scheduling For virtual machine
Ahn et al. Accelerating critical OS services in virtualized systems with flexible micro-sliced cores
Kilic et al. Overcoming virtualization overheads for large-vcpu virtual machines
Li et al. A light-weighted virtualization layer for multicore processor-based rich functional embedded systems
KR101534138B1 (en) Method for Coordinated Scheduling For virtual machine
Zhao et al. Scheduler activations for interference-resilient smp virtual machine scheduling
Lee et al. Minimizing scheduling delay for multimedia in xen hypervisor
Kourai et al. Analysis of the impact of cpu virtualization on parallel applications in xen

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180917

Year of fee payment: 5