KR20160144688A - 큐를 이용한 smp 가상 머신 이벤트 라우터 및 방법 - Google Patents

큐를 이용한 smp 가상 머신 이벤트 라우터 및 방법 Download PDF

Info

Publication number
KR20160144688A
KR20160144688A KR1020150081125A KR20150081125A KR20160144688A KR 20160144688 A KR20160144688 A KR 20160144688A KR 1020150081125 A KR1020150081125 A KR 1020150081125A KR 20150081125 A KR20150081125 A KR 20150081125A KR 20160144688 A KR20160144688 A KR 20160144688A
Authority
KR
South Korea
Prior art keywords
event
central processing
virtual central
virtual
vcpu
Prior art date
Application number
KR1020150081125A
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 KR1020150081125A priority Critical patent/KR20160144688A/ko
Priority to US15/172,557 priority patent/US20160364260A1/en
Publication of KR20160144688A publication Critical patent/KR20160144688A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • 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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Abstract

큐를 이용한 가상 머신 이벤트 라우터 및 라우팅 방법이 개시된다. 본 발명의 일 실시예에 따른 큐를 이용한 가상 머신 이벤트 라우터는 SMP(Symmetric MultiProcessor) 가상 머신이 이용하는 가상 중앙 처리 유닛들(Virtual Central Processing Unit)의 상태 정보에 기반하여 하이퍼바이저에 전송된 이벤트를 전송하는 방법을 결정하는 이벤트 전송 결정부; 및 상기 이벤트를 전송하는 방법 및 상기 상태정보에 기반하여 상기 이벤트를 상기 가상 중앙 처리 유닛에 전송하는 이벤트 전송부를 포함한다.

Description

큐를 이용한 SMP 가상 머신 이벤트 라우터 및 방법{EVENT ROUTER FOR SYMMETRIC MULTIPROCESSOR SYSTEM VIRTUAL MACHINE USING QUEUE AND METHOD USING THE SAME}
본 발명은 SMP 가상 머신의 이벤트를 라우팅 하는 기술에 관한 것으로, 특히 이벤트 처리 지연을 최소화 하기 위해서, 가상 머신을 관리하고 구동하는 하이퍼바이저에 적용할 수 있는 이벤트 라우팅 기술에 관한 것이다.
SMP(Symmetric Multiprocessor System)은 성능이 동일한 여러 CPU를 하나의 공유된 메모리 공간 안에서 이용하는 시스템이다. SMP는 하나의 CPU를 이용하는 UP(Uni Processor System)의 성능 한계를 극복하기 위하여 설계된 시스템이다.
가상화 환경에서도 SMP가 이용되고 있다. Xen, KVM, VMware 같은 하이퍼바이저는 PCPU(Physical Central Processing Unit)의 개수와는 상관없이, vCPU(Virtual Central Processing Unit)를 생성하고, 여러 가상 머신에 vCPU를 자유롭게 제공해주는 역할을 수행한다. 특히, 하이퍼바이저는 pCPU를 스케쥴링하여 여러 vCPU를 구동할 수 있다. SMP 가상 머신은 하이퍼바이저가 제공해주는 여러 개의 vCPU를 이용하는 가상 머신을 의미한다.
기존의 SMP는 다수의 CPU가 하나의 시스템에서 동작하고 있는 만큼 UP에 비하여 많은 부분을 고려해야 한다. 그 중 하나가 SMP가 가지고 있는 여러 CPU 중에서 이벤트를 어느 CPU에게 전달할지를 결정하는 문제이다. 대부분의 이벤트는 SMP의 CPU중 하나의 CPU에게만 전달해도 되기 때문이다. pCPU를 이용하는 SMP 물리 머신은 이벤트를 어느 pCPU에 전달해도 이벤트를 바로 처리할 수 있다. 이는 pCPU가 언제나 동작 상태에 존재하기 때문이다.
하지만, vCPU를 이용하는 SMP 가상 머신은 다르다. 각 VCPU는 하이퍼바이저의 스케쥴러에 따라 동작 상태와 정지 상태를 반복한다. 이벤트가 동작 상태에 존재하는 vCPU에 전달 되는 경우 이벤트는 바로 처리될 수 있으나, 이벤트가 정지 상태에 존재하는 vCPU에 전달 되는 경우, vCPU가 동작 상태가 되기 전까지 이벤트를 처리할 수 없는 이벤트 처리 지연 현상이 발생하게 된다. 이러한 이벤트 처리 지연 현상은 I/O 성능에 큰 영향을 주게 된다.
하이퍼바이저는 물리환경과 동일한 가상 환경을 가상 머신에 제공한다. 따라서 하이퍼바이저는 SMP 가상 머신이 설정한 vCPU로 이벤트를 전달한다. 하지만 이러한 방식은 상기에 서술한 문제의 측면에서 매우 비효율적이다. SMP 가상 머신은 vCPU의 동작 또는 정지 상태를 인지하지 못하며, 언제나 동작하고 있는 pCPU라고 판단하기 때문이다. 각 vCPU의 상태는 오직 하이퍼바이저만 알 수 있다.
한국 공개 특허 제 2011-0129511호는 SMP 물리 머신이 가지고 있는 여러 CPU에 부하를 분산하여 SMP 물리 머신을 효율적으로 활용하는 기술에 대하여 개시하고 있다.
하지만, 한국 공개 특허 제 2011-0129511호는 항상 동작 상태인 CPU에 부하를 분산하는 기술이고, 정지 상태와 동작 상태를 반복하는 vCPU에 적용할 수는 없다.
따라서, 최근의 하나의 컴퓨터에 여러 개의 가상 머신을 설치하고 활용하는 추세에 비추어볼 때, 가상 머신에서 발생하는 이벤트 처리 지연 현상을 최소화 할 수 있는 기술의 필요성이 대두되고 있다.
본 발명의 목적은 하이퍼바이저가 제공하는 동작 상태 정보를 이용하여 이벤트 처리 지연 시간을 줄이는 것이다.
상기한 목적을 달성하기 위한 큐를 이용한 가상 머신 이벤트 라우터는 SMP(Symmetric MultiProcessor) 가상 머신이 이용하는 가상 중앙 처리 유닛들(Virtual Central Processing Unit)의 상태 정보에 기반하여 하이퍼바이저에 전송된 이벤트를 전송하는 방법을 결정하는 이벤트 전송 결정부; 및 상기 이벤트를 전송하는 방법 및 상기 상태정보에 기반하여 상기 이벤트를 상기 가상 중앙 처리 유닛에 전송하는 이벤트 전송부를 포함한다.
이 때, 상기 이벤트를 전송하는 방법은 상기 이벤트를 상기 가상 중앙 처리 유닛에 바로 전송하는 방법 및 상기 이벤트를 저장부에 임시로 저장하는 방법을 포함할 수 있다.
이 때, 상기 가상 중앙 처리 유닛들의 상태 정보는 상기 가상 중앙 처리 유닛들 각각의 동작 여부에 관한 정보를 포함할 수 있다.
이 때, 상기 이벤트 전송 결정부는 상기 상태 정보에 기반하여 상기 가상 중앙 처리 유닛들 중 어느 하나 이상이 동작하고 있는지를 판단하는 동작 여부 판단부를 포함할 수 있다.
이 때, 상기 이벤트 전송 결정부는 동작하는 가상 중앙 처리 유닛이 존재하는 것으로 판단된 경우, 상기 이벤트를 상기 이벤트 전송부에 전송할 수 있다.
이 때, 상기 이벤트 전송 결정부는 상기 가상 중앙 처리 유닛들이 모두 정지 상태로 판단된 경우, 상기 이벤트를 상기 저장부에 임시로 저장할 수 있다.
이 때, 상기 이벤트 전송부는 상기 상태 정보에 기반하여 가장 먼저 동작하는 가상 중앙 처리 유닛을 판단하는 판단부; 및 상기 저장부에 임시로 저장된 이벤트를 상기 판단부에서 판단한 가상 중앙 처리 유닛에 전송하는 전송부를 포함할 수 있다.
이 때, 상기 전송부는 상기 이벤트를 상기 가상 중앙 처리 유닛이 동작하기 전에 전송할 수 있다.
이 때, 상기 저장부는 상기 이벤트를 큐(Queue)를 이용하여 임시로 저장할 수 있다.
이 때, 상기 전송부는 상기 이벤트를 FIFO(First In First Out) 방식을 이용하여 상기 가상 중앙 처리 유닛에 전송할 수 있다.
또한, 본 발명의 일실시예에 따른 큐를 이용한 가상 머신 이벤트 라우팅 방법은 SMP(Symmetric MultiProcessor) 가상 머신이 이용하는 가상 중앙 처리 유닛들(Virtual Central Processing Unit)의 상태 정보에 기반하여 하이퍼바이저에 전송된 이벤트를 처리하는 방법을 결정하는 단계; 및 상기 이벤트를 처리하는 방법 및 상기 상태 정보에 기반하여 상기 이벤트를 상기 가상 중앙 처리 유닛에 전송하는 단계를 포함한다.
이 때, 상기 가상 중앙 처리 유닛에 전송하는 방법은 상기 이벤트를 상기 가상 중앙 처리 유닛에 바로 전송하는 방법 및 상기 이벤트를 저장부에 임시로 저장하는 방법을 포함할 수 있다.
이 때, 상기 가상 중앙 처리 유닛들의 상태 정보는 상기 가상 중앙 처리 유닛들 각각의 동작 여부에 관한 정보를 포함할 수 있다.
이 때, 상기 이벤트를 전송하는 방법을 결정하는 단계는 상기 상태 정보에 기반하여 상기 가상 중앙 처리 유닛들 중 어느 하나 이상이 동작하고 있는지를 판단하는 단계를 포함할 수 있다.
이 때, 상기 이벤트를 전송하는 방법을 결정하는 단계는 동작하는 가상 중앙 처리 유닛이 존재하는 것으로 판단된 경우, 상기 이벤트를 상기 가상 중앙 처리 유닛에 전송하는 방법으로 결정할 수 있다.
이 때, 상기 이벤트를 전송하는 방법을 결정하는 단계는 상기 가상 중앙 처리 유닛들이 모두 정지 상태로 판단된 경우, 상기 이벤트를 상기 저장부에 임시로 저장하는 것으로 결정할 수 있다.
이 때, 상기 가상 중앙 처리 유닛으로 전송하는 단계는 상기 상태 정보에 기반하여 가장 먼저 동작하는 가상 중앙 처리 유닛을 판단하는 단계; 및 상기 저장부에 임시로 저장된 이벤트를 상기 가장 먼저 동작하는 가상 중앙 처리 유닛에 전송하는 단계를 포함할 수 있다.
이 때, 상기 이벤트를 상기 가상 처리 유닛에 전송하는 단계는 상기 이벤트를 상기 가상 중앙 처리 유닛이 동작하기 전에 전송할 수 있다.
이 때, 상기 저장부는 상기 이벤트를 큐(Queue)를 이용하여 임시로 저장할 수 있다.
이 때, 상기 이벤트를 상기 가상 처리 유닛에 전송하는 단계는 상기 이벤트들 중 FIFO(First In First Out) 방식을 이용하여 상기 가상 중앙 처리 유닛에 전송하는 단계일 수 있다.
본 발명은 하이퍼바이저가 제공하는 동작 상태 정보를 이용하여 이벤트 전송 방법을 결정함으로써, 이벤트 처리 지연 시간을 획기적으로 줄일 수 있다.
또한, 본 발명은 이벤트 큐에 저장된 이벤트를 가장 먼저 동작하는 가상 중앙 처리 유닛에 전송하여 이벤트 처리 지연 시간을 획기적으로 줄일 수 있다.
도 1은 본 발명의 일실시예에 따른 큐를 이용한 SMP 가상 머신 이벤트 라우팅 장치를 나타낸 블록도이다.
도 2는 도 1에 도시된 이벤트 전송부의 일실시예를 나타낸 블록도이다.
도 3은 본 발명의 일실시예에 따른 큐를 이용한 SMP 가상 머신 이벤트 라우팅 장치가 이용되는 하이퍼바이저를 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 큐를 이용한 SMP 가상 머신 이벤트 라우팅 장치에서 동작 상태의 가상 중앙 처리 장치(VCPU)가 존재할 때의 이벤트 라우팅을 도시한 도면이다.
도 5 내지 도 6은 본 발명의 일실시예에 따른 큐를 이용한 SMP 가상 머신 이벤트 라우팅 장치에서 동작 상태의 가상 중앙 처리 장치가 존재하지 않을 ?의 이벤트 라우팅을 도시한 도면이다.
도 7은 본 발명의 일실시예에 따른 큐를 이용한 SMP 가상 머신 이벤트 라우팅 방법을 나타낸 동작 흐름도이다.
도 8은 도 7에 도시된 이벤트를 전송하는 방법을 결정하는 단계를 좀 더 자세히 나타낸 동작 흐름도이다.
도 9는 도 7에 도시된 이벤트를 가상 중앙 처리 장치에 전송하는 단계를 좀 더 자세히 나타낸 동작 흐름도이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
먼저, 본 명세서에서 사용하는 용어에 대하여 정의를 한다.
이벤트는 모든 이벤트를 의미하지 않고, 이벤트를 받는 SMP 가상 머신의 VCPU 중에서 임의의 vCPU에게 전달해도 문제가 없는 이벤트만을 의미한다. 예를 들어, 외부 장치의 IRQ(Interrupt Request)나, 하이퍼바이저에서 제공하는 가상 머신간의 통신을 수행할 때 이용하는 신호 등 vCPU에 인터럽트를 발생시키는 모든 신호를 의미할 수 있다. 본 명세서에서 의미하는 이벤트에 해당할 수 있다. 이 때, 하이퍼바이저에서 제공하는 vCPU 중 특정 vCPU에 전달되어야만 하는 이벤트는 본 명세서에서 의미하는 이벤트가 아니다.
이벤트 라우팅은 이벤트가 발생한 시점에 이벤트를 처리할 SMP 가상 머신의 vCPU의 상태에 따라 동적으로 이벤트를 받을 vCPU를 선택하고, 이벤트를 전달하는 과정을 의미한다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 큐를 이용한 SMP 가상 머신 이벤트 라우팅 장치를 나타낸 블록도이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 큐를 이용한 SMP 가상 머신 이벤트 라우팅 장치는 이벤트 전송 결정부(110) 및 이벤트 전송부(120)로 구성된다.
이벤트 전송 결정부(110)는 SMP(Symmetric MultiProcessor) 가상 머신이 이용하는 가상 중앙 처리 유닛들(Virtual Central Processing Unit, vCPU)의 상태 정보에 기반하여 하이퍼바이저에 전송된 이벤트를 전송하는 방법을 결정한다.
이 때, SMP 가상 머신은 하이퍼바이저가 생성한 다수 개의 vCPU를 이용하는 가상 머신을 의미하는데, vCPU는 독립적으로 작업을 처리할 수 있다.
이 때, 가상 중앙 처리 유닛(vCPU)는 하이퍼바이저가 생성한 가상의 중앙 처리 유닛으로 물리적인 중앙 처리 유닛(pCPU)을 스케쥴링하여 가상 중앙 처리 유닛을 구동할 수 있다.
이 때, 가상 중앙 처리 유닛들의 상태 정보는 가상 중앙 처리 유닛들 각각의 동작 여부에 관한 정보를 포함할 수 있다. 예를 들어, 가상 머신이 이용하는 vCPU가 4개로 각각 vCPU 1, vCPU 2, vCPU 3, vCPU 4가 있을 때, vCPU 1 내지 vCPU 4가 모두 동작하고 있다는 정보가 가상 중앙 처리 유닛들의 상태 정보가 될 수 있다. 가상 중앙 처리 유닛들의 상태 정보는 저장부에 저장될 수 있으며, 다수 개의 가상 머신이 존재하는 경우, 각각의 가상 머신이 이용하는 가상 중앙 처리 유닛들의 상태 정보가 저장부에 저장될 수 있다.
이 때, 이벤트를 전송하는 방법에는 크게 두 개가 존재할 수 있다. 먼저, vCPU로 바로 이벤트를 전송하는 방법이 있고, 다른 하나는 vCPU로 바로 이벤트를 전송하지 않고, 임시로 이벤트를 저장하고 있다가 이후에 vCPU로 이벤트를 전송하는 방법이 있을 수 있다. vCPU가 동작하고 있는 경우에는 vCPU로 바로 이벤트를 전송하는 것이 빠르다. 하지만 하이퍼바이저가 가장 빨리 동작 상태가 되는 vCPU를 예측할 수가 없다. 따라서, 동작 상태인 vCPU가 없는 경우, 이벤트를 바로 전송하지 않고, 임시로 저장하고 있다가 가장 먼저 작동하는 vCPU를 판단하고, 판단된 vCPU에 이벤트를 전송하는 것이 지연 대기 시간이 감소될 수가 있다.
이 때, 이벤트 전송 결정부(110)는 가상 처리 유닛의 상태 정보에 기반하여 가상 중앙 처리 유닛들 중 어느 하나 이상이 동작하고 있는지를 판단하는 동작 여부 판단부(미도시)를 포함할 수 있다.
이 때, 이벤트 전송 결정부(110)는 동작 여부 판단부의 판단 결과에 기반하여 이벤트 전송 방법을 결정할 수 있다. 예를 들어, 동작하는 가상 중앙 처리 유닛이 존재하는 것으로 판단한 경우에는 이벤트를 이벤트 전송부(120)에 바로 전송하고, 이벤트 전송부(120)에서 vCPU에 이벤트를 전송할 수 있다. 또 예를 들면, 동작하는 가상 중앙 처리 유닛이 존재하지 않는 것으로 판단한 경우에는 이벤트를 이벤트 전송부(120)에 바로 전송하지 않고, 저장부(미도시)에 이벤트를 저장하기 위해 저장부로 이벤트를 전송할 수도 있다.
이 때, 저장부는 하이퍼바이저가 이용하는 메모리를 의미할 수도 있다. 즉, 하이퍼바이저는 하이퍼바이저가 이용하는 메모리에 각각의 가상 머신 단위로 Vcpu의 상태 정보와 이벤트를 저장하는 공간을 운용할 수 있다.
이 때, 저장부는 이벤트를 큐(Queue)를 이용하여 임시로 저장할 수 있다. 큐의 개수는 가상 머신의 개수와 동일한 개수가 될 수 있다. 예를 들면, 하이퍼바이저에서 생성하는 가상 머신이 4개가 존재하는 경우, 큐의 개수 역시 4개가 될 수 있다.
이 때, 저장부에 저장된 이벤트는 FIFO(First In First Out) 방식을 이용하여 가상 중앙 처리 유닛에 전송할 수 있다.
이 때, FIFO(First In First Out) 방식은 먼저 들어온 이벤트가 나중에 들어온 이벤트보다 먼저 처리되는 방식을 의미할 수도 있다.
이벤트 전송부(120)는 상기 이벤트를 전송하는 방법 및 상기 상태 정보에 기반하여 상기 이벤트를 상기 가상 중앙 처리 유닛에 전송한다.
이 때, 이벤트 전송부(120)는 이벤트 전송 결정부(110)에서 동작하는 가상 중앙 처리 유닛(vCPU)이 존재하여 이벤트를 이벤트 전송부(120)로 전송한 경우, 이벤트를 수신하고, 가상 중앙 처리 유닛(vCPU)에 전송할 수 있다.
이 때, 이벤트 전송부(120)는 이벤트 전송 결정부(110)에서 동작하는 가상 중앙 처리 유닛(vCPU)가 모두 정지 상태로 판단되어 이벤트를 저장부로 전송한 경우, 저장부에서 이벤트를 수신하고, 가상 중앙 처리 유닛(vCPU)에 전송할 수 있다.
이 때, 상태 정보에 기반하여 가장 먼저 동작하는 가상 중앙 처리 유닛을 판단하고, 저장부에 임시로 저장된 이벤트를 가장 먼저 동작하는 가상 중앙 처리 유닛에 전송할 수 있다. 예를 들면, 가상 중앙 처리 유닛들(vCPU 1 내지 vCPU 4)가 모두 정지 상태로 판단되어 이벤트가 저장부에 임시로 저장된 경우에 스케줄링 과정에서 가장 먼저 동작 상태가 되는 vCPU 2에 이벤트를 전달 할 수 있다. 저장부에 임시로 저장된 이벤트는 vCPU 2가 동작한 후, vCPU 2가 동작을 시작한 상태 정보를 수신하고 바로 전송될 수 있다. 즉, vCPU 2가 동작을 시작한 직후 이벤트를 송신하고, 이벤트를 처리함으로써, 가상 머신의 이벤트 처리 지연을 최소화 할 수 있다.
이 때, 저장부에 저장된 이벤트를 가상 중앙 처리 유닛이 동작하기 전에 전송할 수도 있다. 예를 들면, 가상 중앙 처리 유닛들(vCPU 1 내지 vCPU 4)가 모두 정지 상태로 판단되어, 이벤트가 저장부에 임시로 저장되어 있고, 하이퍼바이저 내부의 스케쥴러가 가장 먼저 동작하는 가상 중앙 처리 유닛이 vCPU 2로 정해놓을 수 있고, 저장부에 임시로 저장된 이벤트는 vCPU 2에 전송되어야 하는 경우, vCPU 2가 동작하기 전에 이벤트를 전송할 수 있다. 즉, vCPU 2가 작동하는 것과 동시에 이벤트를 처리하게 하여 가상 머신의 이벤트 처리 지연을 최소화 할 수 있다.
도 2는 도 1에 도시된 이벤트 전송부의 일실시예를 나타낸 블록도이다.
도 2를 참조하면, 이벤트 전송부(110)는 판단부(210) 및 전송부(220)로 구성되어 있다.
판단부(210)는 상태 정보에 기반하여 가장 먼저 동작하는 가상 중앙 처리 유닛을 판단한다.
이 때, 스케줄러는 가상 중앙 처리 유닛의 동작 순서를 결정할 수 있다. 예를 들어, 가상 중앙 처리 유닛(vCPU 1 내지 vCPU 4)가 존재할 때, vCPU 2를 먼저 동작하게 지시할 수 있다.
이 때, 판단부(210)는 vCPU 2가 가장 먼저 동작을 시작하였음을 인지하고, vCPU 2가 가장 먼저 동작하는 가상 중앙 처리 유닛임을 판단하게 된다.
전송부(220)는 저장부에 임시로 저장된 이벤트를 판단부(210)에서 판단한 가상 중앙 처리 유닛에 전송한다.
예를 들어 상세하게 설명하면, 스케쥴러가 가상 중앙 처리 유닛(vCPU 1 내지 vCPU 4)가 존재할 때, vCPU 2를 먼저 동작하게 지시한 경우, vCPU 2가 동작하고 난 직후에 전송부(220)는 저장부에 임시로 저장된 이벤트를 vCPU 2에 전송할 수 있다.
이 때, 저장부에 저장된 이벤트를 가상 중앙 처리 유닛이 동작하기 전에 전송할 수도 있다. 예를 들면, 가상 중앙 처리 유닛들(vCPU 1 내지 vCPU 4)가 모두 정지 상태로 판단되어, 이벤트가 저장부에 임시로 저장되어 있고, 하이퍼바이저 내부의 스케쥴러가 가장 먼저 동작하는 가상 중앙 처리 유닛이 vCPU 2로 정해놓을 수 있고, 저장부에 임시로 저장된 이벤트는 vCPU 2에 전송되어야 하는 경우, vCPU 2가 동작하기 전에 이벤트를 전송할 수 있다. 즉, vCPU 2가 작동하는 것과 동시에 이벤트를 처리하게 하여 가상 머신의 이벤트 처리 지연을 최소화 할 수 있다.
도 3은 본 발명의 일실시예에 따른 큐를 이용한 SMP 가상 머신 이벤트 라우팅 장치가 이용되는 하이퍼바이저를 도시한 도면이다.
도 3을 참조하면, 하이퍼바이저는 이벤트 전송 결정부(310), 저장부(320), 이벤트 전송부(330) 및 vCPU 큐(340, 350)을 포함한다.
도 3에 도시된 하이퍼바이저는 4개의 pCPU를 이용하고, 4개의 vCPU를 생성한다.
이 때, vCPU 큐(340, 350)는 vCPU의 스케쥴링을 수행할 수 있다. 스케쥴링에 대하여 상세히 설명하면, vCPU 큐(340)은 pCPU를 이용하여 바로 이벤트를 수행할 수 있는 상태를 의미한다. vCPU 큐(350)은 vCPU 큐(340)에서 수행하는 이벤트가 수행된 뒤에 이벤트를 수행할 수 있는 상태를 의미한다. 즉, vCPU 큐(340, 350)은 FIFO(First In First Out) 방식을 이용하여 이벤트를 수행할 수 있다.
도 3을 이용하여 예를 들어 설명하면, 가상 머신 0의 vCPU 1과 vCPU 3은 vCPU 큐(340) 내부에 존재하므로, 이벤트를 바로 수행할 수 있는 동작 상태에 있다. 가상 머신 0의 vCPU 2와 vCPU 0은 vCPU 큐(350) 내부에 존재하므로, 이벤트를 바로 수행할 수 없는 정지 상태에 있다. 즉, 가상머신 0의 vCPU 1과 vCPU 3에 이벤트가 전달되는 경우 이벤트가 바로 처리될 수 있으나, 가상머신 0의 vCPU 0과 vCPU 2에 이벤트가 전달되는 경우 이벤트는 바로 처리될 수 없고, vCPU 0과 vCPU 2가 vCPU 큐(340) 내부에 존재하여 동작 상태가 될 때까지 이벤트 처리가 지연되는 상태일 것이다.
이 때, 하이퍼바이저의 종류와 하이퍼바이저가 이용하는 스케쥴러의 종류에 따라 큐 형태로도 관리될 수도 있으며, 다른 형태로도 관리될 수 있다.
이 때, 하이퍼바이저가 생성하는 가상 머신의 수에는 제한이 없다. 도 3에서는 가상 머신 1개(가상머신 0)만을 도시하고, 동작 방법을 서술하였으나, 가상 머신의 개수가 3개가 될 수도 있으며, 이에 대한 제한은 없다.
이 때, 저장부(330)는 이벤트 큐(331)와 가상 중앙 처리 유닛(vCPU)의 상태(332)를 저장할 수 있다.
이 때, 이벤트 큐(331)는 가상 중앙 처리 유닛 모두 정지 상태인 경우, 이벤트를 임시로 저장할 수도 있다.
이 때, 가상 중앙 처리 유닛의 상태(332)를 이벤트 전송 결정부(310)에 전송하여, 이벤트의 전송 방법을 결정할 수도 있다. 이에 대한 상세한 설명은 도 1에서 서술하였다.
도 4는 본 발명의 일실시예에 따른 큐를 이용한 SMP 가상 머신 이벤트 라우팅 장치에서 동작 상태의 가상 중앙 처리 장치(VCPU)가 존재할 때의 이벤트 라우팅을 도시한 도면이다.
도 4를 참조하면, 하이퍼바이저는 이벤트 전송 결정부(410), 저장부(420), 이벤트 전송부(430)로 구성된다.
이벤트 전송 결정부(410)는 저장부(420)에 저장된 가상 중앙 처리 유닛(vCPU)의 상태 정보(422)에 기반하여 이벤트의 전송 방법을 결정한다. 도 4에서는 가상 중앙 처리 유닛의 상태 정보(422)에는 vCPU 1과 vCPU 3이 동작 상태라는 것이 포함되어 있으며, 따라서 이벤트 전송 결정부(410)는 이벤트를 전송하는 방법을 가상 중앙 처리 유닛에 바로 전송하는 방법으로 결정할 수 있다.
이벤트 전송부(430)는 이벤트 전송 결정부(410)에서 결정한 이벤트 전송 방법에 기반하여 이벤트를 가상 중앙 처리 유닛에 전송한다. 도 4에서는 가상 중앙 처리 유닛에 바로 전송하는 방법을 이용하여, 이벤트 전송부(430)가 vCPU 1로 이벤트를 전송할 수 있다.
도 4에서는 vCPU 1로 이벤트를 전송하였으나, vCPU 3으로도 이벤트를 전송할 수도 있으며, vCPU 1과 vCPU 3의 성능을 비교하고, 성능이 더 좋은 vCPU에 이벤트를 전송하게 하여 이벤트 처리 시간을 최소한으로 할 수 있다.
도 5 내지 도 6은 본 발명의 일실시예에 따른 큐를 이용한 SMP 가상 머신 이벤트 라우팅 장치에서 동작 상태의 가상 중앙 처리 장치가 존재하지 않을 ?의 이벤트 라우팅을 도시한 도면이다.
도 5를 참조하면, 큐를 이용한 SMP 가상 머신 이벤트 라우팅 장치는 이벤트 전송 결정부(510), 저장부(520) 및 이벤트 전송부(530)로 구성되어 있다.
이벤트 전송 결정부(510)는 저장부(520)에 저장된 가상 중앙 처리 장치의 상태 정보(520)에 기반하여 이벤트 전송 방법을 결정한다. 도 5에서는 vCPU 큐(540)에 vCPU가 존재하지 않으므로, 상태 정보(520)는 가상 중앙 처리 유닛들(vCPU 1 내지 vCPU 4)가 모두 정지 상태인 정보를 포함하게 된다. 따라서, 이벤트 전송 결정부(510)는 이벤트를 바로 가상 중앙 처리 유닛에 전송하지 않고, 저장부(520) 내부의 이벤트 큐(522)에 이벤트를 임시로 저장하는 방법을 이벤트 전송 방법으로 결정할 수 있다.
이 때, 저장부(520) 내부의 이벤트 큐(522)는 이벤트 전송 결정부(510)에서 이벤트를 전송 받아, 이벤트를 임시로 저장할 수 있다.
요약하면, 이벤트를 전달받는 가상 머신의 모든 vCPU의 상태가 정지 상태인 경우, 이벤트는 이벤트를 전달 받는 가상 머신의 이벤트 큐(522)에 저장된다. 예를 들어, 가상 머신 0에 전달되는 이벤트가 발생하였고, 가상 머신 0의 모든 vCPU의 상태가 정지 상태인 경우, 상기 이벤트는 가상 머신 0에 할당된 저장부(520) 내부의 이벤트 큐(522)에 임시로 저장된다.
도 6을 참조하면, 큐를 이용한 SMP 가상 머신 이벤트 라우팅 장치는 이벤트 전송 결정부(610), 저장부(620) 및 이벤트 전송부(630)로 구성되어 있다.
도 5와 도 6은 서로 연속되는 상황을 도시하였다.
이벤트 전송부(630)는 상태 정보에 기반하여 가장 먼저 동작하는 가상 중앙 처리 유닛을 판단한다.
도 6을 참조하여 예를 들면, 이벤트 전송부(630)는 가장 먼저 동작한 가장 중앙 처리 유닛이 vCPU 2라는 정보에 기반하여 이벤트 큐(622)에 임시로 저장된 이벤트를 vCPU 2에 전송할 수 있다.
이 때, 이벤트 큐(622)에 저장된 이벤트를 가상 중앙 처리 유닛이 동작하기 전에 전송할 수도 있다. 예를 들면, 가상 중앙 처리 유닛들(vCPU 1 내지 vCPU 4)가 모두 정지 상태로 판단되어, 이벤트가 저장부에 임시로 저장되어 있고, 하이퍼바이저 내부의 스케쥴러가 가장 먼저 동작하는 가상 중앙 처리 유닛이 vCPU 2로 정해놓을 수 있고, 저장부에 임시로 저장된 이벤트는 vCPU 2에 전송되어야 하는 경우, vCPU 2가 동작하기 전에 이벤트를 전송할 수 있다. 즉, vCPU 2가 작동하는 것과 동시에 이벤트를 처리하게 하여 가상 머신의 이벤트 처리 지연을 최소화 할 수 있다.
이 때, 이벤트 큐(622)에 저장된 이벤트들을 전송하는 방법에 있어, FIFO(First In First Out) 방식을 이용할 수 있다. 다수의 이벤트들이 이벤트 큐(622)에 저장될 수 있고, 먼저 저장된 이벤트(First In)들을 순차적으로 vCPU에 전송할 수 있다(First Out).
도 7은 본 발명의 일실시예에 따른 큐를 이용한 SMP 가상 머신 이벤트 라우팅 방법을 나타낸 동작 흐름도이다.
먼저, vCPU의 상태 정보에 기반하여 이벤트를 전송하는 방법을 결정한다(S710).
이 때, 가상 중앙 처리 유닛들의 상태 정보는 가상 중앙 처리 유닛들 각각의 동작 여부에 관한 정보를 포함할 수 있다. 예를 들어, 가상 머신이 이용하는 vCPU가 4개로 각각 vCPU 1, vCPU 2, vCPU 3, vCPU 4가 있을 때, vCPU 1 내지 vCPU 4가 모두 동작하고 있다는 정보가 가상 중앙 처리 유닛들의 상태 정보가 될 수 있다.
이 때, 이벤트를 전송하는 방법에는 크게 두 개가 존재할 수 있다. 먼저, vCPU로 바로 이벤트를 전송하는 방법이 있고, 다른 하나는 vCPU로 바로 이벤트를 전송하지 않고, 임시로 이벤트를 저장하고 있다가 이후에 vCPU로 이벤트를 전송하는 방법이 있을 수 있다. vCPU가 동작하고 있는 경우에는 vCPU로 바로 이벤트를 전송하는 것이 빠르지만, vCPU가 동작하지 않는 경우에 vCPU로 바로 이벤트를 전송하게 되면 오히려 vCPU가 작동하는데 대기하는 시간과 더불어 이벤트 처리 시간이 지연 시간으로 인해 길어질 수 있다. 따라서, 이벤트를 바로 전송하지 않고, 임시로 저장하고 있다가 가장 먼저 작동하는 vCPU를 판단하고, 판단된 vCPU에 이벤트를 전송하는 것이 지연 대기 시간이 감소될 수가 있다.
이 때, 이벤트를 전송하는 방법을 결정하는 단계(S710)는 가상 처리 유닛의 상태 정보에 기반하여 가상 중앙 처리 유닛들 중 어느 하나 이상이 동작하고 있는지를 판단하는 동작 여부를 판단하는 단계를 포함할 수 있다.
이 때, 이벤트를 전송하는 방법을 결정하는 단계(S710)는 동작 여부 판단부의 판단 결과에 기반하여 이벤트 전송 방법을 결정할 수 있다. 예를 들어, 동작하는 가상 중앙 처리 유닛이 존재하는 것으로 판단한 경우에는 이벤트를 이벤트 전송부(120)에 바로 전송하고, 이벤트 전송부(120)에서 vCPU에 이벤트를 전송할 수 있다. 또 예를 들면, 동작하는 가상 중앙 처리 유닛이 존재하지 않는 것으로 판단한 경우에는 이벤트를 이벤트 전송부(120)에 바로 전송하지 않고, 저장부(미도시)에 이벤트를 저장하기 위해 저장부로 이벤트를 전송할 수도 있다.
이 때, 저장부는 이벤트를 큐(Queue)를 이용하여 임시로 저장할 수 있다.
이 때, 저장부에 저장된 이벤트는 FIFO(First In First Out) 방식을 이용하여 가상 중앙 처리 유닛에 전송할 수 있다.
이 때, FIFO(First In First Out) 방식은 먼저 들어온 이벤트가 나중에 들어온 이벤트보다 먼저 처리되는 방식을 의미할 수도 있다.
또한, 이벤트 전송 방법에 기반하여 이벤트를 vCPU에 전송한다(S720).
이 때, 이벤트 전송부(120)는 이벤트 전송 결정부(110)에서 동작하는 가상 중앙 처리 유닛(vCPU)이 존재하여 이벤트를 이벤트 전송부(120)로 전송한 경우, 이벤트를 수신하고, 가상 중앙 처리 유닛(vCPU)에 전송할 수 있다.
이 때, 이벤트 전송부(120)는 이벤트 전송 결정부(110)에서 동작하는 가상 중앙 처리 유닛(vCPU)가 모두 정지 상태로 판단되어 이벤트를 저장부로 전송한 경우, 저장부에서 이벤트를 수신하고, 가상 중앙 처리 유닛(vCPU)에 전송할 수 있다.
이 때, 동작 상태 정보에 기반하여 가장 먼저 동작하는 가상 중앙 처리 유닛을 판단하고, 저장부에 임시로 저장된 이벤트를 가장 먼저 동작하는 가상 중앙 처리 유닛에 전송할 수 있다. 예를 들면, 가상 중앙 처리 유닛들(vCPU 1 내지 vCPU 4)가 모두 정지 상태로 판단되어, 이벤트가 저장부에 임시로 저장된 경우에 하이퍼바이저 내부의 스케쥴러가 가장 먼저 동작하는 가상 중앙 처리 유닛이 vCPU 2로 정해놓을 수 있고, 저장부에 임시로 저장된 이벤트는 vCPU 2에 전송될 수 있다.
이 때, 저장부에 저장된 이벤트를 가상 중앙 처리 유닛이 동작하기 전에 전송할 수도 있다. 예를 들면, 가상 중앙 처리 유닛들(vCPU 1 내지 vCPU 4)가 모두 정지 상태로 판단되어, 이벤트가 저장부에 임시로 저장되어 있고, 하이퍼바이저 내부의 스케쥴러가 가장 먼저 동작하는 가상 중앙 처리 유닛이 vCPU 2로 정해놓을 수 있고, 저장부에 임시로 저장된 이벤트는 vCPU 2에 전송되어야 하는 경우, vCPU 2가 동작하기 전에 이벤트를 전송할 수 있다. 즉, vCPU 2가 작동하는 것과 동시에 이벤트를 처리하게 하여 가상 머신의 이벤트 처리 지연을 최소화 할 수 있다.
도 8은 도 7에 도시된 이벤트를 전송하는 방법을 결정하는 단계(S710)를 좀 더 자세히 나타낸 동작 흐름도이다.
도 8을 참조하면, 먼저 이벤트가 발생하면(S711) 이벤트의 목적 가상 머신을 확인한다(S712).
또한, 이벤트를 받는 가상 머신의 vCPU 중에서 동작 상태인 vCPU가 존재하는지를 판단한다(S713).
이 때, 저장부에 저장된 vCPU의 동작 정보에 기반하여 동작 상태인 vCPU가 존재하는지를 판단할 수 있다.
이 때, 가상 중앙 처리 유닛들의 상태 정보는 가상 중앙 처리 유닛들 각각의 동작 여부에 관한 정보를 포함할 수 있다. 예를 들어, 가상 머신이 이용하는 vCPU가 4개로 각각 vCPU 1, vCPU 2, vCPU 3, vCPU 4가 있을 때, vCPU 1 내지 vCPU 4가 모두 동작하고 있다는 정보가 가상 중앙 처리 유닛들의 상태 정보가 될 수 있다.
이 때, 동작 상태인 vCPU가 존재하는 경우, 동작 상태인 vCPU에게 이벤트를 전달한다(S714).
이 때, 동작 상태인 vCPU가 존재하지 않는 경우, 이벤트 큐에 이벤트를 저장한다(S715). vCPU가 동작하지 않는 경우에 vCPU로 바로 이벤트를 전송하게 되면 오히려 vCPU가 작동하는데 대기하는 시간과 더불어 이벤트 처리 시간이 지연 시간으로 인해 길어질 수 있다. 따라서, 이벤트를 바로 전송하지 않고, 임시로 저장하고 있다가 가장 먼저 작동하는 vCPU를 판단하고, 판단된 vCPU에 이벤트를 전송하는 것이 지연 대기 시간이 감소될 수가 있다.
도 9는 도 7에 도시된 이벤트를 가상 중앙 처리 장치에 전송하는 단계(S720)를 좀 더 자세히 나타낸 동작 흐름도이다.
도 9를 참조하면, 먼저 하이퍼 바이저 스케쥴러가 동작 상태로 바꿀 VCPU를 선택한다(S721).
또한, 선택된 VCPU를 이용하는 이벤트 큐를 확인한다(S722).
또한, 이벤트 큐에 저장된 이벤트가 있는지 여부를 확인한다(S723).
이 때, 저장된 이벤트가 존재하지 않는 경우, 기존에 실행되는 VCPU를 정지 상태로 바꾸고, 선택된 vCPU를 동작 상태로 전환한다(S725).
이 때, 저장된 이벤트가 존재하는 경우, 이벤트 큐에 저장된 모든 이벤트를 선택된 vCPU에 전달한다(S724).
이상에서와 같이 본 발명에 따른 큐를 이용한 SMP 가상 머신의 이벤트 라우팅 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.

Claims (20)

  1. SMP(Symmetric MultiProcessor) 가상 머신이 이용하는 가상 중앙 처리 유닛들(Virtual Central Processing Unit)의 상태 정보에 기반하여 하이퍼바이저에 전송된 이벤트를 전송하는 방법을 결정하는 이벤트 전송 결정부; 및
    상기 이벤트를 전송하는 방법 및 상기 상태 정보에 기반하여 상기 이벤트를 상기 가상 중앙 처리 유닛에 전송하는 이벤트 전송부
    를 포함하는 것을 특징으로 하는 가상 머신 이벤트 라우터.
  2. 청구항 1에 있어서,
    상기 이벤트를 전송하는 방법은
    상기 이벤트를 상기 가상 중앙 처리 유닛에 바로 전송하는 방법 및 상기 이벤트를 저장부에 임시로 저장하는 방법을 포함하는 것을 특징으로 하는 가상 머신 이벤트 라우터.
  3. 청구항 2에 있어서,
    상기 가상 중앙 처리 유닛들의 상태 정보는
    상기 가상 중앙 처리 유닛들 각각의 동작 여부에 관한 정보를 포함하는 것을 특징으로 하는 가상 머신 이벤트 라우터.
  4. 청구항 3에 있어서,
    상기 이벤트 전송 결정부는
    상기 상태 정보에 기반하여 상기 가상 중앙 처리 유닛들 중 어느 하나 이상이 동작하고 있는지를 판단하는 동작 여부 판단부
    를 포함하는 것을 특징으로 하는 가상 머신 이벤트 라우터.
  5. 청구항 4에 있어서,
    상기 이벤트 전송 결정부는
    동작하는 가상 중앙 처리 유닛이 존재하는 것으로 판단된 경우, 상기 이벤트를 상기 이벤트 전송부에 전송하는 것을 특징으로 하는 가상 머신 이벤트 라우터.
  6. 청구항 4에 있어서,
    상기 이벤트 전송 결정부는
    상기 가상 중앙 처리 유닛들이 모두 정지 상태로 판단된 경우, 상기 이벤트를 상기 저장부에 임시로 저장하는 것을 결정하는 것을 특징으로 하는 가상 머신 이벤트 라우터.
  7. 청구항 6에 있어서,
    상기 이벤트 전송부는
    상기 상태 정보에 기반하여 가장 먼저 동작하는 가상 중앙 처리 유닛을 판단하는 판단부; 및
    상기 저장부에 임시로 저장된 이벤트를 상기 판단부에서 판단한 가상 중앙 처리 유닛에 전송하는 전송부
    를 포함하는 것을 특징으로 하는 가상 머신 이벤트 라우터.
  8. 청구항 7에 있어서,
    상기 전송부는
    상기 이벤트를 상기 가상 중앙 처리 유닛이 동작하기 전에 전송하는 것을 특징으로 하는 가상 머신 이벤트 라우터.
  9. 청구항 8에 있어서,
    상기 저장부는
    상기 이벤트를 큐(Queue)를 이용하여 임시로 저장하는 것을 특징으로 하는 가상 머신 이벤트 라우터.
  10. 청구항 9에 있어서,
    상기 전송부는
    상기 이벤트를 FIFO(First In First Out) 방식을 이용하여 상기 가상 중앙 처리 유닛에 전송하는 것을 특징으로 하는 가상 머신 이벤트 라우터.
  11. SMP(Symmetric MultiProcessor) 가상 머신이 이용하는 가상 중앙 처리 유닛들(Virtual Central Processing Unit)의 상태 정보에 기반하여 하이퍼바이저에 전송된 이벤트를 전송하는 방법을 결정하는 단계; 및
    상기 이벤트를 전송하는 방법 및 상기 상태 정보에 기반하여 상기 이벤트를 상기 가상 중앙 처리 유닛에 전송하는 단계
    를 포함하는 것을 특징으로 하는 가상 머신 이벤트 라우팅 방법.
  12. 청구항 11에 있어서,
    상기 가상 중앙 처리 유닛에 전송하는 방법은
    상기 이벤트를 상기 가상 중앙 처리 유닛에 바로 전송하는 방법 및 상기 이벤트를 저장부에 임시로 저장하는 방법을 포함하는 것을 특징으로 하는 가상 머신 이벤트 라우팅 방법.
  13. 청구항 12에 있어서,
    상기 가상 중앙 처리 유닛들의 상태 정보는
    상기 가상 중앙 처리 유닛들 각각의 동작 여부에 관한 정보를 포함하는 것을 특징으로 하는 가상 머신 이벤트 라우팅 방법.
  14. 청구항 13에 있어서,
    상기 이벤트를 전송하는 방법을 결정하는 단계는
    상기 상태 정보에 기반하여 상기 가상 중앙 처리 유닛들 중 어느 하나 이상이 동작하고 있는지를 판단하는 단계
    를 포함하는 것을 특징으로 하는 가상 머신 이벤트 라우팅 방법.
  15. 청구항 14에 있어서,
    상기 이벤트를 전송하는 방법을 결정하는 단계는
    동작하는 가상 중앙 처리 유닛이 존재하는 것으로 판단된 경우, 상기 이벤트를 상기 가상 중앙 처리 유닛에 전송하는 방법으로 결정되는 것을 특징으로 하는 가상 머신 이벤트 라우팅 방법.
  16. 청구항 14에 있어서,
    상기 이벤트를 전송하는 방법을 결정하는 단계는
    상기 가상 중앙 처리 유닛들이 모두 정지 상태로 판단된 경우, 상기 이벤트를 상기 저장부에 임시로 저장하는 것으로 결정되는 것을 특징으로 하는 가상 머신 이벤트 라우팅 방법.
  17. 청구항 16에 있어서,
    상기 가상 중앙 처리 유닛으로 전송하는 단계는
    상기 상태 정보에 기반하여 가장 먼저 동작하는 가상 중앙 처리 유닛을 판단하는 단계; 및
    상기 저장부에 임시로 저장된 이벤트를 상기 가장 먼저 동작하는 가상 중앙 처리 유닛에 전송하는 단계
    를 포함하는 것을 특징으로 하는 가상 머신 이벤트 라우팅 방법.
  18. 청구항 17에 있어서,
    상기 이벤트를 상기 가상 처리 유닛에 전송하는 단계는
    상기 이벤트를 상기 가상 중앙 처리 유닛이 동작하기 전에 전송하는 것을 특징으로 하는 가상 머신 이벤트 라우팅 방법.
  19. 청구항 18에 있어서,
    상기 저장부는
    상기 이벤트를 큐(Queue)를 이용하여 임시로 저장하는 것을 특징으로 하는 가상 머신 이벤트 라우팅 방법.
  20. 청구항 19에 있어서,
    상기 이벤트를 상기 가상 처리 유닛에 전송하는 단계는
    상기 이벤트를 FIFO(First In First Out) 방식을 이용하여 상기 가상 중앙 처리 유닛에 전송하는 것을 특징으로 하는 가상 머신 이벤트 라우팅 방법.
KR1020150081125A 2015-06-09 2015-06-09 큐를 이용한 smp 가상 머신 이벤트 라우터 및 방법 KR20160144688A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150081125A KR20160144688A (ko) 2015-06-09 2015-06-09 큐를 이용한 smp 가상 머신 이벤트 라우터 및 방법
US15/172,557 US20160364260A1 (en) 2015-06-09 2016-06-03 Event router and routing method for symmetric multiprocessor virtual machine using queue

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150081125A KR20160144688A (ko) 2015-06-09 2015-06-09 큐를 이용한 smp 가상 머신 이벤트 라우터 및 방법

Publications (1)

Publication Number Publication Date
KR20160144688A true KR20160144688A (ko) 2016-12-19

Family

ID=57516792

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150081125A KR20160144688A (ko) 2015-06-09 2015-06-09 큐를 이용한 smp 가상 머신 이벤트 라우터 및 방법

Country Status (2)

Country Link
US (1) US20160364260A1 (ko)
KR (1) KR20160144688A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109144679B (zh) * 2017-06-27 2022-03-29 华为技术有限公司 中断请求的处理方法、装置及虚拟化设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6922774B2 (en) * 2001-05-14 2005-07-26 The United States Of America As Represented By The National Security Agency Device for and method of secure computing using virtual machines
US7426622B2 (en) * 2004-03-10 2008-09-16 Hewlett-Packard Development Company, L.P. Rapid locality selection for efficient memory allocation
US7840839B2 (en) * 2007-11-06 2010-11-23 Vmware, Inc. Storage handling for fault tolerance in virtual machines
US8271989B2 (en) * 2008-02-07 2012-09-18 International Business Machines Corporation Method and apparatus for virtual processor dispatching to a partition based on shared memory pages
US8544010B2 (en) * 2009-09-18 2013-09-24 Vmware, Inc. Providing notification to speculatively waking up target virtual machine for an I/O event using multiple virtual machines and processors
US9411624B2 (en) * 2011-11-22 2016-08-09 Red Hat Israel, Ltd. Virtual device interrupt hinting in a virtualization system
US9164789B2 (en) * 2012-02-29 2015-10-20 Red Hat Israel, Ltd. Multiple queue management and adaptive CPU matching in a virtual computing system
US9571507B2 (en) * 2012-10-21 2017-02-14 Mcafee, Inc. Providing a virtual security appliance architecture to a virtual cloud infrastructure
US9256455B2 (en) * 2012-11-20 2016-02-09 Red Hat Isreal, Ltd. Delivery of events from a virtual machine to host CPU using memory monitoring instructions
US9489228B2 (en) * 2012-11-27 2016-11-08 Red Hat Israel, Ltd. Delivery of events from a virtual machine to a thread executable by multiple host CPUs using memory monitoring instructions
US9396012B2 (en) * 2013-03-14 2016-07-19 Qualcomm Incorporated Systems and methods of using a hypervisor with guest operating systems and virtual processors

Also Published As

Publication number Publication date
US20160364260A1 (en) 2016-12-15

Similar Documents

Publication Publication Date Title
US9606838B2 (en) Dynamically configurable hardware queues for dispatching jobs to a plurality of hardware acceleration engines
US9772879B2 (en) System and method for isolating I/O execution via compiler and OS support
KR101781063B1 (ko) 동적 자원 관리를 위한 2단계 자원 관리 방법 및 장치
JP2018503995A (ja) スイッチ内のデータをバッファリングするための装置および方法
US11169846B2 (en) System and method for managing tasks and task workload items between address spaces and logical partitions
CN104994032B (zh) 一种信息处理的方法和装置
CN106537367B (zh) 用于基于代理的多线程消息传递通信的技术
US20060112394A1 (en) Computer system
JP6955163B2 (ja) 情報処理装置、情報処理方法及びプログラム
Musleh et al. Bridging the virtualization performance gap for HPC using SR-IOV for InfiniBand
US20160098289A1 (en) System and method for handling an interrupt
US10877790B2 (en) Information processing apparatus, control method and storage medium
JP5109748B2 (ja) 仮想計算機システム及びパケット送信制御方法並びにそれに用いるネットワークインターフェースカード
KR101791182B1 (ko) 컴퓨터 시스템 인터럽트 핸들링
KR20160144688A (ko) 큐를 이용한 smp 가상 머신 이벤트 라우터 및 방법
WO2020166423A1 (ja) リソース管理装置およびリソース管理方法
JP2010205208A (ja) ホストコンピュータ、マルチパスシステム、パス割当方法およびプログラム
JP4620097B2 (ja) 仮想計算機システム及び同システムにおけるスケジュール調整方法
CN114943087A (zh) 一种多算法核高性能sr-iov加解密系统及方法
KR20230084479A (ko) 스케줄링된 병렬 프로세스의 실행 동안 데이터-전송 대역폭을 증가시키기 위한 프로세서 시스템 및 방법
Liu et al. Improving resource utilization of a cloud-based testing platform for android applications
JP2012203911A (ja) 非同期のデバイスによって実行されるタスクのスケジューリングの向上
US20180349167A1 (en) Balancing processing loads of virtual machines
KR101483603B1 (ko) 통신 시스템에서 효율이 개선된 자원 제어 방법 및 장치
WO2018008103A1 (ja) 割込制御方法、及び、インタフェース装置