KR20230034195A - 하이브리드 가상 머신 관리자의 시스템 및 동작 방법 - Google Patents

하이브리드 가상 머신 관리자의 시스템 및 동작 방법 Download PDF

Info

Publication number
KR20230034195A
KR20230034195A KR1020220111675A KR20220111675A KR20230034195A KR 20230034195 A KR20230034195 A KR 20230034195A KR 1020220111675 A KR1020220111675 A KR 1020220111675A KR 20220111675 A KR20220111675 A KR 20220111675A KR 20230034195 A KR20230034195 A KR 20230034195A
Authority
KR
South Korea
Prior art keywords
virtual machine
machine manager
type
hardware resource
slave
Prior art date
Application number
KR1020220111675A
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 삼성전자주식회사
Publication of KR20230034195A publication Critical patent/KR20230034195A/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/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • 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
    • 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/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Abstract

하이브리드 가상 머신 관리자를 동작하기 위한 시스템 및 방법이 제공된다. 상기 시스템은 마스터 가상 머신 관리자와 하나 이상의 슬레이브 가상 머신 관리자를 포함하고, 마스터 가상 머신 관리자와 하나 이상의 슬레이브 가상 머신 관리자는 서로 다른 유형의 가상 머신 관리자이다. 마스터 가상 머신 관리자는 슬레이브 가상 머신 관리자에 제1 유형의 하드웨어 자원 및 제2 유형의 하드웨어 자원 할당하도록 구성된다. 제1 유형의 하드웨어 자원은 슬레이브 가상 머신 관리자가 직접 동작할 수 있는 하드웨어 자원으로, 할당된 슬레이브 가상 머신 관리자에 의해서만 사용된다. 제2 유형의 하드웨어 자원은 상기 마스터 가상 머신 관리자가 관리하는 하드웨어 자원이다.

Description

하이브리드 가상 머신 관리자의 시스템 및 동작 방법 {SYSTEM AND OPERATION METHOD OF HYBRID VIRTUAL MACHINE MANAGERS}
본 발명은 컴퓨터 기술에 관한 것으로, 보다 상세하게는 하이브리드 가상 머신 관리자의 시스템 및 동작 방법에 관한 것이다.
가상화는 실제 하드웨어에서 추상화된 계층에서 컴퓨터 시스템의 가상 인스턴스를 실행하는 것을 말한다. 예를 들어, 여러 "가상 머신"이 단일 호스트 머신에서 실행될 수 있다. 최근 서버와 소프트웨어의 안전성, 신뢰성, 확장성에 대한 요구가 높아짐에 따라 가상화 기술을 도입하는 임베디드 시스템이 늘어나고 있다.
가상 시스템에는 종종 가상 머신 관리자(가상 머신 컨트롤러라고도 함)가 포함된다. 현재 가상 머신 관리자는 일반적으로 유형 1(유형 I)과 유형 2(유형 II)의 두 가지 범주로 나뉜다. 일반적으로 유형 1 가상 머신 관리자는 장치 패스스루(Device Passthrough)에 대한 지원이 보다 원활하고 보다 효율적인 하드웨어 자원 활용을 제공한다. 유형 2 가상 머신 관리자는 특히 가상화 입력 및 출력 인터페이스의 현재 표준화된 구현에서 향상된 기능과 유연성을 제공할 수 있다. 유형 2 가상 머신 관리자에 대한 더 많은 응용 시나리오가 있을 수 있다.
유형 I 가상 머신 관리자는 단일 태스크에 더 적합할 수 있고 더 효율적인 하드웨어 활용도를 가질 수 있다. 유형 II 가상 머신 관리자는 유형 I 가상 머신 관리자보다 더 높은 계층에서 실행될 수 있으며, 이는 효율성을 희생하면서 더 많은 기능과 태스크 적응성을 실현할 수 있다. 그러나 성능과 적응성을 모두 갖춘 하이브리드 가상 머신 관리자가 필요하다.
본 발명은 하이브리드 가상 머신 관리자를 동작하는 시스템 침 방법을 제공한다.
본 발명의 실시예에 따르면, 하이브리드 가상 머신 관리자 시스템이 제공된다. 상기 하이브리드 가상 머신 관리자 시스템은 마스터 가상 머신 관리자와 하나 이상의 슬레이브 가상 머신 관리자를 포함하며, 상기 마스터 가상 머신 관리자 및 상기 하나 이상의 슬레이브 가상 머신 관리자는 서로 다른 유형이다. 상기 마스터 가상 머신 관리자는 제1 유형의 하드웨어 자원 및 제2 유형의 하드웨어 자원을 상기 하나 이상의 슬레이브 가상 머신 관리자에 할당하도록 구성된다. 상기 제1 유형의 하드웨어 자원은 슬레이브 가상 머신 관리자에 의해 직접 작동될 수 있는 하드웨어 자원이고, 할당된 슬레이브 가상 머신 관리자에 의해서만 사용된다. 상기 제2 유형의 하드웨어 자원은 상기 마스터 가상 머신 관리자에 의해 관리되는 하드웨어 자원이다.
상기 마스터 가상 머신 관리자는 상기 마스터 가상 머신 관리자가 시작될 때 슬레이브 가상 머신 관리자에 대한 제1 유형의 하드웨어 자원의 자원 구성 테이블을 생성하고 슬레이브 가상 머신 관리자에게 상기 제2 유형의 하드웨어 자원을 요청하는 인터페이스 테이블을 제공하도록 구성될 수 있다.
상기 자원 구성 테이블은 상기 제1 유형의 하드웨어 자원에 대한 주소 정보를 포함할 수 있다. 슬레이브 가상 머신 관리자가 상기 제1 유형의 하드웨어 자원을 요청할 때, 슬레이브 가상 머신 관리자는 상기 자원 구성 테이블의 요청된 제1 유형의 하드웨어 자원의 주소 정보에 따라 상기 요청된 제1 유형의 하드웨어 자원을 직접 동작하도록 구성된다.
마스터 가상 머신 관리자는 이벤트 메시지를 공유하기 위해 마스터 가상 머신 관리자 및 슬레이브 가상 머신 관리자를 위한 공유 메모리를 할당하도록 더 구성될 수 있다.
인터페이스 테이블은 상기 제2 유형의 하드웨어 자원 및 대응하는 동작 인터페이스를 포함할 수 있다. 슬레이브 가상 머신 관리자가 상기 제2 유형의 하드웨어 자원을 요청할 때, 슬레이브 가상 머신 관리자는 요청된 제2 유형의 하드웨어 자원에 대응하는 상기 동작 인터페이스를 호출하고, 상기 요청된 제2 유형의 하드웨어 자원의 이벤트를 상기 공유 메모리에 기입하며, 프로세서 간 인터럽트(IPI) 메시지를 통해 마스터 가상 머신 관리자에게 알리도록 더 구성된다. 마스터 가상 머신 관리자는 슬레이브 가상 머신 관리자에 의해 전송된 IPI 메시지를 수신하고, 상기 공유 메모리로부터 상기 이벤트를 독출하고, 상기 이벤트에 기초하여 마스터 가상 머신 관리자에서의 상기 제2 유형의 하드웨어 자원의 상기 인터페이스 테이블을 호출하여 슬레이브 가상 머신 관리자에 의해 요청된 상기 제2 유형의 하드웨어 자원을 결정하며, 상기 요청된 제2 유형의 하드웨어 자원을 동작하도록 더 구성된다. 마스터 가상 머신 관리자는 상기 인터페이스 테이블을 호출하고, 상기 요청된 제2 유형의 하드웨어 자원의 동작 결과의 이벤트를 상기 공유 메모리에 기입하고, 상기 IPI 메시지를 통해 슬레이브 가상 머신 관리자에게 알린다. 슬레이브 가상 머신 관리자는 상기 마스터 가상 머신 관리자에 의해 전송된 상기 IPI 메시지를 수신하고, 상기 공유 메모리에서 상기 동작 결과의 상기 이벤트를 독출하며, 슬레이브 가상 머신 관리자에서의 상기 제2 유형의 하드웨어 자원의 상기 인터페이스 테이블을 호출하여 상기 동작 결과를 획득하도록 더 구성된다.
상기 이벤트 메시지는 마스터 가상 머신 관리자에 의해 관리되는 슬레이브 가상 머신 관리자의 동작 상태를 포함할 수 있다.
상기 제1 유형의 하드웨어 자원은 중앙 처리 장치, 물리적 저장 영역, 또는 물리적으로 분할될 수 있는 다른 하드웨어 자원을 포함하고, 상기 제2 유형의 하드웨어 자원은 인터럽트 컨트롤러를 포함할 수 있다.
본 발명의 실시예에 따르면, 마스터 가상 머신 관리자 및 하나 이상의 슬레이브 가상 머신 관리자를 포함하는 하이브리드 가상 머신 관리자를 동작하는 방법이 제공된다. 상기 마스터 가상 머신 관리자 및 상기 하나 이상의 슬레이브 가상 머신 관리자는 서로 다른 유형의 가상 머신 관리자이다. 상기 방법은 마스터 가상 머신 관리자가 슬레이브 가상 머신 관리자에게 제1 유형의 하드웨어 자원 및 제2 유형의 하드웨어 자원을 할당하는 단계를 포함한다. 상기 제1 유형의 하드웨어 자원은 슬레이브 가상 머신 관리자에 의해 직접 동작될 수 있는 하드웨어 자원이고 할당된 슬레이브 가상 머신 관리자에 의해서만 사용된다. 상기 제2 유형의 하드웨어 자원은 상기 마스터 가상 머신 관리자에 의해 관리되는 하드웨어 자원이다.
마스터 가상 머신 관리자가 상기 제1 유형의 하드웨어 자원 및 상기 제2 유형의 하드웨어 자원을 슬레이브 가상 머신 관리자에게 할당하는 단계는 마스터 가상 머신 관리자가 시작될 때 슬레이브 가상 머신 관리자에 대한 상기 제1 유형의 하드웨어 자원의 자원 구성 테이블을 생성하는 단계 및 상기 제2 유형의 하드웨어 자원을 요청하는 인터페이스 테이블을 슬레이브 가상 머신 관리자에게 제공하는 단계를 포함할 수 있다.
상기 자원 구성 테이블은 상기 제1 유형의 하드웨어 자원에 대한 참조 및 상기 제1 유형의 하드웨어 자원의 대응하는 주소 정보를 포함할 수 있다. 상기 방법은 슬레이브 가상 머신 관리자가 상기 제1 유형의 하드웨어 자원을 요청할 때, 슬레이브 가상 머신 관리자에 의해 상기 자원 구성 테이블의 요청된 제1 유형의 하드웨어 자원의 주소 정보에 따라 상기 요청된 제1 유형의 하드웨어 자원을 직접 동작하는 단계를 더 포함한다.
본 발명의 일 실시예에 따른 가상 머신 관리 시스템은 마스터 가상 머신 관리자를 사용하여 제1 유형의 하드웨어 자원과 제2 유형의 하드웨어 자원을 할당함으로써 마스터 가상 머신 관리자와 슬레이브 가상 머신 관리자에 의한 하드웨어 제어가 서로 분리되어, 하드웨어 충돌 없이 동일한 하드웨어 권한 레벨에서 마스터 가상 머신 관리자와 슬레이브 가상 머신 관리자의 병렬 작동을 제공하고 시스템의 성능 저하를 방지한다.
본 발명의 일 실시예에 따른 가상 머신 관리자 시스템에서 마스터 가상 머신 관리자는 슬레이브 가상 머신 관리자의 동작 상태를 관리할 수 있다. 따라서 슬레이브 가상 머신 관리자는 마스터 가상 머신 관리자의 관리 하에 더욱 안정적으로 실행될 수 있다.
본 발명의 일 실시예에 따른 가상 머신 관리자 시스템에서, 마스터 가상 머신 관리자와 슬레이브 가상 머신 관리자는 공유 메모리를 통해 슬레이브 가상 머신 관리자의 동작 상태에 대한 이벤트 메시지를 전달할 수 있으므로, 마스터 가상 머신 관리자는 슬레이브 가상 머신 관리자의 동작 상태를 보다 효율적으로 관리할 수 있고, 가상 머신 관리자 시스템의 안정성을 높일 수 있다.
본 발명의 일 실시예에 따른 가상 머신 관리 시스템에서는 마스터 가상 머신 관리자와 슬레이브 가상 머신 관리자가 프로세서 간 인터럽트를 통해 통신을 식별하고 공유 메모리를 통해 통신을 실현할 수 있으므로 마스터 가상 머신 관리자와 슬레이브 가상 머신 관리자 사이의 원활하고 안정적인 통신이 확보될 수 있다.
본 발명의 일 실시예에 따른 가상 머신 관리 시스템에서는 공유 메모리 기반의 통신 채널의 내부 구조를 링 큐로 구현함으로써 통신 채널의 설계를 단순화하고 주어진 자원의효율성을 높일 수 있다.
첨부된 도면을 참조하여 본 개시의 예시적인 실시예에 대해 상세히 설명함으로써, 본 개시의 이상 특징 및 기타 특징들은 보다 명확해질 것이다.
도 1은 예시적인 실시예에 따른 하이브리드 가상 머신 관리자를 동작하도록 구성된 시스템의 블록도이다.
도 2는 예시적인 실시예에 따른 가상 머신 관리자 시스템의 시작을 나타내는 도면이다.
도 3은 예시적인 실시예에 따른 마스터 가상 머신 관리자에 의해 실행되는 동작의 흐름도이다.
도 4는 예시적인 실시예에 따른 마스터 가상 머신 관리자의 할당 방법의 흐름도이다.
도 5는 예시적인 실시예에 따른 마스터 가상 머신 관리자와 슬레이브 가상 머신 관리자 간의 통신을 나타내는 도면이다.
도 6은 예시적인 실시예에 따른 공유 메모리 기반 통신 채널을 통한 통신을 나타내는 도면이다.
도 7은 예시적인 실시예에 따른 마스터 가상 머신 관리자 및 슬레이브 가상 머신 관리자의 도 6에 기초한 통신 메커니즘의 타이밍도이다.
도 8은 예시적인 실시예에 따른 하이브리드 가상 머신 관리자의 동작 방법을 도시한다.
다음의 상세한 설명은 독자가 여기에 설명된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕도록 제공된다. 그러나, 본 발명의 범위를 벗어나지 않으면서 다양한 변경 및 수정이 이루어질 수 있으며, 본 명세서에서 설명되는 방법, 장치 및/또는 시스템의 균등물도 명백해질 것이다. 예를 들어, 본 명세서에 기재된 동작의 순서는 예시일 뿐 반드시 본 명세서에 기재된 동작에 한정되는 것은 아니며, 반드시 특정 순서로 발생하는 동작을 제외하고 본 출원의 개시 내용을 이해한 후 변경될 수 있다. 도면에서 유사한 참조 부호는 유사한 구성 요소를 나타낼 수 있으며, 널리 알려진 구성 요소에 대한 설명은 생략될 수 있다.
여기에서 설명하는 특징들은 여러 가지 다른 형태로 구현될 수 있으며, 반드시 여기에서 설명하는 예들에 한정되는 것은 아니다. 여기에 설명된 예들은 여기에 설명된 방법, 장치 및/또는 시스템을 구현하는 많은 가능한 구현들 중 일부를 설명하기 위해 제공된다. 이러한 가능한 구현들 중 다수는 본 출원의 개시를 이해한 후에 명백해질 것이다.
명세서 전체에 걸쳐, 구성요소가 다른 구성요소에 "연결된" 또는 "결합된" 것으로 설명될 때, 그것은 다른 구성요소에 직접 "연결된" 또는 "결합"될 수 있거나, 그 사이에 끼어 있는 하나 이상의 다른 구성요소가 있을 수 있다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결됨" 또는 "직접 결합됨"으로 기술되는 경우에는 그 사이에 다른 구성요소가 개입되지 않을 수 있다. 마찬가지로, 예를 들어 "~사이에"와 "바로 사이에", "~에 인접하다" 및 "~에 바로 인접하다"와 같은 유사한 표현은 동일한 방식으로 해석되어야 한다. 본 명세서에 사용된 바와 같이, "및/또는"이라는 용어는 나열된 항목 중 임의의 하나 및 임의의 둘 이상의 임의의 조합을 포함한다.
"제1", "제2" 및 "제3"과 같은 용어가 다양한 부재, 구성요소, 영역, 계층 또는 섹션을 설명하는 데 사용될 수 있지만, 이러한 부재, 구성요소, 영역, 계층 또는 섹션은 이에 의해 한정되지 않는다. 이러한 용어는 하나의 부재, 구성요소, 영역, 계층 또는 섹션을 다른 하나의 부재, 구성요소, 영역, 계층 또는 섹션과 구별하는 데만 사용된다. 따라서, 본 명세서에 기재된 예에서 언급된 제1 부재, 구성요소, 영역, 계층 또는 섹션은 또한 제2 부재, 구성요소, 영역, 계층 또는 섹션으로 지칭될 수 있다.
본 명세서에서 사용된 용어는 단지 다양한 예를 설명하기 위해 사용된 것으로 어떠한 제한적인 의미로 해석되지 말아야 한다. 단수 형태는 문맥이 명백하게 달리 나타내지 않는 한 복수 형태도 포함하도록 의도된다. "포함하다" 및 "갖다"라는 용어는 명시된 기능, 숫자, 동작, 부재, 구성 요소 및/또는 이들의 조합의 존재를 지정하지만 하나 이상의 다른 기능, 숫자, 동작, 부재, 구성 요소 및/또는 이들의 조합의 존재 또는 추가를 배제하지 않는다.
달리 정의되지 않는 한, 본 명세서에서 사용되는 기술적, 과학적 용어를 포함한 모든 용어는 본 출원의 개시 내용에 대한 이해를 바탕으로 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어는 관련 기술분야 및 본 출원의 개시 내용의 문맥상의 용어의 의미와 일치하는 의미로 해석되어야 하며, 이상화되거나 과도하게 해석되어서는 아니 된다. "~할 수 있다"라는 용어의 사용은 언급된 예시 또는 실시예가 포함되거나 구현되는 것을 의미하지만, 다른 예시 또는 실시예를 배제하지 않는다.
이하, 첨부된 도면을 참조하여 실시예를 상세히 설명한다.
도 1은 예시적인 실시예에 따른 하이브리드 가상 머신 관리자를 지원하도록 구성된 시스템의 블록도이다.
도 1을 참조하면, 예시적인 실시예에 따른 하이브리드 가상 머신 관리자를 동작하도록 구성된 시스템(100)(가상 머신 관리자 시스템(100)이라고도 함)은 마스터 가상 머신 관리자(110) 및 슬레이브 가상 머신 관리자(120)를 포함할 수 있다. 본 개시는 하나의 슬레이브 가상 머신 관리자(120)에 한정되지 않고, 일부 실시예는 2개 이상의 슬레이브 가상 머신 관리자(120)를 포함할 수 있다.
여기서, 하이브리드 가상 머신 관리자는 복수의 가상 머신 관리자를 포함할 수 있으며, 각 가상 머신 관리자는 하나 이상의 가상 머신을 실행할 수 있다. 예를 들어, 마스터 가상 머신 관리자(110)는 하나 이상의 제1 게스트 가상 머신을 실행할 수 있고 슬레이브 가상 머신 관리자(120)는 하나 이상의 제2 게스트 가상 머신을 실행할 수 있다. 예를 들어, "하이브리드"는 다른 가상 머신 관리자 및/또는 다른 유형의 다른 가상 머신을 관리하는 가상 머신 관리자의 능력을 의미할 수 있다.
일 예로, 마스터 가상 머신 관리자(110)와 슬레이브 가상 머신 관리자(120)는 서로 다른 유형의 가상 머신 관리자일 수 있다. 예를 들어, 마스터 가상 머신 관리자(110) 및 슬레이브 가상 머신 관리자(120)는 각각 마스터 하이퍼바이저 및 슬레이브 하이퍼바이저일 수 있다. 일 예로, 마스터 가상 머신 관리자(110)는 타입 1 하이퍼바이저(Type I Hypervisor)일 수 있고, 슬레이브 가상 머신 관리자(120)는 타입 2 하이퍼바이저(Type II Hypervisor)일 수 있다. 그러나, 상기는 예시에 불과하며, 본 발명이 반드시 이에 한정되는 것은 아니다.
일 실시예에서, 마스터 가상 머신 관리자(110)는 슬레이브 가상 머신 관리자(120)에 제1 유형의 하드웨어 자원 및 제2 유형의 하드웨어 자원을 할당할 수 있다. 마스터 가상 머신 관리자(110)는 슬레이브 가상 머신 관리자(120)이 동작할 수 있는 하드웨어 자원을 결정할 수 있다. 또한, 슬레이브 가상 머신 관리자(120)는 슬레이브 가상 머신 관리자(120)에 의해 동작될 수 있는 하드웨어 자원의 범위를 독립적으로 변경하지 못할 수 있다. 복수의 슬레이브 가상 머신 관리자(120)가 존재할 경우, 마스터 가상 머신 관리자(110)는 제1 유형의 하드웨어 자원과 제2 유형의 하드웨어 자원을 복수의 가상 머신 관리자(120)에 각각 할당할 수 있다.
비교예에서, 마스터 가상 머신 관리자와 다른 하드웨어 권한 레벨로 실행되는 슬레이브 가상 머신 관리자가 하드웨어 자원을 요청하는 경우, 요청 명령어를 반복적으로 트래핑 및 포워딩한 후 마스터 가상 머신 관리자를 통해 요청된 하드웨어 자원을 운용해야 하며, 이는 시스템의 성능을 저하시킨다. 또한 여러 가상 머신 관리자가 동일한 하드웨어 권한 레벨에서 실행되는 경우 하드웨어 사용에 대한 충돌이 발생한다. 이에 반해, 본 발명에 따른 시스템에서는 마스터 가상 머신 관리기(110)에서 제1 유형의 하드웨어 자원 및 제2 유형의 하드웨어 자원을 슬레이브 가상 머신 관리자(120)에 할당되기 때문에 마스터 가상 머신 관리자(110)의 하드웨어에 대한 제어와 슬레이브 가상 머신 관리자(120)의 하드웨어에 대한 제어가 서로 분리된다. 이 할당 구조에서 마스터 가상 머신 관리자(110)와 슬레이브 가상 머신 관리자(120)의 동작은 하드웨어 충돌 없이 제1 유형의 하드웨어에 대한 동일한 하드웨어 권한 레벨에서 동작함으로써, 마스터 가상 머신 관리자(110)와 슬레이브 가상 머신 관리자(120)가 충돌 없이 병렬로 동작되어 시스템 성능 저하를 방지할 수 있다.
예를 들어, 제1 유형의 하드웨어 자원은 슬레이브 가상 머신 관리자(120)에 의해 직접 동작되고 다른 가상 머신 관리자와 공유되지 않는 하드웨어 자원일 수 있다. 예를 들어, 제1 유형의 하드웨어 자원은 슬레이브 가상 머신 관리기(120)에 배타적인 하드웨어 자원일 수 있다.
일 예에서, 제1 유형의 하드웨어 자원은 적어도 하나의 중앙 처리 장치, 물리적 저장 영역, 및/또는 물리적으로 분할될 수 있는 다른 하드웨어 자원을 포함할 수 있다. 다른 예에서, 제1 유형의 하드웨어 자원은 임의의 배타적 주변 하드웨어(예를 들어, 네트워크 카드, 디스플레이 장치 및 오디오 장치 등)를 포함할 수 있다. 다만, 상기한 내용은 예시일 뿐이며, 구체적으로 시스템 설계 또는 시스템 하드웨어 자원에 따라 할당 가능한 제1 유형의 하드웨어 자원이 결정될 수 있으며, 본 발명은 이에 한정되는 것은 아니다.
제2 유형의 하드웨어 자원은 슬레이브 가상 머신 관리자(120)가 마스터 가상 머신 관리자(110)로부터 요청해야 하는 하나 이상의 하드웨어 자원일 수 있다. 예를 들어, 제2 유형의 하드웨어 자원은 마스터 가상 머신 관리자(110)가 사용하는 하드웨어 자원일 수 있다. 예를 들어, 제2 유형의 하드웨어 자원은 마스터 가상 머신 관리자(110) 및 슬레이브 가상 머신 관리자(120)에 의해 공유되는 하나 이상의 하드웨어 자원일 수 있다.
일 예에서, 제2 유형의 하드웨어 자원(예를 들어, 시스템의 인터럽트 컨트롤러, 또는 전원 관리자 등)은 시스템에서 고유할 수 있고/있거나 마스터 가상 머신 관리자(110) 및 슬레이브 가상 머신 관리자(120)의 실행에 필요할 수 있다. 다른 예에서, 제2 유형의 하드웨어 자원은 적용 환경의 요구 사항에 따라 공유되어야 하는 주변 장치를 포함할 수 있다. 예를 들어, 마스터 가상 머신 관리자(110)와 슬레이브 가상 머신 관리자(120)가 지원하는 가상 머신은 인간-컴퓨터 상호작용을 위한 범용 비동기 수신기 송신기 인터페이스를 필요로 할 수 있지만, 이는 제한된 자원일 수 있으므로 제2 하드웨어 자원으로 공유될 수 있다. 다른 예로, 마스터 가상 머신 관리자(110) 및 슬레이브 가상 머신 관리자(120)가 지원하는 가상 머신에서 실행하기 위해 고유하거나 제한된 그래픽 프로세서(Graphics Processor)가 필요할 수 있으므로 이는 제2 하드웨어 자원으로 공유될 수 있다.
마스터 가상 머신 관리자(110)가 시작된 후, 마스터 가상 머신 관리자(110)는 슬레이브 가상 머신 관리자(120)를 시작하고, 중앙 처리 장치를 슬레이브 가상 머신 관리자(120)에 할당하여, 초기화 후 슬레이브 가상 머신 관리자(120)가 슬레이브 가상 머신 관리자(120)를 실행하는 제1 유형의 하드웨어 자원(예를 들어, 슬레이브 가상 머신 관리자(120)에 고유한 자원) 및 제2 유형의 하드웨어 자원(예를 들어, 슬레이브 가상 머신 관리자(120)와 마스터 가상 머신 관리자(110)사이에서 공유되는 자원, 예들 들면, 프로세서)을 획득한다. 예를 들어, 마스터 가상 머신 관리자(110)는 슬레이브 가상 머신 관리자(120)가 시작되기 전에 시작될 수 있으며, 슬레이브 가상 머신 관리자(120)의 시작 및 동작을 제어할 수 있다. 도2와 관련하여 이에 대해 상세하게 후술한다.
슬레이브 가상 머신 관리자(120)로부터 제2 유형의 하드웨어 자원을 요청하는 경우, 마스터 가상 머신 관리자(110)는 프로세서 간 인터럽트 관리자를 통해 슬레이브 가상 머신 관리자(120)로부터 요청을 수신할 수 있다. 마스터 가상 머신 관리자(110)는 슬레이브 가상 머신 관리자(120)의 요청을 처리하고, 슬레이브 가상 머신 관리자(120)는 요청을 처리하는 결과에 따라 제2 유형의 하드웨어 자원을 운용할 수 있다. 이와 같이 프로세서 간 인터럽트 관리자를 통해 마스터 가상 머신 관리자(110)와 슬레이브 가상 머신 관리자(120) 사이에서 통신 메커니즘이 구현되어 마스터 가상 머신 관리자(110)가 슬레이브 가상 머신 관리자(120)를 관리할 수 있다.
도 2는 예시적인 실시예에 따른 가상 머신 관리자 시스템의 시작을 나타내는 도면이다.
도 2를 참조하면, 가상 머신 관리자 시스템이 시작된 후, 가상 머신 관리자 시스템의 부트 프로그램(210)은 가상 머신 관리자 융합 이미지(201)로부터 마스터 가상 머신 관리자 (220)에 대응하는 이미지를 로딩하여 마스터 가상 머신 관리자(220)를 시작할 수 있다. 마스터 가상 머신 관리자(220)는 하드웨어 자원(예를 들어, 중앙 처리 장치(CPU), 인터럽트 컨트롤러, 메모리 등)을 초기화하고 실행 시간의 소유권에 따라 자원을 마스터 하드웨어 자원과 슬레이브 하드웨어 자원으로 나눌 수 있다. 예를 들어, 실행 시간의 소유권은 시작 전이나 시작 중에 구성되거나 설계될 수 있다.
다음으로, 마스터 가상 머신 관리자(220)는 자신의 동작에 필요한 마스터 하드웨어 자원을 초기화할 수 있다. 마스터 가상 머신 관리자(220)는 분할 시 생성된 구성 파일에 따라 슬레이브 하드웨어 자원(예를 들어, 제1 유형의 하드웨어 자원 및 제2 유형의 하드웨어 자원)을 슬레이브 가상 머신 관리자(230)에 할당할 수도 있다.
슬레이브 가상 머신 관리자(230)가 수신한 자원 구성 정보는 자신에게 할당된 직접 운용 가능한 제1 유형의 하드웨어 자원의 주소 및 제2 유형의 하드웨어 자원의 인터페이스 테이블을 포함할 수 있다. 또한, 슬레이브 가상 머신 관리자(230)가 직접 운용할 수 없는 제2 유형의 하드웨어 자원이 제2 유형의 하드웨어 자원의 인터페이스 테이블을 통해 간접 운용될 수 있도록 제2 유형의 하드웨어 자원의 인터페이스 테이블을 슬레이브 가상 머신 관리자(230)에 등록할 수 있다.
일 예에서, 각 가상 머신 관리자에 할당된 하드웨어 자원은 시스템에 의해 사전 설정될 수 있으며 각 관리자가 시작될 때 직접 로딩될 수 있다. 각 가상 머신 관리자에 할당된 하드웨어 자원은 마스터 가상 관리자가 시작된 후 실시간으로 각 슬레이브 가상 머신 관리자에 할당될 수도 있다.
예시적인 동작에서, 마스터 가상 머신 관리자(220)는 슬레이브 가상 머신 관리자(230)의 프로그램을 슬레이브 자원(예를 들어, 슬레이브 가상 머신 관리자(230)에 할당된 CPU)에 로드하고, 마스터 가상 머신 관리자(220)는 슬레이브 자원의 중앙 처리 장치를 이용하여 슬레이브 가상 머신 관리자(230)을 시작할 수 있다. 마스터 가상 머신 관리자(220)는 마스터 자원을 이용하여 클라이언트 가상 머신(예를 들어, 제1 클라이언트 가상 머신(241))을 동기적으로 시작할 수 있다. 슬레이브 가상 머신 관리자(230)는 동작에 필요한 슬레이브 자원을 초기화할 수 있고, 동시에 마스터 가상 머신 관리자(220)도 초기화 중이거나 실행 중이다. 슬레이브 가상 머신 관리자(230)는 슬레이브 자원을 이용하여 클라이언트 가상 머신(예를 들어, 제2 클라이언트 가상 머신(242))을 시작할 수 있다. 마지막으로, 마스터 가상 머신 관리자(220) 및 슬레이브 가상 머신 관리자(230)는 각각의 자원을 이용하여 동기적으로 각각의 클라이언트 가상 머신을 실행할 수 있다. 따라서, 마스터 가상 머신 관리자(220)와 슬레이브 가상 머신 관리자(230)의 병렬 동작은 하드웨어 충돌 없이 동일한 하드웨어 권한 레벨에서 동작할 수 있다.
도 3은 예시적인 실시예에 따른 마스터 가상 머신 관리자에 의해 수행되는 동작의 흐름도이다.
도 3을 참조하면, 단계(S310)에서 마스터 가상 머신 관리자가 시작되면, 마스터 가상 머신 관리자는 슬레이브 가상 머신 관리자에게 제1 유형의 하드웨어 자원의 자원 구성 테이블을 구성할 수 있다.
여기서, 제1 유형의 하드웨어 자원의 자원 구성 테이블은 슬레이브 가상 머신 관리자가 직접 운용할 수 있고 마스터 가상 머신 관리자에 의해 공유되지 않는 하나 이상의 하드웨어 자원을 나타낼 수 있다. 예를 들어, 슬레이브 가상 머신 관리자는 수신된 제1 유형의 하드웨어 자원의 자원 구성 테이블에 따라 제1 유형의 하드웨어 자원을 직접 운용할 수 있다. 예를 들어, 슬레이브 가상 머신 관리자는 제1 유형의 하드웨어 자원을 사용하거나 제1 유형의 하드웨어 자원의 사용을 조정하기 위한 추가 권한이 필요하지 않을 수 있다.
단계(S320)에서, 마스터 가상 머신 관리자는 제2 유형의 하드웨어 자원을 요청하는 인터페이스 테이블을 슬레이브 가상 머신 관리자에게 제공할 수 있다.
예를 들어, 제2 유형의 하드웨어 자원은 제2 유형의 하드웨어 자원의 인터페이스 테이블을 통해 슬레이브 가상 머신 관리자에 의해 운용될 수 있다. 따라서 슬레이브 가상 머신 관리자가 사용할 수 있는 하드웨어 자원은 필요에 따라 확장될 수 있다.
일 실시예에서, 마스터 가상 머신 관리자는 또한 마스터 가상 머신 관리자와 슬레이브 가상 머신 관리자 사이에서 이벤트 메시지를 공유하기 위한 공유 메모리를 할당할 수 있다. 따라서, 할당된 공유 메모리를 통해 마스터 가상 머신 관리자의 관리 하에 슬레이브 가상 머신 관리자가 더욱 안정적으로 실행될 수 있다. 이하, 도 4를 참조하여 상세히 설명한다.
도 4는 예시적인 실시예에 따른 마스터 가상 머신 관리자의 할당 방법의 흐름도이다.
도 4를 참조하면, 단계(S410)에서 마스터 가상 머신 관리자는 마스터 가상 머신 관리자와 슬레이브 가상 머신 관리자가 이벤트 메시지를 공유할 수 있도록 공유 메모리를 할당할 수 있다.
여기서, 공유 메모리는 마스터 가상 머신 관리자가 인터페이스를 통해 슬레이브 가상 머신 관리자와 공유하는 복수의 저장 유닛의 집합체일 수 있다. 예를 들어, 공유 메모리는 마스터 가상 머신 관리자에 의해 분할되고 결정될 수 있다. 또한, 공유 메모리는 마스터 가상 머신 관리자와 슬레이브 가상 머신 관리자사이의 통신 요구 사항 및/또는 이미지 버퍼 공유를 충족하는 데 사용될 수 있다.
예를 들어, 마스터 가상 머신 관리자는 처음에 시스템의 전역 메모리에 대한 액세스 권한을 가질 수 있다. 다음으로 마스터 가상 머신 관리자는 마스터 가상 머신 관리자와 슬레이브 가상 머신 관리자가 액세스할 수 있는 서로 다른 메모리 범위를 제공한다. 마스터 가상 머신 관리자는 메모리 범위의 일부를 인터페이스를 통해 슬레이브 가상 머신 관리자와 마스터 가상 머신 관리자가 운용할 수 있는 공유 메모리로 보류할 수 있다. 인터페이스는 공유 메모리 인터페이스라고도 할 수 있다. 공유 메모리 인터페이스는 마스터 가상 머신 관리자와 슬레이브 가상 머신 관리자에 의해 초기화 및 호출될 수 있으며, 보류된 공유 메모리에 대해 매핑할 수 있다. 또한, 마스터 가상 머신 관리자와 슬레이브 가상 머신 관리자는 공유 메모리 인터페이스의 일부일 수 있는 선택적 잠금 인터페이스의 호출을 통해 신호 동기화를 달성할 수 있다.
마스터 가상 머신 관리자와 슬레이브 가상 머신 관리자는 공유 메모리를 통해 이벤트 메시지를 공유할 수 있으므로, 마스터 가상 머신 관리자는 슬레이브 가상 머신 관리자를 효율적으로 관리하여 가상 머신 관리자 시스템이 보다 안정적으로 실행된다. 일 예에서, 이벤트 메시지는 마스터 가상 머신 관리자에 의해 운용되는 슬레이브 가상 머신 관리자의 동작 상태를 포함할 수 있다. 따라서 마스터 가상 머신 관리자는 공유 메모리를 통해 슬레이브 가상 머신 관리자의 동작 상태를 효율적으로 관리할 수 있다.
일 실시예에서, 인터페이스 테이블은 제2 유형의 하드웨어 자원 및 대응하는 동작 인터페이스를 포함할 수 있다. 슬레이브 가상 머신 관리자로부터 제2 유형의 하드웨어 자원을 요청할 때, 슬레이브 가상 머신 관리자는 요청된 제2 유형의 하드웨어 자원에 대응하는 동작 인터페이스를 호출하고, 요청된 제2 유형의 하드웨어 자원의 이벤트를 공유 메모리에 기입하며, 프로세서 간 인터럽트(Inter Processor Interrupt, IPI) 메시지를 통해 마스터 가상 머신 관리자에게 알릴 수 있다. 다음, 마스터 가상 머신 관리자는 IPI 관리자에 의해 슬레이브 가상 머신 관리자가 보낸 IPI 메시지를 수신하고 공유 메모리에서 이벤트를 독출하고, 이벤트에 따라 마스터 가상 머신 관리자에서의 제2 유형의 하드웨어 자원의 인터페이스 테이블을 호출하여 슬레이브 가상 머신 관리자가 요청한 제2 유형의 하드웨어 자원을 결정하며, 요청된 제2 유형의 하드웨어 자원을 동작할 수 있다.
예를 들어, 프로세서 간 인터럽트(Inter Processor Interrupt, IPI) 메시지는 마스터 가상 머신 관리자와 슬레이브 가상 머신 관리자 사이에 이벤트가 존재하는지 여부를 전송하기 위한 메시지일 수 있다. 공유 메모리는 마스터 가상 머신 관리자와 슬레이브 가상 머신 관리자 간에 이벤트를 전송하는 데 사용될 수 있다. 일 예에서, 이벤트는 슬레이브 가상 머신 관리자로부터의 제2 유형의 하드웨어 자원에 대한 요청을 포함할 수 있고/있거나 슬레이브 가상 머신 관리자가 제2 유형의 하드웨어 자원을 운용하게 하는 마스터 가상 머신 관리자에 대한 정보를 포함할 수 있다. 그러나, 위의 내용은 예시일 뿐이며, 본 발명의 이벤트가 반드시 이에 한정되는 것은 아니며, 마스터 가상 머신 관리자와 슬레이브 가상 머신 관리자 간의 통신이 필요한 임의의 이벤트 또는 메시지일 수 있다.
다음, 마스터 가상 머신 관리자는 인터페이스 테이블을 호출하고, 요청된 제2 유형의 하드웨어 자원의 운영 결과의 이벤트를 공유 메모리에 기입하고, IPI 메시지를 통해 슬레이브 가상 머신 관리자에게 알릴 수 있다. 슬레이브 가상 머신 관리자는 마스터 가상 머신 관리자가 보낸 IPI 메시지를 수신하고, 공유 메모리에서 운영 결과의 이벤트를 독출하고, 슬레이브 가상 머신 관리자에서 제2 유형의 하드웨어 자원의 인터페이스 테이블을 호출하여 운영 결과를 획득할 수 있다. 따라서, 위의 동작들을 통해 슬레이브 가상 머신 관리자는 마스터 가상 머신 관리자의 관리하에 제2 유형의 하드웨어 자원을 운용할 수 있다.
도 5는 예시적인 실시예에 따른 마스터 가상 머신 관리자와 슬레이브 가상 머신 관리자 간의 통신을 나타내는 도면이다.
도 5를 참조하면, 마스터 가상 머신 관리자(510)와 슬레이브 가상 머신 관리자(520) 사이에는 통신 채널(530)이 존재할 수 있다. 마스터 가상 머신 관리자(510) 및 슬레이브 가상 머신 관리자(520)는 공유 메모리를 기반으로 메시지를 전송하기 위한 통신 채널(530)을 구축할 수 있다.
일 예로, 마스터 가상 머신 관리자(510)와 슬레이브 가상 머신 관리자(520) 간의 통신은 비동기적일 수 있고, IPI 관리자(541, 542) 및 공유 메모리를 통해 구현될 수 있다.
예를 들어, 마스터 가상 머신 관리자(510) 및 슬레이브 가상 머신 관리자(520)는 수신된 메시지를 처리하기 위한 통신 메시지 핸들러를 등록할 수 있다. 마스터 가상 머신 관리자(510)와 슬레이브 가상 머신 관리자(520)는 통신을 식별하기 위해 지정된 프로세서 간 인터럽트 번호를 결정할 수 있다.
마스터 가상 머신 관리자(510)와 슬레이브 가상 머신 관리자(520)는 프로세서 간 인터럽트를 통해 통신을 식별하고 공유 메모리를 통한 통신을 실현할 수 있으므로, 마스터 가상 머신 관리자(510)와 슬레이브 가상 머신 관리자(520) 간의 원활한 통신이 보장될 수 있다. 여기에서 사용된 "원활한"은 신뢰성이 증가하고, 예상되는 기능에서 인터럽트가 감소하거나 없고, 및/또는 하드웨어 또는 소프트웨어 자원의 효율적인 사용을 나타낼 수 있다.
일 예로, 슬레이브 가상 머신 관리자(520)는 통신 채널(530)에 메시지(예: 슬레이브 가상 머신 관리자(520)의 동작 상태에 대한 이벤트 메시지)를 기입할 수 있다. 마스터 가상 머신 관리자(510)는 IPI 관리자(541)를 통해 IPI 관리자(542)로부터 프로세서 간 인터럽트 메시지를 수신하고, 슬레이브 가상 머신 관리자(520)와 마스터 가상 머신 관리자(510) 간의 통신을 식별한다. 슬레이브 가상 머신 관리자(520)와 마스터 가상 머신 관리자(510) 간의 통신을 식별한 것에 응답하여, 마스터 가상 머신 관리자(510)는 통신 채널(530)로부터 메시지를 독출하고, 독출된 메시지를 처리하기 위해 대응되는 메시지 핸들러를 호출할 수 있다.
마스터 가상 머신 관리자(510)는 처리 결과(예를 들어, 슬레이브 가상 머신 관리자(520)의 동작 상태에 대한 이벤트 메시지의 처리 결과)를 통신 채널(530)에 기입할 수 있다. 마스터 가상 머신 관리자(510)는 IPI 관리자(541)를 통해 슬레이브 가상 머신 관리자(520)의 IPI 관리자(542)로 프로세서 간 인터럽트 메시지를 전송할 수 있다. 다음, 슬레이브 가상 머신 관리자(520)는 IPI 관리자(542)를 통해 수신된 프로세서 간 인터럽트 메시지를 마스터 가상 머신 관리자(510)와 슬레이브 가상 머신 관리자(520) 사이의 통신으로 식별할 수 있다. 마스터 가상 머신 관리자(510)와 슬레이브 가상 머신 관리자(520) 사이의 통신을 식별하는 것에 응답하여, 슬레이브 가상 머신 관리자(520)는 통신 채널(530)로부터 메시지를 독출하고 독출된 메시지를 처리하기 위해 대응하는 메시지 핸들러를 호출할 수 있다.
위의 예시에서의 메시지는 슬레이브 가상 머신 관리자(520)의 동작 상태에 대한 이벤트 메시지로 설명되었지만, 본 발명의 마스터 가상 머신 관리자(510)와 슬레이브 가상 머신 관리자(520) 사이에 전달되는 메시지는 반드시 이에 한정되는 것은 아니다. 마스터 가상 머신 관리자(510)와 슬레이브 가상 머신 관리자(520) 사이에서 전달되는 메시지는 다른 임의의 메시지(예: 데이터를 요청하는 메시지, 주소를 요청하는 메시지 등)일 수 있다.
공유 메모리를 기반으로 하는 통신 채널 및 대응하는 통신 메커니즘은 도 6 및 도 7를 참조하여 아래에서 더 상세히 설명된다.
도 6은 예시적인 실시예에 따른 공유 메모리 기반 통신 채널을 통한 통신을 나타내는 도면이다. 도 7은 예시적인 실시예에 따른 마스터 가상 머신 관리자 및 슬레이브 가상 머신 관리자의 도 6에 기초한 통신 메커니즘의 타이밍도이다.
도 6을 참조하면, 본 발명의 일 실시예에 따른 공유 메모리 기반 통신 채널의 내부 구조는 링 큐를 이용하여 구현될 수 있다. 링 큐를 사용하여 공유 메모리 기반 통신 채널을 구현하기 때문에 통신 채널의 설계를 단순화하고 효율성을 높일 수 있다.
예를 들어, 도 6 및 도 7을 참조하면, 마스터 가상 머신 관리자(610)와 슬레이브 가상 머신 관리자(620)는 메시지 처리를 위한 각각의 통신 메시지 핸들러를 등록할 수 있다. 마스터 가상 머신 관리자(610)는 마스터 가상 머신 관리자(610)에 대응하는 마스터 링 큐(631)에 정보(또는 이벤트)를 기입하고, IPI 통신을 통해 슬레이브 가상 머신 관리자(620)에 이벤트 알림을 전송할 수 있다.
이벤트 알림을 수신한 것에 응답하여, 슬레이브 가상 머신 관리자(620)는 마스터 가상 머신 관리자(610)에 대응하는 마스터 링 큐(631)로부터 메시지를 독출하고 독출된 메시지를 처리할 수 있다. 다음, 슬레이브 가상 머신 관리자(620)는 슬레이브 가상 머신 관리자(620)에 대응하는 슬레이브 링 큐(632)에 메시지(예를 들어, 독출된 메시지의 처리 결과 또는 이벤트 응답)를 기입하고, 이벤트 응답 알림을 IPI 통신을 통해 마스터 가상 머신 관리자(610)로 전송할 수 있다. 마스터 가상 머신 관리자(610)는 슬레이브 가상 머신 관리자(620)에 대응하는 슬레이브 링 큐(632)로부터 메시지(또는 이벤트 응답)를 독출할 수 있다. 이후, 마스터 가상 머신 관리자(610)는 독출된 메시지를 처리할 수 있다.
일례로, 마스터 링 큐(631)와 슬레이브 링 큐(632)는 도 6의 우측 부분에서 도시된 이벤트 링 큐에 대응하는 구조를 가질 수 있다. 이벤트 링 큐는 요청 기입 위치, 요청 이벤트, 요청 독출 위치, 응답 기입 위치, 응답 이벤트 및/또는 응답 독출 위치를 포함할 수 있다.
도 8은 예시적인 실시예에 따른 하이브리드 가상 머신 관리자의 동작 방법을 도시한다.
도 8을 참조하면, 단계(S810)에서, 가상 머신 관리자 시스템은 마스터 가상 머신 관리자에 의해 슬레이브 가상 머신 관리자에게 제1 유형의 하드웨어 자원 및 제2 유형의 하드웨어 자원을 할당할 수 있다.
본 개시에 따른 하이브리드 가상 머신 관리자의 동작 방법은 도 1 내지 도 7 중 적어도 하나를 참조하여 설명된 마스터 가상 머신 관리자에 의해 수행되는 하나 이상의 동작 및 슬레이브 가상 머신 관리자에 의해 수행되는 하나 이상의 동작을 포함할 수 있다. 또한, 마스터 가상 머신 관리자, 슬레이브 가상 머신 관리자, 제1 유형의 하드웨어 자원 및 제2 유형의 하드웨어 자원은 각각 도 1 내지 도 7 중 적어도 하나를 참조하여 설명된 마스터 가상 머신 관리자, 슬레이브 가상 머신 관리자, 제1 유형의 하드웨어 자원 및 제2 유형의 하드웨어 자원일 수 있다. 따라서, 설명의 편의를 위해 마스터 가상 머신 관리자, 슬레이브 가상 머신 관리자, 제1 유형의 하드웨어 자원 및 제2 유형의 하드웨어 자원에 대한 중복 설명은 이하의 설명에서 생략될 수 있다.
본 발명의 일 실시예에 따른 가상 머신 관리자 시스템에서, 마스터 가상 머신 관리자를 이용하여 제1 유형의 하드웨어 자원과 제2 유형의 하드웨어 자원을 슬레이브 가상 머신 관리자에게 할당함으로써, 마스터 가상 머신 관리자와 슬레이브 가상 머신 관리자에 의한 하드웨어 제어는 서로 격리된다. 그러므로 하드웨어 충돌 없이 마스터 가상 머신 관리자와 슬레이브 가상 머신 관리자가 동일한 하드웨어 권한 레벨에서 병렬 동작할 수 있으며 시스템의 성능 저하를 방지할 수 있다.
본 발명의 일 실시예에 따른 가상 머신 관리자 시스템에서, 마스터 가상 머신 관리자는 슬레이브 가상 머신 관리자의 동작 상태를 관리할 수 있다. 따라서 슬레이브 가상 머신 관리자는 마스터 가상 머신 관리자의 관리 하에 더욱 안정적으로 실행될 수 있다.
본 발명의 일 실시예에 따른 가상 머신 관리자 시스템에서, 마스터 가상 머신 관리자와 슬레이브 가상 머신 관리자는, 공유 메모리를 통해 예를 들어, 슬레이브 가상 머신 관리자의 동작 상태에 대한 이벤트 메시지를 전달할 수 있으므로, 마스터 가상 머신 관리자는 슬레이브 가상 머신 관리자의 동작 상태를 효율적으로 관리하여 가상 머신 관리자 시스템이 향상된 안정성으로 실행될 수 있다.
본 발명의 일 실시예에 따른 가상 머신 관리자 시스템에서는, 마스터 가상 머신 관리자와 슬레이브 가상 머신 관리자가 프로세서간 인터럽트를 통해 통신을 식별하고, 공유 메모리를 통해 통신을 실현할 수 있으므로, 마스터 가상 머신 관리자와 슬레이브 가상 머신 관리자사이의 원활한 통신이 보장될 수 있다.
본 발명의 일 실시예에 따른 가상 머신 관리자 시스템에서는 공유 메모리 기반 통신 채널의 내부 구조를 링 큐로 구현함으로써 통신 채널의 설계를 단순화하고 효율성을 높일 수 있다.
일 실시예에 따르면, 상술한 프로세서는 하드웨어, 하드웨어 및 소프트웨어의 조합 또는 기능을 수행하기 위한 실행 가능한 소프트웨어를 저장하는 비일시적 저장 매체를 이용하여 구현될 수 있다.
하드웨어는 하나 이상의 프로세서, 하나 이상의 CPU(중앙 처리 장치), 하나 이상의 컨트롤러, 하나 이상의 산술 로직 장치(ALU), 하나 이상의 디지털 신호 프로세서(DSP), 하나 이상의 마이크로컴퓨터, 하나 이상의 필드 프로그래머블 게이트 어레이(Field Programmable Gate Array, FPGA), 하나 이상의 시스템 온 칩 (System-on-Chip, SoC), 하나 이상의 프로그래밍 가능한 로직 장치(PLU), 하나 이상의 마이크로프로세서, 하나 이상의 애플리케이션 특정 집적 회로 (Application Specific Integrated Circuit, ASIC) 또는 정의된 방식으로 명령에 응답하고 실행할 수 있는 기타 장치와 같은 처리 회로를 사용하여 구현될 수 있지만 이에 의해 제한되지 않는다.
소프트웨어는 하드웨어 장치가 원하는 대로 작동하도록 독립적으로 또는 집합적으로 지시하거나 구성하기 위한 컴퓨터 프로그램, 프로그램 코드, 명령 또는 이들의 일부 조합을 포함할 수 있다. 컴퓨터 프로그램 및/또는 프로그램 코드는 위에서 언급한 하드웨어 장치와 같은 하나 이상의 하드웨어 장치에 의해 구현될 수 있는 프로그램 또는 컴퓨터 판독 가능 명령, 소프트웨어 구성요소, 소프트웨어 모듈, 데이터 파일, 데이터 구조 등을 포함할 수 있다. 프로그램 코드의 예시는 컴파일러에 의해 생성된 머신 코드와 머신 코드를 생성하기 위해 컴파일되거나 인터프리터를 사용하여 실행되는 상위 레벨 프로그램 코드를 모두 포함한다.
예를 들어, 하드웨어 장치가 컴퓨터 처리 장치(예: 하나 이상의 프로세서, CPU, 컨트롤러, ALU, DSP, 마이크로컴퓨터, 마이크로프로세서 등)인 경우, 컴퓨터 처리 장치는 프로그램 코드에 따라 산술 연산, 논리 연산 및 입력/출력 동작을 수행할 수 있다. 프로그램 코드가 컴퓨터 처리 장치에 로드되면, 컴퓨터 처리 장치는 프로그램 코드를 실행하도록 구성되어 컴퓨터 처리 장치를 특수 목적의 컴퓨터 처리 장치로 변환할 수 있다. 일 예에서, 프로그램 코드가 프로세서에 로드되면, 프로세서는 프로그램 코드 및 이에 대응하는 동작을 수행하도록 프로그램되어 프로세서를 특수 목적 프로세서로 변환한다. 다른 예에서, 하드웨어 장치는 특수 목적 처리 회로(예를 들어, ASIC)로 맞춤화된 집적 회로일 수 있다.
컴퓨터 처리 장치와 같은 하드웨어 장치는 운영 체제(OS) 및 OS에서 실행되는 하나 이상의 소프트웨어 응용 프로그램을 실행할 수 있다. 컴퓨터 처리 장치는 또한 소프트웨어 실행에 응답하여 데이터에 대해 액세스, 저장, 조작, 처리 및 생성 처리를 실행할 수 있다. 단순화를 위해, 하나 이상의 예시적인 실시예는 하나의 컴퓨터 처리 장치에서 구현될 수 있다. 그러나, 당업자는 하드웨어 장치가 다중 처리 요소 및 다중 유형의 처리 요소를 포함할 수 있음을 이해할 것이다. 예를 들어, 하드웨어 장치는 다중 프로세서 또는 프로세서와 컨트롤러를 포함할 수 있다. 또한 병렬 프로세서 또는 네트워크로 연결된 여러 서버/컴퓨터와 같은 다른 처리 구성이 가능하다.
소프트웨어 및/또는 데이터는 모든 기계, 구성 요소, 물리적 또는 가상 장비, 컴퓨터 저장 매체 또는 명령이나 데이터를 하드웨어 장치에 제공할 수 있거나 하드웨어 장치에 의해 해석될 수 있는 장치를 포함하는 임의 유형의 저장 매체에 영구적으로 또는 일시적으로 구현될 수 있으나 이에 한정되지 않는다. 소프트웨어는 또한 네트워크 연결 컴퓨터 시스템을 통해 배포되어 소프트웨어가 분산 방식으로 저장되고 실행될 수 있다. 특히, 예를 들어, 소프트웨어 및 데이터는 본 명세서에서 논의되는 유형 또는 비일시적 컴퓨터 판독 가능 저장 매체를 포함하는 하나 이상의 컴퓨터 판독 가능 기록 매체에 의해 저장될 수 있다.
하나 이상의 하드웨어 장치, 저장 매체, 컴퓨터 프로그램, 프로그램 코드, 명령, 또는 이들의 일부 조합은 예시적인 실시예의 목적을 위해 특별히 설계 및 구성될 수 있거나, 또는 본 개시 내용의 실시예를 구현하기 위해 변경 및/또는 수정된 알려진 장치일 수 있다.
전술한 내용은 예시적인 실시예를 예시하는 것이며 본 발명을 제한하는 것으로 해석되지 말아야 한다. 일부 예시적인 실시예가 설명되었지만, 당업자는 본 발명의 예시적인 실시예를 실질적으로 벗어남이 없이 예시적인 실시예에 대한 많은 수정이 가능함을 쉽게 이해할 것이다. 따라서, 이러한 모든 변형은 청구 범위에 정의된 본 발명의 기술적 사상의 범위에 포함되는 것으로 의도된다.

Claims (10)

  1. 하이브리드 가상 머신 관리자 시스템으로서,
    마스터 가상 머신 관리자; 및
    하나 이상의 슬레이브 가상 머신 관리자를 포함하며, 상기 마스터 가상 머신 관리자 및 상기 하나 이상의 슬레이브 가상 머신 관리자는 서로 다른 유형이고,
    상기 마스터 가상 머신 관리자는 제1 유형의 하드웨어 자원 및 제2 유형의 하드웨어 자원을 상기 하나 이상의 슬레이브 가상 머신 관리자에 할당하도록 구성되고,
    상기 제1 유형의 하드웨어 자원은 상기 하나 이상의 슬레이브 가상 머신 관리자에 의해 직접 작동될 수 있는 하드웨어 자원이고, 할당된 슬레이브 가상 머신 관리자에 의해서만 사용되며,
    상기 제2 유형의 하드웨어 자원은 상기 마스터 가상 머신 관리자에 의해 관리되는 하드웨어 자원인 것을 특징으로 하는 하이브리드 가상 머신 관리자 시스템.
  2. 제1항에 있어서,
    상기 마스터 가상 머신 관리자는,
    상기 마스터 가상 머신 관리자가 시작될 때 상기 하나 이상의 슬레이브 가상 머신 관리자에 대한 상기 제1 유형의 하드웨어 자원의 자원 구성 테이블을 생성하고; 및
    상기 하나 이상의 슬레이브 가상 머신 관리자에게 상기 제2 유형의 하드웨어 자원을 요청하기 위한 인터페이스 테이블을 제공하도록 구성되는 것을 특징으로 하는 하이브리드 가상 머신 관리자 시스템.
  3. 제2항에 있어서, 상기 자원 구성 테이블은 상기 제1 유형의 하드웨어 자원에 대한 주소 정보를 포함하고,
    상기 하나 이상의 슬레이브 가상 머신 관리자가 상기 제1 유형의 하드웨어 자원을 요청할 때, 상기 하나 이상의 슬레이브 가상 머신 관리자는 상기 자원 구성 테이블의 요청된 제1 유형의 하드웨어 자원의 주소 정보에 따라 상기 요청된 제1 유형의 하드웨어 자원을 직접 동작하도록 구성되는 것을 특징으로 하는 하이브리드 가상 머신 관리자 시스템.
  4. 제2항에 있어서, 상기 마스터 가상 머신 관리자는 이벤트 메시지를 공유하기 위해 상기 마스터 가상 머신 관리자 및 상기 하나 이상의 슬레이브 가상 머신 관리자를 위한 공유 메모리를 할당하도록 더 구성되는 것을 특징으로 하는 하이브리드 가상 머신 관리자 시스템.
  5. 제4항에 있어서, 상기 인터페이스 테이블은 상기 제2 유형의 하드웨어 자원에 대한 참조 및 대응하는 동작 인터페이스를 포함하고,
    상기 하나 이상의 슬레이브 가상 머신 관리자가 상기 제2 유형의 하드웨어 자원을 요청할 때, 상기 하나 이상의 슬레이브 가상 머신 관리자는 요청된 제2 유형의 하드웨어 자원에 대응하는 상기 동작 인터페이스를 호출하고, 상기 요청된 제2 유형의 하드웨어 자원의 이벤트를 상기 공유 메모리에 기입하며, 프로세서 간 인터럽트(IPI) 메시지를 통해 상기 마스터 가상 머신 관리자에게 알리도록 더 구성되며,
    상기 마스터 가상 머신 관리자는 상기 하나 이상의 슬레이브 가상 머신 관리자에 의해 전송된 상기 IPI 메시지를 수신하고, 상기 공유 메모리로부터 상기 이벤트를 독출하고, 상기 이벤트에 기초하여 상기 마스터 가상 머신 관리자에서의 상기 제2 유형의 하드웨어 자원의 상기 인터페이스 테이블을 호출하여 상기 하나 이상의 슬레이브 가상 머신 관리자에 의해 요청된 상기 제2 유형의 하드웨어 자원을 결정하며, 상기 요청된 제2 유형의 하드웨어 자원을 동작하도록 더 구성되며,
    상기 마스터 가상 머신 관리자는 상기 인터페이스 테이블을 호출하고, 상기요청된 제2 유형의 하드웨어 자원의 동작 결과의 이벤트를 상기 공유 메모리에 기입하고, 상기 IPI 메시지를 통해 상기 하나 이상의 슬레이브 가상 머신 관리자에게 알리고,
    상기 하나 이상의 슬레이브 가상 머신 관리자는 상기 마스터 가상 머신 관리자에 의해 전송된 상기 IPI 메시지를 수신하고, 상기 공유 메모리에서 상기 동작 결과의 상기 이벤트를 독출하며, 상기 하나 이상의 슬레이브 가상 머신 관리자에서의 상기 제2 유형의 하드웨어 자원의 상기 인터페이스 테이블을 호출하여 상기 동작 결과를 획득하도록 더 구성되는 것을 특징으로 하는 하이브리드 가상 머신 관리자 시스템.
  6. 제4항에 있어서,
    상기 이벤트 메시지는 상기 마스터 가상 머신 관리자에 의해 관리되는 상기하나 이상의 슬레이브 가상 머신 관리자의 동작 상태를 포함하는 것을 특징으로 하는 하이브리드 가상 머신 관리자 시스템.
  7. 제1항에 있어서, 상기 제1 유형의 하드웨어 자원은 중앙 처리 장치, 물리적 저장 영역, 또는 물리적으로 분할될 수 있는 다른 하드웨어 자원을 포함하고, 상기 제2 유형의 하드웨어 자원은 인터럽트 컨트롤러를 포함하는 것을 특징으로 하는 하이브리드 가상 머신 관리자 시스템.
  8. 마스터 가상 머신 관리자 및 하나 이상의 슬레이브 가상 머신 관리자를 포함하는 하이브리드 가상 머신 관리자를 동작하는 방법으로서,
    상기 마스터 가상 머신 관리자가 상기 하나 이상의 슬레이브 가상 머신 관리자에게 제1 유형의 하드웨어 자원 및 제2 유형의 하드웨어 자원을 할당하는 단계를 포함하며,
    상기 마스터 가상 머신 관리자 및 상기 하나 이상의 슬레이브 가상 머신 관리자는 서로 다른 유형의 가상 머신 관리자이고,
    상기 제1 유형의 하드웨어 자원은 상기 하나 이상의 슬레이브 가상 머신 관리자에 의해 직접 동작될 수 있는 하드웨어 자원이고 할당된 슬레이브 가상 머신 관리자에 의해서만 사용되며;
    상기 제2 유형의 하드웨어 자원은 상기 마스터 가상 머신 관리자에 의해 관리되는 하드웨어 자원인 것을 특징으로 하는 방법.
  9. 제8항에 있어서, 상기 마스터 가상 머신 관리자가 상기 제1 유형의 하드웨어 자원 및 상기 제2 유형의 하드웨어 자원을 상기 하나 이상의 슬레이브 가상 머신 관리자에게 할당하는 단계는,
    상기 마스터 가상 머신 관리자가 시작될 때 상기 하나 이상의 슬레이브 가상 머신 관리자에 대한 상기 제1 유형의 하드웨어 자원의 자원 구성 테이블을 생성하는 단계; 및
    상기 제2 유형의 하드웨어 자원을 요청하는 인터페이스 테이블을 상기 하나 이상의 슬레이브 가상 머신 관리자에게 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
  10. 제9항에 있어서, 상기 자원 구성 테이블은 상기 제1 유형의 하드웨어 자원에 대한 참조 및 상기 제1 유형의 하드웨어 자원의 대응하는 주소 정보를 포함하며,
    상기 하나 이상의 슬레이브 가상 머신 관리자가 상기 제1 유형의 하드웨어 자원을 요청할 때, 상기 하나 이상의 슬레이브 가상 머신 관리자에 의해 상기 자원 구성 테이블의 요청된 제1 유형의 하드웨어 자원의 주소 정보에 따라 상기 요청된 제1 유형의 하드웨어 자원을 직접 동작하는 단계를 더 포함하는 것을 특징으로 하는 방법.
KR1020220111675A 2021-09-02 2022-09-02 하이브리드 가상 머신 관리자의 시스템 및 동작 방법 KR20230034195A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111026223.1 2021-09-02
CN202111026223.1A CN113934509A (zh) 2021-09-02 2021-09-02 支持混合虚拟机管理器的系统和运行方法

Publications (1)

Publication Number Publication Date
KR20230034195A true KR20230034195A (ko) 2023-03-09

Family

ID=79274865

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220111675A KR20230034195A (ko) 2021-09-02 2022-09-02 하이브리드 가상 머신 관리자의 시스템 및 동작 방법

Country Status (3)

Country Link
US (1) US20230067658A1 (ko)
KR (1) KR20230034195A (ko)
CN (1) CN113934509A (ko)

Also Published As

Publication number Publication date
US20230067658A1 (en) 2023-03-02
CN113934509A (zh) 2022-01-14

Similar Documents

Publication Publication Date Title
JP6355114B2 (ja) リソース処理方法、オペレーティング・システム、およびデバイス
US9760408B2 (en) Distributed I/O operations performed in a continuous computing fabric environment
US9519795B2 (en) Interconnect partition binding API, allocation and management of application-specific partitions
US8327372B1 (en) Virtualization and server imaging system for allocation of computer hardware and software
EP0321724B1 (en) Apparatus and method for alterable resource partitioning enforcement in a data processing system having central processing units using different operating systems
US5230065A (en) Apparatus and method for a data processing system having a peer relationship among a plurality of central processing units
JP2016541072A5 (ko)
KR101823505B1 (ko) 계산 작업을 처리하기 위한 컴퓨터 클러스터 장치 및 이를 작동시키기 위한 방법
WO2018119952A1 (zh) 一种设备虚拟化方法、装置、系统及电子设备、计算机程序产品
US10635499B2 (en) Multifunction option virtualization for single root I/O virtualization
JP6564838B2 (ja) インダストリアル・インターネットオペレーティングシステムに基づくマルチオペレーティングシステム運行方法および装置
US11860737B2 (en) System and method for coordinating use of multiple coprocessors
CN111213127B (zh) 用于直接分配的设备的虚拟化操作
US11334477B2 (en) Virtualization of multiple coprocessor memory
US9804877B2 (en) Reset of single root PCI manager and physical functions within a fabric
US20160077847A1 (en) Synchronization of physical functions and virtual functions within a fabric
CN114816655A (zh) 用于安全容器的设备访问方法及系统
KR20160105636A (ko) 멀티 노드 시스템의 서버 가상화 방법 및 그 장치
KR102092459B1 (ko) 컨테이너 기반 가상화 환경에서 gpu 메모리 자원 관리 및 스케줄링 방법 및 시스템
KR20230034195A (ko) 하이브리드 가상 머신 관리자의 시스템 및 동작 방법
CN116324706A (zh) 分离式存储器池分配
US8402191B2 (en) Computing element virtualization
US9547522B2 (en) Method and system for reconfigurable virtual single processor programming model
US10528391B1 (en) Execution manager for binary objects operating across private address spaces
US20240036935A1 (en) Lcs sdxi resource ownership system