KR102505996B1 - Apparatus for remote processing for virtual machine processor and method for the same - Google Patents

Apparatus for remote processing for virtual machine processor and method for the same Download PDF

Info

Publication number
KR102505996B1
KR102505996B1 KR1020170148124A KR20170148124A KR102505996B1 KR 102505996 B1 KR102505996 B1 KR 102505996B1 KR 1020170148124 A KR1020170148124 A KR 1020170148124A KR 20170148124 A KR20170148124 A KR 20170148124A KR 102505996 B1 KR102505996 B1 KR 102505996B1
Authority
KR
South Korea
Prior art keywords
processor
virtual
context
virtual processor
virtualization
Prior art date
Application number
KR1020170148124A
Other languages
Korean (ko)
Other versions
KR20190052440A (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 KR1020170148124A priority Critical patent/KR102505996B1/en
Publication of KR20190052440A publication Critical patent/KR20190052440A/en
Application granted granted Critical
Publication of KR102505996B1 publication Critical patent/KR102505996B1/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

본 개시의 일 실시 예에 따른 가상 머신 프로세서의 원격 처리 장치는 제1 프로세서 모듈에 대응되는 제1가상 프로세서를 구비하며, 가상 프로세서 컨텍스트의 처리를 위해 요구되는 외부 장치의 제어, 상기 외부 장치로부터 제공되는 데이터의 관리, 상기 가상 프로세서 컨텍스트의 수행을 제어하는 제1가상화 처리부와, 제2 프로세서 모듈에 대응되는 제2가상 프로세서를 구비하며, 상기 제1가상화 처리부로부터 상기 가상 프로세서 컨텍스트의 처리를 요청받고, 처리 요청된 상기 가상 프로세서 컨텍스트를 처리하는 제2가상화 처리부를 포함할 수 있다.A remote processing device for a virtual machine processor according to an embodiment of the present disclosure includes a first virtual processor corresponding to a first processor module, controls an external device required for processing of a virtual processor context, and provides information from the external device. A first virtualization processing unit for controlling the management of data to be processed and the execution of the virtual processor context, and a second virtual processor corresponding to a second processor module, receiving a request for processing the virtual processor context from the first virtualization processing unit , and may include a second virtualization processing unit that processes the requested virtual processor context.

Figure R1020170148124
Figure R1020170148124

Description

가상 머신 프로세서의 원격 처리 장치 및 방법{APPARATUS FOR REMOTE PROCESSING FOR VIRTUAL MACHINE PROCESSOR AND METHOD FOR THE SAME}Apparatus and method for remote processing of virtual machine processor

본 개시는 컴퓨팅 시스템에 관한 것이며, 보다 구체적으로는 가상 머신 프로세서에서 처리되는 컨텍스트를 처리하는 방법 및 장치에 대한 것이다.The present disclosure relates to a computing system, and more particularly to a method and apparatus for processing a context processed in a virtual machine processor.

프로세서 기술이 발전함에 따라, 단일의 물리 프로세서 내에 복수의 코어 프로세서가 구비되도록 구현하고 있다. 그리고, 복수의 코어 프로세서를 효율적으로 운영할 수 있는 가상화 기술(virtualization technology)이 사용되고 있다. As processor technology develops, a plurality of core processors are implemented in a single physical processor. In addition, virtualization technology capable of efficiently operating a plurality of core processors is being used.

예를 들어, 하드웨어 자원(예, 복수의 코어 프로세서)을 관리하는 호스트 운영체제(host OS)(또는 커널) 상에 가상화 계층(Virtualization Layer)을 형성하고, 가상화 계층이 하드웨어 자원(예, 복수의 코어 프로세서)에 대한 접근을 관리함으로써, 가상화를 실현할 수 있다. 또는, 하드웨어 자원(예, 복수의 코어 프로세서)과 호스트 운영체제(host OS)(또는 커널) 사이에 가상 머신 모니터(Virtual Machine Monitor; VMM) 혹은 하이퍼바이저를 운영함으로써, 가상화를 실현할 수 있다. For example, a virtualization layer is formed on a host OS (or kernel) that manages hardware resources (eg, a plurality of core processors), and the virtualization layer is formed on a hardware resource (eg, a plurality of cores). By managing access to the processor), virtualization can be realized. Alternatively, virtualization may be realized by operating a Virtual Machine Monitor (VMM) or a hypervisor between a hardware resource (eg, a plurality of core processors) and a host OS (or kernel).

데이터센터(datacenter) 환경에서 다수의 가상 머신(virtual machine, VM)이 하나의 물리 머신 상에서 실행될 수 있다. 가상 머신의 생성, 삭제, 시작 및 재시작 등의 관리는 통상적으로 가상 머신 매니저에 의하여 이루어질 수 있는데, 가상 머신 매니저는 독립적인 애플리케이션의 형태로서 구현되거나, 운영 체제의 일부로서 구현될 수 있다. In a datacenter environment, multiple virtual machines (VMs) may run on one physical machine. Management such as creation, deletion, startup, and restart of virtual machines can be typically performed by a virtual machine manager, and the virtual machine manager can be implemented as an independent application or as part of an operating system.

다수의 가상 머신 간에는 고립성(isolation)이 제공된다. 고립성은, 여러 가상 머신 중에서 하나의 가상 머신에 문제가 발생된 경우에도, 이러한 문제가 다른 가상 머신에는 영향을 주지 않도록 함으로써 높은 안정성을 제공한다.Isolation is provided between multiple virtual machines. Isolation provides high reliability by ensuring that even when a problem occurs in one virtual machine among many virtual machines, the problem does not affect other virtual machines.

가상 머신이 컨텍스트를 처리하는 과정에서, 컨텍스트에서의 직접적인 갱신을 가정하고 있으며 또한 지속적으로 기록할 수 있다. 이러한 환경에서, 가상 머신은 기록된 정보를 사용하여, 임의의 시점에서 정확한 복구가 가능하다. As the virtual machine processes the context, it assumes direct updates in the context and can also write continuously. In this environment, the virtual machine can be accurately restored at any point in time using the recorded information.

하지만, 가상머신은 고립성을 유지하도록 구비되므로, 각각의 가상 머신 상에서만 해당 컨텍스트의 수행이 가능하다는 문제가 있다. However, since virtual machines are provided to maintain isolation, there is a problem in that a corresponding context can be performed only on each virtual machine.

본 개시의 기술적 과제는 가상 머신의 연산 처리와 상태 관리를 분리하여 처리할 수 있는 방법 및 장치를 제공하는 것이다. An object of the present disclosure is to provide a method and apparatus capable of separately processing calculation processing and state management of a virtual machine.

본 개시의 다른 기술적 과제는 클라우드 서비스 제공자에서 발생할 수 있는 프로세서 자원의 내부 단편화(internal fragmentation)를 실현할 수 있는 방법 및 장치를 제공하는 것이다. Another technical problem of the present disclosure is to provide a method and apparatus capable of realizing internal fragmentation of processor resources that may occur in a cloud service provider.

본 개시의 또 다른 기술적 과제는 물리 노드에서 수용 가능한 프로세서 보다 상대적으로 많은 가상 프로세서를 구현하고, 다수의 가상 프로세서를 구비하는 가상 머신을 제공할 수 있는 방법 및 장치를 제공하는 것이다. 본 개시에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.Another technical problem of the present disclosure is to provide a method and apparatus capable of implementing a relatively larger number of virtual processors than processors accommodated in a physical node and providing a virtual machine having a plurality of virtual processors. The technical problems to be achieved in the present disclosure are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the description below. You will be able to.

본 개시의 일 양상에 따르면 가상 머신 프로세서의 원격 처리 장치가 제공될 수 있다. 상기 장치는 제1 프로세서 모듈에 대응되는 제1가상 프로세서를 구비하며, 가상 프로세서 컨텍스트의 처리를 위해 요구되는 외부 장치의 제어, 상기 외부 장치로부터 제공되는 데이터의 관리, 상기 가상 프로세서 컨텍스트의 수행을 제어하는 제1가상화 처리부와, 제2 프로세서 모듈에 대응되는 제2가상 프로세서를 구비하며, 상기 제1가상화 처리부로부터 상기 가상 프로세서 컨텍스트의 처리를 요청받고, 처리 요청된 상기 가상 프로세서 컨텍스트를 처리하는 제2가상화 처리부를 포함할 수 있다.According to one aspect of the present disclosure, a device for remote processing of a virtual machine processor may be provided. The device includes a first virtual processor corresponding to a first processor module, and controls an external device required for processing a virtual processor context, management of data provided from the external device, and execution of the virtual processor context. A second virtualization processing unit having a first virtualization processing unit and a second virtual processor corresponding to a second processor module, receiving a request for processing the virtual processor context from the first virtualization processing unit and processing the requested processing virtual processor context. A virtualization processing unit may be included.

본 개시의 다른 양상에 따르면 가상 머신 프로세서의 원격 처리 방법이 제공될 수 있다. 상기 방법은 가상 머신 프로세서의 원격 처리 방법에 있어서, 제1가상화 처리부가 가상 프로세서 컨텍스트를 확인하는 과정과, 상기 가상 프로세서 컨텍스트의 수행을 요청하는 제어 컨텍스트를 제2가상화 처리부에 제공하는 과정과, 상기 제2가상화 처리부가 상기 제어 컨텍스트를 수신하고, 상기 제2가상화 처리부에 구비된 제2가상 프로세서를 사용하여 상기 제어 컨텍스트에 대응되는 상기 가상 프로세서 컨텍스트를 수행하는 과정과, 상기 제2가상화 처리부가 상기 가상 프로세서 컨텍스트의 수행 결과를 상기 제1가상화 처리부에 제공하는 과정을 포함할 수 있다. According to another aspect of the present disclosure, a method for remote processing of a virtual machine processor may be provided. The method is a method for remote processing of a virtual machine processor, comprising the steps of: a first virtualization processing unit confirming a virtual processor context; and providing a control context requesting execution of the virtual processor context to a second virtualization processing unit. receiving the control context by a second virtualization processing unit and performing the virtual processor context corresponding to the control context using a second virtual processor provided in the second virtualization processing unit; A process of providing an execution result of the virtual processor context to the first virtualization processing unit may be included.

본 개시의 다른 양상에 따르면 매니코어 기반의 가상화 컴퓨팅 시스템이 제공될 수 있다. 상기 시스템은 가상화 컴퓨팅 시스템에 있어서, 매니코어 환경에 기초한 복수의 코 프로세서와 메모리를 구비하는 프로세서 모듈과, 상기 프로세서 모듈을 서로 연결하는 인터커넥터부를 포함하는 매니코어 기반의 하드웨어 장치와, 제1 프로세서 모듈에 대응되는 제1가상 프로세서를 구비하며, 가상 프로세서 컨텍스트의 처리를 위해 요구되는 외부 장치의 제어, 상기 외부 장치로부터 제공되는 데이터의 관리, 상기 가상 프로세서 컨텍스트의 수행을 제어하는 제1가상화 처리부와, 제2 프로세서 모듈에 대응되는 제2가상 프로세서를 구비하며, 상기 제1가상화 처리부로부터 상기 가상 프로세서 컨텍스트의 처리를 요청받고, 처리 요청된 상기 가상 프로세서 컨텍스트를 처리하는 제2가상화 처리부를 포함하는 가상화 처리 장치를 포함할 수 있다. According to another aspect of the present disclosure, a virtualized computing system based on many cores may be provided. The system is a virtualized computing system, comprising: a processor module having a plurality of coprocessors and a memory based on a manycore environment; a manicore-based hardware device including an interconnector connecting the processor modules to each other; and a first processor. A first virtualization processing unit having a first virtual processor corresponding to a module and controlling an external device required for processing of a virtual processor context, management of data provided from the external device, and execution of the virtual processor context; , Virtualization including a second virtualization processor having a second virtual processor corresponding to a second processor module, receiving a request for processing the virtual processor context from the first virtualization processor, and processing the requested virtual processor context. A processing device may be included.

본 개시에 대하여 위에서 간략하게 요약된 특징들은 후술하는 본 개시의 상세한 설명의 예시적인 양상일 뿐이며, 본 개시의 범위를 제한하는 것은 아니다.The features briefly summarized above with respect to the disclosure are merely exemplary aspects of the detailed description of the disclosure that follows, and do not limit the scope of the disclosure.

본 개시에 따르면, 가상 프로세서의 컨텍스트를 분리하여 원격의 다른 물리 노드에서 수행할 수 있다. According to the present disclosure, the context of a virtual processor may be separated and performed in another remote physical node.

나아가, 서로 다른 물리 노드에서 가상 프로세서에서 처리되어야 하는 컨텍스트를 분리하여 처리할 수 있도록 함으로써, 클라우드 서비스 제공자에서 발생할 수 있는 프로세서 자원의 내부 단편화(internal fragmentation)를 실현할 수 있다. Furthermore, by allowing different physical nodes to separate and process contexts to be processed in a virtual processor, internal fragmentation of processor resources that may occur in a cloud service provider may be realized.

또한, 물리 노드에서 수용 가능한 프로세서 보다 많은 가상 프로세서를 구현할 수 있으며, 이와 같이 다수의 가상 프로세서를 구비하는 가상 머신을 제공할 수 있다.Also, it is possible to implement more virtual processors than processors that can be accommodated in a physical node, and thus provide a virtual machine having a plurality of virtual processors.

또한, 분리된 컨텍스트는 가상 프로세서 서술자에 대한 접근 방법에 대하여 외부/내부 접근 윈도우 구분을 통한 접근 제어를 통제할 수 있도록 함으로써, 가상 머신의 성능 저하를 최소화할 수 있다.In addition, the separated context can control access control through external/internal access window classification for the access method to the virtual processor descriptor, thereby minimizing performance degradation of the virtual machine.

본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.Effects obtainable in the present disclosure are not limited to the effects mentioned above, and other effects not mentioned may be clearly understood by those skilled in the art from the description below. will be.

도 1은 단일 칩의 형태의 매니코어 프로세서의 구성을 도시하는 블록도이다.
도 2는 단일 칩의 형태의 매니코어 프로세서에 적용되는 컴퓨팅 시스템의 구조를 도시하는 도면이다.
도 3은 본 개시의 일 실시예에 따른 가상머신 프로세서의 원격 처리 방법이 적용되는 매니코어 환경의 가상화 컴퓨팅 시스템의 구조를 도시하는 도면이다.
도 4는 본 개시의 다른 실시예에 따른 가상 머신 프로세서의 원격 처리 장치가 적용되는 가상화 컴퓨팅 시스템의 구성을 예시하는 도면이다.
도 5는 본 개시의 다른 실시예에 따른 가상 머신 프로세서의 원격 처리 장치의 동작을 예시하는 도면이다.
도 6은 본 발명의 다른 실시예에 따른 가상 머신 프로세서의 원격 처리 장치에 구비되는 필터부의 상세 동작을 예시하는 도면이다.
도 7a는 본 발명의 다른 실시예에 따른 가상 머신 프로세서의 원격 처리 장치에 구비되는 제1가상화 장치의 동작 과정을 도시하는 도면이다.
도 7b는 본 발명의 다른 실시예에 따른 가상 머신 프로세서의 원격 처리 장치에 구비되는 제2가상화 장치의 동작 과정을 도시하는 도면이다.
1 is a block diagram showing the configuration of a many-core processor in the form of a single chip.
2 is a diagram showing the structure of a computing system applied to a many-core processor in the form of a single chip.
3 is a diagram showing the structure of a virtualized computing system in a many-core environment to which a method for remote processing of a virtual machine processor according to an embodiment of the present disclosure is applied.
4 is a diagram illustrating a configuration of a virtualization computing system to which a remote processing device for a virtual machine processor according to another embodiment of the present disclosure is applied.
5 is a diagram illustrating an operation of a remote processing device of a virtual machine processor according to another embodiment of the present disclosure.
6 is a diagram illustrating a detailed operation of a filter unit included in a remote processing device of a virtual machine processor according to another embodiment of the present invention.
7A is a diagram illustrating an operation process of a first virtualization device included in a remote processing device of a virtual machine processor according to another embodiment of the present invention.
7B is a diagram illustrating an operation process of a second virtualization device included in a remote processing device of a virtual machine processor according to another embodiment of the present invention.

이하에서는 첨부한 도면을 참고로 하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. Hereinafter, with reference to the accompanying drawings, embodiments of the present disclosure will be described in detail so that those skilled in the art can easily carry out the present disclosure. However, the present disclosure may be implemented in many different forms and is not limited to the embodiments described herein.

본 개시의 실시 예를 설명함에 있어서 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그에 대한 상세한 설명은 생략한다. 그리고, 도면에서 본 개시에 대한 설명과 관계없는 부분은 생략하였으며, 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.In describing the embodiments of the present disclosure, if it is determined that a detailed description of a known configuration or function may obscure the gist of the present disclosure, a detailed description thereof will be omitted. And, in the drawings, parts irrelevant to the description of the present disclosure are omitted, and similar reference numerals are attached to similar parts.

본 개시에 있어서, 어떤 구성요소가 다른 구성요소와 "연결", "결합" 또는 "접속"되어 있다고 할 때, 이는 직접적인 연결관계뿐만 아니라, 그 중간에 또 다른 구성요소가 존재하는 간접적인 연결관계도 포함할 수 있다. 또한 어떤 구성요소가 다른 구성요소를 "포함한다" 또는 "가진다"고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 배제하는 것이 아니라 또 다른 구성요소를 더 포함할 수 있는 것을 의미한다.In the present disclosure, when a component is said to be "connected", "coupled" or "connected" to another component, this is not only a direct connection relationship, but also an indirect connection relationship between which another component exists. may also be included. In addition, when a component "includes" or "has" another component, this means that it may further include another component without excluding other components unless otherwise stated. .

본 개시에 있어서, 제1, 제2 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용되며, 특별히 언급되지 않는 한 구성요소들간의 순서 또는 중요도 등을 한정하지 않는다. 따라서, 본 개시의 범위 내에서 일 실시 예에서의 제1 구성요소는 다른 실시 예에서 제2 구성요소라고 칭할 수도 있고, 마찬가지로 일 실시 예에서의 제2 구성요소를 다른 실시 예에서 제1 구성요소라고 칭할 수도 있다. In the present disclosure, terms such as first and second are used only for the purpose of distinguishing one element from another, and do not limit the order or importance of elements unless otherwise specified. Accordingly, within the scope of the present disclosure, a first component in one embodiment may be referred to as a second component in another embodiment, and similarly, a second component in one embodiment may be referred to as a first component in another embodiment. can also be called

본 개시에 있어서, 서로 구별되는 구성요소들은 각각의 특징을 명확하게 설명하기 위함이며, 구성요소들이 반드시 분리되는 것을 의미하지는 않는다. 즉, 복수의 구성요소가 통합되어 하나의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있고, 하나의 구성요소가 분산되어 복수의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있다. 따라서, 별도로 언급하지 않더라도 이와 같이 통합된 또는 분산된 실시 예도 본 개시의 범위에 포함된다. In the present disclosure, components that are distinguished from each other are intended to clearly explain each characteristic, and do not necessarily mean that the components are separated. That is, a plurality of components may be integrated to form a single hardware or software unit, or a single component may be distributed to form a plurality of hardware or software units. Accordingly, even such integrated or distributed embodiments are included in the scope of the present disclosure, even if not mentioned separately.

본 개시에 있어서, 다양한 실시 예에서 설명하는 구성요소들이 반드시 필수적인 구성요소들은 의미하는 것은 아니며, 일부는 선택적인 구성요소일 수 있다. 따라서, 일 실시 예에서 설명하는 구성요소들의 부분집합으로 구성되는 실시 예도 본 개시의 범위에 포함된다. 또한, 다양한 실시 예에서 설명하는 구성요소들에 추가적으로 다른 구성요소를 포함하는 실시 예도 본 개시의 범위에 포함된다. In the present disclosure, components described in various embodiments do not necessarily mean essential components, and some may be optional components. Therefore, an embodiment composed of a subset of components described in one embodiment is also included in the scope of the present disclosure. In addition, embodiments including other components in addition to the components described in various embodiments are also included in the scope of the present disclosure.

이하, 첨부한 도면을 참조하여 본 개시의 실시 예들에 대해서 설명한다.Hereinafter, embodiments of the present disclosure will be described with reference to the accompanying drawings.

매니코어 프로세서는 코어 프로세서와 메모리를 수십 개 내지 수백 개를 구비하는 프로세서 일 수 있다. 매니코어 프로세서는 도 1에서 예시하는 바와 같이 단일 칩의 형태로 구비될 수 있는데, 단일 칩의 형태의 매니코어 프로세서(100)는 코어 프로세서와 메모리를 포함하는 프로세서 모듈(101-1, … 101-n)을 수십 개 내지 수백 개를 구비할 수 있다. 프로세서 모듈(101-1, … 101-n)은 NoC(Network on chip)(103)를 통해 서로 인터커넥트될 수 있다. A many-core processor may be a processor having tens to hundreds of core processors and memories. As illustrated in FIG. 1, the many-core processor may be provided in the form of a single chip. The many-core processor 100 in the form of a single chip includes processor modules 101-1, ... n) may be provided with tens to hundreds. The processor modules 101-1, ... 101-n may be interconnected with each other through a network on chip (NoC) 103.

단일 칩의 형태의 매니코어 프로세서(100)는 시스템의 구축 비용, 목적에 따른 제한적인 구조 등 고정적인 하드웨어의 상황에 따라 여러 제약사항이 따른다. The many-core processor 100 in the form of a single chip is subject to various limitations depending on fixed hardware conditions, such as system construction cost and limited structure according to the purpose.

특히, 단일 칩의 형태의 매니코어 프로세서(100)로 구성되더라도, 프로세서 모듈(101-1, … 101-n)을 사용하기 위해서는, 도 2에서 예시하는 분산 시스템(200)의 형태와 같이, 프로세서 모듈(201-1, … 201-n)에 구비되는 코어 프로세서와 메모리 상에, 운영체제 처리부(220)와, 응용 프로그램 처리부(230)가 구현되어야 하는 문제가 있다. In particular, even if it is composed of the many-core processor 100 in the form of a single chip, in order to use the processor modules 101-1, ... 101-n, as in the form of the distributed system 200 illustrated in FIG. 2, the processor There is a problem that the operating system processing unit 220 and the application program processing unit 230 must be implemented on the core processor and memory provided in the modules 201-1, ... 201-n.

이와 같이 프로세서 모듈(201-1, … 201-n)에 각각 대응되는 운영체제 처리부(220)가 구현될 경우, 프로세서 모듈(201-1, … 201-n) 각각에 대응되는 서로 다른 운영체제가 탑재되도록 구현되므로, 프로세서 모듈(201-1, … 201-n)을 모두 사용할 수 있는 단일의 운영체제가 탑재되지 못하는 문제가 발생된다. In this way, when the operating system processing unit 220 corresponding to each of the processor modules 201-1, ... 201-n is implemented, different operating systems corresponding to each of the processor modules 201-1, ... 201-n are installed. Therefore, a single operating system capable of using all of the processor modules 201-1, ... 201-n cannot be installed.

본 개시의 일 실시예는 프로세서 모듈(201-1, … 201-n)을 모두 사용할 수 있는 단일의 운영체제를 탑재할 수 있는 매니코어 환경의 가상화 컴퓨팅 시스템을 개시한다.An embodiment of the present disclosure discloses a virtualized computing system in a many-core environment capable of mounting a single operating system capable of using all of the processor modules 201-1, ... 201-n.

도 3은 본 개시의 일 실시예에 따른 가상머신 프로세서의 원격 처리 방법이 적용되는 매니코어 환경의 가상화 컴퓨팅 시스템의 구조를 도시하는 도면이다.3 is a diagram showing the structure of a virtualized computing system in a many-core environment to which a method for remote processing of a virtual machine processor according to an embodiment of the present disclosure is applied.

도 3을 참조하면, 매니코어 환경의 가상화 컴퓨팅 시스템은 매니코어 기반의 하드웨어 장치(310), 가상화 처리부(320), 운영체체 처리부(330), 및 응용 프로그램 처리부(340)를 포함할 수 있다.Referring to FIG. 3 , a virtualization computing system in a manycore environment may include a manycore-based hardware device 310, a virtualization processing unit 320, an operating system processing unit 330, and an application program processing unit 340.

매니코어 기반의 하드웨어 장치(310)는 복수의 코어 프로세서(301a)와 메모리(301b)를 포함하는 프로세서 모듈(301-1, … 301-n)을 구비할 수 있다. 여기서, 복수의 코어 프로세서(301a)는 수십 개 내지 수백 개를 포함할 수 있고, 프로세서 모듈(301-1, … 301-n)은 1,000개 이상을 포함할 수 있다.The many core-based hardware device 310 may include processor modules 301-1, ... 301-n including a plurality of core processors 301a and a memory 301b. Here, the plurality of core processors 301a may include tens to hundreds, and the processor modules 301-1, ... 301-n may include 1,000 or more.

그리고, 매니코어 기반의 하드웨어 장치(310)는 프로세서 모듈(301-1, … 301-n)이 서로 고속 인터커넥트 네트워크로 연결하는 인터커넥터(303)(예, NoC(Network on chip), PCIe(PCI Express))를 포함할 수 있다. In addition, the many core-based hardware device 310 includes an interconnector 303 (eg, Network on chip (NoC), PCI (PCIe)) to which the processor modules 301-1, . Express)).

가상화 처리부(320)는 물리적으로 분리되어 있는 시스템 자원을 하나의 시스템 자원으로 운영하는 장치일 수 있다.The virtualization processing unit 320 may be a device that operates physically separated system resources as one system resource.

가상화 처리부(320)는 프로세서 모듈(301-1, … 301-n) 각각에 연결되는 하이퍼바이저 (321-1, … 321-n)를 구비할 수 있다. 하이퍼바이저(321-1, … 321-n)는 프로세서 모듈(301-1, … 301-n)에 구비되는 자원을 모니터링하는 모니터부, 프로세서 모듈(301-1, … 301-n)에 할당되는 태스크를 관리하는 태스크 관리자, 프로세서 모듈(301-1, … 301-n)에 구비된 메모리와 가상 메모리를 매칭하는 메모리 관리자, 태스크 관리자와 메모리 관리자의 동작을 스케줄링하는 스케줄러 등을 포함할 수 있다. The virtualization processing unit 320 may include hypervisors 321-1, ... 321-n connected to each of the processor modules 301-1, ... 301-n. The hypervisor 321-1, ... 321-n monitors the resources provided in the processor modules 301-1, ... 301-n, and is allocated to the processor modules 301-1, ... 301-n. It may include a task manager for managing tasks, a memory manager for matching memory provided in the processor modules 301-1, ... 301-n with virtual memory, a scheduler for scheduling operations of the task manager and memory manager, and the like.

특히, 가상화 처리부(320)는 상태 처리부(323) 및 프로세서 처리부(324, 325)를 구비하는 가상 머신 수행부(322)를 포함할 수 있다.In particular, the virtualization processing unit 320 may include a virtual machine execution unit 322 including a state processing unit 323 and processor processing units 324 and 325 .

상태 처리부(323)는 적어도 하나의 프로세서 모듈(301-1, … 301-n)에 연결되어 가상의 노드로서 동작될 수 있다. 그리고, 프로세서 처리부(324, 325)는 복수개가 구비될 수 있으며, 복수의 프로세서 처리부(324, 325)는 각각 프로세서 모듈(301-1, … 301-n)에 연결되어 가상의 노드로서 동작될 수 있다. The state processing unit 323 may be connected to at least one processor module 301-1, ... 301-n and operated as a virtual node. In addition, a plurality of processor processing units 324 and 325 may be provided, and the plurality of processor processing units 324 and 325 may be connected to the processor modules 301-1, ... 301-n and operated as virtual nodes. there is.

프로세서 처리부(324, 325)는 가상화 처리부(320)에서 수행되어야 할 컨텍스트 쓰레드(vcpu_context thread)를 처리하고, 상태 처리부(323)는 제어 쓰레드(vcpu_control thread) 처리, 쓰레드(vcpu_context thread)의 처리에 필요한 컨텍스트 제공 및 관리 등을 처리할 수 있다. 또한, 프로세서 처리부(324, 325)는 쓰레드의 처리과정에서 전역 예외에 대응되는 쓰레드는 상태 처리부(323)에 제공할 수 있으며, 상태 처리부(323)가 전역 예외에 대응되는 쓰레드를 처리할 수 있다.The processor processing units 324 and 325 process a context thread (vcpu_context thread) to be executed in the virtualization processing unit 320, and the state processing unit 323 processes a control thread (vcpu_control thread) and processes necessary threads (vcpu_context thread). Context can be provided and managed. In addition, the processor processors 324 and 325 may provide the thread corresponding to the global exception to the state processor 323 during thread processing, and the state processor 323 may process the thread corresponding to the global exception. .

제어 쓰레드(vcpu_control thread)와 컨텍스트 쓰레드(vcpu_context thread)는 별도의 쓰레드로 구성되기 때문에 프로세서 처리부(324, 325)의 상태를 유지하기 위해 데이터 스트럭쳐의 일관성을 유지할 필요가 있다. 이에 따라, 프로세서 처리부(324, 325)는 제어 쓰레드(vcpu_control thread)와 컨텍스트 쓰레드(vcpu_context thread)에 대응되는 데이터 스트럭쳐를 복제하여 가상 메모리내에 저장할 수 있으며, 각각의 메모리에서 데이터 스트럭쳐로 접근 및 관리할 수 있다.Since the control thread (vcpu_control thread) and the context thread (vcpu_context thread) are composed of separate threads, it is necessary to maintain the consistency of the data structure in order to maintain the state of the processor processors 324 and 325. Accordingly, the processor processors 324 and 325 may copy and store data structures corresponding to the control thread (vcpu_control thread) and the context thread (vcpu_context thread) in virtual memory, and access and manage data structures in each memory. can

이러한, 상태 처리부(323)와 프로세서 처리부(324, 325)의 동작을 통해 프로세서 자원(예, CPU)의 외현화를 실현할 수 있다.Through the operation of the state processing unit 323 and the processor processing units 324 and 325, externalization of processor resources (eg, CPU) may be realized.

나아가, 가상화 처리부(320)는 가상 메모리를 외현화 하기 위하여 Page-level granularity인 디렉토리 기반의 캐쉬를 사용할 수 있다. 여기서 사용되는 캐쉬는 fault 기반으로 접근하고 동작한다. (108)원격 메모리를 사용하고자 할 경우 처리되는 커널 데이터 구조의 일관성을 유지하면서 자원을 공유할 수 있다. 예컨대, 제1프로세서 처리부(324)가 쓰레드를 처리하는 과정에서, 제2프로세서 처리부(325)에 할당된 가상 메모리에 접근할 수 있다.Furthermore, the virtualization processing unit 320 may use a directory-based cache of page-level granularity to externalize the virtual memory. The cache used here is accessed and operated on a fault basis. (108) In case of using a remote memory, it is possible to share resources while maintaining the consistency of the processed kernel data structure. For example, while the first processor processing unit 324 processes a thread, it may access a virtual memory allocated to the second processor processing unit 325 .

이하, 본 개시의 다른 실시예에 따른 가상 머신 프로세서의 원격 처리 장치의 구조를 설명한다. Hereinafter, a structure of a remote processing device of a virtual machine processor according to another embodiment of the present disclosure will be described.

본 개시의 다른 실시예에 따른 가상 머신 프로세서의 원격 처리 장치는 전술한 매니코어 환경의 가상화 컴퓨팅 시스템에 구비된 가상화 처리부(320)에 적용되거나, 다양한 환경의 가상화 컴퓨팅 시스템에 적용될 수 있다.A remote processing device for a virtual machine processor according to another embodiment of the present disclosure may be applied to the virtualization processing unit 320 provided in the aforementioned virtualized computing system in a many-core environment or applied to virtualized computing systems in various environments.

도 4는 본 개시의 다른 실시예에 따른 가상 머신 프로세서의 원격 처리 장치가 적용되는 가상화 컴퓨팅 시스템의 구성을 예시하는 도면이다.4 is a diagram illustrating a configuration of a virtualization computing system to which a remote processing device for a virtual machine processor according to another embodiment of the present disclosure is applied.

도 4를 참조하면, 가상화 컴퓨팅 시스템은 하드웨어 장치(410), 가상화 처리부(420), 운영체제 처리부(430), 및 응용 프로그램 처리부(440)를 포함할 수 있다.Referring to FIG. 4 , the virtualization computing system may include a hardware device 410 , a virtualization processing unit 420 , an operating system processing unit 430 , and an application program processing unit 440 .

하드웨어 장치(410)는 복수의 프로세서(401a)와 메모리(401b)를 포함하는 프로세서 모듈(401-1, … 401-n)을 구비할 수 있다. 그리고, 하드웨어 장치(410)는 프로세서 모듈(401-1, … 401-n)이 서로 고속 인터커넥트 네트워크로 연결하는 인터커넥터(403)(예, NoC(Network on chip), PCIe(PCI Express))를 포함할 수 있다. The hardware device 410 may include processor modules 401-1, ... 401-n including a plurality of processors 401a and a memory 401b. In addition, the hardware device 410 includes an interconnector 403 (eg, NoC (Network on Chip), PCIe (PCI Express)) to which the processor modules 401-1, ... 401-n are connected to each other through a high-speed interconnect network. can include

가상화 처리부(420)는 프로세서 모듈(401-1, … 401-n) 각각에 연결되는 커널 관리부(421-1, … 421-n)를 구비할 수 있는데, 상태 커널 관리부(421-1)와, 프로세서 커널 관리부(421-2, … 421-n)로 구분될 수 있다. 또한, 가상화 처리부(420)는 사용자 관리부(425-1, … 425-n)를 구비할 수 있는데, 사용자 관리부(425-1, … 425-n)는 상태 처리부(425-1)와 프로세서 처리부(425-2, … 425-n)로 구분될 수 있다. 이에 기초하여, 상태 커널 관리부(421-1)와 상태 처리부(425-1)가 연결될 수 있으며, 프로세서 커널 관리부(421-2, … 421-n)와 프로세서 처리부(425-2, … 425-n)가 각각 연결될 수 있다.The virtualization processing unit 420 may include a kernel management unit 421-1, ... 421-n connected to each of the processor modules 401-1, ... 401-n, a state kernel management unit 421-1, It can be divided into processor kernel management units 421-2, ... 421-n. In addition, the virtualization processing unit 420 may include a user management unit 425-1, ... 425-n, wherein the user management unit 425-1, ... 425-n includes a state processing unit 425-1 and a processor processing unit ( 425-2, … 425-n). Based on this, the state kernel management unit 421-1 and the state processing unit 425-1 can be connected, and the processor kernel management unit 421-2, ... 421-n and the processor processing units 425-2, ... 425-n ) can be connected to each other.

상태 커널 관리부(421-1)는 프로세서 모듈(401-1, … 401-n)에 구비되는 자원을 모니터링하는 가상 머신 모니터부(VMM; Virtual Machine Monitor)(422)와, 상태 처리부(425-1)에 구비되는 프로세서의 접근을 제어하는 필터부(423)를 구비할 수 있다.The state kernel management unit 421-1 includes a virtual machine monitor (VMM) 422 that monitors resources provided in the processor modules 401-1, ... 401-n, and a state processing unit 425-1. ) may be provided with a filter unit 423 for controlling the access of the processor provided in.

프로세서 커널 관리부(421-2, … 421-n)는 프로세서 모듈(401-1, … 401-n)에 구비되는 자원을 모니터링하는 가상 머신 모니터부(VMM; Virtual Machine Monitor)(424-2, … 424-n)를 구비할 수 있다.The processor kernel management unit 421-2, ... 421-n monitors the resources provided in the processor modules 401-1, ... 401-n Virtual Machine Monitors (VMMs) 424-2, ... 424-n) may be provided.

전술한 가상화 컴퓨팅 시스템에 구비되는 상태 커널 관리부(421-1), 프로세서 커널 관리부(421-2, … 421-n), 상태 처리부(425-1), 및 프로세서 처리부(425-2, … 425-n)는 본 개시의 다른 실시예에 따른 가상 머신 프로세서의 원격 처리 장치로 지칭할 수 있다.The state kernel management unit 421-1, the processor kernel management unit 421-2, ... 421-n, the state processing unit 425-1, and the processor processing unit 425-2, ... 425-n provided in the virtualized computing system described above. n) may refer to a remote processing device of a virtual machine processor according to another embodiment of the present disclosure.

이하, 본 개시의 다른 실시예에 따른 가상 머신 프로세서의 원격 처리 장치의 동작을 설명한다.Hereinafter, an operation of a remote processing device of a virtual machine processor according to another embodiment of the present disclosure will be described.

도 5는 본 개시의 다른 실시예에 따른 가상 머신 프로세서의 원격 처리 장치의 상세 구성을 예시하는 도면이다. 5 is a diagram illustrating a detailed configuration of a remote processing device of a virtual machine processor according to another embodiment of the present disclosure.

상태 처리부(425-1)는 제1가상 프로세서(426-1), 외부 가상화 장치(vCPU/vIO 장치)(427), 및 가상머신 상태 관리부(428)를 포함할 수 있다. 상태 처리부(425-1)는 상태 커널 관리부(421-1)에 구비된 제1가상 머신 모니터부(VMM)(422)와, 필터부(423)에 연결될 수 있으며, 컨텍스트의 처리를 위해 요구되는 외부 가상화 장치(vCPU/vIO 장치)(427)의 제어 및 상기 외부 가상화 장치(vCPU/vIO 장치)(427)로부터 제공되는 데이터의 관리, 상기 컨텍스트의 제공 및 관리를 처리할 수 있다. The state processing unit 425 - 1 may include a first virtual processor 426 - 1 , an external virtualization device (vCPU/vIO device) 427 , and a virtual machine state management unit 428 . The state processing unit 425-1 may be connected to the first virtual machine monitor (VMM) 422 and the filter unit 423 provided in the state kernel management unit 421-1, and may be connected to the context processing unit 421-1. Control of the external virtualization device (vCPU/vIO device) 427, management of data provided from the external virtualization device (vCPU/vIO device) 427, and provision and management of the context may be processed.

필터부(423)는 외부 가상화 장치(vCPU/vIO 장치)(427)로부터 요청되는 상기 제1가상 프로세서(426-1)로의 접근을 제어할 수 있다.The filter unit 423 may control access to the first virtual processor 426 - 1 requested from the external virtualization device (vCPU/vIO device) 427 .

제1가상 머신 모니터(422)는 상기 프로세서 처리부(425-2)로 컨텍스트를 제공하고, 상기 프로세서 처리부(425-2)에서 처리가 불가한 컨텍스트(예컨대, 전역 예외 컨텍스트 등)를 상기 제1가상 프로세서(426-1)에 제공할 수 있다. The first virtual machine monitor 422 provides a context to the processor processing unit 425-2, and sets a context that cannot be processed by the processor processing unit 425-2 (eg, a global exception context) to the first virtual machine monitor 422. may be provided to the processor 426-1.

또한, 제1가상 머신 모니터(422)는 상기 제1가상 프로세서(426-1)에서 처리되는 컨텍스트를 모니터링하여 가상 머신의 상태를 관리하는 가상머신 상태 관리부(428)에 제공할 수 있다. In addition, the first virtual machine monitor 422 may monitor the context processed by the first virtual processor 426-1 and provide it to the virtual machine state management unit 428 that manages the state of the virtual machine.

한편, 프로세서 처리부(425-2)는 제2가상 프로세서(426-2)를 구비할 수 있고, 제2가상 프로세서(426-2)는 프로세서 커널 관리부(421-2)에 구비된 제2가상 머신 모니터부(VMM)(424-2)에 연결될 수 있다. Meanwhile, the processor processing unit 425-2 may include a second virtual processor 426-2, and the second virtual processor 426-2 is a second virtual machine included in the processor kernel management unit 421-2. It may be connected to the monitor unit (VMM) 424-2.

제2가상 머신 모니터(424-2)는 제1가상 머신 모니터(422)로부터 수신되는 제어 컨텍스트를 제2가상 프로세서(426-2)로 전달하고, 제2가상 프로세서(426-2)는 상기 제어 컨텍스트를 처리한다. The second virtual machine monitor 424-2 transfers the control context received from the first virtual machine monitor 422 to the second virtual processor 426-2, and the second virtual processor 426-2 controls the control context. handle the context

그리고, 제2가상 머신 모니터(424-2)는 제2가상 프로세서(426-2)에서 처리되는 제어 컨텍스트를 모니터링할 수 있다. 상기 제2가상 프로세서(426-2)가 컨텍스트를 처리하면서 예외적인 처리가 발생될 수 있는데, 제2가상 머신 모니터(424-2)는 이때 발생하는 예외에 대해서 지역적으로 처리 가능한 예외 상황은 제2가상 프로세서(426-2) 자체에서 처리하고, 상기 제2가상 프로세서(426-2)에서 처리가 불가한 컨텍스트(예컨대, 전역 예외 컨텍스트 등)를 제1가상 머신 모니터(422)에 제공 및 처리를 요청할 수 있다. Also, the second virtual machine monitor 424-2 may monitor the control context processed by the second virtual processor 426-2. Exception processing may occur while the second virtual processor 426-2 processes the context. It is processed by the virtual processor 426-2 itself, and a context that cannot be processed by the second virtual processor 426-2 (eg, global exception context, etc.) is provided to the first virtual machine monitor 422 and processed. can request

이와 같이, 가상 머신에서 수행해야 하는 어플리케이션의 컨텍스트들은 기본적으로 프로세서 처리부(425-2)의 상기 제2가상 프로세서(426-2)에서 수행하고, 이에 대한 제어, 컨텍스트의 제공 및 관리, 그리고 전역 예외에 대한 처리는 상태 처리부(425-1)의 제1가상 프로세서(426-1)에서 수행된다. 이렇게 가상 머신에서 수행해야 하는 어플리케이션의 컨텍스트들에 대응되는 로직들을 제1가상 프로세서(426-1)와 제2가상 프로세서(426-2)로 나뉘어 서로 다른 두 노드 상에서 분리하여 수행한다.As such, the contexts of applications to be executed in the virtual machine are basically executed in the second virtual processor 426-2 of the processor processing unit 425-2, and control thereof, provision and management of contexts, and global exceptions are performed. Processing for is performed in the first virtual processor 426-1 of the state processing unit 425-1. The logics corresponding to the contexts of applications to be executed in the virtual machine are divided into a first virtual processor 426-1 and a second virtual processor 426-2, and are separated and executed on two different nodes.

나아가, 전술한 상태 처리부(425-1)와 상태 커널 관리부(421-1)를 제1가상화 장치로 지칭하고, 프로세서 처리부(425-2)와 프로세서 커널 관리부(421-2)에 제2가상화 장치로 지칭할 수 있다. 비록 본 개시의 일 실시예에서, 제2가상화 장치가 1개인 것을 예시하고 있으나, 가상화 환경에 대응하여 제2가상화 장치의 개수는 다양하게 변경될 수 있음은 물론이다.Furthermore, the aforementioned state processing unit 425-1 and the state kernel management unit 421-1 are referred to as a first virtualization device, and the processor processing unit 425-2 and the processor kernel management unit 421-2 are referred to as a second virtualization device. can be referred to as Although one embodiment of the present disclosure illustrates that the number of second virtualization devices is one, it goes without saying that the number of second virtualization devices may be variously changed in response to a virtualization environment.

도 6은 본 발명의 일 실시예에 따른 가상 머신 프로세서의 원격 처리 장치에 구비되는 필터부의 상세 동작을 예시하는 도면이다.6 is a diagram illustrating a detailed operation of a filter unit included in a remote processing device of a virtual machine processor according to an embodiment of the present invention.

외부 가상화 장치(vCPU/vIO 장치)(427)와 같은 외부 장치에 의해 제공되는 메시지 또는 컨텍스트를 원격 지에 구비되는 제2가상 프로세서(426-2)에 전달하기 위해서는, 가상 프로세서 서술자(650)에 접근하여 메시지 또는 컨텍스트에 대한 요청을 기록하여야 한다. 이와 같이 메시지 또는 컨텍스트에 대한 요청이 기록될 경우, 레이스의 발생이 야기될 수 있다. In order to deliver a message or context provided by an external device such as an external virtualization device (vCPU/vIO device) 427 to the second virtual processor 426-2 provided in a remote location, the virtual processor descriptor 650 is accessed. to record the request for a message or context. When a request for a message or context is recorded in this way, a race may occur.

나아가, 가상 머신 모니터의 기능적 확장에 따라, 수많은 메시지 또는 컨텍스트가 가상 프로세서 서술자(650)에 접근 또는 기록될 수 있으므로, 가상 프로세서 서술자(650)에 대한 접근 또는 기록을 제어하기 위한 장치가 요구된다. Furthermore, since a number of messages or contexts can be accessed or recorded in the virtual processor descriptor 650 according to functional expansion of the virtual machine monitor, a device for controlling access to or recording of the virtual processor descriptor 650 is required.

시스템 전반에 알려져 있는 가상 프로세서 서술자(650)로의 접근은 외부 접근 윈도우 영역(620)을 통해서 접근이 되어야 하고, 제1가상 프로세서(426-1)에서의 접근은 내부 접근 윈도우 영역(630)을 통해 접근해야 한다. Access to the virtual processor descriptor 650 known throughout the system must be accessed through the external access window area 620, and access from the first virtual processor 426-1 through the internal access window area 630. have to approach

이를 고려하여, 필터부(423)는 외부 접근 윈도우 영역(620)을 통한 접근은 갱신에 대한 예외가 발생될 수 있도록 해당 가상 프로세서에 대한 요청큐(600)에 할당하고 이를 제1가상 프로세서(426-1)가 처리할 수 있는 구조로 구비될 수 있다. 이러한 필터부(423)의 구성으로써, 전술한 레이스의 발생을 방지할 수 있다. In consideration of this, the filter unit 423 allocates the request queue 600 for the corresponding virtual processor so that an exception to update can be generated for access through the external access window area 620, and assigns it to the request queue 600 for the first virtual processor 426. -1) can be provided with a structure that can be processed. With this configuration of the filter unit 423, the aforementioned race can be prevented from occurring.

도 7a는 본 발명의 다른 실시예에 따른 가상 머신 프로세서의 원격 처리 장치에 구비되는 제1가상화 장치의 동작 과정을 도시하는 도면이고, 도 7b는 본 발명의 다른 실시예에 따른 가상 머신 프로세서의 원격 처리 장치에 구비되는 제2가상화 장치의 동작 과정을 도시하는 도면이다.7A is a diagram illustrating an operation process of a first virtualization device included in a remote processing device of a virtual machine processor according to another embodiment of the present invention, and FIG. 7B is a diagram illustrating a remote processing of a virtual machine processor according to another embodiment of the present invention. It is a diagram showing the operation process of the second virtualization device provided in the processing device.

도 7a를 참조하면, 상태 처리부(425-1)는 제1가상 프로세서(426-1)의 초기화를 처리한다(S311). Referring to FIG. 7A , the state processor 425-1 processes initialization of the first virtual processor 426-1 (S311).

예를 들어, 통신 가능한 두 노드, 즉, 상태 처리부(425-1)와, 프로세서 처리부(425-2)에서 각각 제1가상 프로세서(426-1)와 제2가상 프로세서(426-2)가 수행된다.For example, the first virtual processor 426-1 and the second virtual processor 426-2 are performed in two communicable nodes, that is, the state processing unit 425-1 and the processor processing unit 425-2, respectively. do.

제1가상 프로세서(426-1)의 초기화를 위해서 가상 머신 상태 관리부(428)에 의해서 가상 머신에 대한 상태가 정의되고 이에 따라서 하나의 가상 프로세서 컨텍스트를 생성한다. For initialization of the first virtual processor 426 - 1 , a virtual machine state is defined by the virtual machine state management unit 428 , and one virtual processor context is created accordingly.

제1가상 프로세서(426-1)는 제2가상 프로세서(426-2)와의 연결을 생성하며 연결된 제2가상 프로세서(426-2)의 요청을 대기하는 것을 확인한 후 제2가상 프로세서(426-2)의 수행을 요청한다(S312). The first virtual processor 426-1 establishes a connection with the second virtual processor 426-2 and waits for a request from the connected second virtual processor 426-2, then the second virtual processor 426-2 ) is requested (S312).

이후, 제1가상 프로세서(426-1)는 제2가상 프로세서(426-2)의 수행 결과를 대기한다(S313). 그리고, 제1가상 프로세서(426-1)는 제2가상 프로세서(426-2)의 수행 결과를 전송받게 되면 이의 결과에 따른 전역 예외 처리를 우선적으로 확인하여 처리하고, 다시 S312 단계를 진행하여 제2가상 프로세서(426-2)의 수행 요청을 처리한다(S314). Thereafter, the first virtual processor 426-1 waits for the execution result of the second virtual processor 426-2 (S313). Then, when the first virtual processor 426-1 receives the execution result of the second virtual processor 426-2, firstly checks and processes the global exception processing according to the result, and proceeds to step S312 again to The execution request of the two virtual processors 426-2 is processed (S314).

한편, S314 단계에서, 전역 예외에 대한 처리가 없을 경우, 제1가상 프로세서(426-1)는 입출력 이벤트를 대기하고(S315), 해당 입출력 이벤트가 발생되면 S312 단계를 진행하여 입출력 이벤트에 대응되는 컨텍스트를 제2가상 프로세서(426-2)에 전달한다. Meanwhile, in step S314, if there is no processing for the global exception, the first virtual processor 426-1 waits for an input/output event (S315), and when the corresponding input/output event occurs, proceeds to step S312 to respond to the input/output event. The context is transferred to the second virtual processor 426-2.

제1가상 프로세서(426-1)는 가상 프로세서의 동작이 완료될 경우 가상 프로세서의 종료를 지시하는 제어 컨텍스트를 제2가상 프로세서(426-2)에 전달할 수 있다(S316).When the operation of the virtual processor is completed, the first virtual processor 426-1 may transfer a control context indicating termination of the virtual processor to the second virtual processor 426-2 (S316).

한편, 도 3b를 참조하면, 프로세서 처리부(425-2)는 제2가상 프로세서(426-2)의 초기화를 처리한다(S321). 그리고, 제2가상 프로세서(426-2)는 제1가상 프로세서(426-1)로부터 콘택스트 처리 요청을 대기한다(S322). Meanwhile, referring to FIG. 3B , the processor processing unit 425-2 processes initialization of the second virtual processor 426-2 (S321). Then, the second virtual processor 426-2 waits for a context processing request from the first virtual processor 426-1 (S322).

제2가상 프로세서(426-2)는 제1가상 프로세서(426-1)로부터 콘택스트 처리 요청을 수신하게 되면, 해당되는 콘택스트의 처리를 수행한다(S323). 이때, 제2가상 프로세서(426-2)는 요청된 콘택스트가 처리 가능한 콘택스트인지 여부를 확인할 수 있다(S324). Upon receiving a context processing request from the first virtual processor 426-1, the second virtual processor 426-2 processes the corresponding context (S323). At this time, the second virtual processor 426-2 may check whether the requested context is a processable context (S324).

요청된 콘택스트가 처리 가능한 콘택스트인 경우(S324-예) 제2가상 프로세서(426-2)는 S325 단계를 진행하고, 요청된 콘택스트가 처리 불가능한 콘택스트인 경우(S324-아니오) S330 단계를 진행한다.If the requested context is a processable context (S324 - Yes), the second virtual processor 426-2 proceeds to step S325, and if the requested context is a processable context (S324 - No), the second virtual processor 426-2 proceeds to step S330. do.

다음으로, 제2가상 프로세서(426-2)는 프로세서 처리부(425-2)의 호스트 상태를 저장하고(S325), 요청된 가상 프로세서 콘택스트를 로드하여(S326), 로드된 가상 프로세서 콘택스트를 수행한다(S327). Next, the second virtual processor 426-2 stores the host state of the processor processing unit 425-2 (S325), loads the requested virtual processor context (S326), and retrieves the loaded virtual processor context. It is performed (S327).

가상 프로세서 콘택스트를 수행 과정에서 콘택스트에서 예외가 발생될 경우(S328-예), 제2가상 프로세서(426-2)는 S325 단계에서 저장된 프로세서 처리부(425-2)의 호스트 상태를 사용하여 복구를 처리한다(S329). 그리고, 제2가상 프로세서(426-2)는 발생된 예외가 지역적으로 처리가 가능한 예외인지 여부를 확인하고(S330), 지역적으로 처리가 가능한 예외인 경우(S330-예), 지역 예외 처리로 분류하여 지역 예외 처리를 수행한다(S331). 반면, 앞서 발생된 예외가, 제2가상 프로세서(426-2)에서 지역 예외로 처리 불가능할 경우, 제2가상 프로세서(426-2)는 S332 단계를 진행하여 해당 컨텍스트를 수행할 수 없음에 대한 결과를 상태 처리부(425-1)로 전달할 수 있다. If an exception occurs in the context while executing the virtual processor context (S328-Yes), the second virtual processor 426-2 recovers using the host state of the processor processing unit 425-2 stored in step S325. is processed (S329). Then, the second virtual processor 426-2 checks whether the occurred exception is a locally processable exception (S330), and if it is a locally processable exception (S330-Yes), it is classified as a local exception process. to perform local exception processing (S331). On the other hand, if the previously generated exception cannot be handled as a local exception by the second virtual processor 426-2, the second virtual processor 426-2 proceeds to step S332 as a result of not being able to perform the corresponding context. may be delivered to the state processing unit 425-1.

종래의 가상 머신 시스템에서 가상 프로세서는 물리적으로 단일 노드에 구비된 프로세서에서만 수행되어야 하는 문제가 있다. 이에 반하여, 본 발명에서 제시하는 가상 머신 프로세서의 원격 처리 장치 및 방법에 따르면, 가상 프로세서의 컨텍스트를 분리하여 원격의 다른 물리 노드에서 수행할 수 있다. 이와 같이, 서로 다른 물리 노드에서 가상 프로세서에서 처리되어야 하는 컨텍스트를 분리하여 처리할 수 있도록 함으로써, 클라우드 서비스 제공자에서 발생할 수 있는 프로세서 자원의 내부 단편화(internal fragmentation)를 실현할 수 있다. In a conventional virtual machine system, there is a problem in that a virtual processor must be physically executed only by a processor provided in a single node. In contrast, according to the apparatus and method for remote processing of a virtual machine processor presented in the present invention, the context of a virtual processor can be separated and executed in another remote physical node. In this way, by separating and processing contexts to be processed by virtual processors in different physical nodes, internal fragmentation of processor resources that may occur in a cloud service provider may be realized.

나아가, 물리 노드에서 수용 가능한 프로세서 보다 많은 가상 프로세서를 구현할 수 있으며, 이와 같이 다수의 가상 프로세서를 구비하는 가상 머신을 제공할 수 있다.Furthermore, it is possible to implement more virtual processors than processors that can be accommodated in a physical node, and thus provide a virtual machine having a plurality of virtual processors.

또한, 분리된 컨텍스트는 가상 프로세서 서술자에 대한 접근 방법에 대하여 외부/내부 접근 윈도우 구분을 통한 접근 제어를 통제할 수 있도록 함으로써, 가상 머신의 성능 저하를 최소화할 수 있다. In addition, the separated context can control access control through external/internal access window classification for the access method to the virtual processor descriptor, thereby minimizing performance degradation of the virtual machine.

본 개시의 예시적인 방법들은 설명의 명확성을 위해서 동작의 시리즈로 표현되어 있지만, 이는 단계가 수행되는 순서를 제한하기 위한 것은 아니며, 필요한 경우에는 각각의 단계가 동시에 또는 상이한 순서로 수행될 수도 있다. 본 개시에 따른 방법을 구현하기 위해서, 예시하는 단계에 추가적으로 다른 단계를 포함하거나, 일부의 단계를 제외하고 나머지 단계를 포함하거나, 또는 일부의 단계를 제외하고 추가적인 다른 단계를 포함할 수도 있다.Exemplary methods of this disclosure are presented as a series of operations for clarity of explanation, but this is not intended to limit the order in which steps are performed, and each step may be performed concurrently or in a different order, if desired. In order to implement the method according to the present disclosure, other steps may be included in addition to the exemplified steps, other steps may be included except for some steps, or additional other steps may be included except for some steps.

본 개시의 다양한 실시 예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시 예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.Various embodiments of the present disclosure are intended to explain representative aspects of the present disclosure, rather than listing all possible combinations, and matters described in various embodiments may be applied independently or in combination of two or more.

또한, 본 개시의 다양한 실시 예는 하드웨어, 펌웨어(firmware), 소프트웨어, 또는 그들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 범용 프로세서(general processor), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다. In addition, various embodiments of the present disclosure may be implemented by hardware, firmware, software, or a combination thereof. For hardware implementation, one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), It may be implemented by a processor (general processor), controller, microcontroller, microprocessor, or the like.

본 개시의 범위는 다양한 실시 예의 방법에 따른 동작이 장치 또는 컴퓨터 상에서 실행되도록 하는 소프트웨어 또는 머신-실행가능한 명령들(예를 들어, 운영체제, 애플리케이션, 펌웨어(firmware), 프로그램 등), 및 이러한 소프트웨어 또는 명령 등이 저장되어 장치 또는 컴퓨터 상에서 실행 가능한 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium)를 포함한다. The scope of the present disclosure is software or machine-executable instructions (eg, operating systems, applications, firmware, programs, etc.) that cause operations according to methods of various embodiments to be executed on a device or computer, and such software or It includes a non-transitory computer-readable medium in which instructions and the like are stored and executable on a device or computer.

Claims (12)

가상 머신 프로세서의 원격 처리 장치에 있어서,
제1 프로세서 모듈에 대응되는 제1가상 프로세서와 상기 제1가상 프로세서로의 접근을 제어하는 필터부를 구비하며, 가상 프로세서 컨텍스트의 처리를 위해 요구되는 외부 장치의 제어, 상기 외부 장치로부터 제공되는 데이터의 관리, 상기 가상 프로세서 컨텍스트의 수행을 제어하는 제1가상화 처리부와,
제2 프로세서 모듈에 대응되는 제2가상 프로세서를 구비하며, 상기 제1가상화 처리부로부터 상기 가상 프로세서 컨텍스트의 처리를 요청받고, 처리 요청된 상기 가상 프로세서 컨텍스트를 처리하는 제2가상화 처리부를 포함하고,
상기 필터부는,
미리 설정된 외부 접근 윈도우 영역을 통하여 갱신에 대한 예외가 발생될 수 있도록 갱신 예외 처리를 상기 제1 가상 프로세서에 대한 요청큐에 할당하여 상기 제1가상 프로세서에 의해 처리함으로써, 가상 프로세서 서술자로의 접근을 제어하고, 미리 설정된 내부 접근 윈도우 영역을 통하여 상기 제1 가상 프로세서에서의 접근을 제어하며,
상기 제1가상화 처리부는,
상기 제1가상 프로세서를 구비하는 상태 관리부와,
제어 컨텍스트를 제공하는 제1가상 머신 모니터를 구비하는 상태 커널 관리부를 포함하되,
상기 제1가상 머신 모니터는, 상기 제2가상화 처리부로 상기 가상 프로세서 컨텍스트의 수행을 요청하고,
상기 제1가상 머신 모니터는,
상기 제2가상화 처리부로부터 상기 제2가상화 처리부에 의해 처리가 불가능한 전역 예외 처리 컨텍스트를 수신하고, 상기 전역 예외 처리 컨텍스트를 상기 제1가상 프로세서로 전달하는 것을 특징으로 하는 가상 머신 프로세서의 원격 처리 장치.
In the remote processing device of the virtual machine processor,
A first virtual processor corresponding to a first processor module and a filter unit controlling access to the first virtual processor, including control of an external device required for processing of a virtual processor context and data provided from the external device. A first virtualization processing unit for managing and controlling execution of the virtual processor context;
A second virtualization processor having a second virtual processor corresponding to a second processor module, receiving a request for processing the virtual processor context from the first virtualization processor, and processing the requested virtual processor context;
The filter part,
Access to the virtual processor descriptor is achieved by assigning an update exception to the request queue for the first virtual processor and processing it by the first virtual processor so that an exception to update can be generated through a preset external access window area. control, and control access in the first virtual processor through a preset internal access window area;
The first virtualization processing unit,
a state management unit including the first virtual processor;
A state kernel management unit having a first virtual machine monitor providing a control context,
The first virtual machine monitor requests execution of the virtual processor context to the second virtualization processing unit;
The first virtual machine monitor,
and receiving a global exception handling context that cannot be processed by the second virtualization processor from the second virtualization processor, and transferring the global exception handling context to the first virtual processor.
삭제delete 삭제delete 제1항에 있어서,
상기 제2가상화 처리부는,
상기 제2가상 프로세서를 구비하는 프로세서 처리부와,
상기 제1가상화 처리부로부터 제공되는 제어 컨텍스트를 확인하고, 상기 제어 컨텍스트에 대응되는 상기 가상 프로세서 컨텍스트를 상기 제2가상 프로세서에 전달하는 제2가상 머신 모니터를 구비하는 프로세서 커널 관리부를 포함하는 것을 특징으로 하는 가상 머신 프로세서의 원격 처리 장치.
According to claim 1,
The second virtualization processing unit,
a processor processing unit including the second virtual processor;
and a processor kernel management unit having a second virtual machine monitor that checks a control context provided from the first virtualization processor and transfers the virtual processor context corresponding to the control context to the second virtual processor. A remote processing unit of a virtual machine processor that
제4항에 있어서,
상기 제2가상 머신 모니터는,
상기 제2가상 프로세서에 의해 처리가 불가능한 상기 가상 프로세서 컨텍스트를 확인하여 전역 예외 처리 컨텍스트로 설정하고, 상기 전역 예외 처리 컨텍스트를 상기 제1가상화 처리부로 전달하는 것을 특징으로 하는 가상 머신 프로세서의 원격 처리 장치.
According to claim 4,
The second virtual machine monitor,
The remote processing device of the virtual machine processor, characterized in that the virtual processor context that cannot be processed by the second virtual processor is identified, set as a global exception handling context, and the global exception handling context is transferred to the first virtualization processor. .
제4항에 있어서,
상기 제2가상 머신 모니터는,
상기 제2가상 프로세서가 처리하는 상기 가상 프로세서 컨텍스트를 수행하는 과정에서 지역적인 예외가 발생되는지 여부를 확인하고,
상기 제2가상 프로세서의 상태를 복구하고, 상기 제2가상 프로세서로 상기 지역적인 예외가 발생된 컨텍스트의 재실행을 요청하는 것을 특징으로 하는 가상 머신 프로세서의 원격 처리 장치.
According to claim 4,
The second virtual machine monitor,
Check whether a local exception occurs in the process of executing the virtual processor context processed by the second virtual processor;
and restoring a state of the second virtual processor and requesting the second virtual processor to re-execute the context in which the local exception occurred.
가상 머신 프로세서의 원격 처리 방법에 있어서,
제1 가상 프로세서에서 가상 프로세서 컨텍스트를 확인하는 과정과,
상기 제1 가상 프로세서에서 상기 가상 프로세서 컨텍스트의 수행을 요청하는 제어 컨텍스트를 제2가상 프로세서로 제공하는 과정과,
상기 제1 가상 프로세서에서 상기 제어 컨텍스트에 대응되는 상기 가상 프로세서 컨텍스트의 수행 결과를 상기 제2가상 프로세서로부터 수신하는 과정을 포함하고,
미리 설정된 외부 접근 윈도우 영역을 통하여 갱신에 대한 예외가 발생될 수 있도록 갱신 예외 처리를 상기 제1 가상 프로세서에 대한 요청큐에 할당하여 상기 제1가상 프로세서에 의해 처리함으로써, 가상 프로세서 서술자로의 접근을 제어하고, 미리 설정된 내부 접근 윈도우 영역을 통하여 상기 제1 가상 프로세서에서의 접근을 제어하는 과정을 더 포함하고,
상기 제2가상 프로세서는,
상기 제2가상 프로세서에 의해 처리가 불가능한 상기 가상 프로세서 컨텍스트를 확인하는 과정과,
상기 제2가상 프로세서에 의해 처리가 불가능한 상기 가상 프로세서 컨텍스트를 전역 예외 처리 컨텍스트로 설정하는 과정과,
상기 전역 예외 처리 컨텍스트를 상기 제1가상 프로세서로 전달하는 과정을 수행하는 가상 머신 프로세서의 원격 처리 방법.
In the remote processing method of a virtual machine processor,
Checking a virtual processor context in a first virtual processor;
providing a control context requesting execution of the virtual processor context in the first virtual processor to a second virtual processor;
Receiving a result of execution of the virtual processor context corresponding to the control context in the first virtual processor from the second virtual processor;
Access to the virtual processor descriptor is achieved by assigning an update exception to the request queue for the first virtual processor and processing it by the first virtual processor so that an exception to update can be generated through a preset external access window area. Controlling and controlling access in the first virtual processor through a preset internal access window area;
The second virtual processor,
checking the virtual processor context that cannot be processed by the second virtual processor;
setting the virtual processor context, which cannot be processed by the second virtual processor, as a global exception handling context;
The remote processing method of the virtual machine processor performing a process of transferring the global exception handling context to the first virtual processor.
삭제delete 제7항에 있어서,
상기 제1가상 프로세서에서 상기 제2가상 프로세서로부터 상기 전역 예외 처리 컨텍스트를 수신하는 과정과,
상기 제1가상 프로세서에서 상기 전역 예외 처리 컨텍스트를 수행하는 과정을 포함하는 것을 특징으로 하는 가상 머신 프로세서의 원격 처리 방법.
According to claim 7,
receiving, by the first virtual processor, the global exception handling context from the second virtual processor;
and performing the global exception handling context in the first virtual processor.
삭제delete 삭제delete 삭제delete
KR1020170148124A 2017-11-08 2017-11-08 Apparatus for remote processing for virtual machine processor and method for the same KR102505996B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170148124A KR102505996B1 (en) 2017-11-08 2017-11-08 Apparatus for remote processing for virtual machine processor and method for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170148124A KR102505996B1 (en) 2017-11-08 2017-11-08 Apparatus for remote processing for virtual machine processor and method for the same

Publications (2)

Publication Number Publication Date
KR20190052440A KR20190052440A (en) 2019-05-16
KR102505996B1 true KR102505996B1 (en) 2023-03-08

Family

ID=66672266

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170148124A KR102505996B1 (en) 2017-11-08 2017-11-08 Apparatus for remote processing for virtual machine processor and method for the same

Country Status (1)

Country Link
KR (1) KR102505996B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101707601B1 (en) 2015-12-31 2017-02-16 숭실대학교산학협력단 Virtual machine monitor and schduling method of virtual machine monitor
KR101729680B1 (en) * 2015-12-01 2017-04-25 한국전자통신연구원 Method and apparatus for providing operating system based on lightweight hypervisor
KR101744689B1 (en) * 2016-03-02 2017-06-20 국방과학연구소 A combat management system using function of virtualization and a method for operating the same

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050246453A1 (en) * 2004-04-30 2005-11-03 Microsoft Corporation Providing direct access to hardware from a virtual environment
KR101077908B1 (en) * 2009-10-15 2011-10-31 성균관대학교산학협력단 Apparatus for server virtualization
US9298910B2 (en) * 2011-06-08 2016-03-29 Mcafee, Inc. System and method for virtual partition monitoring
WO2016121728A1 (en) * 2015-01-27 2016-08-04 日本電気株式会社 Network function virtualization management and orchestration device, system, management method, and program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101729680B1 (en) * 2015-12-01 2017-04-25 한국전자통신연구원 Method and apparatus for providing operating system based on lightweight hypervisor
KR101707601B1 (en) 2015-12-31 2017-02-16 숭실대학교산학협력단 Virtual machine monitor and schduling method of virtual machine monitor
KR101744689B1 (en) * 2016-03-02 2017-06-20 국방과학연구소 A combat management system using function of virtualization and a method for operating the same

Also Published As

Publication number Publication date
KR20190052440A (en) 2019-05-16

Similar Documents

Publication Publication Date Title
US9519795B2 (en) Interconnect partition binding API, allocation and management of application-specific partitions
US9760408B2 (en) Distributed I/O operations performed in a continuous computing fabric environment
US9996401B2 (en) Task processing method and virtual machine
US10404795B2 (en) Virtual machine high availability using shared storage during network isolation
JP6089349B2 (en) Method and system for supporting resource separation in a multi-core architecture
US7992032B2 (en) Cluster system and failover method for cluster system
US8671403B2 (en) Pre-creating virtual machines in a grid environment
US10416996B1 (en) System and method for translating affliction programming interfaces for cloud platforms
US9110717B2 (en) Managing use of lease resources allocated on fallover in a high availability computing environment
US9904337B2 (en) Affinity-aware parallel zeroing of pages in non-uniform memory access (NUMA) servers
US20120110274A1 (en) Operating System Image Management
US11301350B1 (en) Automated testing of systems and applications
US8006254B2 (en) Bequeathing privilege to a dynamically loaded module
US20220100599A1 (en) Automated testing of systems and applications
US11983100B2 (en) Automated testing of systems and applications
JP2016508647A5 (en)
KR102204670B1 (en) Technologies for proxy-based multi-threaded message passing communication
JP7399106B2 (en) Live update of kernel device modules
US8141084B2 (en) Managing preemption in a parallel computing system
US9529656B2 (en) Computer recovery method, computer system, and storage medium
US8156510B2 (en) Process retext for dynamically loaded modules
US8977752B2 (en) Event-based dynamic resource provisioning
KR102505996B1 (en) Apparatus for remote processing for virtual machine processor and method for the same
JP6219514B2 (en) Computing device that provides virtual multipath state access, remote computing device for virtual multipath, method for providing virtual multipath state access, method for virtual multipath, computing device, multiple methods for computing device And a machine-readable recording medium
US20210357342A1 (en) Interrupt migration

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant