KR20120097136A - 가상화 환경에서의 메모리 풀 관리 - Google Patents

가상화 환경에서의 메모리 풀 관리 Download PDF

Info

Publication number
KR20120097136A
KR20120097136A KR20110016517A KR20110016517A KR20120097136A KR 20120097136 A KR20120097136 A KR 20120097136A KR 20110016517 A KR20110016517 A KR 20110016517A KR 20110016517 A KR20110016517 A KR 20110016517A KR 20120097136 A KR20120097136 A KR 20120097136A
Authority
KR
South Korea
Prior art keywords
virtual machine
memory
memory pool
virtual
size
Prior art date
Application number
KR20110016517A
Other languages
English (en)
Inventor
유정현
이성민
서상범
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR20110016517A priority Critical patent/KR20120097136A/ko
Priority to US13/242,398 priority patent/US9135159B2/en
Publication of KR20120097136A publication Critical patent/KR20120097136A/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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system

Landscapes

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

Abstract

가상화 환경에서 전체 시스템의 메모리 사용률을 높이면서도 실시간 처리가 필요한 응용 프로그램이나 사용자 응답 성능이 중요한 응용 프로그램의 동작 성능을 보장하는 메모리 풀 관리 장치, 방법 및 이를 이용한 가상화 장치가 제공된다. 본 발명의 일 양상에 따른 장치는, 우선 순위를 갖는 다수의 가상 머신, 가상 머신들이 공유하며, 각 가상 머신의 시스템 메모리에 위치한 데이터의 일부가 저장되는 메모리 풀, 및 각 가상 머신의 우선 순위, 각 가상 머신 별로 정의된 사용이 보장된 메모리 크기, 및 각 가상 머신에게 즉시 할당 가능한 메모리 크기를 고려해서 각 가상 머신의 메모리 풀에 관한 메모리 할당 요청 또는 데이터 저장 요청을 처리하는 메모리 풀 관리자를 포함할 수 있다.

Description

가상화 환경에서의 메모리 풀 관리{Management of memory pool in a virtualization system}
가상화 시스템 및 가상화 시스템의 메모리 관리 기술과 관련된다.
시스템 가상화 기술이란 물리적 장치의 하드웨어를 여러 개의 가상화된 하드웨어로 표현함으로써 하나의 물리적 장치에서 다양한 운영체제가 가상 머신으로 동작할 수 있도록 하는 기술을 말한다.
서로 다른 종류의 운영체제 또는 가상 머신들은 시스템 가상화 기술이 제공하는 가상화 환경에서 독립적으로 동작할 수 있다. 따라서 사용자가 어떤 애플리케이션을 사용할 때, 그 애플리케이션이 어떤 운영체제 또는 어떤 가상 머신에서 실행되는 애플리케이션인지 인식할 필요없이 심리스(seamless)하게 애플리케이션을 사용할 수 있다.
각각의 가상 머신들은 시스템 가상화 기술을 통해 자원(예컨대, 시스템 메모리)을 할당 받는다. 그런데 메모리 관리 측면에서, 통상적인 가상화 시스템은 전체 메모리 사용 효율을 고려하여 메모리를 관리한다. 즉, 각 가상 머신의 동작 성능이나 메모리 워크로드를 고려하지 않기 때문에 특정한 상황에서 가상 머신의 동작이 느려지는 현상이 발생할 수가 있다.
예를 들어, 어떤 가상 머신이 최소한 100MB의 메모리를 사용할 수 있어야 성능 저하가 없는 경우에도 전체적인 메모리 사용 효율을 높이기 위하여 그 가상 머신에게 할당되는 메모리 크기가 100MB 미만으로 떨어지는 상황이 발생할 수도 있다.
가상화 환경에서 전체 시스템의 메모리 사용률을 높이면서도 실시간 처리가 필요한 응용 프로그램이나 사용자 응답 성능이 중요한 응용 프로그램의 동작 성능을 보장하는 메모리 풀 관리 장치, 방법 및 이를 이용한 가상화 장치가 제공된다.
본 발명의 일 양상에 따른 장치는, 우선 순위를 갖는 다수의 가상 머신, 가상 머신들이 공유하며, 각 가상 머신의 시스템 메모리에 위치한 데이터의 일부가 저장되는 메모리 풀, 및 각 가상 머신의 우선 순위, 각 가상 머신 별로 정의된 사용이 보장된 메모리 크기, 및 각 가상 머신에게 즉시 할당 가능한 메모리 크기를 고려해서 각 가상 머신의 메모리 풀에 관한 메모리 할당 요청 또는 데이터 저장 요청을 처리하는 메모리 풀 관리자를 포함할 수 있다.
본 발명의 다른 양상에 따른 장치는, 우선 순위를 갖는 다수의 가상 머신 중 어느 하나의 가상 머신인 제 1 가상 머신으로부터, 가상 머신들이 공유하며 각 가상 머신의 시스템 메모리에 위치한 데이터의 일부가 저장되는 메모리 풀에 관한 메모리 할당 요청을 수신하는 수신부, 및 제 1 가상 머신이 가장 높은 우선 순위를 갖는 최우선 가상 머신인지 여부를 판단하고, 제 1 가상 머신이 최우선 가상 머신인 경우, 제 1 가상 머신의 사용이 보장된 메모리 크기를 벗어나지 않는 한도에서 메모리 풀의 페이지를 제 1 가상 머신에게 제공하는 처리부를 포함할 수 있다.
본 발명의 또 다른 양상에 따른 장치는, 우선 순위를 갖는 다수의 가상 머신 중 어느 하나의 가상 머신인 제 2 가상 머신으로부터, 가상 머신들이 공유하며 각 가상 머신의 시스템 메모리에 위치한 데이터의 일부가 저장되는 메모리 풀에 관한 데이터 저장 요청을 수신하는 수신부, 및 제 2 가상 머신이 가장 높은 우선 순위를 갖는 최우선 가상 머신인지 여부를 판단하고, 제 2 가상 머신이 최우선 가상 머신인 경우, 제 2 가상 머신의 사용이 보장된 메모리 크기를 벗어나지 않는 한도에서 메모리 풀에 데이터를 저장하는 처리부를 포함할 수 있다.
본 발명의 일 양상에 따른 방법은, 우선 순위를 갖는 다수의 가상 머신 중 어느 하나의 가상 머신인 제 1 가상 머신으로부터, 가상 머신들이 공유하며 각 가상 머신의 시스템 메모리에 위치한 데이터의 일부가 저장되는 메모리 풀에 관한 메모리 할당 요청을 수신하는 단계, 및 제 1 가상 머신이 가장 높은 우선 순위를 갖는 최우선 가상 머신인지 여부를 판단하고, 제 1 가상 머신이 최우선 가상 머신인 경우, 제 1 가상 머신의 사용이 보장된 메모리 크기를 벗어나지 않는 한도에서 메모리 풀의 페이지를 제 1 가상 머신에게 제공하는 단계를 포함할 수 있다.
본 발명의 다른 양상에 따른 방법은, 우선 순위를 갖는 다수의 가상 머신 중 어느 하나의 가상 머신인 제 2 가상 머신으로부터, 가상 머신들이 공유하며 각 가상 머신의 시스템 메모리에 위치한 데이터의 일부가 저장되는 메모리 풀에 관한 데이터 저장 요청을 수신하는 단계, 및 제 2 가상 머신이 가장 높은 우선 순위를 갖는 최우선 가상 머신인지 여부를 판단하고, 제 2 가상 머신이 최우선 가상 머신인 경우, 제 2 가상 머신의 사용이 보장된 메모리 크기를 벗어나지 않는 한도에서 메모리 풀에 데이터를 저장하는 단계를 포함할 수 있다.
개시된 장치 및 방법에 따르면, 가상 머신들이 공유하는 메모리 풀을 통해 각 가상 머신에게 할당되는 메모리량을 관리하기 때문에 가상 머신의 메모리 워크로드에 따라 유연하게 사용 메모리를 조절할 수가 있다. 또한, 가상 머신의 자원 사용에 관한 우선 순위를 고려하여 각 가상 머신의 사용이 보장된 메모리량 또는 각 가상 머신에게 즉시 할당 가능한 메모리량을 유지하기 때문에 리소스 관리 측면에서 성능을 향상시킬 수가 있다.
도 1은 본 발명의 일 실시예에 따른 가상화 시스템을 도시한다.
도 2는 본 발명의 다른 실시예에 따른 가상화 시스템을 도시한다.
도 3a 내지 도 3c는 본 발명의 일 실시예에 따른 메모리 풀 관리 방법을 도시한다.
도 4a 내지 도 4c는 본 발명의 다른 실시예에 따른 메모리 풀 관리 방법을 도시한다.
본 발명의 실시예에 따른 장치 및 방법은, 가상 머신 모니터가 탑재되어 하나의 단말 장치에 다수의 가상머신이 수행되는 가상화 환경에 이용될 수 있다. 또한, 본 발명의 실시예에 따른 장치 및 방법은, 전체 시스템의 메모리 사용률을 높이면서도 실시간 처리가 필요한 응용 프로그램(예컨대, AV 스트리밍, 통신 프로토콜 처리 등)이나 사용자 응답 성능이 중요한 응용 프로그램(예컨대, GUI 등)의 동작 성능을 보장하는 기술로 가전 제품을 포함한 임베디드 시스템 가상화 환경에 이용될 수 있다.
도 1은 본 발명의 일 실시예에 따른 가상화 시스템을 도시한다.
도 1을 참조하면, 가상화 환경(100)은 다수의 가상 머신(virtual machine, VM)(101-1, 2, n), 가상 머신 모니터(virtual machine monitor, VMM)(102), 및 하드웨어(103)를 포함할 수 있다.
각각의 가상 머신(101-1, 2, n)은 별도의 운영체제(OS)가 될 수 있다. 예컨대, VM#1은 윈도우(Windows)가 될 수 있고, VM#2는 리눅스(Linux)가 될 수 있다. 서로 다른 종류의 운영체제는 가상 머신 모니터(102)를 통해 동일한 하드웨어(103)상에서 동작할 수 있다.
가상 머신 모니터(102)는 서로 다른 종류의 가상 머신(101-1, 2, n)이 동일한 하드웨어(103) 상에서 동작할 수 있도록 하는 실행 환경을 제공한다. 예컨대, 가상 머신 모니터(102)는 가상 머신들간의 통신 채널을 제공할 수 있다. 이러한 가상 머신 모니터(102)는 Xen, Hypervisor, L4 등의 소프트웨어를 포함할 수 있다.
각각의 가상 머신(101-1, 2, n)은 컨트롤 가상 머신과 게스트 가상 머신으로 분류될 수 있다. 컨트롤 가상 머신은 게스트 가상 머신의 생성, 시작, 종료, 삭제 등 게스트 가상 머신을 제어하는 가상 머신을 말하며, 가상 머신 모니터(102)가 주로 가장 먼저 생성하는 가상 머신이다. 컨트롤 가상 머신과 게스트 가상 머신은 처음부터 정해질 수도 있고 경우에 따라 컨트롤 가상 머신이 게스트 가상 머신으로 또는 게스트 가상 머신이 컨트롤 가상 머신으로 전환될 수도 있다.
도 2는 본 발명의 다른 실시예에 따른 가상화 시스템을 도시한다.
도 2를 참조하면, 가상화 시스템(200)은 다수의 가상 머신(201-1, 2), 가상 머신 모니터(205), 및 하드웨어(209)를 포함할 수 있다. 각각의 가상 머신(201-1, 2), 가상 머신 모니터(205), 및 하드웨어(209)에 대한 설명은 도 1과 동일하므로 자세한 설명은 생략하기로 한다.
WSS 추정자(202-1, 2)는 가상 머신(201-1, 2)이 갖고 있는 자원의 크기에 따라 Balloon 드라이버(203-1, 2)의 동작을 제어할 수 있다. 가상 머신(201-1, 2)이 갖고 있는 자원의 크기란 가상 머신(201-1, 2)에 할당된 시스템 메모리의 크기 또는 메모리 워크로드가 될 수 있다.
Balloon 드라이버(203-1, 2)는 가상 머신(201-1, 2)내에서 팽창 또는 수축 동작을 통해 가상 머신(201-1, 2)의 메모리 사용을 관리한다. 여기서, 팽창 동작이란 Balloon 드라이버(203-1, 2)가 가상 머신(201-1, 2)의 시스템 메모리를 흡수하고, 흡수된 시스템 메모리를 가상 머신 모니터(205)의 메모리 풀 관리자(207)에게 전달하는 동작을 의미한다(donate_pages). 수축 동작이란 Balloon 드라이버(203-1, 2)가 가상 머신 모니터(205)의 메모리 풀 관리자(207)로부터 시스템 메모리를 전달 받아 이를 가상 머신(201-1, 2)에게 제공하는 동작을 의미한다(get_pages). 다시 말해, Balloon 드라이버(203-1, 2)는 가상 머신(201-1, 2)에게 할당된 시스템 메모리의 일부를 가상 머신 모니터(205)의 메모리 풀(206)로 옮기거나, 또는 가상 머신 모니터(205)의 메모리 풀(206)의 일부를 가상 머신(201-1, 2)의 시스템 메모리로 옮기는 것이 가능하다.
본 실시예에 따라 시스템 메모리는 하드웨어(209)의 일부로서 CPU가 접근할 수 있는 물리 메모리가 될 수 있다.
페이지 교체 관리자(204-1, 2)는 가상 머신(201-1, 2)의 메모리 워크로드가 커지면 시스템 메모리에 위치한 데이터의 일부를 가상 머신 모니터(205)의 메모리 풀 관리자(207)에게 전달할 수 있다(put_data). 메모리 풀 관리자(207)는 해당 데이터를 메모리 풀(206)에 저장한다. 또한, 가상 머신(201-1, 2)의 동작 중에 해당 데이터에 대한 접근이 발생하면, 메모리 풀 관리자(207)의 도움을 받아 해당 데이터를 메모리 풀(206)로부터 획득하는 것이 가능하다(get_data).
메모리 풀(206)은 각각의 가상 머신(201-1, 2)이 공유하는 가상 메모리가 될 수 있다. 메모리 풀(206)은 각각의 가상 머신(201-1, 2)이 시스템 메모리 데이터의 일부를 저장하는 용도로 사용될 수 있다. 예컨대, 메모리 풀(206)은 시스템 메모리 데이터에 대한 Secondary Cache나 가상의 스왑 디바이스가 될 수 있다.
메모리 풀 관리자(207)는 메모리 풀(206)을 관리한다. 예를 들어, 메모리 풀 관리자(207)는 메모리 풀(206)의 각 영역을 페이지(208) 단위로 정의하고, 각 페이지를 비사용(free) 페이지와 사용(used) 페이지로 구분하여 관리할 수 있다. 또한, 사용 페이지에 대해서는 타입(type)을 지정하여 그 사용 페이지가 영속적(persistent) 타입의 페이지인지 또는 비영속적(ephemeral)의 타입의 페이지인지 구분하여 관리할 수 있다. 나아가, 사용 페이지에 대해서는 그 사용 페이지에 데이터를 저장한 가상 머신(201-1, 2)의 식별 정보도 함께 관리한다. 메모리 풀(206)에서, "F"은 비사용 페이지를 나타내고, "E(x)"은 가상 머신 #x가 사용한 비영속적 타입의 사용 페이지를 나타내고, "P(x)"은 가상 머신 #x가 사용한 영속적 타입의 사용 페이지를 나타낸다.
또한, 메모리 풀 관리자(207)는 각 가상 머신(201-1, 2)의 우선 순위, 각 가상 머신(201-1, 2) 별로 정의된 사용이 보장된 메모리 크기, 및 각 가상 머신(201-1, 2)에게 즉시 할당 가능한 메모리 크기를 고려해서 각 가상 머신(201-1, 2)의 메모리 풀(206)에 관한 메모리 할당 요청(예컨대, donate_page) 또는 데이터 저장 요청(예컨대, put_data)을 처리할 수 있다.
예컨대, 메모리 풀 관리자(207)는 가상화 환경에서 메모리 워크로드에 따라 가상 머신(201-1, 2)의 여유 메모리를 메모리 풀(206)에 제공했다가 필요할 때에 회수할 수 있다. 또한 메모리 풀 관리자(207)는 가상 머신(201-1, 2)들로부터 제공받은 메모리 풀(206)을 우선 순위가 높은 가상머신(예컨대, VM#1)에게 신속하게 제공할 수 있다. 가상 머신(201-1, 2)들의 우선 순위는 하드웨어(209)를 포함한 자원 사용에 대한 우선 순위가 될 수 있다. 가상 머신(201-1, 2)들의 우선 순위는 가상 머신(201-1, 2)의 특성에 따라 미리 설정되거나 필요에 따라 임의로 설정될 수 있다.
따라서 가상화 환경에서 가상 머신(201-1, 2)의 메모리 사용량을 동적으로 조정하여 메모리 사용률을 높일 수 있고 동작 성능 역시 높일 수가 있다.
이하, 도 3a 내지 도 4c를 참조하여, 메모리 풀 관리자(207)의 동작을 구체적으로 살펴보기로 하겠다.
도 3a 내지 도 3c는 본 발명의 일 실시예에 따른 메모리 풀 관리 장치의 메모리 풀 관리 방법을 도시한다. 이것은 메모리 풀 관리자(예컨대, 도 2의 207)가 메모리 할당 요청을 수신한 경우에 관한 일 예가 될 수 있다.
도 2 및 도 3a에서, 메모리 풀 관리자(207)는 가상 머신(VM#1 또는 VM#2)으로부터 get_page 요청을 수신한다(301). get_page 요청이란 메모리 풀(206)의 페이지 중 일부를 할당해달라는 요청이 될 수 있다. 예컨대, get_page 요청은 메모리 풀 관리자(207)가 가상 머신(201-1, 2)의 Balloon 드라이버(203-1, 2)로부터 수신할 수 있다.
도 2 및 도 3a에서, get_page 요청을 수신한 메모리 풀 관리자(207)는 그 get_page 요청이 최상위 우선 순위를 갖는 가상 머신으로부터 수신된 것인지 여부를 판단한다(302). 만약, 메모리 풀 관리자(207)가 최상위 우선 순위를 갖는 가상 머신으로부터 get_page 요청을 수신한 경우, 과정 A가 실행되고, 그러하지 아니한 경우, 과정 B가 실행될 수 있다.
본 실시예에서, VM#1(201-1)이 VM#2(201-2)보다 우선 순위가 높은 것으로 가정한다. 다시 말해, get_page 요청이 VM#1(201-1)으로부터 발생된 경우, 과정 A가 실행되고, get_page 요청이 VM#2(201-2)로부터 발생된 경우, 과정 B가 실행될 수 있다.
과정 A가 실행되는 경우를 살펴보면 도 3b와 같다.
도 2 및 도 3b에서, 최상위 우선 순위를 갖는 VM#1(201-1)으로부터 get_page 요청이 수신된 경우, 메모리 풀 관리자(207)는 VM#1(201-1)의 사용이 보장된 메모리 크기를 벗어나지 않는 한도에서 메모리 풀(206)의 페이지(예컨대, 비사용 페이지 또는 비영속적 타입의 사용 페이지)를 VM#1(201-1)에게 제공한다.
예컨대, 메모리 풀 관리자(207)는 [X+P(1)+n]이 Z보다 큰지 여부를 판단할 수 있다(303). 여기서, "X"은 VM#1(201-1)의 현재 시스템 메모리 크기를 나타내고, "P(1)"은 VM#1(201-1)이 사용한 영속적 타입의 사용 페이지들의 크기를 나타내고, "n"은 VM#1(201-1)이 요청한 메모리(또는 페이지)의 크기를 나타낼 수 있다. 그리고 "Z"은 VM#1(201-1)의 사용이 보장된 메모리 크기로서 가상 머신의 특성에 따라 미리 설정되는 값이다.
판단 결과, [X+P(1)+n]이 Z보다 크면, get_page 요청을 거절하고(304), [X+P(1)+n]이 Z보다 크지 아니하면, 메모리 풀(206)의 페이지를 제공하고 상태 정보를 업데이트 한다(305). 예컨대, 메모리 풀 관리자(207)는 메모리 풀(206)의 페이지 중에서 n크기의 페이지를 VM#1(201-1)에게 제공한 경우, 원래의 X값에 n을 더해서 X값을 업데이트 할 수 있다.
다시 말해, 본 실시예에 따른 메모리 풀 관리자(207)는 단계 303을 통해, VM#1(201-1)이 요청한 크기의 메모리를 메모리 풀(206)에서 제공하더라도 VM#1(201-1)의 사용이 보장된 메모리 크기(Z)를 유지할 수 있는지 여부를 판단하고, 그 판단 결과에 따라 요청을 처리하거나 거절하는 것이 가능하다.
다시 도 3a에서, 과정 B가 실행되는 경우를 살펴보면 도 3c와 같다.
도 2 및 도 3c에서, 최상위 우선 순위를 갖지 않는 VM#2(201-2)로부터 get_page 요청이 수신된 경우, 메모리 풀 관리자(207)는 VM#2(201-2)보다 우선 순위가 높은 가상 머신들(예컨대, VM#1)에게 즉시 할당 가능한 메모리 크기를 유지할 수 있는 한도에서 메모리 풀(206)의 페이지(예컨대, 비사용 페이지 또는 비영속적 타입의 사용 페이지)를 VM#2(201-2)에게 제공한다.
예컨대, 메모리 풀 관리자(207)는 [Z-X-P(1)]이 [F+E-n]보다 작은지 여부를 판단할 수 있다(306). 여기서, "Z"은 VM#1(201-1)의 사용이 보장된 메모리 크기로서 가상 머신의 특성에 따라 미리 설정되는 값이고, "X"은 VM#1(201-1)의 현재 시스템 메모리 크기를 나타내고, "P(1)"은 VM#1(201-1)이 사용한 영속적 타입의 사용 페이지들의 크기를 나타낸다. 그리고 "F"은 메모리 풀(206)의 비사용 페이지들의 크기를 나타내고, "E"은 메모리 풀(206)의 비영속적 타입의 사용 페이지들의 크기를 나타내고, "n"은 VM#2(201-2)가 요청한 메모리(또는 페이지)의 크기를 나타낼 수 있다.
판단 결과, [Z-X-P(1)]이 [F+E-n]보다 작으면, 메모리 풀(206)의 페이지를 제공한 후 상태 정보를 업데이트 하고(307), [Z-X-P(1)]이 [F+E-n]보다 크면, get_page 요청을 거절할 수 있다(308).
다시 말해, 본 실시예에 따른 메모리 풀 관리자(207)는 단계 306을 통해, VM#2(201-2)가 요청한 크기의 메모리를 메모리 풀(206)에서 제공하더라도 VM#2(201-2)보다 우선 순위가 높은 가상 머신들(예컨대, VM#1)에게 즉시 할당 가능한 메모리 크기를 유지할 수 있는지 여부를 판단하고, 그 판단 결과에 따라 요청을 처리하거나 거절하는 것이 가능하다.
도 4a 내지 도 4c는 본 발명의 다른 실시예에 따른 메모리 풀 관리 장치의 메모리 풀 관리 방법을 도시한다. 이것은 메모리 풀 관리자(예컨대, 도 2의 207)가 데이터 저장 요청을 수신한 경우에 관한 일 예가 될 수 있다.
도 2 및 도 4a에서, 메모리 풀 관리자(207)는 가상 머신(VM#1 또는 VM#2)으로부터 put_data 요청을 수신한다(401). put_data 요청이란 메모리 풀(206)의 페이지 중 일부에 가상 머신(201-1, 2)의 시스템 메모리에 위치하고 있는 데이터를 저장해달라는 요청이 될 수 있다. 예컨대, put_data 요청은 메모리 풀 관리자(207)가 가상 머신(201-1, 2)의 페이지 교체 관리자(204-1, 2)로부터 수신할 수 있다. 그리고 본 실시예에 따라 put_data 요청은 영속적 타입의 사용 페이지 생성을 유발할 수도 있다.
도 2 및 도 4a에서, put_data 요청을 수신한 메모리 풀 관리자(207)는 그 put_data 요청이 최상위 우선 순위를 갖는 가상 머신으로부터 수신된 것인지 여부를 판단한다(402). 만약, 메모리 풀 관리자(207)가 최상위 우선 순위를 갖는 가상 머신으로부터 put_data 요청을 수신한 경우, 과정 C가 실행되고, 그러하지 아니한 경우, 과정 D가 실행될 수 있다.
본 실시예에서, VM#1(201-1)이 VM#2(201-2)보다 우선 순위가 높은 것으로 가정한다. 다시 말해, put_data 요청이 VM#1(201-1)으로부터 발생된 경우, 과정 C가 실행되고, put_data 요청이 VM#2(201-2)로부터 발생된 경우, 과정 D가 실행될 수 있다.
과정 C가 실행되는 경우를 살펴보면 도 4b와 같다.
도 2 및 도 4b에서, 최상위 우선 순위를 갖는 VM#1(201-1)으로부터 put_data 요청이 수신된 경우, 메모리 풀 관리자(207)는 VM#1(201-1)의 사용이 보장된 메모리 크기를 벗어나지 않는 한도에서 VM#1(201-1)의 데이터를 메모리 풀(206)에 저장한다.
예컨대, 메모리 풀 관리자(207)는 [X+P(1)+n]이 Z보다 큰지 여부를 판단할 수 있다(403). 여기서, "X"은 VM#1(201-1)의 현재 시스템 메모리 크기를 나타내고, "P(1)"은 VM#1(201-1)이 사용한 영속적 타입의 사용 페이지들의 크기를 나타내고, "n"은 VM#1(201-1)이 저장하려고 하는 데이터의 크기를 나타낼 수 있다. 그리고 "Z"은 VM#1(201-1)의 사용이 보장된 메모리 크기로서 가상 머신의 특성에 따라 미리 설정되는 값이다.
판단 결과, [X+P(1)+n]이 Z보다 크면, put_data 요청을 거절하고(404), [X+P(1)+n]이 Z보다 크지 아니하면, 메모리 풀(206)에 데이터를 저장하고 상태 정보를 업데이트 한다(405). 예컨대, 메모리 풀 관리자(207)는 메모리 풀(206)에 n크기의 데이터를 저장한 경우, 원래의 P(1)값에 n을 더해서 P(1)값을 업데이트 할 수 있다.
다시 말해, 본 실시예에 따른 메모리 풀 관리자(207)는 단계 303을 통해, VM#1(201-1)의 데이터를 메모리 풀(206)에 저장하더라도 VM#1(201-1)의 사용이 보장된 메모리 크기(Z)를 유지할 수 있는지 여부를 판단하고, 그 판단 결과에 따라 요청을 처리하거나 거절하는 것이 가능하다.
다시 도 4a에서, 과정 D가 실행되는 경우를 살펴보면 도 4c와 같다.
도 2 및 도 4c에서, 최상위 우선 순위를 갖지 않는 VM#2(201-2)로부터 put_data 요청이 수신된 경우, 메모리 풀 관리자(207)는 VM#2(201-2)보다 우선 순위가 높은 가상 머신들(예컨대, VM#1)에게 즉시 할당 가능한 메모리 크기를 유지할 수 있는 한도에서 VM#2(201-2)의 데이터를 메모리 풀(206)에 저장한다.
예컨대, 메모리 풀 관리자(207)는 [Z-X-P(1)]이 [F+E-n]보다 작은지 여부를 판단할 수 있다(406). 여기서, "Z"은 VM#1(201-1)의 사용이 보장된 메모리 크기로서 가상 머신의 특성에 따라 미리 설정되는 값이고, "X"은 VM#1(201-1)의 현재 시스템 메모리 크기를 나타내고, "P(1)"은 VM#1(201-1)이 사용한 영속적 타입의 사용 페이지들의 크기를 나타낸다. 그리고 "F"은 메모리 풀(206)의 비사용 페이지들의 크기를 나타내고, "E"은 메모리 풀(206)의 비영속적 타입의 사용 페이지들의 크기를 나타내고, "n"은 VM#2(201-2)가 저장하려고 하는 데이터의 크기를 나타낼 수 있다.
판단 결과, [Z-X-P(1)]이 [F+E-n]보다 작으면, 해당 데이터를 메모리 풀(206)에 저장한 후 상태 정보를 업데이트 하고(407), [Z-X-P(1)]이 [F+E-n]보다 크면, put_data 요청을 거절할 수 있다(408).
다시 말해, 본 실시예에 따른 메모리 풀 관리자(207)는 단계 406을 통해, VM#2(201-2)의 데이터를 메모리 풀(206)에 저장하더라도 VM#2(201-2)보다 우선 순위가 높은 가상 머신들(예컨대, VM#1)에게 즉시 할당 가능한 메모리 크기를 유지할 수 있는지 여부를 판단하고, 그 판단 결과에 따라 요청을 처리하거나 거절하는 것이 가능하다.
이상에서 살펴본 것과 같이, 개시된 장치 및 방법은 가상 머신들이 공유하는 메모리 풀을 통해 각 가상 머신에게 할당되는 메모리량을 관리하기 때문에 가상 머신의 메모리 워크로드에 따라 유연하게 사용 메모리를 조절할 수가 있다. 또한, 가상 머신의 자원 사용에 관한 우선 순위를 고려하여 각 가상 머신의 사용이 보장된 메모리량 또는 각 가상 머신에게 즉시 할당 가능한 메모리량을 유지하기 때문에 리소스 관리 측면에서 성능을 향상시킬 수가 있다.
한편, 본 발명의 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
나아가 전술한 실시 예들은 본 발명을 예시적으로 설명하기 위한 것으로 본 발명의 권리범위가 특정 실시 예에 한정되지 아니할 것이다.

Claims (15)

  1. 우선 순위를 갖는 다수의 가상 머신;
    가상 머신들이 공유하며, 각 가상 머신의 시스템 메모리에 위치한 데이터의 일부가 저장되는 메모리 풀; 및
    각 가상 머신의 우선 순위, 각 가상 머신 별로 정의된 사용이 보장된 메모리 크기, 및 각 가상 머신에게 즉시 할당 가능한 메모리 크기를 고려해서 각 가상 머신의 상기 메모리 풀에 관한 메모리 할당 요청 또는 데이터 저장 요청을 처리하는 메모리 풀 관리자; 를 포함하는 가상화 장치.
  2. 제 1 항에 있어서,
    상기 메모리 풀 관리자는
    상기 다수의 가상 머신 중 어느 하나의 가상 머신인 제 1 가상 머신으로부터 상기 메모리 할당 요청을 수신하고,
    상기 제 1 가상 머신이 가장 높은 우선 순위를 갖는 최우선 가상 머신인지 여부를 판단하고,
    상기 제 1 가상 머신이 상기 최우선 가상 머신인 경우, 상기 제 1 가상 머신의 사용이 보장된 메모리 크기를 벗어나지 않는 한도에서 상기 메모리 풀의 페이지를 상기 제 1 가상 머신에게 제공하는 가상화 장치.
  3. 제 2 항에 있어서,
    상기 메모리 풀 관리자는
    상기 제 1 가상 머신이 상기 최우선 가상 머신이 아닌 경우, 상기 제 1 가상 머신보다 우선 순위가 높은 가상 머신들에게 즉시 할당 가능한 메모리 크기를 유지할 수 있는 한도에서 상기 메모리 풀의 페이지를 상기 제 1 가상 머신에게 제공하는 가상화 장치.
  4. 제 1 항에 있어서,
    상기 메모리 풀 관리자는
    상기 다수의 가상 머신 중 어느 하나의 가상 머신인 제 2 가상 머신으로부터 상기 데이터 저장 요청을 수신하고,
    상기 제 2 가상 머신이 가장 높은 우선 순위를 갖는 최우선 가상 머신인지 여부를 판단하고,
    상기 제 2 가상 머신이 상기 최우선 가상 머신인 경우, 상기 제 2 가상 머신의 사용이 보장된 메모리 크기를 벗어나지 않는 한도에서 상기 메모리 풀에 데이터를 저장하는 가상화 장치.
  5. 제 4 항에 있어서,
    상기 메모리 풀 관리자는
    상기 제 2 가상 머신이 상기 최우선 가상 머신이 아닌 경우, 상기 제 2 가상 머신보다 우선 순위가 높은 가상 머신들에게 즉시 할당 가능한 메모리 크기를 유지할 수 있는 한도에서 상기 메모리 풀에 데이터를 저장하는 가상화 장치.
  6. 제 1 항에 있어서,
    상기 메모리 풀은 다수의 페이지를 포함하고,
    상기 메모리 풀 관리자는 상기 각 페이지를 비사용(free) 페이지 및 사용(used) 페이지로 구분하고, 상기 사용 페이지를 비영속적(ephemeral) 타입의 페이지 및 영속적(persistent) 타입의 페이지로 구분하며, 상기 비사용 페이지 및 상기 비영속적 타입의 페이지에 기초하여 상기 메모리 할당 요청 또는 상기 데이터 저장 요청을 처리하는 가상화 장치.
  7. 제 6 항에 있어서,
    어느 하나의 가상 머신에게 즉시 할당 가능한 메모리 크기는
    그 가상 머신의 사용이 보장된 메모리 크기에서 그 가상 머신의 현재 시스템 메모리 크기와 그 가상 머신이 사용한 상기 비영속적 타입의 페이지 크기를 합한 크기를 뺀 크기로 정의되는 가상화 장치.
  8. 우선 순위를 갖는 다수의 가상 머신 중 어느 하나의 가상 머신인 제 1 가상 머신으로부터, 가상 머신들이 공유하며 각 가상 머신의 시스템 메모리에 위치한 데이터의 일부가 저장되는 메모리 풀에 관한 메모리 할당 요청을 수신하는 수신부; 및
    상기 제 1 가상 머신이 가장 높은 우선 순위를 갖는 최우선 가상 머신인지 여부를 판단하고, 상기 제 1 가상 머신이 상기 최우선 가상 머신인 경우, 상기 제 1 가상 머신의 사용이 보장된 메모리 크기를 벗어나지 않는 한도에서 상기 메모리 풀의 페이지를 상기 제 1 가상 머신에게 제공하는 처리부; 를 포함하는 가상화 환경의 메모리 풀 관리 장치.
  9. 제 8 항에 있어서,
    상기 처리부는
    상기 제 1 가상 머신이 상기 최우선 가상 머신이 아닌 경우, 상기 제 1 가상 머신보다 우선 순위가 높은 가상 머신들에게 즉시 할당 가능한 메모리 크기를 유지할 수 있는 한도에서 상기 메모리 풀의 페이지를 상기 제 1 가상 머신에게 제공하는 가상화 환경의 메모리 풀 관리 장치.
  10. 우선 순위를 갖는 다수의 가상 머신 중 어느 하나의 가상 머신인 제 2 가상 머신으로부터, 가상 머신들이 공유하며 각 가상 머신의 시스템 메모리에 위치한 데이터의 일부가 저장되는 메모리 풀에 관한 데이터 저장 요청을 수신하는 수신부; 및
    상기 제 2 가상 머신이 가장 높은 우선 순위를 갖는 최우선 가상 머신인지 여부를 판단하고, 상기 제 2 가상 머신이 상기 최우선 가상 머신인 경우, 상기 제 2 가상 머신의 사용이 보장된 메모리 크기를 벗어나지 않는 한도에서 상기 메모리 풀에 데이터를 저장하는 처리부; 를 포함하는 가상화 환경의 메모리 풀 관리 장치.
  11. 제 10 항에 있어서,
    상기 처리부는
    상기 제 2 가상 머신이 상기 최우선 가상 머신이 아닌 경우, 상기 제 2 가상 머신보다 우선 순위가 높은 가상 머신들에게 즉시 할당 가능한 메모리 크기를 유지할 수 있는 한도에서 상기 메모리 풀에 데이터를 저장하는 가상화 환경의 메모리 풀 관리 장치.
  12. 우선 순위를 갖는 다수의 가상 머신 중 어느 하나의 가상 머신인 제 1 가상 머신으로부터, 가상 머신들이 공유하며 각 가상 머신의 시스템 메모리에 위치한 데이터의 일부가 저장되는 메모리 풀에 관한 메모리 할당 요청을 수신하는 단계; 및
    상기 제 1 가상 머신이 가장 높은 우선 순위를 갖는 최우선 가상 머신인지 여부를 판단하고, 상기 제 1 가상 머신이 상기 최우선 가상 머신인 경우, 상기 제 1 가상 머신의 사용이 보장된 메모리 크기를 벗어나지 않는 한도에서 상기 메모리 풀의 페이지를 상기 제 1 가상 머신에게 제공하는 단계; 를 포함하는 가상화 환경의 메모리 풀 관리 방법.
  13. 제 12 항에 있어서,
    상기 제공하는 단계는
    상기 제 1 가상 머신이 상기 최우선 가상 머신이 아닌 경우, 상기 제 1 가상 머신보다 우선 순위가 높은 가상 머신들에게 즉시 할당 가능한 메모리 크기를 유지할 수 있는 한도에서 상기 메모리 풀의 페이지를 상기 제 1 가상 머신에게 제공하는 과정을 더 포함하는 가상화 환경의 메모리 풀 관리 방법.
  14. 우선 순위를 갖는 다수의 가상 머신 중 어느 하나의 가상 머신인 제 2 가상 머신으로부터, 가상 머신들이 공유하며 각 가상 머신의 시스템 메모리에 위치한 데이터의 일부가 저장되는 메모리 풀에 관한 데이터 저장 요청을 수신하는 단계; 및
    상기 제 2 가상 머신이 가장 높은 우선 순위를 갖는 최우선 가상 머신인지 여부를 판단하고, 상기 제 2 가상 머신이 상기 최우선 가상 머신인 경우, 상기 제 2 가상 머신의 사용이 보장된 메모리 크기를 벗어나지 않는 한도에서 상기 메모리 풀에 데이터를 저장하는 단계; 를 포함하는 가상화 환경의 메모리 풀 관리 방법.
  15. 제 14 항에 있어서,
    상기 저장하는 단계는
    상기 제 2 가상 머신이 상기 최우선 가상 머신이 아닌 경우, 상기 제 2 가상 머신보다 우선 순위가 높은 가상 머신들에게 즉시 할당 가능한 메모리 크기를 유지할 수 있는 한도에서 상기 메모리 풀에 데이터를 저장하는 과정을 더 포함하는 가상화 환경의 메모리 풀 관리 방법.
KR20110016517A 2011-02-24 2011-02-24 가상화 환경에서의 메모리 풀 관리 KR20120097136A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR20110016517A KR20120097136A (ko) 2011-02-24 2011-02-24 가상화 환경에서의 메모리 풀 관리
US13/242,398 US9135159B2 (en) 2011-02-24 2011-09-23 Management of memory pool in virtualization environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20110016517A KR20120097136A (ko) 2011-02-24 2011-02-24 가상화 환경에서의 메모리 풀 관리

Publications (1)

Publication Number Publication Date
KR20120097136A true KR20120097136A (ko) 2012-09-03

Family

ID=46719795

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20110016517A KR20120097136A (ko) 2011-02-24 2011-02-24 가상화 환경에서의 메모리 풀 관리

Country Status (2)

Country Link
US (1) US9135159B2 (ko)
KR (1) KR20120097136A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140078390A (ko) * 2012-12-17 2014-06-25 삼성전자주식회사 가상 머신 환경에서 메모리 관리 방법 및 장치
WO2014104509A1 (ko) * 2012-12-31 2014-07-03 고려대학교 산학협력단 가상화 시스템에서의 메모리 관리 방법
US11720389B2 (en) 2020-04-07 2023-08-08 SK Hynix Inc. Storage system configuring a storage pool according to shared information, storage device therefor, and operating method thereof

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9009106B1 (en) 2011-08-10 2015-04-14 Nutanix, Inc. Method and system for implementing writable snapshots in a virtualized storage environment
US8601473B1 (en) 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
WO2013078588A1 (zh) * 2011-11-28 2013-06-06 华为技术有限公司 虚拟机内存调整方法和设备
US10073656B2 (en) 2012-01-27 2018-09-11 Sandisk Technologies Llc Systems and methods for storage virtualization
US9116809B2 (en) 2012-03-29 2015-08-25 Ati Technologies Ulc Memory heaps in a memory model for a unified computing system
US9772866B1 (en) * 2012-07-17 2017-09-26 Nutanix, Inc. Architecture for implementing a virtualization environment and appliance
US10346095B2 (en) 2012-08-31 2019-07-09 Sandisk Technologies, Llc Systems, methods, and interfaces for adaptive cache persistence
US9015418B2 (en) 2012-11-20 2015-04-21 Lsi Corporation Self-sizing dynamic cache for virtualized environments
US9843540B2 (en) * 2013-08-26 2017-12-12 Vmware, Inc. Traffic and load aware dynamic queue management
US20160188453A1 (en) * 2014-05-28 2016-06-30 Mediatek Inc. Memory pool management method for sharing memory pool among different computing units and related machine readable medium and memory pool management apparatus
CN104216801B (zh) * 2014-09-04 2017-06-16 北京联创信安科技股份有限公司 一种面向虚拟化环境的数据复制方法及***
US9311132B1 (en) 2014-09-26 2016-04-12 International Business Machines Corporation Allocating all or a portion of the memory in a cache module in each hypervisor in a pool of hypervisors to form a shared cache module to be utilized by the virtual machines run by the pool of hypervisors
US20160098302A1 (en) * 2014-10-07 2016-04-07 Strato Scale Ltd. Resilient post-copy live migration using eviction to shared storage in a global memory architecture
US10078465B1 (en) * 2015-05-20 2018-09-18 VCE IP Holding Company LLC Systems and methods for policy driven storage in a hyper-convergence data center
US9910768B1 (en) * 2016-05-23 2018-03-06 Parallels IP Holdings GmbH Method for memory management for virtual machines
CN112513821A (zh) 2018-08-01 2021-03-16 华为技术有限公司 用于scm应用的多实例2lm架构
KR102653373B1 (ko) * 2018-09-13 2024-04-02 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
US11068310B2 (en) 2019-03-08 2021-07-20 International Business Machines Corporation Secure storage query and donation
US11182192B2 (en) 2019-03-08 2021-11-23 International Business Machines Corporation Controlling access to secure storage of a virtual machine
US11176054B2 (en) 2019-03-08 2021-11-16 International Business Machines Corporation Host virtual address space for secure interface control storage
US11455398B2 (en) 2019-03-08 2022-09-27 International Business Machines Corporation Testing storage protection hardware in a secure virtual machine environment
US11283800B2 (en) 2019-03-08 2022-03-22 International Business Machines Corporation Secure interface control secure storage hardware tagging
US11741007B2 (en) * 2021-01-15 2023-08-29 Neo4J Sweden Ab Memory guards for continuous load-adaptive processing of transactions in databases

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7143413B2 (en) * 2002-05-15 2006-11-28 Hewlett-Packard Development Company, L.P. Method and system for allocating system resources among applications using weights
WO2005116828A2 (en) * 2004-05-21 2005-12-08 Computer Associates Think, Inc. Method and apparatus for dynamic memory resource management
US9740517B2 (en) 2008-12-29 2017-08-22 Microsoft Technology Licensing, Llc Dynamic virtual machine memory management
US8667207B2 (en) * 2009-09-30 2014-03-04 Citrix Systems, Inc. Dynamic reallocation of physical memory responsive to virtual machine events

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140078390A (ko) * 2012-12-17 2014-06-25 삼성전자주식회사 가상 머신 환경에서 메모리 관리 방법 및 장치
WO2014104509A1 (ko) * 2012-12-31 2014-07-03 고려대학교 산학협력단 가상화 시스템에서의 메모리 관리 방법
US11720389B2 (en) 2020-04-07 2023-08-08 SK Hynix Inc. Storage system configuring a storage pool according to shared information, storage device therefor, and operating method thereof

Also Published As

Publication number Publication date
US9135159B2 (en) 2015-09-15
US20120221765A1 (en) 2012-08-30

Similar Documents

Publication Publication Date Title
KR20120097136A (ko) 가상화 환경에서의 메모리 풀 관리
US9183016B2 (en) Adaptive task scheduling of Hadoop in a virtualized environment
US9304803B2 (en) Cooperative application workload scheduling for a consolidated virtual environment
US9619287B2 (en) Methods and system for swapping memory in a virtual machine environment
US9043790B2 (en) Virtualization and dynamic resource allocation aware storage level reordering
US8291430B2 (en) Optimizing system performance using spare cores in a virtualized environment
US8595361B2 (en) Virtual machine software license management
US10534720B2 (en) Application aware memory resource management
US10656961B2 (en) Method and apparatus for operating a plurality of operating systems in an industry internet operating system
US9529642B2 (en) Power budget allocation in a cluster infrastructure
WO2011094301A1 (en) Method and system for abstracting non-functional requirements based deployment of virtual machines
US20160196157A1 (en) Information processing system, management device, and method of controlling information processing system
US20120239952A1 (en) Information processing apparatus, power control method, and recording medium
KR20150109692A (ko) 가상 머신 이미지 파일을 제공하는 방법 및 그 장치
KR101585160B1 (ko) 독립실행환경을 제공하는 분산 컴퓨팅 시스템 및 분산 컴퓨팅 시스템의 제어방법
US11461120B2 (en) Methods and apparatus for rack nesting in virtualized server systems
US9021498B1 (en) Adjusting pause-loop exiting window values
US9015418B2 (en) Self-sizing dynamic cache for virtualized environments
KR102001641B1 (ko) 가상화 환경에서의 gpu 자원 관리 방법 및 장치
Jang et al. An efficient virtual CPU scheduling in cloud computing
US20190391851A1 (en) System and method for managing memory in virtual machines
US20200334160A1 (en) Cache Management Method, Cache Controller, Processor and Storage Medium
US10228859B2 (en) Efficiency in active memory sharing
US11663026B2 (en) Allocation of accelerator resources based on job type
KR102014246B1 (ko) 리소스 통합관리를 위한 메소스 처리 장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application