KR101878297B1 - 락 홀더 선점 회복 방법 및 장치 - Google Patents
락 홀더 선점 회복 방법 및 장치 Download PDFInfo
- Publication number
- KR101878297B1 KR101878297B1 KR1020120022971A KR20120022971A KR101878297B1 KR 101878297 B1 KR101878297 B1 KR 101878297B1 KR 1020120022971 A KR1020120022971 A KR 1020120022971A KR 20120022971 A KR20120022971 A KR 20120022971A KR 101878297 B1 KR101878297 B1 KR 101878297B1
- Authority
- KR
- South Korea
- Prior art keywords
- vcpu
- lock
- information
- pcpu
- lhp
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/301—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Studio Devices (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
상술한 과제를 달성하기 위해 본 발명의 일 실시 예에 따르는 스케줄링 방법은 가상 CPU(Virtual CPU, vCPU)의 및 이를 구동하는 OS를 포함하는 가상장치(Virtual Machine)의 동작에서 상기 vCPU의 동작상태 정보와 상기 OS의 락(Lock) 정보를 획득하는 획득단계, 및 상기 동작상태 정보 및 상기 락 정보를 기반으로 상기 vCPU가 Lock Holder Preemption(LHP)상태인지 판단하는 판단단계를 포함하는 것을 특징으로 한다. 본 발명의 일 실시 예에 따르면 VM을 사용하는 시스템 상에서 LHP를 정확하고,용이하게 파악할 수 있다. 또한 vCPU의 연산이 할당되는 pCPU를 스케줄링 기법을 통해 조절함으로써 시스템 상에서 코어의 숫자가 증가하는 경우에도 확장성을 지원할 수 있다. 또한 각 vCPU별로 연산을 조절하고, 락의 해제를 기다리는 락 컨텐더(lock contender) vCPU에게 할당된 시간 분량(time quantum)을 이용하여 락 홀더(lock holder)의 임계구역(critical section)의 수행을 지속시킴으로써 기존 기술의 VM간 공평성 저해 문제를 해결할 수 있다.
Description
본 발명은 가상 장치(Virtual Machine)를 이용하는 시스템에서 가장 장치 모니터(Virtual Machine Monitor, VMM) 및 OS간의 자료구조 공유를 통해 락 홀더 선점(Lock Holder Preemption, LHP)를 감지 하고 LHP를 해소하기 위한 스케줄링을 제공하는 방법 및 장치에 관한 것이다.
가상화(Virtualization)는 하드웨어 시스템을 추상화하여 사용자에게 여러 개의 가상 하드웨어 시스템을 제공하는 기술이다. 가상화의 핵심 기술인 가상 머신 모니터(Virtual Machine Monitor, VMM)는 물리적 하드웨어와 OS 사이에 위치하며 가상의 하드웨어 자원을 상위 계층에 제공한다. VMM이 제공하는 가상의 하드웨어를 가상 머신(Virtual Machine, VM)이라고 하며 VM을 이용하는 OS를 게스트 OS(guest OS)라고 부른다. 물리적 하드웨어 상의 각 CPU를 physical CPU(pCPU)라고 부르고, VM에게 제공되는 가상의 CPU를 virtual CPU(vCPU)라고 부른다.
기존의 가상화 기술은 멀티코어 상에서 복수의 게스트 OS가 spin lock을 사용할 때 코어 개수 증가에 따른 확장성(scalability)이 떨어지는 문제가 있었다. Spin lock은 critical section의 길이가 매우 짧아서 lock을 획득하기 위해 blocking하는 것보다 busy-waiting하는 것이 보다 유리할 때 많이 사용된다. 그런데 임의의 spin lock을 획득한 vCPU가 다른 vCPU에 의해 선점(preemption)당하면 동일한 lock을 획득하려는 다른 vCPU들은 선점 기간 동안 busy-waiting을 해야 한다. 이는 통상 수~수십 ㎲에 불과한 waiting 시간을 수십 ㎳로 증가시켜 CPU 자원의 불필요한 낭비와 성능 저하를 초래한다. 이 같은 현상을 Lock Holder Preemption (LHP) 문제라고 한다.
이를 해결하기 위해 제공되는 스케쥴링 기법이 있었으나, 자원의 파편화(fragmentation)를 초래하고 프로세스간의 공평성(fairness)가 떨어지는 문제가 있었다. 이에 시스템 자원을 충분히 활용하고 프로세스간의 공평성을 가질 수 있는 방법이 요구된다.
본 발명은 상술한 문제점을 해결하기 위하여 제안된 것으로 VM에서 LHP를 용이하게 감지하고, 스케줄링 기법을 통해서 LHP를 해결하는 방법을 제공하는데 그 목적이 있다.
상술한 과제를 달성하기 위해 본 발명의 일 실시 예에 따르는 스케줄링 방법은 가상 CPU(Virtual CPU, vCPU)의 및 이를 구동하는 OS를 포함하는 가상장치(Virtual Machine)의 동작에서 상기 vCPU의 동작상태 정보와 상기 OS의 락(Lock) 정보를 획득하는 획득단계, 및 상기 동작상태 정보 및 상기 락 정보를 기반으로 상기 vCPU가 Lock Holder Preemption(LHP)상태인지 판단하는 판단단계를 포함하는 것을 특징으로 한다.
또한, 본 발명의 다른 측면에 따르면, 가상 CPU(vCPU) 및 상기 vCPU를 통해 연산을 수행하는 OS(operating system)을 포함하는 가상장치(Virtual Machine), 상기 가상장치가 필요한 연산을 수행하는 물리 CPU(pCPU)를 포함하는 물리장치(Physical Machine), 상기 가상장치 및 상기 물리장치와 연결되는 가상 머신 모니터(Virtual machine monitor,VMM), 상기 가상장치 및 상기 VMM과 연결되며 데이터를 저장할 수 있는 메모리부; 및 상기 가상장치, VMM 및 메모리부와 연결되어 동작을 제어할 수 있는 제어부를 포함하며 상기 메모리부는 상기 vCPU의 동작상태 정보 및 상기 OS의 락 정보를 저장하며, 상기 제어부가 상기 메모리부에 저장된 정보를 기반으로 상기 vCPU가 Lock Holder Preemption(LHP)상태인지 판단하는 것을 특징으로 한다.
본 발명의 일 실시 예에 따르면 VM을 사용하는 시스템 상에서 LHP를 정확하고,용이하게 파악할 수 있다. 또한 vCPU의 연산이 할당되는 pCPU를 스케줄링 기법을 통해 조절함으로써 시스템 상에서 코어의 숫자가 증가하는 경우에도 확장성을 지원할 수 있다.
또한 각 vCPU별로 연산을 조절하고, 락의 해제를 기다리는 락 컨텐더(lock contender) vCPU에게 할당된 시간 분량(time quantum)을 이용하여 락 홀더(lock holder)의 임계구역(critical section)의 수행을 지속시킴으로써 기존 기술의 VM간 공평성 저해 문제를 해결할 수 있다.
또한 LHP가 발생하지 않는 경우guest OS와 VMM 사이에 모드 변환을 수행하지 않음으로, 시스템에서 과도한 런타임 오버헤드가 발생하지 않는 특징이 있다.
도 1은 실시예에 따른 VM 및 물리적 하드웨어를 나타내는 도면이다.
도 2는 vCPU의 상태정보의 데이터 구조를 나타내는 도면이다.
도 3은 락홀더와 락컨텐터들의 데이터 구조를 나타내는 도면이다.
도 4는 vCPU가 획득한 락을 표시하는 데어터 구조를 나타내는 도면이다.
도 5는 실시예에 따른 스케줄링 방법을 나타내는 순서도이다.
도 6은 실시예에 따른 LHP판단 방법과 스케줄링 방법을 나타내는 순서도이다.
도 7은 실시예에 따른 LHP가 일어난 경우와 그렇지 않은 경우를 pCPU의 동작으로 나타내는 타이밍 도이다.
도 8을 다른 실시예에 따른 LHP 판단 방법과 스케줄링 방법을 나타내는 순서도이다.
도 9는 다른 실시예에 따른 LHP가 일어난 경우와 그렇지 않은 경우를 pCPU의 동작으로 나타내는 타이밍 도이다.
도 10은 LHP 발생시 스케줄링을 통해 연산을 조절하는 것을 pCPU의 동작으로 나타내는 타이밍도이다.
도 2는 vCPU의 상태정보의 데이터 구조를 나타내는 도면이다.
도 3은 락홀더와 락컨텐터들의 데이터 구조를 나타내는 도면이다.
도 4는 vCPU가 획득한 락을 표시하는 데어터 구조를 나타내는 도면이다.
도 5는 실시예에 따른 스케줄링 방법을 나타내는 순서도이다.
도 6은 실시예에 따른 LHP판단 방법과 스케줄링 방법을 나타내는 순서도이다.
도 7은 실시예에 따른 LHP가 일어난 경우와 그렇지 않은 경우를 pCPU의 동작으로 나타내는 타이밍 도이다.
도 8을 다른 실시예에 따른 LHP 판단 방법과 스케줄링 방법을 나타내는 순서도이다.
도 9는 다른 실시예에 따른 LHP가 일어난 경우와 그렇지 않은 경우를 pCPU의 동작으로 나타내는 타이밍 도이다.
도 10은 LHP 발생시 스케줄링을 통해 연산을 조절하는 것을 pCPU의 동작으로 나타내는 타이밍도이다.
이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
실시 예를 설명함에 있어서 본 발명이 속하는 기술 분야에 익히 알려져 있고 본 발명과 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.
마찬가지 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성요소에는 동일한 참조 번호를 부여하였다.
이하, 본 발명의 실시 예들에 의하여 VM에서 LHP를 감지하고 해소하기 위한 방법 및 장치를 설명하기 위해 도면을 참조하여 설명하도록 한다.
도 1은 실시예에 따른 VM(Virtual Machine) 및 물리적 하드웨어를 나타내는 도면이다.
도 1을 참조하면 실시예는 1개 이상의 VM(110, 120)을 포함할 수 있다. 각각의 VM은 애플리케이션(112,122), OS(114, 124) 및 가상 CPU(Virtual CPU, vCPU)(116,126)을 포함할 수 있다. OS(114,124)는 vCPU(116,126)상에서 실행되며, 애플리케이션(112,122)이 실행될 수 있도록 필요한 연산을 vCPU(116,126)에 할당할 수 있다. 이와 같은 구성을 가짐으로써 단일의 하드웨어에서 복수개의 가상적인 하드웨어의 실행이 가능하게 되므로 물리 컴퓨터를 다중화(multiplex)할 수 있게 된다.
실시예는 1개 이상의 물리 CPU (physical CPU, pCPU)(142,144)를 포함하는 물리 장치(140) 및 상기 VM(110,120)과 상기 물리 장치(140)을 연결하며 각 VM(142, 144)에 필요한 연산을 상기 물리 CPU(142,144)에 할당하는 역할을 할 수 있는 가장 머신 모니터(Virtual Machine Monitor,VMM)(130)을 포함할 수 있다. 상기 VMM(130)은 이외에도 VM(110,120) 필요한 물리적 자원을 할당 할 수 있다.
실시예는 상기 VM(110, 120) 및 VMM(130)과 연결되며 각각의 동작 정보를 수신하고 각 동작을 제어할 수 있는 제어부(150)를 더 포함할 수 있다. 도면에 도시된 바와 같이 별도의 제어부(150)를 가질 수도 있으며, 각 VM(110,120) 및 VMM(130)에 각각 제어부를 가지고 상기 별도의 제어부들 사이에 통신을 통해서도 본 발명이 실시될 수 있음을 밝히는 바이다.
상기 제어부(150)는 상기 VM(110,120)과 연결되며, 상기 OS(114,124)를 통해 특정 락을 획득하고 있는 vCPU의 정보, 특정 락에 대해 락의 해제를 기다리고 있는 vCPU의 집합 및 특정 vCPU가 획득하고 있는 락의 집합 중 하나 이상을 포함하는 정보를 수신할 수 있다.
또한 상기 제어부(150)은 상기 VMM(130)과 연결되며, 상기 VMM(130)을 통해 각 vCPU가 현재 동작하고 있는 상태 매핑 정보를 수신할 수 있다. vCPU의 동작은 동작(running) 또는 선점(preempted)중 하나일 수 있으며 이를 저장하는 자료구조에 대해서는 후술하도록 한다.
상기 제어부(150)는 상기 VM(110,120) 및 상기 VMM(130)으로부터 수신한 정보를 연결된 저장부(160)에 저장할 수 있다. 상기 저장부(160)는 별도로 상기 제어부(150)와 연결되어 구성될 수 있으며, 실시예에 따라 상기 제어부(150) 내부에 위치할 수 있다.
실시예에서는 각 VM(110,120)과 VMM(130)이 제어부(150)을 통해서 연결되고 수행되고 있는 프로세스의 락 정보 및 vCPU의 동작 정보를 공유하는 자료구조를 가짐으로써 락 홀더 선점(Lock Holder Preemption,LHP) 상태를 정확하게 감지하고 이를 해결하기 위한 스케줄링 방법을 제공할 수 있다. LHP 파악 및 스케줄링 방법은 후술하도록 한다.
도 2는 vCPU의 상태정보의 데이터 구조를 나타내는 도면이다.
도 1 및 도 2를 참조하면 실시 예에서 상기 vCPU의 상태정보(200)는 각 vCPU의 ID(210, 220)별로 두개의 상태값을 가질 수 있는 비트맵으로 이루어 질 수 있다. 각 vCPU의 ID는 숫자로 이루어질 수 있고 도면상에는 총 32개의 vCPU의 상태에 대해서 표시한 비트맵이 도시된다. 각 비트맵의 상태는 vCPU가 현재 동작되어 있는지 선점되어 있는지를 나태낼 수 있으며 본 실시예에서 비트맵에서 해당 ID가 가지는 값이 0일 경우 vCPU가 동작 중이고, 1일 경우 vCPU가 선점되었음을 나타낼 수 있다. 그러나 상기와 같이 할당 된 값은 실시예에 따라 다르게 구성될 수 있다.
상기와 같은 vCPU의 상태정보는 VMM(130)에 의해 기록될 수 있다. 상기 VMM(130)은 상기 VM(110,120)이 vCPU에 할당한 연산을 상기 물리 장치(140)에 포함되는 pCPU(142,144)에 할당하고, 이를 통해 현재 vCPU의 상태 정보가 동작중인지 선점되었는지를 파악할 수 있다. 상기 vCPU의 상태정보를 제어부(150)에 전송하여 상기 저장부(160)에 저장할 수 있다.
도 3은 락 홀더(Lock Holder)와 락 컨텐터들(Lock Contenders)의 데이터 구조를 나타내는 도면이다.
도1 및 도 3을 참조하면, 실시 예에서 락은 각각의 락 아이디(300)을 가질 수 있으며, 홀더와 컨텐더들은 해시 테이블(310,330) 상에서 기록될 수 있다.
홀더 값의 경우 락 아이디(300)을 락 홀더 vCPU로 매핑하게 되고, 컨텐더들은 락 아이디(300)을 락 컨텐더 vCPU로 매핑 한다.
락 아이디(300)가 x인 락의 경우 해시(Hash)값(305)를 구하여 각 테이블에 기록될 수 있다. 실시 예에서 락 아이디(300)의 해시 값(305)는 1번 테이블(315)에 대응되고, 상기 1번 테이블(315)에 락 아이디(320)값 안에 홀더 정보와 컨텐더 정보들을 기록 할 수 있다.
해시 테이블(310,330) 내부에는 락 아이디(335) 및 해당 락을 획득하려는 vCPU의 목록(340)을 포함하는 정보가 기록될 수 있다. 상기 vCPU의 목록(340) 내부에 최초로 획득한 vCPU(345)가 상기 락 아이디(335)를 가지는 락을 획득한 홀더 vCPU이고 상기 홀더 vCPU 하위의 vCPU들(350)이 상기 락이 해제되기를 기다리는 컨텐더 vCPU이다.
락 아이디(300)에 대한 홀더 및 컨텐더의 정보는 OS(114,124)에 의해 획득 되어 저장부(160)에 기록 될 수 있으며 상기 기록된 락 관련 정보를 VMM(130)이 참조할 수 있다.
이와 같이 락에 관련된 정보를 기록 함으로써 VMM(130)이 해당 락과 관련된 vCPU에 관한 정보를 용이하고 정확하게 얻을 수 있다.
도 4는 vCPU가 획득한 락을 표시하는 데어터 구조를 나타내는 도면이다.
vCPU의 집합(400)에서 각 vCPU 아이디(405)별로 획득하고 있는 락(410,415,420)을 테이블에 저장한다. 락 테이블은 vCPU를 해당 vCPU가 획득한 락의 집합으로 매핑한다. 이 정보는 OS(114),124)에 의해 기록되고, VMM(130)이 이를 읽어서 사용할 수 있다.
1개의 vCPU는 복수개의 락을 획득할 수 있으며 이와 같이 vCPU가 획득한 락의 정보를 기록 함으로써 LHP파악을 용이하고 정확하게 할 수 있다.
도 5는 실시예에 따른 스케줄링 방법을 나타내는 순서도이다.
5를 참조하면 실시예는 단계 510에서 vCPU의 동작상태 정보와 OS의 락 정보를 확득할 수 있다.
상기 vCPU의 동작상태 정보는 해당 vCPU가 동작(running)중인지 선점(preempted)되었는지를 나타내는 정보를 포함할 수 있다. 이 정보는 VMM에 의해 기록 될 수 있다.
상기 OS의 락 정보는 해당 락을 획득하고 있는 락 홀더 정보, 획득된 락이 해제되기를 기다리는 컨텐더 목록 정보 및 vCPU가 획득하고 있는 락 목록 정보 중 하나 이상을 포함할 수 있다. 이 정보는 OS에 의해 기록될 수 있다.
단계 520에서 단계 510에서 획득한 vCPU의 동작상태 정보 및 락 정보를 기반으로 LHP인지 판단할 수 있다. LHP의 판단은 OS 또는 VMM 양쪽 모두에서 이루어질 수 있다. 구체적인 판단 방법에 대해서는 후술하도록 한다.
단계 530에서 LHP가 발생하였을 경우 LHP에 대한 조치를 하기 위해 단계 540으로 넘어가고, LHP가 발생하지 않은 경우 판단을 종료하고 통상의 프로세스를 수행한다.
단계 540에서는 LHP가 발생하였을 경우 vCPU가 수행하는 연산을 다른 pCPU에 할당하는 작업을 한다. 이는 VMM에 의해 이루어질 수 있으며, LHP가 발생한 경우 생길 수 있는 프로세스의 효율 저하, 자원이 파편화, 공평성을 해결할 수 있다. 상기 할당작업의 경우 자세한 프로세스에 대해서는 후술하도록 한다.
도 6은 실시예에 따른 LHP판단 방법과 스케줄링 방법을 나타내는 순서도이다.
도 6을 참고하면 단계 610에서 특정 vCPU가 획득한 락을 찾는다. 상기 특정 vCPU는 VMM에서 상기 특정 vCPU를 선점할 필요가 있을 경우 해당 결정되게 된다. vCPU가 획득한 락은 VMM이 도 4에서 설명한 데이터 구조를 통해 찾을 수 있다.
단계 620에서 상기 특정 vCPU가 획득한 락이 없을 경우 LHP가 일어나지 않았으므로 판단을 종료하고 계속 통상의 프로세스를 수행한다.
상기 특정 vCPU가 획득한 락이 있는 경우 단계 630에서 VMM은 상기 특정 vCPU가 획득한 락의 해제를 기다리는 다른 vCPU가 있는지 찾는다. 상기 락의 해제를 기다리는 다른 vCPU는 VMM이 도 3에서 설명한 컨텐더에서 찾을 수 있다.
단계 640에서 락의 해제를 기다리는 다른 vCPU가 없는 경우 LHP는 발생하지 않았으므로 판단을 종료하고 계속 통상의 프로세스를 수행한다.
락의 해제를 기다리는 다른 vCPU가 있는 경우 단계 650에서 락의 해제를 기다리는 다른 vCPU의 동작 상태 정보를 찾는다. 상기 락의 해제를 기다리는 다른 vCPU의 동작상태는 도 2에서 설명한 데이터 구조 또는 VMM이 직접 vCPU가 pCPU에 할당된 상태를 감지 함으로써 파악 할 수 있다.
단계 660에서 락의 해제를 기다리는 다른 vCPU의 동작 상태가 선점(preempted) 된 경우 LHP는 발생하지 않음으로 판단을 종료하고 계속 통상의 프로세스를 수행한다.
락의 해제를 기다리는 다른 vCPU의 동작 상태가 동작(running)일 경우 LHP가 발생한 것으로 판단하고 단계 670으로 진행한다.
단계 670에서는 LHP가 발생하였으므로 이를 해결하기 위해 락을 획득한 vCPU가 수행하는 연산을 다른 pCPU로 할당하는 이전(migration)을 수행할 수 있다. 상기 연산을 이전할 다른 pCPU를 결정하는 방법에 대해서는 후술할 것이며, 바람직하게는 상기 락의 해제를 기다리는 다른 vCPU의 연산이 수행되는 pCPU로 이전될 수 있다.
도 7은 실시예에 따른 LHP가 일어난 경우와 그렇지 않은 경우를 pCPU의 동작으로 나타내는 타이밍 도이다.
도 7을 참조하면, 제1블록(702)의 경우 해당 pCPU에서 vCPU 0이 수행하는 연산을 실행하고 있음을 나타내고, 제2블록(704)의 경우 해당 pCPU에서 vCPU 1이 수행하는 연산을 실행하고 있음을 나타낸다.
도 7의 (A)에서 pCPU 0(710) 및 pCPU 1(720)에서 실행되는 vCPU의 연산을 표시하고 있다.
pCPU 0(710)에서 vCPU 0이 수행하는 연산이 실행되고 있고, 715에서 vCPU 0은 락 아이디가 A인 락을 획득하고, 임계 구역(critical section)을 수행한다. vCPU 0이 락 A를 획득하였으므로 락 A의 락 홀더는 vCPU 0이다.
pCPU 1(720)에서 vCPU 1이 수행하는 연산이 실행되고 있고, 725에서 vCPU 1은 락 아이디가 A인 락을 획득하려고 시도한다. 그러나 이미 715에서 vCPU 0이 A에 대한 락을 획득한 상태이기 때문에 vCPU 1은 락의 해제를 기다리며 spinning한다.
730에서 vCPU 0이 선점되게 될 경우 락 A를 획득하고 있는 락 홀더인 vCPU 0 이 선점되었고, vCPU 1의 상태 정보가 running이므로 LHP가 발생한 것으로 판단할 수 있다.
도 7의 (B)에서 pCPU 0(740) 및 pCPU 1(720)에서 실행되는 vCPU의 연산을 표시하고 있다.
pCPU 0(740)에서 vCPU 0에서 수행하는 연산이 실행되고 있고, 745에서 vCPU 0은 락 아이디가 B인 락을 획득하고, 임계 구역을 수행한다. vCPU 0 이 락 B를 획득하였으므로 락 B의 락 홀더는 vCPU 0이다.
pCPU 1(750)에서 vCPU 1에서 수행되는 연산이 실행되고 있고, 755에서 vCPU 1은 락 아이디가 A인 락을 획득하려고 시도한다. 실시 예에서 락 B를 획득한 vCPU가 없으므로 vCPU 1은 락 A를 획득할 수 있다.
760에서 vCPU 0dl 선점되게 될 경우에도 락 B에 대한 컨텐더가 없으르로 LHP가 발생하지 않는다.
도 8을 다른 실시예에 따른 LHP 판단 방법과 스케줄링 방법을 나타내는 순서도이다.
도 8을 참조하면, 단계 810에서 guest OS가 특정 vCPU가 수행하는 연산과 관련된 특정 락 획득을 시도한다. 상기 guest OS는 각각의 VM 상에서 동작하는 OS를 지칭한다.
단계 820에서 상기 특정 락의 획득을 성공한 경우 LHP가 발생하지 않았으므로 판단을 종료하고 통상의 프로세스를 수행한다.
상기 특정 락의 획득을 실패 한 경우 단계 830에서 상기 guest OS는 획득을 실패한 락의 락 홀더 CPU를 찾는다. 락 홀더 CPU는 도 3에서 설명한 데이터 구조를 통해 찾을 수 있다.
단계 840에서는 단계 830에서 찾은 락 홀더 CPU의 동작 상태를 판단한다. 상기 락 홀더 CPU의 동작 상태는 도 2에서 설명한 데이터 구조에서 찾을 수 있다. 상기 락 홀더 CPU의 동작 상태가 running일 경우 LHP는 발생하지 않았으므로 판단을 종료하고 통상의 프로세스를 실행할 수 있다.
상기 락 홀더 CPU의 동작 상태가 preempted일 경우 LHP가 발생하였으므로 다음 단계로 진행한다.
단계 850에서는 LHP가 발생하였으므로 이를 해결하기 위해 락을 획득한 vCPU가 수행하는 연산을 다른 pCPU로 할당하는 이전(migration)을 수행할 수 있다. 상기 연산을 이전할 다른 pCPU를 결정하는 방법에 대해서는 후술할 것이며, 바람직하게는 상기 락의 해제를 기다리는 다른 vCPU의 연산이 수행되는 pCPU로 이전될 수 있다.
도 9는 다른 실시예에 따른 LHP가 일어난 경우와 그렇지 않은 경우를 pCPU의 동작으로 나타내는 타이밍 도이다.
도 9을 참조하면, 제1블록(902)의 경우 해당 pCPU에서 vCPU 0이 수행하는 연산을 실행하고 있음을 나타내고, 제2블록(904)의 경우 해당 pCPU에서 vCPU 1이 수행하는 연산을 실행하고 있음을 나타낸다.
도 9의 (A)에서 pCPU 0(910) 및 pCPU 1(920)에서 실행되는 vCPU의 연산을 표시하고 있다.
pCPU 0(910)에서 vCPU 0이 수행하는 연산이 실행되고 있고, 915에서 vCPU 0은 락 아이디가 A인 락을 획득하고 임계 구역을 수행한다. vCPU 0이 락 A를 획득하였으므로 락 A의 락 홀더는 vCPU 0이다. 임계 구역의 수행을 마친 vCPU 0은 917에서 선점되게 된다.
vCPU 1은 925에서 아이디가 A인 락을 획득하려고 시도한다. 그러나 이미 915에서 vCPU 0이 A이 대한 락을 획득한 상태이기 때문에 vCPU 1은 락의 해제를 기다리면 spinning한다. 이와 같이 vCPU 1이 락 A를 획득하는 것을 실패한 경우, VMM은 락 A에 대한 홀더 정보를 찾는다. 실시 예에서 락 A에 대한 홀더는 vCPU 0이다. 이 때 vCPU 0의 동작 상태 정보를 찾는다. 실시 예에서 vCPU 0 은 선점된 상태이므로 상기와 같은 경우 LHP가 발생하게 된다.
도 9의 (B)에서 pCPU 0(930) 및 pCPU 1(940)에서 실행되는 vCPU의 연산을 표시하고 있다.
pCPU 0(930)에서 vCPU 0이 수행하는 연산이 실행되고 있고, 935에서 vCPU 0은 락 아이디가 B인 락을 획득하고 임계 구역을 수행한다. vCPU 0이 락 B를 획득하였으므로 락 B의 락 홀더는 vCPU 0이다. 임계 구역의 수행을 마친 vCPU 0은 937에서 선점되게 된다.
vCPU 1은 945에서 아이디가 A인 락을 획득하려고 시도한다. 이때 락 A를 획득한 vCPU가 없기 때문에 vCPU 1은 락 A를 획득하고 LHP는 발생하지 않게 된다.
도 10은 LHP 발생시 스케줄링을 통해 연산을 조절하는 것을 pCPU의 동작으로 나타내는 타이밍도이다.
도 10을 참조하면 제1블록(1002)은 해당 pCPU에서 vCPU 0이 수행하는 연산을 실행하고 있음을 나타내고, 제2블록(1004)은 해당 pCPU에서 vCPU 1이 수행하는 연산을 실행하고 있음을 나타내고, 제3블록(1006)은 해당 pCPU에서 vCPU 2가 수행하는 연산을 실행하고 있음을 나타낸다. 또한 pCPU 0(1010) 및 pCPU 1(1050)에서 실행되는 각 vCPU의 연산을 표시하고 있다.
실시 예에서 vCPU 0은 락 A를 획득하였고, vCPU 1은 락 A에 대한 컨텐더이다.
1020에서 vCPU 0은 pCPU 0(1010)에서 연산이 실행되며, 임계구역도 수행되고 있다. 1030에서 vCPU 2가 vCPU 0을 선점하게 된다. 이와 같이 vCPU 2에 의한 선점이 일어나면 pCPU 0(1010)에서 vCPU 2가 수행하는 연산을 실행한다.
vCPU 1은 1060에서 락 A가 해제 되지 않았으므로 락이 해제 되기를 spinning 하면서 기다리게 되고, 실시예에서 LHP가 발생하게 된다.
VMM은 스스로 LHP 발생사실을 감지하거나 OS로부터 하이퍼 콜을 받음으로써 LHP가 발생하였음을 감지할 수 있다. 이 경우 pCPU 0(1010)에서 실행되던 vCPU 0의 연산을 락 A의 컨텐더인 vCPU 1이 spinning하고 있는 pCPU 1(1050)로 이전(migration)하여 실행한다(1070).
이와 같이 pCPU 1(1050)으로 이전하여 vCPU 0의 임계 구역의 수행이 완료되면 OS는 하이퍼콜을 통해 락 A가 릴리즈 되었음을 VMM에게 알리고 이를 통지 받은 VMM은 1080에서 락 컨텐더인 vCPU를 스케줄링 한다.
또한 pCPU 0(1010)에서 vCPU 0(1040)이 수행하는 연산을 실행 할 수 있다.
이와 같이 LHP가 일어날 경우 해당 락의 홀더를 이전하여 해당 락의 컨텐더가 spinning하고 있는 pCPU에서 연산을 실행하게 함으로써 대기 시간이 짧아지고, 연산의 효율이 향상되는 효과가 있다.
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
한편, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
110, 120 : 가상장치 112, 122 : 애플리케이션
114, 124 : OS 116, 126 : 가상 CPU
130 : 가상 장치 모니터 140 : 물리장치
142, 144 : 물리 CPU 150 : 제어부
160 : 저장부
114, 124 : OS 116, 126 : 가상 CPU
130 : 가상 장치 모니터 140 : 물리장치
142, 144 : 물리 CPU 150 : 제어부
160 : 저장부
Claims (14)
- 가상 CPU(Virtual CPU, vCPU) 및 이를 구동하는 OS(operating system)를 포함하는 가상장치(Virtual Machine) 및 적어도 두개의 물리적 CPU(pCPU)를 포함하는 물리 장치(Physical Machine)을 포함하는 연산장치의 스케쥴링 방법에 있어서,
락 홀더(lock holder) 관련 정보 및 락 컨텐더(lock contender) 관련 정보를 포함하며 상기 vCPU에 대응하는 상기 OS의 락(Lock) 정보 및 상기 vCPU의 동작상태 정보를 획득하는 단계; 및
상기 동작상태 정보 및 상기 락 정보를 기반으로 제1락에 대한 락홀더인 상기 vCPU가 Lock Holder Preemption(LHP)상태인지 판단하는 단계; 및
상기 판단 결과 상기 vCPU가 LHP 상태일 경우, 제1pCPU에서 실행되고 있는 상기 vCPU에 관련된 연산을 제2pCPU로 이전(migrate)하는 단계를 포함하고,
상기 제2pCPU는 상기 제2pCPU에 스피닝(spinning)하는 vCPU를 기반으로 결정되고,
상기 스피닝 하는 vCPU는 상기 제1락의 컨텐더 vCPU이고, 상기 컨텐더 vCPU가 동작(running) 상태일 때 상기 vCPU가 LHP 상태인 것으로 판단되고,
상기 이전하는 단계는 상기 컨텐더 vCPU에게 할당된 시간 분량(time quantum)내에 수행되는 것을 특징으로 하는 스케줄링 방법. - 제1항에 있어서,
상기 동작상태 정보는 vCPU가 동작(running)중인지, 선점(preempted)되었는지를 지정하는 비트맵 형식으로 된 상태정보를 포함하고,
상기 락 정보는 락을 획득하고 있는 vCPU, 락의 해제를 기다리는 vCPU의 목록 및 vCPU가 획득하고 있는 락의 목록 중 적어도 하나를 포함하는 것을 특징으로 하는 스케줄링 방법. - 제1항에 있어서,
상기 획득하는 단계는,
상기 가상장치 및 물리적 CPU(pCPU)와 연결되는 가상 머신 모니터(Virtual Machine Monitor,VMM)가 vCPU의 동작상태 정보를 획득하는 단계; 및
상기 OS가 상기 OS의 락 정보를 획득하는 단계를 포함하는 것을 특징으로 하는 스케줄링 방법. - 제1항에 있어서,
상기 판단하는 단계는,
상기 vCPU가 획득하고 있는 락을 찾는 단계;
상기 vCPU가 획득하고 있는 락의 해제를 기다리는 vCPU를 찾는 단계; 및
상기 락의 해제를 기다리는 vCPU의 동작상태 정보를 찾는 단계를 포함하는 것을 특징으로 하는 스케줄링 방법. - 제1항에 있어서,
상기 판단하는 단계는,
특정 vCPU가 특정 락의 획득을 실패 할 경우 상기 획득 실패 한 락을 감지 하는 단계;
상기 획득 실패한 락을 획득하고 있는 다른 vCPU를 찾는 단계; 및
상기 락을 획득하고 있는 다른 vCPU의 동작상태 정보를 찾는 단계를 포함하는 것을 특징으로 하는 스케줄링 방법. - 삭제
- 삭제
- 가상 CPU(vCPU) 및 상기 vCPU를 통해 연산을 수행하는 OS(operating system)을 포함하는 가상장치(Virtual Machine);
상기 가상장치가 필요한 연산을 수행하는 물리 CPU(pCPU)를 포함하는 물리장치(Physical Machine);
상기 가상장치 및 상기 물리장치와 연결되는 가상 머신 모니터(Virtual machine monitor,VMM);
상기 가상장치 및 상기 VMM과 연결되며 데이터를 저장할 수 있는 메모리부; 및
상기 가상장치, VMM 및 메모리부와 연결되어 동작을 제어할 수 있는 제어부를 포함하며
상기 제어부는 락 홀더(lock holder) 관련 정보 및 락 컨텐더(lock contender) 관련 정보를 포함하며 상기 vCPU에 대응하는 상기 OS의 락(Lock) 정보 및 상기 vCPU의 동작상태 정보를 획득하고, 상기 동작상태 정보 및 상기 락 정보를 기반으로 제1락에 대한 락홀더인 상기 vCPU가 Lock Holder Preemption(LHP)상태인지 판단하고, 상기 판단 결과 상기 vCPU가 LHP 상태일 경우, 제1pCPU에서 실행되고 있는 상기 vCPU에 관련된 연산을 제2pCPU로 이전(migrate)하고,
상기 제2pCPU는 상기 제2pCPU에 스피닝(spinning)하는 vCPU를 기반으로 결정되고,
상기 스피닝 하는 vCPU는 상기 제1락의 컨텐더 vCPU이고, 상기 컨텐더 vCPU가 동작(running) 상태일 때 상기 vCPU가 LHP 상태인 것으로 판단되고,
상기 이전하는 단계는 상기 컨텐더 vCPU에게 할당된 시간 분량(time quantum)내에 수행되는 것을 특징으로 하는 연산장치. - 제8항에 있어서,
상기 동작상태 정보는 vCPU가 동작(running)중인지, 선점(preempted)되었는지를 지정하는 비트맵 형식으로 된 상태정보를 포함하고,
상기 락 정보는, 락을 획득하고 있는 vCPU, 락의 해제를 기다리는 vCPU의 목록 및 vCPU가 획득하고 있는 락의 목록 중 적어도 하나를 포함하는 것을 특징으로 하는 연산장치 - 제8항에 있어서,
상기 VMM이 상기 vCPU의 동작 상태 정보를 획득하고,
상기 OS가 상기 OS의 락 정보를 획득하는 것을 특징으로 하는 연산장치. - 제8항에 있어서,
상기 제어부는 상기 vCPU가 획득하고 있는 락을 찾고, 상기 획득하고 있는 락의 해제를 기다리는 vCPU를 찾고, 상기 락의 해제를 기다리는 vCPU의 동작상태 정보를 찾는 것을 특징으로 하는 연산장치. - 제8항에 있어서,
상기 제어부는 상기 vCPU가 특정 락의 획득을 실패할 경우 상기 획득 실패 한 락을 감지 하고, 상기 획득 실패한 락을 획득하고 있는 다른 vCPU를 찾고, 상기 락을 획득하고 있는 다른 vCPU의 동작상태 정보를 찾는 것을 특징으로 하는 연산장치. - 삭제
- 삭제
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120022971A KR101878297B1 (ko) | 2012-03-06 | 2012-03-06 | 락 홀더 선점 회복 방법 및 장치 |
PCT/KR2013/001725 WO2013133586A1 (ko) | 2012-03-06 | 2013-03-05 | 락 홀더 선점 회복 방법 및 장치 |
US14/383,532 US9916172B2 (en) | 2012-03-06 | 2013-03-05 | Method and apparatus for recovering lock holder preemption |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120022971A KR101878297B1 (ko) | 2012-03-06 | 2012-03-06 | 락 홀더 선점 회복 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130101877A KR20130101877A (ko) | 2013-09-16 |
KR101878297B1 true KR101878297B1 (ko) | 2018-08-07 |
Family
ID=49117009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120022971A KR101878297B1 (ko) | 2012-03-06 | 2012-03-06 | 락 홀더 선점 회복 방법 및 장치 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9916172B2 (ko) |
KR (1) | KR101878297B1 (ko) |
WO (1) | WO2013133586A1 (ko) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473135B (zh) * | 2013-09-23 | 2016-08-24 | 中国科学技术大学苏州研究院 | 虚拟化环境下自旋锁lhp现象的处理方法 |
CN103729242B (zh) * | 2013-12-19 | 2017-02-08 | 华为技术有限公司 | 一种自旋锁抢占调度算法选择方法及装置 |
US9280375B1 (en) | 2014-04-30 | 2016-03-08 | Google Inc. | Dynamically adjustable virtual machine |
WO2017107091A1 (en) * | 2015-12-23 | 2017-06-29 | Intel IP Corporation | Virtual cpu consolidation to avoid physical cpu contention between virtual machines |
CN105955796B (zh) * | 2016-04-22 | 2018-12-07 | 华中科技大学 | 一种云平台上高性能并行应用的调度方法及系统 |
US10445126B2 (en) * | 2017-02-21 | 2019-10-15 | Red Hat, Inc. | Preloading enhanced application startup |
WO2018179149A1 (ja) * | 2017-03-29 | 2018-10-04 | 三菱電機株式会社 | 情報処理装置、情報処理方法および情報処理プログラム |
US10956193B2 (en) * | 2017-03-31 | 2021-03-23 | Microsoft Technology Licensing, Llc | Hypervisor virtual processor execution with extra-hypervisor scheduling |
US11126474B1 (en) * | 2017-06-14 | 2021-09-21 | Amazon Technologies, Inc. | Reducing resource lock time for a virtual processing unit |
US11023135B2 (en) | 2017-06-27 | 2021-06-01 | TidalScale, Inc. | Handling frequently accessed pages |
US10817347B2 (en) * | 2017-08-31 | 2020-10-27 | TidalScale, Inc. | Entanglement of pages and guest threads |
US10592281B1 (en) | 2017-09-28 | 2020-03-17 | Amazon Technologies, Inc. | Wait optimizer for recording an order of first entry into a wait mode by a virtual central processing unit |
CN113836161B (zh) * | 2021-09-30 | 2023-11-03 | 紫光云技术有限公司 | 一种利用数据库锁实现定时任务原子性的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040230972A1 (en) * | 2002-10-24 | 2004-11-18 | International Business Machines Corporation | Management of locks in a virtual machine environment |
US20060277551A1 (en) | 2005-06-06 | 2006-12-07 | Accapadi Jos M | Administration of locks for critical sections of computer programs in a computer that supports a multiplicity of logical partitions |
US20100005465A1 (en) | 2006-11-24 | 2010-01-07 | Nec Corporation | Virtual machine location system, virtual machine location method, program, virtual machine manager, and server |
US20110119667A1 (en) * | 2009-11-16 | 2011-05-19 | Srinivasan Kattiganehalli Y | Monitoring spin locks in virtual machines in a computing system environment |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060271542A1 (en) * | 2005-05-25 | 2006-11-30 | Harris Steven T | Clustered object state using logical actions |
US7487279B2 (en) * | 2007-01-23 | 2009-02-03 | International Business Machines Corporation | Achieving both locking fairness and locking performance with spin locks |
US7500037B2 (en) * | 2007-01-30 | 2009-03-03 | International Business Machines Corporation | System, method and program for managing locks |
EP2323035B1 (en) * | 2009-11-16 | 2019-04-17 | Red Bend Software | Scheduling system |
KR101686082B1 (ko) * | 2010-07-22 | 2016-12-28 | 삼성전자주식회사 | 결정적 프로그레스 인덱스 기반 락 제어 및 스레드 스케줄링 방법 및 장치 |
-
2012
- 2012-03-06 KR KR1020120022971A patent/KR101878297B1/ko active IP Right Grant
-
2013
- 2013-03-05 US US14/383,532 patent/US9916172B2/en active Active
- 2013-03-05 WO PCT/KR2013/001725 patent/WO2013133586A1/ko active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040230972A1 (en) * | 2002-10-24 | 2004-11-18 | International Business Machines Corporation | Management of locks in a virtual machine environment |
US20060277551A1 (en) | 2005-06-06 | 2006-12-07 | Accapadi Jos M | Administration of locks for critical sections of computer programs in a computer that supports a multiplicity of logical partitions |
US20100005465A1 (en) | 2006-11-24 | 2010-01-07 | Nec Corporation | Virtual machine location system, virtual machine location method, program, virtual machine manager, and server |
US20110119667A1 (en) * | 2009-11-16 | 2011-05-19 | Srinivasan Kattiganehalli Y | Monitoring spin locks in virtual machines in a computing system environment |
Also Published As
Publication number | Publication date |
---|---|
WO2013133586A1 (ko) | 2013-09-12 |
US20150033228A1 (en) | 2015-01-29 |
US9916172B2 (en) | 2018-03-13 |
KR20130101877A (ko) | 2013-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101878297B1 (ko) | 락 홀더 선점 회복 방법 및 장치 | |
EP3036625B1 (en) | Virtual hadoop manager | |
US10255005B2 (en) | Systems and methods of disk storage allocation for virtual machines | |
US10216758B2 (en) | Multi-tenant production and test deployments of Hadoop | |
US9235435B2 (en) | Direct memory access filter for virtualized operating systems | |
US9342360B2 (en) | Workload migration between virtualization softwares | |
JP5459811B2 (ja) | 仮想ストレージ移行のための方法およびシステム、ならびに仮想マシンモニタ | |
US9244715B2 (en) | Virtualization processing method and apparatuses, and computer system | |
US10481932B2 (en) | Auto-scaling virtual switches | |
US20090327576A1 (en) | Direct Memory Access Filter for Virtualized Operating Systems | |
US20170371777A1 (en) | Memory congestion aware numa management | |
US9841983B2 (en) | Single click host maintenance | |
US20140298326A1 (en) | Asynchronous unmap of thinly provisioned storage for virtual machines | |
US9021497B1 (en) | Adjusting pause-loop exiting window values | |
EP2395430B1 (en) | Virtual computer allocation method, allocation program, and information processing device having a virtual computer environment | |
US10061528B2 (en) | Disk assignment for multiple distributed computing clusters in a virtualized computing environment | |
Ahn et al. | Accelerating critical OS services in virtualized systems with flexible micro-sliced cores | |
JP2016038888A (ja) | 情報処理システム、情報処理方法及び情報処理プログラム | |
CN109739612B (zh) | 虚拟机进程的调度方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
GRNT | Written decision to grant |