KR101709121B1 - 가상 머신 구동 방법 및 가상 머신 구동 시스템 - Google Patents

가상 머신 구동 방법 및 가상 머신 구동 시스템 Download PDF

Info

Publication number
KR101709121B1
KR101709121B1 KR1020140042421A KR20140042421A KR101709121B1 KR 101709121 B1 KR101709121 B1 KR 101709121B1 KR 1020140042421 A KR1020140042421 A KR 1020140042421A KR 20140042421 A KR20140042421 A KR 20140042421A KR 101709121 B1 KR101709121 B1 KR 101709121B1
Authority
KR
South Korea
Prior art keywords
virtual machine
mapping
physical address
memory
pseudo
Prior art date
Application number
KR1020140042421A
Other languages
English (en)
Other versions
KR20150117106A (ko
Inventor
김수영
김태호
임채덕
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020140042421A priority Critical patent/KR101709121B1/ko
Priority to US14/675,289 priority patent/US20150293790A1/en
Publication of KR20150117106A publication Critical patent/KR20150117106A/ko
Application granted granted Critical
Publication of KR101709121B1 publication Critical patent/KR101709121B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release 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/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명인 가상 머신 구동 방법은, 복수의 가상 머신 및 상기 복수의 가상 머신을 관리하는 가상 머신 모니터를 포함하는 가상 머신 모니터를 제공하는 단계. 상기 복수의 가상 머신이 가상 머신에 의해 사용되는 메모리에 관한 정보인 메모리 관리 정보를 생성하는 단계 및 상기 가상 머신 모니터가 상기 메모리 관리 정보를 기반으로 메모리 회수가 필요한 희생 가상 머신인지 여부 및 메모리 할당이 필요한 수혜 가상 머신인지 여부를 판단하는 단계를 포함한다.

Description

가상 머신 구동 방법 및 가상 머신 구동 시스템{METHOD AND SYSTEM FOR DRIVING VIRTUAL MACHINE}
본 발명은 가상 머신 구동 방법 및 가상 머신 구동 시스템에 관한 발명으로, 구체적으로는 가상 머신 구동 시 메모리 회수 및 동적 재할당과 관련된 가상 머신 구동 방법 및 가상 머신 구동 시스템에 관한 발명이다.
최근 하드웨어가 급속도로 발전하여 단일 시스템에서 다수의 운영체제를 동시에 실행되도록 다수의 가상 머신들(Virtual Machine)을 생성/관리하고 이들을 제어하는 가상 머신 모니터(Virtual Machine Monitor) 또는 하이퍼바이저(Hypervisor) 기술이 소개되어 널리 활용되고 있다.
가상 머신 모니터는 관리하는 시스템 자원들 중 물리 메모리에 대해서 다수의 가상 머신에게 메모리를 할당하여 가상 머신에서 동작하는 게스트 OS가 이용할 수 있도록 하고 있다. 이 때 가상 머신 모니터는 고정된 메모리 양만큼을 가상 머신에게 할당하는 정적 할당 방식(static allocation policy)을 사용하는 경우도 있고, 시스템 전체 성능 향상을 위해 가상 머신 모니터 수준에서 요구 페이징(demand paging) 방식을 활용하여 상황에 맞게 임의의 게스트 OS의 메모리를 빼앗아 메모리를 더 필요로 하는 게스트 OS에게 할당하는 동적 재할당 방식(dynamic reallocation policy)을 사용하기도 한다.
그런데 동적 재할당 방식을 사용하는 경우, 가상 머신 모니터 수준에서 각각의 가상 머신들이 접근하는 메모리에 대한 모든 정보를 추적하는 방식이기 때문에 시스템 전체의 성능을 저하시키는 원인이 된다. 또한 최근의 CPU 중 하드웨어 지원 가상화(Hardware Assisted Virtualization) 기능을 지원하는 CPU도 있으므로(예를 들어, Intel VT-x, AMD-V, ARM-VE) 하드웨어 특성에 따라서 가상 머신 모니터가 메모리 접근 정보를 추적하는 것조차 쉽지 않은 경우도 많다.
또한, 가상 머신 모니터가 각 가상 머신들의 메모리 접근 정보를 추정하는 경우, 예측의 부정확하다는 문제점이 있다. 예측의 부정확성으로 인해, 오히려 시스템 전체 성능을 저하시키기도 한다.
따라서, 본 발명은 가상 머신 내부로부터 수신한 메모리 관리 정보를 기반으로 동적 재할당 방식을 수행하는 가상 머신 구동 방법 및 가상 머신 구동 시스템을 제공하는 것을 목적으로 한다.
또한, 하드웨어 특성에 무관하게 가상 머신 모니터가 메모리 관리 정보를 용이하게 얻을 수 있는 가상 머신 구동 방법 및 가상 머신 구동 시스템을 제공하는 것을 목적으로 한다.
이를 위하여 본 발명의 일실시예에 따른 가상 머신 구동 방법은, 복수의 가상 머신 및 상기 복수의 가상 머신을 관리하는 가상 머신 모니터를 제공하는 단계. 상기 복수의 가상 머신이 가상 머신에 의해 사용되는 메모리에 관한 정보인 메모리 관리 정보를 생성하는 단계 및 상기 가상 머신 모니터가 상기 메모리 관리 정보를 기반으로 메모리 회수가 필요한 희생 가상 머신인지 여부 및 메모리 할당이 필요한 수혜 가상 머신인지 여부를 판단하는 단계를 포함한다.
또한, 본 발명의 다른 일면에 따른 가상 머신 구동 시스템은, 각각의 가상 머신이 가상 머신 정보 관리기를 포함하는 복수의 가상 머신 및 상기 복수의 가상 머신을 관리하며, 가상 머신 선정기를 포함하는 가상 머신 모니터를 포함하는 가상 머신 구동 시스템으로, 각각의 가상 머신에 의해 사용되는 메모리에 관한 정보인 메모리 관리 정보를 해당 가상 머신 정보 관리기가 생성하며, 상기 가상 머신 선정기는 각각의 가상 머신 정보 관리기로부터 수신한 상기 메모리 관리 정보를 기반으로 메모리 회수가 필요한 희생 가상 머신인지 여부 및 메모리 할당이 필요한 수혜 가상 머신인지 여부를 판단한다.
본 발명은 가상 머신 내부로부터 수신한 메모리 관리 정보를 기반으로 동적 재할당 방식을 수행하는 가상 머신 구동 방법 및 가상 머신 구동 시스템을 제공하는 효과가 있다.
또한, 하드웨어 특성에 무관하게 가상 머신 모니터가 메모리 관리 정보를 용이하게 얻을 수 있는 가상 머신 구동 방법 및 가상 머신 구동 시스템을 제공하는 효과가 있다.
도 1은 본 발명의 일실시예에 따른 가상 머신 구동 시스템을 설명하기 위한 블럭도,
도 2는 본 발명의 일실시예에 따른 가상 머신 구동 방법을 설명하기 위한 순서도,
도 3은 본 발명의 다른 실시예에 따른 가상 머신 구동 방법을 설명하기 위한 순서도,
도 4는 본 발명의 또 다른 실시예에 따른 가상 머신 구동 방법 중 희생 가상 머신인지 여부 및 수혜 가상 머신인지 여부를 판단하는 단계를 설명하기 위한 도면,
도 5 내지 도 8은 본 발명의 또 다른 실시예에 따른 가상 머신 구동 방법을 사용하는 경우 가상 주소, 의사 물리 주소 및 물리 주소 사이 맵핑을 설명하기 위한 도면이다.
도 1은 본 발명의 일실시예에 따른 가상 머신 구동 시스템을 설명하기 위한 블럭도이다. 도 1을 참조하면, 가상 머신 구동 시스템(100)은 가상 머신 1 내지 가상 머신 n(110-1 내지 110-n) 및 n개의 가상 머신(110-1 내지 110-n)을 관리하는 가상 머신 모니터(120)를 포함한다. 각각의 가상 머신(110-1 내지 110-n)은 가상 머신 정보 관리기(111-1 내지 111-n) 및 메모리 회수/할당기(112-1 내지 112-n)를 포함하며, 가상 머신 모니터(120)는 가상 머신 선정기(121)와 메모리 균형기(122)를 포함한다. 도 1에서는 저장부(123)가 가상 머신 선정기(121)에 포함되는 것처럼 도시되었으나, 저장부(123)가 가상 머신 선정기(121)에 포함되지 않고 가상 머신 모니터(120)에 포함될 수도 있다.
각각의 가상 머신(110-1 내지 110-n)은 각각의 운영체제로 운영되며 독자적인 프로세스를 수행할 수 있고, 가상 머신 모니터(120)는 가상 머신(110-1 내지 110-n)을 생성/관리하고, 가상 머신(110-1 내지 110-n)이 동작할 수 있도록 메모리를 할당한다.
가상 머신 정보 관리기(111-1 내지 111-n)는 가상 머신 선정기(121)로 메모리 관리 정보를 송신한다. 메모리 관리 정보는 가상 머신(110-1 내지 110-n)에 의해 사용되는 메모리에 관한 정보이며, 할당된 물리 주소의 용량(length, 길이), 할당된 물리 주소의 사용률, 맵핑을 해제할 수 있는(회수할 수 있는) 용량, 워킹 세트의 크기 및 스왑 장치 공간 사용률 중 적어도 하나를 포함하는 것이 바람직하다. 메모리 회수/할당기(112-1 내지 112-n)는 메모리 균형기(122)에 의사 물리 주소를 송신하거나 메모리 균형기(122)로부터 특정 메모리의 용량(length, 길이)을 수신한다.
가상 머신 선정기(121)는 n개의 가상 머신(110-1 내지 110-n)에 포함된 가상 머신 정보 관리기(111-1 내지 111-n)로부터 수신한 메모리 관리 정보를 기반으로 희생 가상 머신 여부 및 수혜 가상 머신 여부를 판단한다. 가상 머신 선정기(121)가 가상 머신(110-1 내지 110-n)에 포함된 가상 머신 정보 관리기(111-1 내지 111-n)로부터 메모리 관리 정보를 수신하므로, 하드웨어 특성에 무관하게 가상 머신 모니터가 메모리 관리 정보를 용이하게 얻을 수 있다. 가상 머신 선정기(121)는 가상 머신 정보 관리기(111-1 내지 111-n)로부터 메모리 관리 정보를 수신할 수도 있고, 가상 머신(110-1 내지 110-n)으로부터 메모리 관리 정보를 수신할 수도 있다.
메모리 균형기(122)는 특정 조건에 부합하는 경우, 메모리 회수/할당기(112-1 내지 112-n)로부터 맵핑을 해제할 수 있는 의사 물리 주소(메모리를 회수할 수 있는 의사 물리 주소) 또는 맵핑을 설정할 수 있는 의사 물리 주소(메모리를 할당할 수 있는 의사 물리 주소)를 수신하며, 특정 조건에 부합하는 경우 메모리 회수/할당기(112-1 내지 112-n)로 맵핑을 해제할 수 있는 용량을 송신한다. 메모리 균형기(122)가 맵핑을 해제할 수 있는 의사 물리 주소를 수신하는 경우, 상기 의사 물리 주소에 대한 물리 주소 맵핑을 해제한다. 또한, 메모리 균형기(122)가 맵핑을 설정할 수 있는 의사 물리 주소를 수신하는 경우, 상기 의사 물리 주소에 대한 물리 주소 맵핑을 설정한다. 가상 머신의 의사 물리 주소에 대해 물리적으로 구현된 메모리의 물리 주소 맵핑이 설정되는 경우 가상 머신이 메모리를 할당받아 물리적으로 구현된 메모리를 사용할 수 있다. 따라서, 메모리 균형기(122)가 가상 머신의 의사 물리 주소에 대해 물리 주소 맵핑을 설정 또는 해제하는 것에 의하여 메모리를 할당 또는 회수할 수 있다. 가상 머신 모니터(120)가 별도의 메모리 균형기(122) 없이 직접 의사 물리 주소를 수신하거나, 메모리의 용량을 송신하거나, 의사 물리 주소에 대한 물리 주소 맵핑을 설정/해제할 수도 있다.
저장부(123)는 기수신한 메모리 관리 정보, 메모리 회수가 필요한 희생 가상 머신의 조건 및 메모리 할당이 필요한 수혜 가상 머신의 조건을 저장한다. 가상 머신 선정기(121)는 메모리 관리 정보를 수신하는 경우, 저장부(123)에 기저장된 메모리 관리 정보와 비교하여 변화량을 계산하고, 메모리 관리 정보 및 메모리 관리 정보의 변화량이 저장부(123)에 저장된 희생 가상 머신의 조건 및 수혜 가상 머신의 조건에 해당되는지 여부를 기반으로 희생 가상 머신인지 여부 및 수혜 가상 머신인지 여부를 판단한다.
저장부(123)는 수신된 메모리 관리 정보를 일정 시간 동안 저장하고, 가상 머신 선정기(121)가 메모리 관리 정보의 변화량을 계산하는 경우 특정 시간 범위 내에 수신되었던(기수신된) 메모리 관리 정보를 가상 머신 선정기(121)에 제공한다. 가상 머신 모니터(120)가 가상 머신 선정기(121) 내에 포함되지 않는 별도의 저장부(123)를 포함할 수도 있다.
도 2는 본 발명의 일실시예에 따른 가상 머신 구동 방법을 설명하기 위한 순서도이다. 도 2를 참조하면, 가상 머신 구동 방법(S100)은, 복수의 가상 머신 및 가상 머신 모니터를 제공하는 단계(S110), 메모리 관리 정보를 생성하는 단계(S120), 희생 가상 머신인지 여부 및 수혜 가상 머신인지 여부를 판단하는 단계(S125), 단계(S130), 맵핑을 해제할 수 있는 의사 물리 주소를 수신하는 단계(S140), 맵핑을 해제할 수 있는 용량을 송신하는 단계(S150), 맵핑을 설정할 수 있는 의사 물리 주소를 수신하는 단계(S160), 물리 주소 맵핑을 해제하는 단계(S170) 및 물리 주소 맵핑을 설정하는 단계(S180)를 포함한다. 이하에서, 각 단계(S110, S120, S125, S130, S140, S150, S160, S170, S180)는 도 1 및 도 2를 참조하여 설명될 것이다.
복수의 가상 머신 및 가상 머신 모니터를 제공하는 단계(S110)에서, 가상 머신 정보 관리기(111-1 내지 111-n) 및 메모리 회수/할당기(112-1 내지 112-n)를 포함하는 가상 머신(110-1 내지 110-n) 및 가상 머신 선정기(121), 메모리 균형기(122) 및 저장부(123)를 포함하는 가상 머신 모니터(120)가 제공된다.
메모리 관리 정보를 생성하는 단계(S120)에서, 가상 머신 정보 관리기(111-1 내지 111-n) 중 적어도 일부는 메모리 관리 정보를 생성한다.
희생 가상 머신인지 여부 및 수혜 가상 머신인지 여부를 판단하는 단계(S125)에서, 가상 머신 선정기(121)는 메모리 관리 정보를 수신하고, 수신한 메모리 관리 정보를 기반으로 각각의 가상 머신(110-1 내지 110-n)이 희생 가상 머신인지 여부 및 수혜 가상 머신인지 여부를 판단한다.
단계(S130)에서, 희생 가상 머신 및 수혜 가상 머신이 각각 존재하면 가상 머신 모니터(120)는 희생 가상 머신에 할당되었던 메모리 중 적어도 일부를 회수하고 수혜 가상 머신에 대해 메모리를 할당할 필요가 있다고 판단하며, 맵핑을 해제할 수 있는 의사 물리 주소를 수신하는 단계(S140)를 수행한다. 희생 가상 머신 또는 수혜 가상 머신이 존재하지 않으면 메모리 관리 정보를 생성하는 단계(S120)를 수행한다. 이하에서, 각 단계(S140, S150, S160, S170, S180)의 설명의 편의를 위해, 가상 머신 1(110-1)이 희생 가상 머신이고 가상 머신 2(110-2)가 수혜 가상 머신이라고 가정하고 설명될 것이다.
맵핑을 해제할 수 있는 의사 물리 주소를 수신하는 단계(S140)에서, 가상 머신 1(110-1)은 맵핑을 해제할 수 있는 의사 물리 주소를 결정하고, 메모리 균형기(122)는 메모리 회수/할당기(112-1)로부터 맵핑을 해제할 수 있는 의사 물리 주소를 수신한다. 주소 송수신의 편의를 위해, 주소를 일정 단위(예를 들어 0X1000, 16진수로 1000)로 묶은 후 송수신할 수 있으며, 이 때 일정 단위의 번호를 페이지 프레임 번호라고 한다. 예를 들어, 0X7000부터 0X7FFF까지의 주소를 송신하고자 하는 경우, 페이지 프레임 번호 7을 송신하면 된다.
맵핑을 해제할 수 있는 용량을 송신하는 단계(S150)에서, 메모리 균형기(122)는 수신한 맵핑을 해제할 수 있는 의사 물리 주소를 바탕으로 맵핑을 해제할 수 있는 용량을 연산한 후, 맵핑을 해제할 수 있는 용량을 가상 머신 2의 메모리 회수/할당기(112-2)로 송신한다.
맵핑을 설정할 수 있는 의사 물리 주소를 수신하는 단계(S160)에서, 가상 머신 2(110-2)는 수신한 맵핑을 해제할 수 있는 용량을 바탕으로 맵핑을 설정할 수 있는 의사 물리 주소를 결정하고, 메모리 균형기(122)는 가상 머신 2(110-2)의 메모리 회수/할당기(112-2)로부터 맵핑을 설정할 수 있는 의사 물리 주소를 수신한다.
물리 주소 맵핑을 해제하는 단계(S170)에서, 메모리 균형기(122)는 맵핑을 해제할 수 있는 의사 물리 주소에 대한 물리 주소 맵핑을 해제한다. 물리 주소 맵핑을 해제하는 단계(S170)가 수행되었으므로, 가상 머신 1(110-1)에 할당되었던 메모리 중 일부가 회수되었다.
물리 주소 맵핑을 설정하는 단계(S180)에서, 메모리 균형기(122)는 맵핑을 설정할 수 있는 의사 물리 주소에 대한 물리 주소 맵핑을 설정한다. 물리 주소 맵핑을 설정하는 단계(S180)가 수행되었으므로, 가상 머신 2(110-2)는 메모리를 할당받았다.
도 2에서, 맵핑을 해제할 수 있는 의사 물리 주소를 수신하는 단계(S140), 맵핑을 해제할 수 있는 용량을 송신하는 단계(S150), 맵핑을 설정할 수 있는 의사 물리 주소를 수신하는 단계(S160), 물리 주소 맵핑을 해제하는 단계(S170) 및 물리 주소 맵핑을 설정하는 단계(S180)가 순차적으로 진행되는 것처럼 도시되었으나, 맵핑을 해제할 수 있는 의사 물리 주소를 수신하는 단계(S140), 물리 주소 맵핑을 해제하는 단계(S170), 맵핑을 해제할 수 있는 용량을 송신하는 단계(S150), 맵핑을 설정할 수 있는 의사 물리 주소를 수신하는 단계(S160) 및 물리 주소 맵핑을 설정하는 단계(S180)가 순차적으로 진행될 수도 있다.
도 3은 본 발명의 또 다른 실시예에 따른 가상 머신 구동 방법을 설명하기 위한 순서도이다. 도 3을 참조하면, 가상 머신 구동 방법(S200)은, 복수의 가상 머신 및 가상 머신 모니터를 제공하는 단계(S210), 메모리 관리 정보를 생성하는 단계(S220), 희생 가상 머신인지 여부 및 수혜 가상 머신인지 여부를 판단하는 단계(S225), 단계(S230), 맵핑을 해제할 수 있는 의사 물리 주소를 수신하는 단계(S240), 물리 주소 맵핑을 해제하는 단계(S250), 단계(S260), 맵핑을 해제할 수 있는 용량을 송신하는 단계(S270), 맵핑을 설정할 수 있는 의사 물리 주소를 수신하는 단계(S280) 및 물리 주소 맵핑을 설정하는 단계(S290)를 포함한다. 복수의 가상 머신 및 가상 머신 모니터를 제공하는 단계(S210), 메모리 관리 정보를 생성하는 단계(S220), 희생 가상 머신인지 여부 및 수혜 가상 머신인지 여부를 판단하는 단계(S225), 맵핑을 해제할 수 있는 의사 물리 주소를 수신하는 단계(S240), 물리 주소 맵핑을 해제하는 단계(S250), 맵핑을 해제할 수 있는 용량을 송신하는 단계(S270), 맵핑을 설정할 수 있는 의사 물리 주소를 수신하는 단계(S280) 및 물리 주소 맵핑을 설정하는 단계(S290)는 각각 도 2에서 도시된 복수의 가상 머신 및 가상 머신 모니터를 제공하는 단계(S110), 메모리 관리 정보를 생성하는 단계(S120), 희생 가상 머신인지 여부 및 수혜 가상 머신인지 여부를 판단하는 단계(S125), 맵핑을 해제할 수 있는 의사 물리 주소를 수신하는 단계(S140), 물리 주소 맵핑을 해제하는 단계(S170), 맵핑을 해제할 수 있는 용량을 송신하는 단계(S150), 맵핑을 설정할 수 있는 의사 물리 주소를 수신하는 단계(S160) 및 물리 주소 맵핑을 설정하는 단계(S180)에 대응하므로 자세한 설명은 생략되어도 무방하다. 이하에서, 각 단계(S230, S260, S270, S280, S290)는 도 1 및 도 3를 참조하여 설명될 것이다.
단계(S230)에서, 희생 가상 머신이 존재하는 경우는 맵핑을 해제할 수 있는 의사 물리 주소를 수신하는 단계(S240)를 수행하며, 희생 가상 머신이 존재하지 않는 경우는 단계(S260)를 수행한다. 도 2에서 도시된 가상 머신 구동 방법(S100)에서는 희생 가상 머신만 존재하는 경우에 메모리 관리 정보를 생성하는 단계(S120)를 수행하였으나, 가상 머신 구동 방법(S200)은 희생 가상 머신만 존재하더라도 맵핑을 해제할 수 있는 의사 물리 주소를 수신하는 단계(S240) 및 물리 주소 맵핑을 해제하는 단계(S250)를 수행한다. 단계(S240 또는 S250)에서, 맵핑을 해제할 수 있는 의사 물리 주소는 메모리 균형기(122)에 저장된다.
단계(S260)에서, 수혜 가상 머신이 존재하는 경우는 맵핑을 해제할 수 있는 용량을 송신하는 단계(S270)를 수행하며, 수혜 가상 머신이 존재하지 않는 경우는 메모리 관리 정보를 생성하는 단계(S220)를 수행한다. 도 2에서 도시된 가상 머신 구동 방법(S100)에서는 수혜 가상 머신만 존재하는 경우에 메모리 관리 정보를 생성하는 단계(S120)를 수행하였으나, 가상 머신 구동 방법(S200)은 수혜 가상 머신만 존재하더라도 단계(S270, S280, S290)를 수행한다. 도 3에 표시되진 않았으나, 희생 가상 머신이 전혀 없어 물리 주소 맵핑을 해제하는 단계(S250)가 수행된 적이 없고, 메모리 균형기(122)에 저장된 맵핑을 해제할 수 있는 의사 물리 주소가 전혀 없는 경우, 단계(S270, S280, S290)가 수행될 수 없다. 가상 머신 모니터(120)는 인터페이스(미도시)를 통하여 사용자에게 경고 메시지를 출력할 수도 있고, 가상 머신(110-1 내지 110-n)에게 메모리 부족을 전달하면서 가상 머신(110-1 내지 110-n)이 수행하던 프로세스의 제한 또는 중지를 요청할 수도 있다.
맵핑을 해제할 수 있는 용량을 송신하는 단계(S270)에서, 메모리 균형기(122)는 단계(S240) 또는 단계(S250)가 수행될 때마다 저장되었던 맵핑을 해제할 수 있는 의사 물리 주소를 바탕으로 맵핑을 해제할 수 있는 용량을 연산하고, 맵핑을 해제할 수 있는 용량을 수혜 가상 머신의 메모리 회수/할당기에 송신한다.
도 4는 본 발명의 또 다른 실시예에 따른 가상 머신 구동 방법 중 희생 가상 머신인지 여부 및 수혜 가상 머신인지 여부를 판단하는 단계를 설명하기 위한 도면이다. 희생 가상 머신인지 여부 및 수혜 가상 머신인지 여부를 판단하는 단계(S300)는 단계(S125) 또는 단계(S225)에 대응하며, 이하 상세한 내용은 도 1 내지 도 4를 참조하여 설명될 것이다.
메모리 관리 정보를 수신하는 단계(S310)에서, 가상 머신 선정기(121)는 가상 머신 정보 관리기(111-1 내지 111-n)가 생성한 메모리 관리 정보를 수신한다. 수신된 메모리 관리 정보는 일정 기간동안 저장부(123)에 저장된다.
변화량을 계산하는 단계(S320)에서, 저장부에 저장되었던 메모리 관리 정보와 단계(S310)에서 수신한 메모리 관리 정보를 비교하여 변화량을 계산한다. 계산된 변화량도 저장부(123)에 저장될 수 있다.
조건에 해당하는지 여부를 판단하는 단계(S330)에서, 가상 머신 선정기(121)는 단계(S310)에서 수신한 메모리 관리 정보 및 단계(S320)에서 계산된 변화량이 저장부(123)에 저장된 희생 가상 머신의 조건 및 수혜 가상 머신의 조건에 해당되는지 여부를 기반으로 희생 가상 머신인지 여부 및 수혜 가상 머신인지 여부를 판단한다.
도 5 내지 도 8은 본 발명의 또 다른 실시예에 따른 가상 머신 구동 방법에 의한 가상 머신 구동 방법 중 가상 주소(virtual address), 의사 물리 주소(psuedo physical address) 및 물리 주소(physical address) 사이 맵핑을 설명하기 위한 도면이다. 이하의 내용은 도 1 내지 도 4를 추가적으로 참조하여 설명될 것이다. 가상 주소(210-1, 210-2)에 대한 의사 물리 주소(220-1, 220-2) 맵핑은 해당 가상 머신(110-1, 110-2)을 사용하는 게스트 OS에 의해 관리되고, 의사 물리 주소(220-1, 220-2)에 대한 물리 주소(230) 맵핑은 가상 머신 모니터(120)에 의해 관리된다.
도 5는 가상 머신 1(110-1)를 사용하는 게스트 OS 및 가상 머신 2(110-2)를 사용하는 게스트 OS가 부팅된 후의 도면이다. 도 5를 참조하면, 가상 머신 1(110-1)의 가상 주소(210-1) 중 사용 영역(211-1)은 0X1000부터 0X2FFF까지이며(페이지 프레임 번호 1,2), 의사 물리 주소(220-1) 페이지 프레임 번호 3,4와 맵핑된다. 의사 물리 주소(220-1) 페이지 프레임 번호 3,4는 물리 주소(230) 페이지 프레임 번호 1,2와 맵핑된다. 마찬가지로, 가상 머신 2(110-2)의 가상 주소(210-2) 중 사용 영역(211-2)은 0X1000부터 0X2FFF까지이며(페이지 프레임 번호 1,2), 의사 물리 주소(220-2) 페이지 프레임 번호 5,6과 맵핑된다. 의사 물리 주소(220-2) 페이지 프레임 번호 5,6은 물리 주소(230) 페이지 프레임 번호 7,8과 맵핑된다. 부팅을 위해 두 가상 머신(110-1, 110-2)에는 동일한 용량(0X2000)의 메모리가 할당되었다.
도 6은 가상 머신 1(110-1) 및 가상 머신 2(110-2)에 벌루닝이 적용된 후의 도면이다. 도 6을 참조하면, 가상 주소(210-1, 210-2)는 사용 영역(211-1, 211-2)과 벌룬 영역(212-1, 212-2)을 포함한다. 사용 영역(211-1, 211-2)은 물리 주소(230)와 맵핑이 되어 가상 머신 1(110-1)을 사용하는 게스트 OS 또는 가상 머신 2(110-2)를 사용하는 게스트 OS가 실제로 사용할 수 있으며, 벌룬 영역(212-1, 212-2)은 물리 주소(230)와 맵핑이 되지 않아 실제로 사용할 수 없다. 사용 영역(211-1, 211-2)에 대한 맵핑은 도 5에서 설명된 바와 동일하므로 설명이 생략되어도 무방하다. 벌룬 영역(212-1)의 페이지 프레임 번호는 3이며, 의사 물리 주소(220-1) 페이지 프레임 번호 5와 맵핑된다. 벌룬 영역(212-2)의 경우에는 페이지 프레임 번호가 3이며, 의사 물리 주소(220-2) 페이지 프레임 번호 7과 맵핑된다. 그러나 의사 물리 주소(220-1) 페이지 프레임 번호 5 및 의사 물리 주소(220-2) 페이지 프레임 번호 7은 물리 주소(230)와 맵핑되지 않아 실제로 사용할 수 없다. 게스트 OS가 사용할 수 있는 메모리의 양은 벌룬 영역(212-1, 212-2)의 크기의 변경에 의하여 조절될 수 있다.
도 7은 가상 머신 1(110-1)에 할당된 메모리를 회수하는 경우의 도면이다. 단계(S125)에서 희생 가상 머신 및 수혜 가능 머신이 각각 존재한다고 판단하거나, 단계(S225)에서 희생 가상 머신이 존재한다고 판단하는 경우, 단계(S140, S170) 또는 단계(S240, S250)가 수행된다. 이하에서, 가상 머신 1(110-1)이 희생 가상 머신이라고 가정한다.
맵핑을 해제할 수 있는 의사 물리 주소를 수신하는 단계(S140 또는 S240)에서, 가상 머신 1(110-1)은 맵핑을 해제할 수 있는 의사 물리 주소를 결정하고, 맵핑을 해제할 수 있는 의사 물리 주소를 메모리 균형기(122)로 송신한다. 도 7에서는 맵핑을 해제할 수 있는 의사 물리 주소가 0X4000부터 0X4FFF까지로 결정되었다.
물리 주소 맵핑을 해제하는 단계(S170 또는 S250)에서, 메모리 균형기(122)는 맵핑을 해제할 수 있는 의사 물리 주소에 대해 물리 주소 맵핑을 해제한다. 의사 물리 주소(220-1) 페이지 프레임 번호 4는 더 이상 물리 주소(230) 페이지 프레임 번호 2와 맵핑되지 않으므로, 의사 물리 주소(220-1) 중 페이지 프레임 번호 3만 물리 주소(230) 페이지 프레임 번호 1과 맵핑된다. 가상 주소(210-1) 페이지 프레임 번호 2는 벌룬 영역으로 분류되므로, 사용 영역(211-1)의 용량이 감소하고 벌룬 영역(212-1)의 용량이 증가하였다.
도 8은 가상 머신 2(110-2)에 메모리를 할당하는 경우의 도면이다. 단계(S125)에서 희생 가상 머신 및 수혜 가능 머신이 각각 존재한다고 판단하거나, 단계(S225)에서 수혜 가상 머신이 존재한다고 판단하는 경우, 단계(S150, S160, S180) 또는 단계(S270, S280, S290)가 수행된다. 가상 머신 1(110-1)이 희생 가상 머신이며, 가상 머신 2(110-2)가 수혜 가상 머신이다. 또한, 도 7에 도시된 것처럼 단계(S140, S170) 또는 단계(S240, S250)가 수행되었다고 가정한다.
맵핑을 해제할 수 있는 용량을 송신하는 단계(S150, S270)에서, 메모리 균형기(122)는 맵핑을 해제할 수 있는 의사 물리 주소를 바탕으로 맵핑을 해제할 수 있는 용량을 연산한다. 도 7 및 도 8을 참조하면, 맵핑을 해제할 수 있는 용량은 0X1000(10진법으로는 4096)이다. 맵핑을 해제할 수 있는 용량을 가상 머신 2의 메모리 회수/할당기(112-2)로 송신한다.
맵핑을 설정할 수 있는 의사 물리 주소를 수신하는 단계(S160, S280)에서, 가상 머신 2(110-2)는 수신한 맵핑을 해제할 수 있는 용량을 바탕으로 맵핑을 설정할 수 있는 의사 물리 주소를 결정한다. 도 8에서, 맵핑을 설정할 수 있는 의사 물리 주소(220-2)는 0X7000부터 0X7FFF로 결정되었다. 메모리 균형기(122)는 가상 머신 2(110-2)의 메모리 회수/할당기(112-2)로부터 맵핑을 설정할 수 있는 의사 물리 주소를 수신한다.
물리 주소 맵핑을 설정하는 단계(S180, S290)에서, 메모리 균형기(122)는 맵핑을 설정할 수 있는 의사 물리 주소에 대해 물리 주소 맵핑을 설정한다. 도 8에서, 의사 물리 주소(220-2) 페이지 프레임 번호 7는 물리 주소(230) 페이지 프레임 2에 맵핑된다. 여기서, 단계(S180, S290)에서 맵핑되는 물리 주소(물리 주소(230) 페이지 프레임 2)는 맵핑을 해제할 수 있는 의사 물리 주소를 수신하는 단계(S140 또는 S240)에서 맵핑을 해제할 수 있는 의사 물리 주소에 맵핑되었던 물리 주소이다. 의사 물리 주소(220-2) 페이지 프레임 번호 5, 6, 7이 각각 물리 주소(230) 페이지 프레임 번호 7, 8, 2에 맵핑된다. 가상 주소(210-2) 페이지 프레임 번호 3은 사용 영역으로 분류되므로, 사용 영역(211-2)의 용량이 증가하고 벌룬 영역(212-2)의 용량이 0으로 감소하였다.
이제까지 본 발명에 대해서 그 바람직한 실시예를 중심으로 살펴보았으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적 기술 범위 내에서 상기 본 발명의 상세한 설명과 다른 형태의 실시예들을 구현할 수 있을 것이다.
여기서 본 발명의 본질적 기술 범위는 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
110: 가상 머신 120: 가상 머신 모니터

Claims (17)

  1. 복수의 가상 머신 및 상기 복수의 가상 머신을 관리하는 가상 머신 모니터를 제공하는 단계;
    상기 복수의 가상 머신이 가상 머신에 의해 사용되는 메모리에 관한 정보인 메모리 관리 정보를 생성하는 단계; 및
    상기 가상 머신 모니터가 상기 가상 머신으로부터 수신한 상기 메모리 관리 정보를 기반으로, 상기 가상 머신이 메모리 회수가 필요한 희생 가상 머신인지 여부 및 메모리 할당이 필요한 수혜 가상 머신인지 여부를 판단하는 단계를 포함하며,
    상기 희생 가상 머신인지 여부 및 수혜 가상 머신인지 여부를 판단하는 단계는,
    상기 가상 머신으로부터 수신한 상기 메모리 관리 정보와 기저장된 메모리 관리 정보를 비교하여 변화량을 계산하는 단계; 및
    각각의 상기 가상 머신으로부터 수신된 상기 메모리 관리 정보와 상기 변화량을 기반으로, 기저장된 희생 가상 머신의 조건 및 기저장된 수혜 가상 머신의 조건에 해당하는지 여부를 판단하는 단계를 포함하며,
    상기 메모리 관리 정보는,
    각각의 상기 가상 머신의 의사 물리 메모리의 용량, 의사 물리 메모리의 사용률, 맵핑을 해제할 수 있는 메모리의 용량, 워킹 세트의 크기 및 스왑 장치 공간 사용률 중 적어도 하나를 포함하는 것을 특징으로 하는 가상 머신 구동 방법.
  2. 제1항에 있어서,
    상기 복수의 가상 머신 및 가상 머신 모니터를 제공하는 단계에서,
    상기 가상 머신 모니터는 가상 머신의 의사 물리 주소에 대해 물리 주소 맵핑을 설정 또는 해제하는 것에 의하여 메모리를 할당 또는 회수할 수 있으며, 각각의 가상 머신은 상기 가상 머신 모니터에 해당 가상 머신의 의사 물리 주소를 송신할 수 있는 것을 특징으로 하는 가상 머신 구동 방법.
  3. 제2항에 있어서,
    상기 희생 가상 머신인지 여부 및 수혜 가상 머신인지 여부를 판단하는 단계에서 희생 가상 머신 및 수혜 가상 머신이 존재하는 것으로 판단되는 경우,
    상기 가상 머신 모니터가 상기 희생 가상 머신으로부터 맵핑을 해제할 수 있는 의사 물리 주소를 수신하는 단계;
    상기 가상 머신 모니터가 상기 수혜 가상 머신에 맵핑을 해제할 수 있는 용량을 송신하는 단계;
    상기 가상 머신 모니터가 상기 수혜 가상 머신으로부터 맵핑을 설정할 수 있는 의사 물리 주소를 수신하는 단계;
    상기 가상 머신 모니터가 상기 맵핑을 해제할 수 있는 의사 물리 주소에 대해 물리 주소 맵핑을 해제하는 단계; 및
    상기 가상 머신 모니터가 상기 맵핑을 설정할 수 있는 의사 물리 주소에 대해 물리 주소 맵핑을 설정하는 단계를 수행하는 것을 특징으로 하는 가상 머신 구동 방법.
  4. 제2항에 있어서,
    상기 희생 가상 머신인지 여부 및 수혜 가상 머신인지 여부를 판단하는 단계에서 희생 가상 머신이 존재하는 것으로 판단되는 경우,
    상기 가상 머신 모니터가 상기 희생 가상 머신으로부터 맵핑을 해제할 수 있는 의사 물리 주소를 수신하는 단계; 및
    상기 가상 머신 모니터가 상기 맵핑을 해제할 수 있는 의사 물리 주소에 대해 물리 주소 맵핑을 해제하는 단계를 수행하는 것을 특징으로 하는 가상 머신 구동 방법.
  5. 제4항에 있어서,
    상기 희생 가상 머신인지 여부 및 수혜 가상 머신인지 여부를 판단하는 단계에서 수혜 가상 머신이 존재하는 것으로 판단되는 경우,
    상기 가상 머신 모니터가 상기 수혜 가상 머신에 맵핑을 해제할 수 있는 용량을 송신하는 단계;
    상기 가상 머신 모니터가 수혜 가상 머신으로부터 맵핑을 설정할 수 있는 의사 물리 주소를 수신하는 단계; 및
    상기 가상 머신 모니터가 상기 맵핑을 설정할 수 있는 의사 물리 주소에 대해 물리 주소 맵핑을 설정하는 단계를 수행하는 것을 특징으로 하는 가상 머신 구동 방법.
  6. 제3항 또는 제5항에 있어서,
    상기 물리 주소 맵핑을 설정하는 단계에서, 상기 맵핑을 설정할 수 있는 의사 물리 주소에 맵핑되는 물리 주소는,
    상기 맵핑을 해제할 수 있는 의사 물리 주소를 수신하는 단계에서 상기 맵핑을 해제할 수 있는 의사 물리 주소에 맵핑되었던 물리 주소 중 적어도 일부를 포함하는 것을 특징으로 하는 가상 머신 구동 방법.
  7. 삭제
  8. 삭제
  9. 각각의 가상 머신이 가상 머신 정보 관리기를 포함하는 복수의 가상 머신; 및
    상기 복수의 가상 머신을 관리하며, 가상 머신 선정기 및 저장부를 포함하는 가상 머신 모니터를 포함하는 가상 머신 구동 시스템으로,
    상기 가상 머신 정보 관리기는,
    각각의 상기 가상 머신에 의해 사용되는 메모리에 관한 정보인 메모리 관리 정보를 생성하고,
    상기 가상 머신 선정기는,
    상기 가상 머신 정보 관리기로부터 수신한 상기 메모리 관리 정보와 상기 저장부에 기 저장된 메모리 관리 정보를 비교하여 변화량을 계산하고, 수신된 상기 메모리 관리 정보 및 상기 변화량을 기반으로 각각의 상기 가상 머신이 상기 저장부에 기 저장된 희생 가상 머신의 조건 및 기 저장된 수혜 가상 머신의 조건에 해당하는지 여부를 판단하며, 판단 결과를 기반으로 상기 메모리 관리 정보를 전송한 각각의 상기 가상 머신을 메모리 회수가 필요한 상기 희생 가상 머신 및 메모리 할당이 필요한 상기 수혜 가상 머신 중 어느 하나로 분류하고,
    상기 메모리 관리 정보는,
    각각의 상기 가상 머신의 의사 물리 메모리의 용량, 의사 물리 메모리의 사용률, 맵핑을 해제할 수 있는 메모리의 용량, 워킹 세트의 크기 및 스왑 장치 공간 사용률 중 적어도 하나를 포함하는 것을 특징으로 하는 가상 머신 구동 시스템.
  10. 제9항에 있어서,
    상기 가상 머신 모니터는 가상 머신의 의사 물리 주소에 대해 물리 주소 맵핑을 설정 또는 해제하는 것에 의하여 메모리를 할당 또는 회수할 수 있는 메모리 균형기를 더 포함하며, 각각의 가상 머신은 상기 메모리 균형기에 각각의 가상 머신의 의사 물리 주소를 송신하는 메모리 회수/할당기를 더 포함하는 가상 머신 구동 시스템.
  11. 제10항에 있어서,
    희생 가상 머신 및 수혜 가상 머신이 존재하는 경우,
    상기 가상 머신 모니터는 상기 희생 가상 머신의 메모리 회수/할당기로부터 맵핑을 해제할 수 있는 의사 물리 주소를 수신하고,
    상기 수혜 가상 머신의 메모리 회수/할당기로 맵핑을 해제할 수 있는 용량을 송신하며,
    상기 수혜 가상 머신의 메모리 회수/할당기로부터 맵핑을 설정할 수 있는 의사 물리 주소를 수신하는 가상 머신 구동 시스템.
  12. 제11항에 있어서,
    상기 메모리 균형기는 상기 맵핑을 해제할 수 있는 의사 물리 주소에 대해 물리 주소 맵핑을 해제하고,
    상기 맵핑을 설정할 수 있는 의사 물리 주소에 대해 물리 주소 맵핑을 설정하는 것을 특징으로 하는 가상 머신 구동 시스템.
  13. 제10항에 있어서,
    희생 가상 머신이 존재하는 경우,
    상기 가상 머신 모니터는 상기 희생 가상 머신의 메모리 회수/할당기로부터 맵핑을 해제할 수 있는 의사 물리 주소를 수신하고,
    상기 메모리 균형기는 상기 맵핑을 해제할 수 있는 의사 물리 주소에 대한 물리 주소 맵핑을 해제하는 것을 특징으로 하는 가상 머신 구동 시스템.
  14. 제13항에 있어서,
    수혜 가상 머신이 존재하는 경우,
    상기 가상 머신 모니터는 상기 수혜 가상 머신의 메모리 회수/할당기로 맵핑을 해제할 수 있는 용량을 송신하며, 상기 수혜 가상 머신의 메모리 회수/할당기로부터 맵핑을 설정할 수 있는 의사 물리 주소를 수신하고,
    상기 메모리 균형기는 상기 맵핑을 설정할 수 있는 의사 물리 주소에 대한 물리 주소 맵핑을 설정하는 것을 특징으로 하는 가상 머신 구동 시스템.
  15. 제12항 또는 제14항에 있어서,
    상기 맵핑을 설정할 수 있는 의사 물리 주소에 맵핑되는 물리 주소는,
    상기 맵핑을 해제할 수 있는 의사 물리 주소에 대해 맵핑되었던 물리 주소 중 적어도 일부를 포함하는 것을 특징으로 하는 가상 머신 구동 시스템.
  16. 삭제
  17. 삭제
KR1020140042421A 2014-04-09 2014-04-09 가상 머신 구동 방법 및 가상 머신 구동 시스템 KR101709121B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140042421A KR101709121B1 (ko) 2014-04-09 2014-04-09 가상 머신 구동 방법 및 가상 머신 구동 시스템
US14/675,289 US20150293790A1 (en) 2014-04-09 2015-03-31 Method and system for driving virtual machine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140042421A KR101709121B1 (ko) 2014-04-09 2014-04-09 가상 머신 구동 방법 및 가상 머신 구동 시스템

Publications (2)

Publication Number Publication Date
KR20150117106A KR20150117106A (ko) 2015-10-19
KR101709121B1 true KR101709121B1 (ko) 2017-02-22

Family

ID=54265150

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140042421A KR101709121B1 (ko) 2014-04-09 2014-04-09 가상 머신 구동 방법 및 가상 머신 구동 시스템

Country Status (2)

Country Link
US (1) US20150293790A1 (ko)
KR (1) KR101709121B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107977264B (zh) * 2016-10-24 2022-06-10 阿里巴巴集团控股有限公司 一种虚拟机内存资源的调度方法以及装置
US10445009B2 (en) * 2017-06-30 2019-10-15 Intel Corporation Systems and methods of controlling memory footprint

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101072807B1 (ko) * 2010-09-30 2011-10-14 한국과학기술원 가상 머신 모니터 시스템
US20130132957A1 (en) * 2006-04-27 2013-05-23 Vmware, Inc. System and method for cooperative virtual machine memory scheduling

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050132367A1 (en) * 2003-12-16 2005-06-16 Vijay Tewari Method, apparatus and system for proxying, aggregating and optimizing virtual machine information for network-based management
US7421533B2 (en) * 2004-04-19 2008-09-02 Intel Corporation Method to manage memory in a platform with virtual machines
US20060184938A1 (en) * 2005-02-17 2006-08-17 Intel Corporation Method, apparatus and system for dynamically reassigning memory from one virtual machine to another
US8015383B2 (en) * 2007-06-27 2011-09-06 International Business Machines Corporation System, method and program to manage virtual memory allocated by a virtual machine control program
KR101699770B1 (ko) * 2010-09-06 2017-02-13 삼성전자주식회사 가상화 시스템 및 그 가상화 시스템에서 자원 할당 방법
US9858095B2 (en) * 2012-09-17 2018-01-02 International Business Machines Corporation Dynamic virtual machine resizing in a cloud computing infrastructure
US9038068B2 (en) * 2012-11-15 2015-05-19 Bank Of America Corporation Capacity reclamation and resource adjustment
US9529613B2 (en) * 2012-12-12 2016-12-27 Vmware, Inc. Methods and apparatus to reclaim resources in virtual computing environments
US9176764B1 (en) * 2013-09-25 2015-11-03 Amazon Technologies, Inc. Managing memory in virtualized environments

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130132957A1 (en) * 2006-04-27 2013-05-23 Vmware, Inc. System and method for cooperative virtual machine memory scheduling
KR101072807B1 (ko) * 2010-09-30 2011-10-14 한국과학기술원 가상 머신 모니터 시스템

Also Published As

Publication number Publication date
US20150293790A1 (en) 2015-10-15
KR20150117106A (ko) 2015-10-19

Similar Documents

Publication Publication Date Title
US20210399946A1 (en) Container cluster management
US9996370B1 (en) Page swapping in virtual machine environment
US8850158B2 (en) Apparatus for processing remote page fault and method thereof
EP2266040B1 (en) Methods and systems for dynamic cache partitioning for distributed applications operating on multiprocessor architectures
US9229751B2 (en) Apparatus and method for managing virtual memory
EP2645259B1 (en) Method, device and system for caching data in multi-node system
US9471346B2 (en) Categorizing memory pages based on page residences
US10705951B2 (en) Shared fabric attached memory allocator
EP3224728B1 (en) Providing shared cache memory allocation control in shared cache memory systems
US10691481B2 (en) System and method for detection of underprovisioning of memory in virtual machines
CN110753910A (zh) 用于在数据中心中分配存储器的设备和方法
US10558579B1 (en) System and method for adaptive cache
GB2584980A (en) Workload management with data access awareness in a computing cluster
KR20150128804A (ko) 하드웨어 테이블 워크를 수행하는데 요구된 시간 및 컴퓨팅 리소스들의 양을 감소시키기 위한 방법들 및 시스템들
JP6974510B2 (ja) データを処理するための方法、装置、デバイス及び媒体
KR101709121B1 (ko) 가상 머신 구동 방법 및 가상 머신 구동 시스템
CN110447019B (zh) 存储器分配管理器及由其执行的用于管理存储器分配的方法
US20180089106A1 (en) Method and apparatus for replacing data block in cache
US11726915B2 (en) Distributed coherence directory subsystem with exclusive data regions
CN117331858B (zh) 存储装置及数据处理系统
CN117667776A (zh) 存储器带宽分配方法及设备
US10430087B1 (en) Shared layered physical space
US9183126B2 (en) Memory range preferred sizes and out-of-bounds counts
CN111340678A (zh) 一种数据缓存系统、图形处理器及数据缓存方法
CN113051066A (zh) 内存管理方法、装置、设备及存储介质

Legal Events

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

Payment date: 20200128

Year of fee payment: 4