KR20120080075A - 가상 머신을 위한 계층적 스케줄러 및 가상 머신 스케줄 방법 - Google Patents
가상 머신을 위한 계층적 스케줄러 및 가상 머신 스케줄 방법 Download PDFInfo
- Publication number
- KR20120080075A KR20120080075A KR1020110001527A KR20110001527A KR20120080075A KR 20120080075 A KR20120080075 A KR 20120080075A KR 1020110001527 A KR1020110001527 A KR 1020110001527A KR 20110001527 A KR20110001527 A KR 20110001527A KR 20120080075 A KR20120080075 A KR 20120080075A
- Authority
- KR
- South Korea
- Prior art keywords
- virtual machine
- scheduler
- time
- real time
- real
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 14
- 238000013468 resource allocation Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- 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/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
실시간 특성 및 비실시간 특성을 모두 만족시킬 수 있는 가상 머신 스케줄러 및 가상 머신 스케줄 방법이 제공된다. 본 발명의 일 양상에 따른 스케줄러는, 실시간 스케줄 정책에 따라 실시간 가상 머신 및 비실시간 가상 머신을 대표하는 인터페이스 가상 머신을 스케줄링하는 제 1 스케줄러, 및 인터페이스 가상 머신에 의해 호출되고, 비실시간 스케줄 정책에 따라 상기 비실시간 가상 머신을 스케줄링하는 제 2 스케줄러를 포함할 수 있다.
Description
임베디드 가상화 기반 하이퍼바이저의 가상 머신 스케줄러와 관련된다.
임베디드 가상화 하이퍼바이저는 동시에 다수개의 운영체제를 하나의 물리 머신에서 동작할 수 있도록 하는 가상머신 모니터이다. 이러한 가상머신 모니터는 물리시간을 쪼개어 개개의 운영체제에게 제공하도록 함으로써, 동시에 다수의 운영체제가 실행될 수 있도록 스케줄링을 한다.
통상적으로 임베디드 가상화 하이퍼바이저에서 사용되는 스케줄러는 그 스케줄 정책이 고정되어 있다. 다시 말해, 가상 머신 스케줄러의 스케줄 정책은 실행 중에 변경이 불가능하다.
그러나 가상 머신의 특성상 가상 머신 환경에서 동작하는 운영체제는 실시간 특성을 가지거나 비실시간 특성을 가질 수 있으며, 동작하는 운영체제에 따라 필요로 하는 스케줄러의 특성도 다를 수 있다.
기존 임베디드 하이퍼바이저가 지원하는 실시간 스케줄러는 대역폭 할당을 지원해 주고 있으나, 게스트 운영체제의 개수가 증가함에 따라 사용자가 직접 스케줄링 파라미터를 구하여 스케줄러에게 알려주어야 한다. 즉, 게스트 운영체제의 개수에 따라 확장성(scalability)이 크게 떨어진다.
또한 기존 하이퍼바이저의 비실시간 스케줄러는 게스트 운영체제의 시간을 게스트 운영체제의 개수에 따라 분할하여 각각의 게스트 운영체제에게 제공한다. 따라서, 게스트 운영체제의 개수가 증가함에 따라, 물리 프로세서 사용량은 1/N로 공평하게 분배가 가능하나, 실시간 처리를 요구하는 게스트 운영체제에 대하여 고정적인 프로세서 할당량을 제공해 줄 수 없다. 따라서, 비실시간 게스트 운영체제의 개수가 증가함에 따라 실시간 스케줄 가능성(schedulability)을 보장할 수 없다.
실시간 특성 및 비실시간 특성을 모두 만족시킬 수 있는 가상 머신 스케줄러 및 가상 머신 스케줄 방법이 제공된다.
본 발명의 일 양상에 따른 스케줄러는, 실시간 스케줄 정책에 따라 실시간 가상 머신 및 비실시간 가상 머신을 대표하는 인터페이스 가상 머신을 스케줄링하는 제 1 스케줄러, 및 인터페이스 가상 머신에 의해 호출되고, 비실시간 스케줄 정책에 따라 상기 비실시간 가상 머신을 스케줄링하는 제 2 스케줄러를 포함할 수 있다.
본 발명의 일 양상에 따른 스케줄 방법은, 제 1 스케줄러가 실시간 스케줄 정책에 따라 실시간 가상 머신 및 비실시간 가상 머신을 대표하는 인터페이스 가상 머신을 스케줄링하는 단계, 및 인터페이스 가상 머신이 스케줄되는 경우, 상기 인터페이스 가상 머신에 의해 호출된 제 2 스케줄러가 비실시간 스케줄 정책에 따라 상기 비실시간 가상 머신을 스케줄링하는 단계를 포함할 수 있다.
개시된 내용에 의하면, 인터페이스 가상 머신을 통해 실시간 스케줄러와 비실시간 스케줄러가 계층적으로 구성되기 때문에 임베디드 가상화 환경에서 실시간 가상 머신과 비실시간 가상 머신을 모두 스케줄링할 수가 있다.
도 1은 본 발명의 일 실시예에 따른 가상화 시스템을 도시한다.
도 2는 본 발명의 일 실시예에 따른 계층적 스케줄러를 도시한다.
도 3은 본 발명의 일 실시예에 따른 계층적 스케줄러의 스케줄 동작을 도시한다.
도 4는 본 발명의 일 실시예에 따른 가상 머신 스케줄 방법을 도시한다.
도 2는 본 발명의 일 실시예에 따른 계층적 스케줄러를 도시한다.
도 3은 본 발명의 일 실시예에 따른 계층적 스케줄러의 스케줄 동작을 도시한다.
도 4는 본 발명의 일 실시예에 따른 가상 머신 스케줄 방법을 도시한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 예를 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 가상화 시스템을 도시한다.
도 1을 참조하면, 가상화 시스템(100)은 다수의 가상 머신(101), 가상 머신 모니터(102), 및 하드웨어(103)를 포함한다.
각각의 가상 머신(101)은 서로 다른 종류의 운영체제(OS)가 될 수 있다. 예컨대, VM#0은 윈도우즈가 될 수 있고, VM#1은 리눅스가 될 수 있다.
각각의 가상 머신(101)은 컨트롤 가상 머신과 게스트 가상 머신으로 분류될 수 있다. 컨트롤 가상 머신은 하드웨어(103)에 직접 접근할 수 있는 가상 머신을 말한다. 게스트 가상 머신은 하드웨어(103)에 직접 접근할 수 없는 가상 머신을 말한다. 컨트롤 가상 머신과 게스트 가상 머신은 처음부터 정해질 수도 있고 경우에 따라 컨트롤 가상 머신이 게스트 가상 머신으로 또는 게스트 가상 머신이 컨트롤 가상 머신으로 전환될 수 있다.
또한 각각의 가상 머신(101)은 실시간 가상 머신과 비실시간 가상 머신으로 분류될 수도 있다. 실시간 가상 머신은 실시간 특성을 갖는 운영체제가 될 수 있고, 비실시간 가상 머신은 비실시간 특성을 갖는 운영체제가 될 수 있다.
또한 각각의 가상 머신(101)은 인터페이스 가상 머신을 포함할 수 있다. 본 실시예에 따라 인터페이스 가상 머신이란 추상화된 가상 머신으로 비실시간 가상 머신을 대표하는 가상 머신이 될 수 있다.
가상 머신 모니터(102)는 서로 다른 종류의 가상 머신이 동일한 하드웨어(103) 상에서 동작할 수 있도록 하는 환경을 제공한다. 예컨대, 가상 머신 모니터(102)는 가상 머신들간의 통신 채널을 제공할 수 있다. 일 예로써, 하드웨어(103)에 직접 접근할 수 없는 게스트 가상 머신은 가상 머신 모니터(102)가 제공하는 통신 채널을 통해 하드웨어(103)의 사용 요청을 컨트롤 가상 머신으로 전달하는 것이 가능하다. 이러한 가상 머신 모니터(102)는 Xen, Hypervisor, L4 등의 소프트웨어를 포함할 수 있다.
또한 가상 머신 모니터(102)는 가상 머신 스케줄러(104)를 포함한다.
가상 머신 스케줄러(104)는 각각의 가상 머신(101)을 스케줄링한다. 다시 말해, 가상 머신 스케줄러(104)는 적절한 스케줄 정책에 따라 다음에 실행될 가상 머신을 결정할 수 있다.
또한 가상 머신 스케줄러(104)는 계층적으로 구성될 수 있다. 예컨대, 가상 머신 스케줄러(104)는 실시간 스케줄 정책을 갖는 상위 스케줄러와 비실시간 스케줄 정책을 갖는 하위 스케줄러를 포함할 수 있다.
도 2는 본 발명의 일 실시예에 따른 가상 머신 스케줄러를 도시한다.
도 2를 참조하면, 가상 머신 스케줄러(200)는 제 1 스케줄러(201), 제 2 스케줄러(202), 제 1 큐(203), 제 2 큐(204), 및 큐 관리부(205)를 포함한다.
제 1 스케줄러(201)는 실시간 스케줄 정책에 따라 실시간 가상 머신(RTVM) 및 인터페이스 가상 머신(IFVM)을 스케줄링한다. 실시간 가상 머신(RTVM)이란 실시간 특성을 갖는 가상 머신을 말한다. 인터페이스 가상 머신(IFVM)이란 비실시간 가상 머신을 대표하는 추상화된 가상 머신을 말한다. 예컨대, 제 1 스케줄러(201)는 자원 할당 기반의 스케줄 정책에 따라 실시간 가상 머신(RTVM)과 인터페이스 가상 머신(IFVM)을 스케줄링할 수 있다.
제 2 스케줄러(202)는 인터페이스 가상 머신(IFVM)에 의해 호출된다. 즉 제 1 스케줄러(201)에 의해 다음에 실행될 가상 머신으로 실시간 가상 머신(RTVM) 또는 인터페이스 가상 머신(IFVM)이 선택되는데, 인터페이스 가상 머신(IFVM)이 선택되면 제 2 스케줄러(202)가 호출될 수 있다.
또한 제 2 스케줄러(202)는 비실시간 스케줄 정책에 따라 비실시간 가상 머신(NRTVM)을 스케줄링한다. 예컨대, 제 2 스케줄러(202)는 공평성 기반의 스케줄 정책에 따라 비실시간 가상 머신(NRTVM)을 스케줄링할 수 있다.
제 1 큐(203)는 제 1 스케줄러(201)에 의해 관리된다. 제 1 큐(203)에는 실시간 가상 머신(RTVM)과 인터페이스 가상 머신(IFVM)이 저장된다.
제 2 큐(204)는 제 2 스케줄러(202)에 의해 관리된다. 제 2 큐(204)에는 비실시간 가상 머신(NRTVM)이 저장된다.
큐 관리부(205)는 가상 머신이 생성되면 그 가상 머신의 특성, 예컨대, 실시간인지 비실시간인지, 또는 인터페이스 가상 머신에 해당되는지를 판단하여 제 1 큐(203) 및 제 2 큐(204) 중 어느 하나에 선택적으로 생성된 가상 머신을 삽입한다.
본 발명의 일 양상에 따라, 제 1 스케줄러(201)는 현재 실행 중인 가상 머신의 실행 시간을 측정하고, 가상 머신에 설정된 임계 시간에 따라 다음에 실행될 가상 머신을 결정할 수 있다. 예컨대, 실시간 가상 머신(RTVM) 및 인터페이스 가상 머신(IFVM)은 스케줄 파라미터로써 주기, 실행시간, 임계시간을 가질 수 있다.
또한 본 발명의 일 양상에 따라, 제 2 스케줄러(202)는 공평성 기반의 스케줄 정책에 따라 비실시간 가상 머신(NRTVM)을 스케줄링할 수 있다. 예컨대, 제 2 스케줄러(202)는 제 2 큐(204)에 보관된 각각의 비실시간 가상 머신(NRTVM)에 실행 퀀텀을 동일하게 제공하고 제공된 실행 퀀텀에 따라 다음에 실행될 가상 머신을 결정할 수 있다.
도 3은 본 발명의 일 실시예에 따른 가상 머신 스케줄러의 동작을 도시한다.
도 2 및 도 3을 참조하면, 제 1 스케줄러(201)는 실행 중인 가상 머신의 실행 시간을 측정한다. 예컨대, 현재 t1 시점에서 RTVM#1이 실행 중이라면 제 1 스케줄러(201)는 RTVM#1이 스케줄된 시간 t0에서 현재 t1까지의 시간을 측정할 수 있다. 또한 제 1 스케줄러(201)는 가상 머신의 실행 시간에 따라 스케줄 시점을 결정할 수 있다.
만약 스케줄 시점이 t1이라면, 제 1 스케줄러(201)는 실시간 가상 머신 및 인터페이스 가상 머신 중에서 다음에 실행될 가상 머신을 결정한다. 예컨대, 제 1 스케줄러(201)는 t1시점 이후에 실행될 가상 머신으로 RTVM#2와 IFVM 중에서 어느 하나를 선택할 수 있다. 이때, 결정 기준은 제 1 스케줄러(201)의 스케줄 정책을 따를 수 있다. 예컨대, 제 1 스케줄러(201)는 각 가상 머신에 설정된 임계시간에 따른 우선순위에 기초하여 다음에 실행될 가상 머신을 결정할 수 있다. 도 3에서는 실시간 가상 머신 RTVM#1 이후에 인터페이스 가상 머신 IFVM이 스케줄되는 것을 도시하였다.
인터페이스 가상 머신(IFVM)이 다음에 실행될 가상 머신으로 결정된 경우, 인터페이스 가상 머신(IFVM)이 스케줄됨에 따라 제 2 스케줄러(202)가 호출된다. 호출된 제 2 스케줄러(202)는 비실시간 가상 머신 중에서 다음에 실행될 가상 머신을 결정한다. 결정 기준은 제 2 스케줄러(202)의 스케줄 정책을 따를 수 있다. 예컨대, 제 2 스케줄러(202)는 실행 퀀텀이 남아있는 가상 머신 중 하나를 임의로 선택할 수 있다. 실행 퀀텀은 각 가상 머신에 동일하게 제공되며 실행시간만큼 실행 퀀텀이 소진된다. 이러한 실행 퀀텀에 따라 비실시간 가상 머신이 공평하게 스케줄될 수 있다.
인터페이스 가상 머신(IFVM)이 스케줄되어 있는 동안 제 2 스케줄러(202)는 비실시간 가상 머신을 스케줄링하고, 제 1 스케줄러(201) 역시 인터페이스 가상 머신(IFVM)이 스케줄링된 시점, 즉 t1부터 현재까지의 시간을 측정하고 측정된 실행시간에 따라 다음 스케줄 시점, 예컨대, t2를 결정할 수 있다. 제 2 스케줄러(202)는 인터페이스 가상 머신(IFVM)이 실행되는 동안에 비실시간 가상 머신을 스케줄링할 수 있다.
다음 스케줄 시점 t2가 도래하면, 제 2 스케줄러(202)에 의한 비실시간 가상 머신의 스케줄링은 종료되고, 제 1 스케줄러(201)의 스케줄 정책에 따라 다시 실시간 가상 머신 RTVM#2 또는 인터페이스 가상 머신(IFVM)이 스케줄링 될 수 있다.
각각의 케이스 별로 스케줄링 알고리즘을 구체적으로 정리하면 다음과 같다.
먼저 각각의 용어를 다음과 같이 정의한다. "스케줄러 1"은 상위 계층 스케줄러로써 자원 할당 기반 스케줄러를 의미한다. "스케줄러 2"은 하위 계층 스케줄러로써 공평성 기반 스케줄러를 의미한다. "스케줄링 시점"은 스케줄러가 호출된 순간 읽어들인 시간 값을 의미한다. "시간 변수 1"은 스케줄러 1이 이전 스케줄링 시점을 기억하기 위한 변수이고, "시간 변수 2"은 스케줄러 2가 이전 스케줄링 시점을 기억하기 위한 변수이다. "마지막 스케줄링 구간"이란 시간 변수 1로부터 현재시간까지의 시간 구간을 의미한다. "가상머신 C"은 스케줄러 1에 의해 스케줄링되는 가상머신으로, 스케줄러 2가 사용할 시간을 할당 받기 위해 존재한다. 실제 가상머신이 아니며, 스케줄러 2에 의해 스케줄링되는 모든 가상머신을 대표하여 물리머신의 사용 시간을 할당받는다. "스케줄러 2의 상대시간"은 스케줄러 2에 의해 스케줄된 가상머신이 실행하는 동안에만 진행하는 상대 시간을 의미한다.
Case 1 : 스케줄러 1의 가상 머신 a의 실행 이후 스케줄러 1의 가상 머신 b가 실행되는 경우
스케줄러 1은 현재 실행 중인 가상 신의 실행 시간을 측정하고 임계시간 기반 우선 순위 스케줄링을 수행한다. 이때 다음에 실행될 가상 머신은 임계시간이 가장 가까운 가상 머신이 될 수 있다. 따라서 자원 할당이 보장될 수 있다. 스케줄러 1은 스케줄링이 완료되면 시간 변수 1에 현재 시간을 저장한다.
Case 2 : 스케줄러 1의 가상머신 a의 실행 이후 스케줄러 2의 가상 머신 n이 실행되는 경우
마찬가지로 스케줄러 1은 현재 실행 중인 가상 신의 실행 시간을 측정하고 임계시간 기반 우선 순위 스케줄링을 수행한다. Case 2는 스케줄러 1의 스케줄 정책에 따라 인터페이스 가상 머신이 스케줄된 경우이다. 따라서 인터페이스 가상 머신에 의해 스케줄러 2가 호출된다. 스케줄러 2가 호출되면, 스케줄러 1은 현재 시간을 시간 변수 1에 저장한다. 호출된 스케줄러 2는 실행 퀀텀을 이용하여 공평성 기반 스케줄링을 수행한다.
Case 3 : 스케줄러 2의 가상 머신 n의 실행 이후 스케줄러 1의 가상 머신 c가 실행되는 경우
스케줄러 2는 현재 실행 중인 가상 머신 n이 마지막 스케줄링 구간에서 실행한 시간을 계산한다. 이 시간은 스케줄러 2의 상대시간과 시간 변수 2의 차이가 될 수 있다. 스케줄러 2는 현재 실행 중인 가상 머신 n의 실행 시간을 갱신하고 공평성 기반 스케줄링을 수행한다.
Case 4 : 스케줄러 2의 가상 머신 n의 실행 이후 스케줄러 2의 가상 머신 m이 실행되는 경우
가상 머신 n 및 m은 스케줄러 1에 의해 스케줄링 되지 않는다. 따라서 가상 머신 n 및 m를 대표하는 가상 머신 C의 실행 시간을 계산한다. 가상 머신 C의 실행 시간은 현재 스케줄링 시점에서 시간 변수 1을 뺀 값이 될 수 있다. 한편 가상 머신 C가 스케줄되어 있는 동안 스케줄러 2는 공평성 기반의 스케줄링을 수행하고 시간 변수 2에 스케줄러 2의 상대시간을 저장한다.
도 4는 본 발명의 일 실시예에 따른 가상 머신 스케줄 방법을 도시한다.
도 2 및 도 4를 참조하면, 스케줄러(200)는 실시간 스케줄 정책에 따라 실시간 가상 머신(RTVM) 및 인터페이스 가상 머신(IFVM)을 스케줄링한다. 예컨대, 제 1 스케줄러(201)가 각 실시간 가상 머신(RTVM) 및 인터페이스 가상 머신(IFVM)에 스케줄 파라미터로써 주기, 실행시간, 및 임계시간을 설정한 후, 현재 실행 중인 가상 머신의 실행 시간 및 다음에 스케줄링될 후보 가상 머신의 임계 시간 등을 이용하여 스케줄 시점 및 스케줄 대상을 결정할 수 있ㄷ다. 일 예로써, 제 1 스케줄러(201)는 자원 할당 기반의 스케줄 정책에 따라 실시간 가상 머신(RTVM) 및 인터페이스 가상 머신(IFVM)을 스케줄링할 수 있다.
그리고 스케줄러(200)는 제 1 스케줄러(201)의 스케줄 결과에 따라 인터페이스 가상 머신(IFVM)이 스케줄되었는지 여부를 판단한다(402). 인터페이스 가상 머신(IFVM)은 추상화된 가상 머신으로 비실시간 가상 머신을 대표하는 가상 머신이 될 수 있다.
제 1 스케줄러(201)의 스케줄 결과에 따라 인터페이스 가상 머신(IFVM)이 스케줄되는 경우, 스케줄된 인터페이스 가상 머신(IFVM)에 따라 제 2 스케줄러(202)가 호출된다.
제 2 스케줄러(202)가 호출됨에 따라, 스케줄러(200)는 비실시간 스케줄 정책에 따라 비실시간 가상 머신(NRTVM)을 스케줄링한다(403). 예컨대, 제 2 스케줄러(202)가 실행 퀀텀을 이용하여 공평성 기반의 스케줄 정책에 따라 비실시간 가상 머신(NRTVM)을 스케줄링할 수 있다.
이상에서 살펴본 것과 같이, 개시된 실시예들에 의하면, 실시간 스케줄러와 비실시간 스케줄러가 계층적으로 구성되기 때문에 하나의 프레임워크에서 실시간 가상 머신과 비실시간 가상 머신을 모두 스케줄할 수가 있다.
한편, 본 발명의 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
나아가 전술한 실시 예들은 본 발명을 예시적으로 설명하기 위한 것으로 본 발명의 권리범위가 특정 실시 예에 한정되지 아니할 것이다.
Claims (9)
- 실시간 스케줄 정책에 따라 실시간 가상 머신 및 비실시간 가상 머신을 대표하는 인터페이스 가상 머신을 스케줄링하는 제 1 스케줄러; 및
상기 인터페이스 가상 머신에 의해 호출되고, 비실시간 스케줄 정책에 따라 상기 비실시간 가상 머신을 스케줄링하는 제 2 스케줄러; 를 포함하는 가상 머신을 위한 계층형 스케줄러.
- 제 1 항에 있어서,
상기 실시간 가상 머신 및 상기 인터페이스 가상 머신이 저장되고, 상기 제 1 스케줄러에 의해 관리되는 제 1 큐;
상기 비실시간 가상 머신이 저장되고, 상기 제 2 스케줄러에 의해 관리되는 제 2 큐; 및
상기 실시간 가상 머신, 상기 인터페이스 가상 머신, 및 상기 비실시간 가상 머신이 생성되면 상기 제 1 큐 또는 제 2 큐 중 어느 하나에 삽입하는 큐 관리부; 를 더 포함하는 가상 머신을 위한 계층형 스케줄러.
- 제 1 항에 있어서, 상기 제 1 스케줄러는
자원 할당 기반의 스케줄 정책에 따라 상기 실시간 가상 머신 및 상기 인터페이스 가상 머신을 스케줄링하는 가상 머신을 위한 계층형 스케줄러.
- 제 3 항에 있어서, 상기 제 1 스케줄러는
현재 실행 중인 실시간 가상 머신 또는 인터페이스 가상 머신의 실행 시간을 측정하고,
실시간 가상 머신 또는 인터페이스 가상 머신에 설정된 임계 시간에 따라 다음에 실행될 가상 머신을 결정하는 가상 머신을 위한 계층형 스케줄러.
- 제 1 항에 있어서, 상기 제 2 스케줄러는
공평성 기반의 스케줄 정책에 따라 상기 비실시간 가상 머신을 스케줄링하는 가상 머신을 위한 계층형 스케줄러.
- 제 5 항에 있어서, 상기 제 2 스케줄러는
각각의 비실시간 가상 머신에 동일하게 제공된 실행 퀀텀에 따라 다음에 실행될 가상 머신을 결정하는 가상 머신을 위한 계층형 스케줄러.
- 제 1 스케줄러가 실시간 스케줄 정책에 따라 실시간 가상 머신 및 비실시간 가상 머신을 대표하는 인터페이스 가상 머신을 스케줄링하는 단계; 및
상기 인터페이스 가상 머신이 스케줄되는 경우, 상기 인터페이스 가상 머신에 의해 호출된 제 2 스케줄러가 비실시간 스케줄 정책에 따라 상기 비실시간 가상 머신을 스케줄링하는 단계; 를 포함하는 가상 머신 스케줄 방법.
- 제 7 항에 있어서, 상기 제 1 스케줄러는
자원 할당 기반의 스케줄 정책에 따라 상기 실시간 가상 머신 및 상기 인터페이스 가상 머신을 스케줄링하는 가상 머신 스케줄 방법.
- 제 7 항에 있어서, 상기 제 2 스케줄러는
공평성 기반의 스케줄 정책에 따라 상기 비실시간 가상 머신을 스케줄링하는 가상 머신 스케줄 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110001527A KR20120080075A (ko) | 2011-01-06 | 2011-01-06 | 가상 머신을 위한 계층적 스케줄러 및 가상 머신 스케줄 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110001527A KR20120080075A (ko) | 2011-01-06 | 2011-01-06 | 가상 머신을 위한 계층적 스케줄러 및 가상 머신 스케줄 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20120080075A true KR20120080075A (ko) | 2012-07-16 |
Family
ID=46712839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110001527A KR20120080075A (ko) | 2011-01-06 | 2011-01-06 | 가상 머신을 위한 계층적 스케줄러 및 가상 머신 스케줄 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20120080075A (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104657225A (zh) * | 2015-01-13 | 2015-05-27 | 北京航空航天大学 | 基于OKL4的嵌入式虚拟化平台跨Cell数据传输*** |
KR20150143918A (ko) * | 2014-06-13 | 2015-12-24 | 고려대학교 산학협력단 | 요구 성능 보장 방법 및 요구 성능 보장 장치 |
US9431414B2 (en) | 2013-11-27 | 2016-08-30 | Samsung Electronics Co., Ltd. | Vertical memory devices and methods of manufacturing the same |
-
2011
- 2011-01-06 KR KR1020110001527A patent/KR20120080075A/ko not_active Application Discontinuation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9431414B2 (en) | 2013-11-27 | 2016-08-30 | Samsung Electronics Co., Ltd. | Vertical memory devices and methods of manufacturing the same |
KR20150143918A (ko) * | 2014-06-13 | 2015-12-24 | 고려대학교 산학협력단 | 요구 성능 보장 방법 및 요구 성능 보장 장치 |
CN104657225A (zh) * | 2015-01-13 | 2015-05-27 | 北京航空航天大学 | 基于OKL4的嵌入式虚拟化平台跨Cell数据传输*** |
CN104657225B (zh) * | 2015-01-13 | 2018-01-05 | 北京航空航天大学 | 基于OKL4的嵌入式虚拟化平台跨Cell数据传输*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11714667B2 (en) | Automated scaling of application in virtual data centers | |
US10725823B2 (en) | Coordinated scheduling between real-time processes | |
Chen et al. | Cloudscope: Diagnosing and managing performance interference in multi-tenant clouds | |
US9183016B2 (en) | Adaptive task scheduling of Hadoop in a virtualized environment | |
KR101773166B1 (ko) | 가상 머신 스케줄 시점 조절 장치 및 방법 | |
US9378032B2 (en) | Information processing method, information processing apparatus, recording medium, and system | |
KR101658035B1 (ko) | 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법 | |
Struhár et al. | React: Enabling real-time container orchestration | |
US10430249B2 (en) | Supporting quality-of-service for virtual machines based on operational events | |
JP5458998B2 (ja) | 仮想マシンシステムおよび仮想マシン管理方法 | |
US20160196157A1 (en) | Information processing system, management device, and method of controlling information processing system | |
US8365178B2 (en) | Prioritizing scheduling of virtual machines by recalculating priority numbers for each virtual machine based on the interaction of users with the virtual machines | |
KR101553650B1 (ko) | 멀티코어 시스템에서의 로드 밸런싱 장치 및 방법 | |
US10394607B2 (en) | Prioritization of low active thread count virtual machines in virtualized computing environment | |
Suo et al. | Preserving i/o prioritization in virtualized oses | |
KR101816718B1 (ko) | Cpu 네트워크 통합 스케줄링 시스템 및 그 제어방법 | |
KR20120019330A (ko) | 멀티코어 시스템의 스케쥴링 장치 및 방법 | |
KR20120080075A (ko) | 가상 머신을 위한 계층적 스케줄러 및 가상 머신 스케줄 방법 | |
Jin et al. | Preemption-aware kernel scheduling for gpus | |
Liu et al. | Backfilling under two-tier virtual machines | |
Bipinchandra et al. | Intelligent Resource Allocation Technique For Desktop-as-a-Service in Cloud Environment | |
Thiyyakat et al. | Niyama: Node scheduling for cloud workloads with resource isolation | |
Alzahrani | Proactive auto-scaling techniques for containerised applications | |
Liang et al. | Energy Time Fairness: Balancing Fair Allocation of Energy and Time for GPU Workloads | |
KR20160072977A (ko) | 클라우드 컴퓨팅 시스템에서의 가상 머신 배치 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |