KR101534138B1 - 가상머신을 위한 협력 스케줄링 방법 - Google Patents

가상머신을 위한 협력 스케줄링 방법 Download PDF

Info

Publication number
KR101534138B1
KR101534138B1 KR1020140112265A KR20140112265A KR101534138B1 KR 101534138 B1 KR101534138 B1 KR 101534138B1 KR 1020140112265 A KR1020140112265 A KR 1020140112265A KR 20140112265 A KR20140112265 A KR 20140112265A KR 101534138 B1 KR101534138 B1 KR 101534138B1
Authority
KR
South Korea
Prior art keywords
virtual
processor
processors
scheduling
urgent
Prior art date
Application number
KR1020140112265A
Other languages
English (en)
Inventor
이준원
김환주
김상욱
정진규
Original Assignee
성균관대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 성균관대학교산학협력단 filed Critical 성균관대학교산학협력단
Priority to KR1020140112265A priority Critical patent/KR101534138B1/ko
Application granted granted Critical
Publication of KR101534138B1 publication Critical patent/KR101534138B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/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
    • G06F9/4818Priority circuits therefor

Abstract

본 발명은 복수의 가상 프로세서(Virtual CPU, vCPU)를 구동하는 운영체계를 포함하는 복수의 가상 머신(Virtual Machine)을 관리하는 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법으로, (a) 물리 프로세서에 상기 복수의 가상 프로세서를 할당하는 단계; (b) 가상 프로세서 간의 프로세서간 인터럽트를 기반으로 멀티 쓰레드 워크로드들(multithreaded workloads)의 쓰레드(thread) 사이의 협력 여부를 판단하고, 상기 협력된 것으로 판단된 상기 멀티 쓰레드 워크로드들을 협력 스케줄링 대상으로 선정하는 단계;(c) 상기 가상 프로세서 간의 프로세서간 인터럽트를 기반으로 상기 할당된 복수의 가상 프로세서 중에서 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하는 단계;를 포함하고, 상기 (c) 단계의 긴급 가상 프로세서는 상기 (b) 단계에서 협력 스케줄링 대상으로 선정된 쓰레드들을 기반으로 하고 상기 프로세서간 인터럽트는 특정 시간동안, 상기 긴급 가상 프로세서가 상기 긴급 상태로 유지될 시간을 요청할 수 있게 허용하여, 동기화를 위해 소모되는 시간을 단축할 수 있는 효과가 있다.

Description

가상머신을 위한 협력 스케줄링 방법{Method for Coordinated Scheduling For virtual machine}
본 발명은 복수의 가상 프로세서(Virtual CPU, vCPU)를 구동하는 운영체계를 포함하는 복수의 가상 머신(Virtual Machine)을 관리하는 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법에 관한 것이다.
일반적으로 운영체계는 독점적으로 CPU 자원을 소유하고 있는 것으로 가정하고 프로세스들을 스케줄링한다. 하지만, 가상화된 환경에서는 여러 가상 머신들의 가상 프로세서들이 동일한 물리 프로세서 자원을 공유하여 사용하는 방식으로 인해서 가상 머신 내의 운영체계와 호스트 머신의 하이퍼바이저 두 개의 스케쥴링 계층이 존재하기 때문에 기존의 가정이 맞지 않는 상황이 발생한다. 이러한 가상화된 환경에서의 의미적인 격차로 인해서 서로 협력하는 멀티 쓰레드 기반의 응용 프로그램이 가상 머신에서 수행되는 경우에 성능이 저하되는 문제가 발생할 수 있다.
가상화된 환경에서 의미적인 격차로 인해 발생하는 대표적인 문제로는 하나의 가상머신에 속하는 가상 프로세서들이 하나의 물리 프로세서에 스케줄링되면서 서로 경쟁하는 경우를 들 수 있다. 특히, 가상 프로세서 중 하나가 스핀락을 수행하고 있는 경우 의미 있는 작업을 하지 않으면서도 같은 물리 프로세서에 스케줄링된 같은 가상머신 내 다른 가상 프로세서를 선점함으로써 성능을 떨어뜨리는 요인이 된다.
이러한 문제를 해결하기 위해서 하나의 가상머신에 속하는 가상 프로세서들은 서로 다른 물리 프로세서에 함께 스케줄링하는 다양한 협력 스케줄링 기법이 제안되었다. 최근에는 협력 스케줄링의 엄격한 정책이 시스템의 CPU 사용률을 떨어뜨릴 수 있다는 문제를 해결하기 위해 완화된 협력 스케줄링 기법과 균형 스케줄링 기법이 추가적으로 제안되었다. 하지만, 앞서 소개된 기법들은 실제로 수행되고 있는 워크로드의 협력 스케줄링에 대한 요구를 반영하지 않고 있는 단점이 존재한다.
한국 등록특허공보 10-1145144(2012년05월04일 등록); 가상머신 스케줄링 방법 및 시스템
본 발명은 상기의 문제를 해결하기 위한 것으로, 병렬 워크로드의 동기화 지연 시간을 단축하고 불필요한 프로세서 시간 소모를 줄임으로써 전체적으로 성능이 향상된 스케줄링 방법을 제공하는 데 그 목적이 있다.
상기한 문제를 해결하기 위한 본 발명의 복수의 가상 프로세서(Virtual CPU, vCPU)를 구동하는 운영체계를 포함하는 복수의 가상 머신(Virtual Machine)을 관리하는 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법은 (a) 물리 프로세서(pCPU)에 상기 복수의 가상 프로세서를 할당하는 단계; (b) 상기 복수의 가상 프로세서 간의 프로세서간 인터럽트를 기반으로 멀티 쓰레드 워크로드들(multithreaded workloads)의 쓰레드(thread) 사이의 협력 여부를 판단하고, 상기 협력된 것으로 판단된 상기 쓰레드들을 협력 스케줄링 대상으로 선정하는 단계;(c) 상기 가상 프로세서 간의 프로세서간 인터럽트를 기반으로 상기 할당된 복수의 가상 프로세서 중에서 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하는 단계;를 포함하며, 상기 (c) 단계의 긴급 가상 프로세서는 상기 (b) 단계에서 협력 스케줄링 대상으로 선정된 쓰레드들을 기반으로 하고 상기 프로세서간 인터럽트는 특정 시간동안, 상기 긴급 가상 프로세서가 상기 긴급 상태로 유지될 시간을 요청할 수 있게 허용하는 것을 특징으로 한다.
본 발명은 멀티 쓰레드 워크로드들(multithreaded workloads)의 쓰레드(thread) 사이의 협력 여부를 판단하고, 상기 협력된 것으로 판단된 상기 쓰레드들을 협력 스케줄링 대상으로 선정하여, 쓰레드 간의 동기화로 인한 지연 시간을 최소화하는 장점이 있다.
또한, 본 발명은 동일한 물리 프로세서 내의 상기 복수의 가상 프로세서 중에서 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하여, TLB 무효화 애플리케이션들의 성능을 향상시키는 효과가 있다.
또한, 본 발명은 긴급 가상 프로세서를 우선적으로 스케줄링하는 기법과 부하인지 밸런스 스케줄링 기법을 통합하여, 가상화 환경에서, 높은 반응성을 요구하는 인터렉티브 워크로드의 성능 저하 없이 커뮤니케이션이 많은 병렬 워크로드의 성능을 높일 수 있는 효과가 있다.
도 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가 적용된 경우 얼마나 줄일 수 있었는지 확인하기 위해 실험한 결과를 나타낸 그래프이다.
본 발명의 일 실시예에 따른 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법은 커뮤니케이션이 많은 병렬 워크로드를 수행하는 쓰레드들의 협력 요구를 파악하기 위해 가상 프로세서간 커뮤니케이션을 관찰하는 방식이다. 운영체계의 수정 없이 투명한 하이퍼바이저 수준의 협력 스케줄링을 제공하기 위해서 본 발명의 일 실시예에서는 프로세서간 인터럽트(interprocessor interrupt, IPI)를 가상 프로세서간 발생하는 커뮤니케이션 신호로 할 수 있다.
도 1은 각각의 PARSEC 애플리케이션이 실행되는 동안 측정한 총 IPI 발생횟수로, 8개의 가상 프로세서를 가진 하나의 가상 머신 위에서 다양한 특성을 지닌 멀티쓰레드 워크로드들((multithreaded workloads)을 포함하는 PARSEC 2.1 벤치마크를 이용한 실험 결과를 나타낸 그래프이다. 도 1은 각 애플리케이션이 하나의 가상머신 안에서 8개의 쓰레드를 이용하여 독자적으로 수행되면서 발생시킨 총 프로세서간 인터럽트의 횟수를 수행된 총 시간과 가상 프로세서의 개수로 나눈 값을 나타낸 그래프로, 통합된 멀티쓰레드 기반의 워크로드에서 프로세서간 인터럽트의 역할과 그 의미를 알 수 있다. 도 1을 참조하면, 애플리케이션마다 다양한 종류의 프로세서간 인터럽트가 발생되고, 그 빈도도 다양하다.
도 2는 각각의 PARSEC 애플리케이션이 streamcluster와 같이 실행되는 경우 증폭되는 커널에서의 실행 시간 비율을 나타낸 그래프이다. 도 2는 커널 수준의 협력 요구를 규명하기 위하여 두 개의 가상 머신이 물리 프로세서에 대해 서로 경쟁하면서 각각 워크로드를 실행할 때 커널에서 소모되는 시간의 비중이 협력 스케줄링이 적용되지 않는 경우에 발생하는 영향에 대한 것으로, 프로세서간 인터럽트의 역할 및 커널과 사용자 수준의 협력 요구와의 관계를 알 수 있다.
도 2는 리눅스의 기본 스케줄러인 CFS(Compeletely Fair Scheduler)를 사용하고, PARSEC 애플리케이션 중 많은 양의 커뮤니케이션을 발생시키면서 프로세서 소비 또한 많은 streamcluster를 같이 실행되는 워크로드로 선정하여 실험한 결과이다.
도 2를 참조하면, 커널에서 소모되는 프로세서 시간은 다른 경쟁 워크로드와 함께 실행되었을 때 최대 30배까지 증폭되는 것을 확인할 수 있다. 이러한 증폭은 독자적으로 실행되었을 때 대부분의 시간을 사용자 수준에서 실행되는 애플리케이션에서도 발생한다는 것을 나타낸다. 또한, 크게 증폭된 커널 시간을 보이는 애플리케이션들은 프로세서간 인터럽트 발생 횟수가 많았던 애플리케이션들이었음을 알 수 있다. 이러한 결과는 커널 수준에서의 협력이 커뮤니케이션 집중적인 애플리케이션들을 위해 필요하다는 것을 의미한다.
또한, 상기 증폭된 커널 시간은 TLB(Translation Lookaside Buffer) 무효화와 락 스피닝 함수에서 소모된 것을 의미한다. 대부분의 운영체계들에서는 다른 프로세서에 TLB 엔트리가 무효화되었음을 알려주기 위해 프로세서간 인터럽트를 이용한다. 프로세서간 인터럽트를 보내는 프로세서는 TLB의 동기화를 위해서 TLB 무효화를 위한 프로세서간 인터럽트를 다른 프로세서에 보내고 해당 프로세서로부터 응답이 올 때까지 busy-waiting을 수행한다. 이러한 방식은 가상화 되지 않은 환경에서는 문제 없이 동작하지만, 본 발명과 같이, 가상화된 환경에서는 프로세서간 인터럽트의 수신 가상 프로세서가 하이퍼바이저 스케줄러에 의해 스케줄링이 지연되어 프로세서간 인터럽트를 보내는 가상 프로세서의 불필요한 프로세서 소비를 유발하는 원인이 된다. 따라서 TLB 무효화 프로세서간 인터럽트는 불필요한 프로세서의 소모를 줄이기 위해 긴급하게 스케줄링 되어야 할 가상 프로세서가 있음을 알려주는 신호로 볼 수 있다.
도 3은 락 스피닝 시간이 크게 증폭된 애플리케이션들의 스핀락에 소모된 시간을 나타낸 그래프로 리눅스의 lockstat을 이용하여 실행을 수행하였다. 도 3을 참조하면, 커널 내에서 정확히 어떤 락이 실제로 불필요한 프로세서 소비를 유발하는지 파악할 수 있다.
도 3을 참조하면, futex-queue lock이 대부분의 증폭된 락 스피닝의 원인이 된다는 사실을 알 수 있다. futex는 사용자 수준의 애플리케이션에 동기화 기능을 제공하는 커널 수준의 지원으로, 많은 애플리케이션들이 동기화가 필요한 객체들의 대기큐를 보호하기 위해 futex를 사용하고 있다. 이로 인해 동기화 작업이 많은 경우에 집중적인 큐잉 작업을 요청함으로써 futex-queue lock에 대한 과도한 경쟁을 유발하게 된다. 이러한 문제는 TLB 무효화와는 달리 직접적으로 프로세서간 인터럽트를 발생시키지 않지만, 초과적인 락 스피닝은 도 1을 참조하면, 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)가 많이 발생하는 애플리케이션에 집중되는 것을 알 수 있다. 이는 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)가 지역 프로세서에 의해 다른 프로세서에 새로운 쓰레드가 스케줄링될 수 있는 상태로 되었음을 알려주는 용도로 사용되기 때문이다. 결국 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)는 하이퍼바이저 스케줄러에게 프로세서간 인터럽트를 발생시킨 가상 프로세서가 잠재적으로 스핀락을 획득한 상태임을 알려주는 작용을 한다. 이를 바탕으로 해서 본 발명의 일 실시예에 따른 하이퍼바이저는 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)를 송신한 가상 프로세서가 선점당하는 것을 방지(스케줄링을 지연)함으로써 커뮤니케이션 지연을 단축시킬 수 있다.
본 발명의 일 실시예에 따른 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)는 사용자 수준의 협력 요구를 알아내기 위해 이용될 수 있다. 사용자 수준의 동기화는 일반적으로 block 또는 spin-then-block 기반의 함수를 사용하기 때문에 하이퍼바이저의 관점에서 사용자 수준의 커뮤니케이션은 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)를 동반할 가능성이 높다. 따라서 하이퍼바이저 스케줄러는 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)를 사용자 수준의 협력 요구를 파악하는데에 활용할 수 있다.
도 4는 8개의 가상 프로세서를 가진 가상 머신 내에서 streamcluster가 실행되는 동안 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)를 기록한 것을 시간의 흐름에 따라 나타낸 것이다. 이 애플리케이션은 barrier 기반의 동기화 방식을 사용하기 때문에 동기화 지점까지는 각자의 가상 프로세서를 이용하여 수행되다가 동기화 지점에서 집중적으로 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)가 발생하는 것을 알 수 있다. 따라서, 가상 프로세서들이 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)의 발생함에 따라 동시에 스케줄링 되는 경우에, 동기화를 위해 소모되는 시간을 단축된다.
도 1 내지 도 4의 결과를 참조하면, 본 발명의 일 실시예에 따른 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하는 는 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법은 복수의 가상 프로세서(Virtual CPU, vCPU)를 구동하는 운영체계를 포함하는 복수의 가상 머신(Virtual Machine)을 관리하는 하이퍼바이저의 협력 스케줄링 방법에 관한 것으로, 가상 프로세서 간의 프로세서간 인터럽트를 기반으로 할당된 물리 프로세서 내의 상기 복수의 가상 프로세서 중에서 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하는 하이퍼바이저 수준의 협력 스케줄링이다.
도 5는 본 발명의 일 실시예에 따른 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법을 도시한 순서도이다. 도 5를 참조하면, 본 발명의 일 실시예에 따른 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법은 물리 프로세서에 상기 복수의 가상 프로세서를 할당하는 단계(S100); 상기 복수의 가상 프로세서 간의 프로세서간 인터럽트를 기반으로 멀티 쓰레드 워크로드들(multithreaded workloads)의 쓰레드(thread) 사이의 협력 여부를 판단하고, 상기 협력된 것으로 판단된 상기 쓰레드들을 협력 스케줄링 대상으로 선정하는 단계(S200); 가상 프로세서 간의 프로세서간 인터럽트를 기반으로 할당된 물리 프로세서 내의 상기 복수의 가상 프로세서 중에서 긴급 가상 프로세서 선정하고, 상기 선정되 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하는 단계(S300);를 포함할 수 있다.
본 발명의 일 실시예에 따른 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하는 하이퍼바이저의 협력 스케줄링 방법은 가상 머신간 공평을 유지하기 위해 기존의 운영체계에서 사용되고 있는 proportional-share 기반의 스케줄러를 대체하는 것이 아니며, 상기 proportional-share 기반의 스케줄러를 보완할 수 있다. 이를 위해서, 상기 할당된 물리 프로세서 내의 상기 복수의 가상 프로세서 중에서 긴급 가상 프로세서를 우선적으로 실행하는 단계(S300)는 상기 각각의 물리 프로세서마다 FIFO(First Input First Out) 순서에 따라 긴급 큐(Urgent Queue)를 스케줄러의 런큐(Run Queue)에 삽입하는 단계를 포함할 수 있다. 가상 프로세서가 프로세서간 인터럽트에 반응하여 긴급 상태로 들어가면, 상기 긴급 상태의 가상 프로세서는 상기 긴급 큐(Urgent Queue)와 상기 스케줄러의 런큐(Run Queue)에 삽입될 수 있다.
이후, 도 5를 참조하면, 하이퍼바이저를 위한 스케줄러는 다음에 실행될 가상 프로세서를 선택할때 먼저 긴급 큐(Urgent Queue)에 대기하고 있는 가상 프로세서 중에 가상 머신 간 공평성을 깨지 않으면서 스케줄링될 수 있는 가상 프로세서가 존재하는지 여부를 확인한다(S400). 만일 스케줄링될 수 있는 가상 프로세서가 존재한다면 스케줄링될 수 있는 가상 프로세서는 수행중인 다른 가상 프로세서를 선점(preempt)하여 상기 스케줄링될 수 있는 가상 프로세서를 실행할 수 있다(S500).
본 발명의 일 실시예에 따른 가상 프로세서는 프로세서간 인터럽트의 종류에 따라서, 이벤트 기반과 시간 기반 방식으로 자신의 긴급 상태를 요청할 수 있다.
본 발명의 일 실시예에 따른 프로세서간 인터럽트는 이벤트 기반 방식으로, 특정 이벤트가 완료될때까지, 긴급 가상 프로세서가 실행을 유지하도록 요청할 수 있다. 또는, 상기 프로세서간 인터럽트는 시간 기반 방식으로, 특정 시간동안, 긴급 가상 프로세서가 긴급 상태로 유지될 시간을 요청할 수 있게 허용하는 방식일 수 있다.
본 발명의 일 실시예에 따른 프로세서간 인터럽트 종류는 TLB(Translation Lookaside Buffer) 무효화 프로세서간 인터렙트 및/또는 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)일 수 있다.
본 발명의 일 실시예에 따른 TLB(Translation Lookaside Buffer) 무효화 프로세서간 인터렙트는 각 CPU의 TLB 동기화를 위해 이용되는 것으로, 상기 TLB 프로세서간 인터렙트가 발생된 경우에, 상기 TLB 프로세서간 인터렙트를 수신한 상기 가상 프로세서를 스케줄링할 수 있다.
본 발명의 일 실시예에 따른 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)는 새로운 쓰레드가 스케줄링 가능해졌음을 알려주기 위한 것으로, 상기 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)가 발생한 경우에, 상기 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)를 송신한 가상 프로세서의 스케줄링을 지연시킬 수 있다.
본 발명의 일 실시예에 따른 하이퍼바이저의 가상머신 스케줄링 기법은 복수의 가상 프로세서들이 요청된 작업을 긴급 상태로 처리할 수 있도록 urgent tslice라 불리는 자신만의 타임 슬라이스를 사용할 수 있다. 복수의 가상 머신들이 동시에 urgent 프로세서간 인터럽트에 연관되기 때문에 전체 반응성을 높이기 위해서는 상기 urgent tslice는 짧게 유지해야하는 동시에 타임 슬라이스 내에서 가상 프로세서가 유용한 하나의 작업을 마무리하기 위해서는 충분히 길어야 한다. 또한, 본 발명의 일 실시예에 따른 하이퍼바이저의 가상머신 협력 스케줄링에서는 단기간의 공평성을 전체 효율성과 교환함으로써 가상 프로세서에게 자신의 미래의 CPU 시간을 빌려와 사용할 수 있는 범위를 제한하기 위해 urgent allowance라 불리는 추가적인 제어 값을 사용할 수 있다. 따라서 가상 프로세서는 현재 실행중인 가상 프로세서의 CPU 사용 시간보다 자신의 CPU 사용 시간이 urgent allowance 값의 범위 안에서 큰 경우 실행중인 가상 프로세서를 선점함으로써 자신의 미래의 CPU 시간을 이용해 urgent tslice를 빌려올 수 있다.
본 발명의 일 실시예에 따른 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하는 는 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법은 커뮤니케이션이 많은 병렬 워크로드에서의 가상화 환경에서 발생하는 시맨틱 갭을 완화할 수 있다. 하지만, 다양한 특성의 워크로드가 수행되는 가상 데스크탑 환경 환경에서의 각 물리 프로세서간 부하를 고려하여 가상 프로세서를 어느 물리 프로세서에 할당할 것인지에 대한 이슈는 하이퍼바이저 가상머신 협력스케줄링 방법를 통해 해결될 수 없다. 기존의 방식 중 단순하면서도 효과적인 가상 프로세서에서의 물리 프로세서 (vCPU-to-pCPU) 할당 알고리즘은 하나의 가상 머신에 속하는 가상 프로세서들을 서로 모두 다른 물리 프로세서에 할당하는 밸런스 스케줄링 (balance scheduling)이다. 이러한 방식은 복수의 가상 프로세서들을 서로 다른 물리 프로세서서에서 실행되도록 함으로써 함께 스케줄링 되어 실행될 확률을 높여주어 동기화 지연을 줄일 수 있다.
그러나, 밸런스 스케줄링은 복수의 물리 프로세서간 부하의 불균형이 발생하는 경우에 동기화 시간을 지연 시키는 문제를 발생시킬 수 있다. 밸런스 스케줄링은 시스템 전체적인 CPU 부하를 고려하지 않고, 하나의 가상 머신에 속하는 복수의 가상 프로세서들을 서로 다른 물리 프로세서에 할당하기 때문에 상대적으로 여유로운 물리 프로세서가 존재하더라도 경쟁이 심한 물리 프로세서로 할당할 가능성이 있다.
도 6은 밸런스 스케줄링과 부하인지 밸런스 스케줄링의의 가상 프로세서에서의 물리 프로세서 할당 시나리오를 도시한 것이다.
도 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)에 할당되는 것을 확인할 수 있다.
이러한 문제를 해소하기 위해 본 발명의 일 실시예에 따르면, 하이퍼바이저 가상머신 스케줄링 방법에 더하여 다양한 특성의 워크로드가 수행되는 가상 데스크탑 환경(virtual desktop infrastructure) 환경을 고려한 부하인지 밸런스 스케줄링(load-conscious balance scheduling) 방법을 이용할 수 있다.
본 발명의 일 실시예에 따른 부하인지 밸런스 스케줄링 방법은 경쟁이 심한 물리 프로세서에 가상 프로세서를 할당하는 비효과적인 할당을 피하기 위해서 선택적으로 밸런스 스케줄링의 정책이 전체 부하의 불균형을 악화시키는 경우에 한해서, 하나의 가상 머신에 속하는 복수의 가상 프로세서들이 하나의 물리 프로세서에 함께 할당되는 것을 허용한다. 즉, 도 6(b)와 같이, 모든 물리 프로세서 각각에 가상 프로세서가 할당된 경우에 한해서, 하나의 가상 머신에 속하는 복수의 가상 프로세서들 중 적어도 둘 이상이 하나의 물리 프로세서에 함께 할당되는 것을 허용한다.
부하인지 밸런스 스케줄링 기법을 6(a) 시나리오에 적용하게 되면 도 6(b)와 같이, 하나의 가상 머신에 속하는 복수의 가상 프로세서들이 같은 물리 프로세서에 할당되도록 허용함으로써 전체적인 부하의 균형을 맞출 수 있다. 다만, 부하인지 밸런스 스케줄링이 반대로 동기화 지연에 악영향을 미칠수도 있기 때문에 본 발명의 일 실시예에 따른 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하는 방법과 통합하여 이용할 수 있다. 본 발명의 일 실시예에 따라, 부하인지 밸런스 스케줄링이 통합된 하이퍼바이저의 협력 스케줄링을 통해, 가상 데스크탑 환경 환경(virtual desktop infrastructure; VDI)에서 높은 반응성을 요구하는 인터렉티브 워크로드의 성능 저하 없이 커뮤니케이션이 많은 병렬 워크로드의 성능을 높일 수 있는 장점이 있다.
도 8 내지 11은 본 발명의 일 실시예에 따른 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법에 관한 실험 결과로, 상기 실험은 리눅스 커널 3.2.0 버전의 KVM 기반 가상화 환경에서 수행하였고, 가상 머신간 공평성을 보장하기 위해서는 리눅스의 CFS 그룹 스케줄링 방식을 이용하였다. 본 발명의 일 실시예에 따른 하이퍼바이저의 가상머신 스케줄링 기법을 구현한 프로토타입은 두 개의 Intel Xeon X5550 2.67GHz 쿼드코어 프로세서와 24GB RAM을 장착한 Dell Poweredge R610에 설치하였다. 게스트 운영체계로는 리눅스 커널 3.2.0 버전을 적용한 우분투 11.04를 사용하였다. 제안된 기법의 효율성을 검증하기 위해 다음의 스케줄링 정책들을 적용하여 수행하였다.
본 발명의 일 실시예에 따른 Resched-DP은 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)를 초기화한 가상 프로세서를 시간 기반의 요청을 이용하여 선점을 지연시키기 위하여 urgent 상태로 들어가게 한다.
본 발명의 일 실시예에 따른 TLB-Co은 TLB(Translation Lookaside Buffer) 무효화 프로세서간 인터렙트를 수신하는 가상 프로세서를 이벤트 기반의 요청을 이용하여 IPI를 송신한 가상 프로세서와 함께 스케줄링되게 하기 위해 urgent 상태로 들어가게 한다.
본 발명의 일 실시예에 따른 Resched-Co은 리스케줄 프로세서간 인터럽트(reschedule interprocessor interrupt)를 수신하는 가상 프로세서를 시간 기반의 요청을 사용하여 IPI를 송신한 가상 프로세서와 함께 스케줄링되게 하기 위해서 urgent 상태로 들어가게 한다.
본 발명의 일 실시예에 따른 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)이 본 발명의 일 실시예에 따른 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법과의 비교를 위해 사용되었다. 실험은 동시에 실행되는 워크로드의 완전한 중첩을 위해 최소 세 번 이상 실행하였다.
먼저 병렬 워크로드와 순차 워크로드가 하나의 물리 머신에 통합되어 실행되는 경우에 제안한 방식의 효율성을 검증한다. 실험을 위해 8개의 가상 프로세서를 가진 하나의 가상 머신(8-vCPU VM)과 하나의 가상 프로세서를 가진 네 개의 가상 머신(하나의 가상 프로세서를 갖는 가상 머신(UP VM))을 사용하였다. 상기 네 개의 가상 머신에는 각각 단일 쓰레드 버전의 x264 워크로드를 수행하게 하였다.
도 7은 병렬 워크로드를 수행하는 8개의 가상 프로세서를 가진 하나의 가상 머신(8-vCPU VM)과 순차 워크로드를 각각 수행하는 하나의 가상 프로세서를 갖는 네 개의 가상 머신(하나의 가상 프로세서를 갖는 가상 머신(UP VM))이 하나의 물리 머신에 통합되어 실행되는 경우에 병렬 워크로드의 Baseline 대비 성능을 나타낸 그래프이다.
도 7을 참조하면, 비효율적인 vCPU-to-pCPU 할당으로 인해 bodytrack, canneal, facesim, ferret, fluidanimate, vips는 밸런스 스케줄링을 적용한 경우에 성능이 저하되는 것을 알 수 있다. 부하인지 밸련스 스케줄링(load-conscious balance scheduling)은 프로세서 부하의 불균형을 감지하여 8개의 가상 프로세서를 가진 하나의 가상 머신(8-vCPU VM)의 가상 프로세서를 하나의 가상 프로세서를 갖는 가상 머신(UP VM)의 가상 프로세서가 할당되어 있는 물리 프로세서에 할당하지 않음으로써 성능을 개선하는 것을 확인할 수 있다.
추가적으로 부하인지 밸런스 스케줄링(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)이 함께 적용된 경우에 가장 좋은 성능을 나타내는 것을 확인할 수 있었다.
도 8은 병렬 워크로드를 수행하는 8개의 가상 프로세서를 가진 하나의 가상 머신(8-vCPU VM)과 순차 워크로드를 각각 수행하는 하나의 가상 프로세서를 갖는 네 개의 가상 머신(UP VM)이 하나의 물리 머신에 통합되어 실행되는 경우에 순차 워크로드의 독립적으로 수행되었을 경우 대비 성능저하를 나타낸 그래프이다.
앞서 설명한 실험에서 순차 워크로드를 수행하는 하나의 가상 프로세서를 갖는 가상 머신(UP VM)의 독립적으로 수행되었을 경우 대비 성능저하를 나타낸 그래프이다. 실험에서는 다섯 대의 가상 머신 모두 동일한 share를 가지고 있기 때문에 하나의 가상 프로세서를 갖는 가상 머신(UP VM)은 다른 가상 머신에 의해 성능 영향을 받지 않아야 함에도 불구하고 밸런스 스케줄링의 경우에 8개의 가상 프로세서를 가진 하나의 가상 머신(8-vCPU VM)의 가상 프로세서를 하나의 가상 프로세서를 갖는 가상 머신(UP VM)의 가상 프로세서가 할당된 물리 프로세서에 할당함으로써 다른 스케줄링 기법들에 비해 성능을 저하시키는 것을 볼 수 있다. 이러한 성능 저하는 밸런스 스케줄링의 부하를 고려하지 않은 할당 방식이 가상 머신간 공평성을 해칠 수 있다는 것을 의미한다.
다음으로 병렬 워크로드를 수행하는 가상 머신들이 하나의 물리 머신에 통합되어 실행되는 경우에 제안한 방식의 효율성을 검증하도록 한다. 이 실험에서는 두 대의 8개의 가상 프로세서를 가진 하나의 가상 머신(8-vCPU VM)을 사용하여 두 개의 병렬 워크로드가 동시에 실행되도록 하였다. PARSEC 애플리케이션들과 함께 수행될 워크로드는 freqmine을 선택하였다. 두 워크로드의 성능 개선 정도를 파악하기 위해서 각각의 워크로드가 독자적으로 수행되었을 경우 대비 성능 개선 정도를 합산하는 방식을 사용하였다.
도 9는 앞서 설명한 실험 시나리오에서 freqmine과 함께 수행된 경우 가중치가 적용된 성능 개선을 나타낸 그래프이다. 여기서, a는 baseline을 나타내며, b는 밸런스 스케줄링, c는 부하인지 밸런스 스케줄링, d는 부하인지 밸런스 스케줄링과 Resched-DP의 통합, d는 부하인지 밸런스 스케줄링, d는 부하인지 밸런스 스케줄링, Resched-DP의 통합 및 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)하는 하이퍼바이저의 협력 스케줄링 기법을 통합하여 적용한 가장 좋은 성능을 내는 것을 확인할 수 있다.
아래는 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하는 하이퍼바이저의 협력 스케줄링 기법이 사용자 수준의 협력 스케줄링에 대한 요구를 효율적으로 반영하여 성능을 개선시키는지의 여부에 관한 실험이다.
실험을 위해 자체 제작한 barrier를 집중적으로 사용하는 streamcluster를 사용하였다. streamcluster는 협력하는 쓰레드간 정밀한 동기화를 수행하기 위해 일정 시간 스피닝을 하고 프로세서를 다른 프로세스에게 넘겨주는 방식 (spin-then-block)을 사용하고 있다. 따라서 동기화를 수행하는 지점에서 다른 협력하는 쓰레드들의 진행률이 비슷하고 함께 스케줄링된다면 block되는 횟수를 줄임으로 인해 성능 개선을 기대해 볼 수 있다. 같이 실행되는 워크로드로는 streamcluster의 실행을 가장 많이 방해하는 bodytrack을 사용하였다.
도 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 횟수를 줄인 것을 확인할 수 있다.
실험을 통해 제안한 스케줄링 기법이 다양한 워크로드가 통합되어 실행되는 가상화된 클라우드 환경에서 기존의 시맨틱 갭을 완화하여 병렬 워크로드의 동기화 지연 시간을 단축하고 불필요한 프로세서 시간 소모를 줄임으로써 전체적인 성능을 효과적으로 개선할 수 있다는 것을 확인할 수 있다.

Claims (1)

  1. 복수의 가상 프로세서(Virtual CPU, vCPU)를 구동하는 운영체계를 포함하는 복수의 가상 머신(Virtual Machine)을 관리하는 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법에 있어서,
    (a) 물리 프로세서(pCPU)에 상기 복수의 가상 프로세서를 할당하는 단계;
    (b) 상기 복수의 가상 프로세서 간의 프로세서간 인터럽트를 기반으로 멀티 쓰레드 워크로드들(multithreaded workloads)의 쓰레드(thread) 사이의 협력 여부를 판단하고, 상기 협력된 것으로 판단된 상기 멀티 쓰레드 워크로드들을 협력 스케줄링 대상으로 선정하는 단계;
    (c) 상기 가상 프로세서 간의 프로세서간 인터럽트를 기반으로 상기 할당된 복수의 가상 프로세서 중에서 긴급 가상 프로세서를 우선적으로 스케줄링(Urgent vCPU First Scheduling)하는 단계;를 포함하며,
    상기 (c) 단계의 긴급 가상 프로세서는 상기 (b) 단계에서 협력 스케줄링 대상으로 선정된 쓰레드들을 기반으로 하고
    상기 프로세서간 인터럽트는 특정 시간동안, 상기 긴급 가상 프로세서가 긴급 상태로 유지될 시간을 요청할 수 있게 허용하는 가상머신을 위한 하이퍼바이저의 협력 스케줄링 방법
KR1020140112265A 2014-08-27 2014-08-27 가상머신을 위한 협력 스케줄링 방법 KR101534138B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140112265A KR101534138B1 (ko) 2014-08-27 2014-08-27 가상머신을 위한 협력 스케줄링 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140112265A KR101534138B1 (ko) 2014-08-27 2014-08-27 가상머신을 위한 협력 스케줄링 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020140027817A Division KR101465657B1 (ko) 2014-03-10 2014-03-10 가상머신을 위한 협력 스케줄링 방법

Publications (1)

Publication Number Publication Date
KR101534138B1 true KR101534138B1 (ko) 2015-07-24

Family

ID=53875971

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140112265A KR101534138B1 (ko) 2014-08-27 2014-08-27 가상머신을 위한 협력 스케줄링 방법

Country Status (1)

Country Link
KR (1) KR101534138B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060095909A1 (en) * 2004-11-01 2006-05-04 Norton Scott J Adaptive cooperative scheduling
US20060168254A1 (en) * 2004-11-01 2006-07-27 Norton Scott J Automatic policy selection
KR20070090649A (ko) * 2006-03-03 2007-09-06 삼성전자주식회사 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법
JP2011186793A (ja) * 2010-03-09 2011-09-22 Hitachi Ltd ハイパバイザ、計算機システム、及び、仮想プロセッサのスケジューリング方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060095909A1 (en) * 2004-11-01 2006-05-04 Norton Scott J Adaptive cooperative scheduling
US20060168254A1 (en) * 2004-11-01 2006-07-27 Norton Scott J Automatic policy selection
KR20070090649A (ko) * 2006-03-03 2007-09-06 삼성전자주식회사 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법
JP2011186793A (ja) * 2010-03-09 2011-09-22 Hitachi Ltd ハイパバイザ、計算機システム、及び、仮想プロセッサのスケジューリング方法

Similar Documents

Publication Publication Date Title
US11797327B2 (en) Dynamic virtual machine sizing
Kim et al. Demand-based coordinated scheduling for SMP VMs
US8918788B2 (en) Scheduling virtual CPU based on priority calculated using time statistics
Gu et al. A state-of-the-art survey on real-time issues in embedded systems virtualization
Song et al. Schedule processes, not VCPUs
Ding et al. Gleaner: Mitigating the {Blocked-Waiter} Wakeup Problem for Virtualized Multicore Applications
US8539499B1 (en) Symmetric multiprocessing with virtual CPU and VSMP technology
Ahn et al. Micro-sliced virtual processors to hide the effect of discontinuous cpu availability for consolidated systems
KR101534137B1 (ko) 가상머신을 위한 협력 스케줄링 방법
KR101465657B1 (ko) 가상머신을 위한 협력 스케줄링 방법
Miao et al. FlexCore: Dynamic virtual machine scheduling using VCPU ballooning
Chiang et al. Enhancing inter-node process migration for load balancing on linux-based NUMA multicore systems
KR101330609B1 (ko) 모바일 멀티코어 가상화 시스템에서 실시간 처리를 보장하기 위한 스케쥴링 방법
Müller et al. MULTI SLOTH: An efficient multi-core RTOS using hardware-based scheduling
KR101534139B1 (ko) 가상머신을 위한 협력 스케줄링 방법
Kilic et al. Overcoming virtualization overheads for large-vcpu virtual machines
Ahn et al. Accelerating critical OS services in virtualized systems with flexible micro-sliced cores
KR101534138B1 (ko) 가상머신을 위한 협력 스케줄링 방법
Zhao et al. Scheduler activations for interference-resilient smp virtual machine scheduling
Kourai et al. Analysis of the impact of cpu virtualization on parallel applications in xen
Lee et al. Minimizing scheduling delay for multimedia in xen hypervisor
Khan et al. Smart scheduler for CUDA programming in heterogeneous CPU/GPU environment
Yu et al. A multicore periodical preemption virtual machine scheduling scheme to improve the performance of computational tasks
Peng et al. Towards efficient work-stealing in virtualized environments
Rothberg Interrupt handling in Linux

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

Year of fee payment: 4