KR101773166B1 - 가상 머신 스케줄 시점 조절 장치 및 방법 - Google Patents

가상 머신 스케줄 시점 조절 장치 및 방법 Download PDF

Info

Publication number
KR101773166B1
KR101773166B1 KR1020110015280A KR20110015280A KR101773166B1 KR 101773166 B1 KR101773166 B1 KR 101773166B1 KR 1020110015280 A KR1020110015280 A KR 1020110015280A KR 20110015280 A KR20110015280 A KR 20110015280A KR 101773166 B1 KR101773166 B1 KR 101773166B1
Authority
KR
South Korea
Prior art keywords
virtual machine
time
schedule
executed
real
Prior art date
Application number
KR1020110015280A
Other languages
English (en)
Other versions
KR20120095758A (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 KR1020110015280A priority Critical patent/KR101773166B1/ko
Priority to US13/246,929 priority patent/US9792137B2/en
Publication of KR20120095758A publication Critical patent/KR20120095758A/ko
Application granted granted Critical
Publication of KR101773166B1 publication Critical patent/KR101773166B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

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

가상 머신의 스케줄 시점을 적절하게 조절함으로써 가상화 시스템의 실시간성을 보장하고 시스템 성능을 향상시킬 수 있는 장치 및 방법이 제공된다. 일 예로써, 가상 머신 스케줄 시점 조절 장치는 가상 머신 스케줄 시점, 프로세스 스케줄 시점, 실행 중인 또는 다음에 실행될 프로세스의 종류, 및 가상 머신으로 전달되는 인터럽트 중 적어도 하나를 포함하는 동기화 정보를 검출하는 검출부, 및 검출된 동기화 정보에 기초하여, 상기 가상 머신 스케줄 시점을 변경하는 동기화부를 포함할 수 있다.

Description

가상 머신 스케줄 시점 조절 장치 및 방법{Apparatus and method for control of virtual machine schedule time}
하나의 하드웨어에서 다수의 가상 머신(virtual machine)이 동작하는 가상화 시스템(virtual system)과 관련된다.
시스템 가상화 기술이란 물리적 장치의 하드웨어를 여러 개의 가상화된 하드웨어로 표현함으로써 하나의 물리적 장치에서 다양한 운영체제가 동작할 수 있도록 하는 기술을 말한다. 서로 다른 종류의 운영체제들은 시스템 가상화 기술이 제공하는 가상화 환경에서 독립적으로 동작할 수 있다.
시스템 가상화 기술이 적용된 가상화 시스템은 다수의 가상 머신(virtual machine, VM)과 가상 머신 모니터(virtual machine monitor)를 포함한다. 가상 머신 모니터의 가상 머신 스케줄러는 다수의 가상 머신 가운데 어떤 가상 머신을 Physical CPU를 통해 실행시킬지를 결정한다. 또한 각 가상 머신의 프로세스 스케줄러는 복수개의 실행가능한(runnable) 프로세스(process) 가운데 어떤 프로세스를 Virtual CPU를 통해 실행시킬지를 결정한다.
이와 같이 가상화 환경에서는 스케줄러가 2-level로 동작하게 되어있고, 두 스케줄러의 스케줄링 대상은 서로 다르며, 두 스케줄러의 스케줄링 정책과 스케줄링 시점 역시 완전히 독립적인 것이 일반적이다.
가상화 환경에서의 독립적인 스케줄링은 다음과 같은 문제를 야기할 수 있다.
1) 가상 머신 모니터의 가상 머신 스케줄에 의해 실시간 프로세스의 실행이 지연될 수 있다.
2) 가상 머신 모니터의 가상 머신 스케줄에 의해 짧은 시간만 실행된 프로세스의 실행이 중단되어 해당 프로세스로의 컨텍스트 스위치(context switch)가 무의미해질 수 있다.
3) 가상 머신 모니터의 가상 머신 스케줄에 의해 spin lock을 hold하고 있는 프로세스의 실행이 중단되어 다른 CPU에서 해당 spin lock을 acquire하고자 할 때 긴 lock wait time이 발생할 수 있다.
가상 머신의 스케줄 시점을 적절하게 조절함으로써 가상화 시스템의 실시간성을 보장하고 시스템 성능을 향상시킬 수 있는 장치 및 방법이 제공된다.
본 발명의 일 양상에 따른 장치는, 다수의 가상 머신(Virtual Machine, VM), 각각의 가상 머신상에서 실행되는 프로세스를 스케줄하는 프로세스 스케줄러, 각각의 가상 머신에게 가상화된 실행 환경을 제공하는 가상 머신 모니터(Virtual Machine Monitor, VMM), 가상 머신 모니터에서 실행되는 가상 머신을 스케줄하는 가상 머신 스케줄러, 및 프로세스 스케줄러의 프로세스 스케줄 시점과 가상 머신 스케줄러의 가상 머신 스케줄 시점을 동기화하거나 또는 프로세스 스케줄 시점을 고려하여 가상 머신 스케줄 시점을 변경하는 동기화부를 포함할 수 있다.
본 발명의 다른 양상에 따른 장치는, 가상 머신 스케줄 시점, 프로세스 스케줄 시점, 실행 중인 또는 다음에 실행될 프로세스의 종류, 및 가상 머신으로 전달되는 인터럽트 중 적어도 하나를 포함하는 동기화 정보를 검출하는 검출부, 및 검출된 동기화 정보에 기초하여, 가상 머신 스케줄 시점과 프로세스 스케줄 시점을 동기화하거나 또는 프로세스 스케줄 시점을 고려하여 가상 머신 스케줄 시점을 변경하는 제어부를 포함할 수 있다.
본 발명의 일 양상에 따른 방법은, 가상 머신 스케줄 시점, 프로세스 스케줄 시점, 실행 중인 또는 다음에 실행될 프로세스의 종류, 및 가상 머신으로 전달되는 인터럽트 중 적어도 하나를 포함하는 동기화 정보를 검출하는 단계, 및 검출된 동기화 정보에 기초하여, 가상 머신 스케줄 시점과 프로세스 스케줄 시점을 동기화하거나 또는 프로세스 스케줄 시점을 고려하여 가상 머신 스케줄 시점을 변경하는 단계를 포함할 수 있다.
개시된 내용에 의하면, 가상 머신 스케줄 시점이 적절하게 조절되기 때문에 시스템의 실시간성 및 성능을 향상시킬 수가 있다. 또한 본 발명의 실시예에 따른 스케줄 시점 조절 장치 및 방법은 가상화 환경에서 VoIP, Instant Messaging, Video-on-Demand, 또는 Web Browsing 등과 같은 실시간 응용 프로그램의 응답성을 향상시킬 수 있다. 나아가 본 발명의 실시예에 따른 스케줄 시점 조절 장치 및 방법은 가상화 환경에서 비효율적인 컨텍스트 스위치나 긴 lock wait time으로 인한 성능 감소를 제거할 수 있다.
도 1은 본 발명의 일 실시예에 따른 가상화 시스템을 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 가상 머신 스케줄 시점 조절 장치를 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따라 가상 머신 스케줄 시점을 조절하기 위한 첫 번째 파라미터들을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따라 가상 머신 스케줄 시점을 조절하기 위한 두 번째 파라미터들을 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 가상 머신 스케줄 시점 조절 방법을 나타낸 도면이다.
도 6은 도 5에 의한 가상 머신 스케줄 시점 조절 방법을 더 구체적으로 설명하기 위한 도면이다.
도 7은 본 발명의 다른 실시예에 따른 가상 머신 스케줄 시점 조절 방법을 나타낸 도면이다.
도 8은 도 7에 의한 가상 머신 스케줄 시점 조절 방법을 더 구체적으로 설명하기 위한 도면이다.
도 9는 본 발명의 또 다른 실시예에 따른 가상 머신 스케줄 시점 조절 방법을 나타낸 도면이다.
도 10은 도 9에 의한 가상 머신 스케줄 시점 조절 방법을 더 구체적으로 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 예를 상세히 설명한다.
본 발명의 일 실시예에 따른 스케줄 시점 조절 장치 및 방법은 여러 개의 운영체제(OS)가 가상 머신(virtual machine, VM)의 형태로 가상 머신 모니터(virtual machine monitor, VMM) 상에서 실행되는 가상화 환경 기반의 시스템에 적용될 수 있다.
도 1은 본 발명의 일 실시예에 따른 가상화 시스템을 도시한다.
도 1을 참조하면, 가상화 시스템(100)은 다수의 가상 머신(101), 가상 머신 모니터(102), 및 하드웨어(103)를 포함할 수 있다.
각각의 가상 머신(VM#0~#N)은 서로 다른 종류의 운영체제(OS)가 될 수 있다. 예컨대, VM#0(110)은 윈도우즈가 될 수 있고, VM#1(111)은 리눅스가 될 수 있다.
각각의 가상 머신(VM#0~#N)은 컨트롤 가상 머신과 게스트 가상 머신으로 분류될 수 있다. 컨트롤 가상 머신은 하드웨어(103)에 직접 접근할 수 있는 가상 머신이 될 수 있다. 게스트 가상 머신은 하드웨어(103)에 직접 접근할 수 없는 가상 머신이 될 수 있다. 컨트롤 가상 머신과 게스트 가상 머신은 처음부터 정해질 수도 있고, 경우에 따라 컨트롤 가상 머신이 게스트 가상 머신으로 또는 게스트 가상 머신이 컨트롤 가상 머신으로 전환될 수 있다.
각각의 가상 머신(VM#0~#N)은 프로세스 스케줄러(104)를 포함할 수 있다. 프로세스 스케줄러(104)는, 예컨대, 가상 머신(101)에서 실행되는 프로세스들(P#0, P#1)을 스케줄할 수 있다. 즉 프로세스 스케줄러(104)의 스케줄 대상은 프로세스가 될 수 있다. 예컨대, VM#0(110)의 프로세스 스케줄러(104)는 소정의 스케줄링 정책에 따라 VM#0(110)의 프로세스들(P#0, P#1)을 스케줄링할 수 있다.
가상 머신 모니터(102)는 서로 다른 종류의 가상 머신이 동일한 하드웨어(103) 상에서 동작할 수 있도록 하는 환경을 제공한다. 예컨대, 가상 머신 모니터(102)는 가상 머신들(101) 간의 통신 채널을 제공할 수 있다. 일 예로써, 하드웨어(103)에 직접 접근할 수 없는 게스트 가상 머신은 가상 머신 모니터(102)가 제공하는 통신 채널을 통해 하드웨어(103)의 사용 요청을 컨트롤 가상 머신으로 전달하는 것이 가능하다. 이러한 가상 머신 모니터(102)는 Xen, Hypervisor, L4 등의 소프트웨어를 포함할 수 있다.
가상 머신 모니터(102)는 가상 머신 스케줄러(105)를 포함한다. 가상 머신 스케줄러(105)의 스케줄 대상은 각각의 가상 머신(VM#0~#N)이 될 수 있다. 예컨대, 가상 머신 스케줄러(105)는 소정의 스케줄링 정책에 따라 가상 머신 VM#0 내지 VM#N을 스케줄링하는 것이 가능하다.
또한 가상 머신 모니터(102)는 스케줄 시점 조절부(106)를 포함할 수 있다. 스케줄 시점 조절부(106)는 소정의 동기화 정보를 수집하고 수집된 동기화 정보에 따라 가상 머신의 전환 또는 프로세스의 전환에 따른 시스템의 성능 저하가 있는지 여부를 판단하고, 그 판단 결과에 따라 가상 머신 스케줄러(105)의 가상 머신 스케줄 시점을 단축 또는 지연시키는 것이 가능하다. 예를 들어, 스케줄 시점 조절부(106)는 프로세스 스케줄러(104)의 프로세스 스케줄 시점과 가상 머신 스케줄러(105)의 가상 머신 스케줄 시점을 동기화시키는 것이 가능하다. 스케줄 시점 조절부(106)는 수집된 동기화 정보를 기초로, 프로세스 스케줄 시점을 고려하여 가상 머신 스케줄 시점을 적절하게 변경할 수 있다.
여기서, 동기화 정보는 가상 머신 스케줄러(105)의 원래의 가상 머신 스케줄 시점, 프로세스 스케줄러(104)의 프로세스 스케줄 시점, 가상 머신(104)에서 실행 중인 또는 다음에 실행될 프로세스의 종류, 및 발생된 인터럽트의 종류 등이 될 수 있다.
도 2는 본 발명의 일 실시예에 따른 가상 머신 스케줄 시점 조절 장치를 도시한다. 이것은 도 1의 스케줄 시점 조절부(106)에 관한 일 예가 될 수 있다.
도 1 및 도 2를 참조하면, 가상 머신 스케줄 시점 조절 장치(200)는 검출부(201) 및 제어부(202)를 포함한다.
검출부(201)는 동기화 정보를 검출한다. 동기화 정보는 가상 머신 모니터(102)의 가상 머신 스케줄 시점, 가상 머신(101)의 프로세스 스케줄 시점, 가상 머신에서 실행 중인 또는 다음에 실행될 프로세스의 종류, 및 가상 머신으로 전달되는 인터럽트 중 적어도 하나를 포함할 수 있다.
"가상 머신 스케줄 시점"이란 가상 머신 모니터(102)에 존재하는 가상 머신 스케줄러(105)가 호출되는 때, 즉 실행 중인 가상 머신을 전환하는 시점이 될 수 있다. "프로세스 스케줄 시점"이란 가상 머신(101)에 존재하는 프로세스 스케줄러(104)가 호출되는 때, 즉 실행 중인 프로세스를 전환하는 시점이 될 수 있다. "실행 중인 프로세스"은 현재 동작 중인 가상 머신(101) 상에서 실행되고 있는 프로세스를 의미하고, "다음에 실행될 프로세스"은 프로세스 스케줄러(104)의 스케줄 정책에 따라 다음에 스케줄될 프로세스를 의미한다. "인터럽트"은 하드웨어(103)에서 발생되어 가상 머신 모니터(102)를 거쳐 가상 머신(101)으로 전달되는 인터럽트가 될 수 있다.
제어부(202)는 검출된 동기화 정보에 기초하여 가상 머신 스케줄 시점을 변경할 수 있다. 예컨대, 제어부(202)는 가상 머신 스케줄 시점을 원래보다 지연시키거나 원래보다 단축하는 것이 가능하다.
도 3은 본 발명의 일 실시예에 따라 가상 머신 스케줄 시점을 조절하기 위한 첫 번째 파라미터들을 도시한다.
도 3에서, 'Now' 는 현재 시간을 의미한다.
'Next_VM'은 가상 머신 스케줄 시점을 의미한다. 가상 머신 스케줄러(예컨대, 도 1의 105)는 각 가상 머신에게 임의의 time quota(예컨대, budget, quantum, time slice 등)를 할당한 후, 실행 중인 가상 머신이 주어진 time quota를 모두 소비하면 다음 가상 머신을 스케줄하는 방식으로 스케줄링을 수행할 수 있다. 따라서 'Next_VM'은 임의의 시간에 알 수 있는 값이다.
'Prev_P'은 프로세스 스케줄 시점을 의미한다. 예컨대, 'Prev_P'은 현재 실행 중인 가상 머신이 가장 최근에 프로세스 스케줄링을 실시한 시간이 될 수 있다. 'Prev_P'은 가상 머신으로부터 전달되는 하이퍼콜(hypercall)을 정의하고 가상 머신 내부에서 스케줄링이 발생할 때 마다 이 하이퍼콜을 통해 프로세스 전환을 검출하는 방식으로 알아낼 수 있다.
'Irq_VM' 은 현재 실행중인 가상 머신에게 가장 최근에 인터럽트가 전달된 시간이다. 가상 머신 모니터는(예컨대, 도 1의 102)는 하드웨어(예컨대, 도 1의 103)의 인터럽트를 받아서 각 가상 머신으로 인터럽트를 전달하는 역할을 하기 때문에, 이 'Irq_VM'을 가상 머신 모니터(102)로부터 제공받을 수 있다.
이러한 파라미터값들은 도 2의 검출부(201)가 프로세스 스케줄러(예컨대, 도 1의 104), 가상 머신 스케줄러(예컨대, 도 1의 105), 하드웨어(예컨대, 도 1의 103)의 상태를 모니터링해서 수집할 수 있다.
도 4는 본 발명의 일 실시예에 따라 가상 머신 스케줄 시점을 조절하기 위한 두 번째 파라미터들을 도시한다.
도 4에서, 제 1 기준시간(T1)은 실시간 프로세스의 실행 보장 시간을 나타낸다. 즉, 본 발명의 일 실시예에 의하면, 실시간 프로세스가 제 1 기준시간(T1)내에 실행이 중단되는 것을 방지할 수 있다.
제 2 기준시간(T2)은 인터럽트 처리의 실행 보장 시간을 나타낸다. 즉, 본 발명의 일 실시예에 의하면, 발생된 인터럽트에 대한 처리가 제 2 기준시간(T2)내에 중단되는 것을 방지할 수 있다.
제 3 기준시간(T3)은 비실시간 프로세스의 실행 보장 시간을 나타낸다. 즉, 본 발명의 일 실시예에 의하면, 비실시간 프로세스가 제 3 기준시간(T3)내에 실행이 중단되는 것을 방지할 수 있다.
지연시간(Td)은 가상 머신 스케줄 시점을 지연시킬 때의 최대 허용치가 될 수 있다.
이와 같은 시간과 관련된 파라미터들은 각 가상 머신의 특성과 시스템 사양, 시스템 요구사항 등을 고려하여 적절한 값으로 설정될 수 있다. 이 값들이 지나치게 커지면 각 가상 머신들이 주어진 time quota와 맞지 않게 너무 길게 또는 너무 짧게 스케줄 될 수 있어 가상 머신들 간의 공정성(fairness)가 깨질 수 있다. 따라서 시간과 관련된 파라미터들은 목표로 하는 fairness 수준과 실시간 성능수준을 고려하여 적절한 값으로 설정되어야 한다.
도 5는 본 발명의 일 실시예에 따른 가상 머신 스케줄 시점 조절 방법을 도시한다.
도 5를 참조하면, 가상 머신 스케줄이 시작되려는 시점에서, 가상 머신 스케줄 시점 조절 장치(예컨대, 도 1의 106)는 가상 머신에서 실시간 프로세스가 실행 중인지 여부를 판단한다(501).
가상 머신에서 실시간 프로세스가 실행 중인 경우, 가상 머신 스케줄 시점 조절 장치는 실행 중인 실시간 프로세스가 적어도 제 1 기준시간만큼 실행되었는지 여부를 판단한다(502). 예컨대, 가상 머신 스케줄 시점 조절 장치는 현재시간(Now)에서 실시간 프로세스가 스케줄된 시간(Prev_P)을 뺀 값이 제 1 기준시간(T1)보다 작은지 여부를 판단할 수 있다.
만약, 실행 중인 실시간 프로세스가 적어도 제 1 기준시간만큼 실행되지 아니한 경우, 가상 머신 스케줄 시점 조절 장치는 가상 머신 스케줄 시점을 지연시간(Td)만큼 지연시킨다(503).
그리고 가상 머신 스케줄 시점 조절 장치는 실시간 프로세스의 실행이 종료되었는지 여부 또는 지연시간(Td)이 도래되었는지 여부를 판단한다(504).
만약, 실시간 프로세스의 실행이 종료되었거나 또는 지연시간(Td)이 도래된 경우, 가상 머신 스케줄 시점 조절 장치는 가상 머신 스케줄러(예컨대, 도 1의 105)를 호출해서 가상 머신 스케줄이 실행되도록 한다(505).
또한 본 발명의 다른 양상에 따라, 도 5에서 단계 502는 생략될 수도 있다. 예를 들어, 가상 머신에서 실시간 프로세스가 실행 중인 경우, 즉시 가상 머신 스케줄 시점을 실시간 프로세스의 실행이 종료된 이후로 변경하는 것도 가능하다.
도 6은 도 5에 따른 가상 머신 스케줄 시점 조절 방법을 더 구체적으로 설명하기 위한 도면이다.
도 6에서, 만약, 가상 머신에서 실시간 프로세스가 실행 중인 상태에서 가상 머신이 스케줄되면, 동작 중인 가상 머신이 전환됨에 따라 실시간 프로세스의 실행이 중단되고 이에 따라 시스템의 실시간성을 만족시킬 수 없는 경우가 발생할 수 있다.
예를 들어 가상머신 VM2가 실행중인 상황이고, 가상 머신 VM2 상에서 프로세스 P1이 실행되다가 실시간 프로세스 RT가 스케줄되었다. 그리고 얼마 지나지 않아 가상 머신 스케줄러(예컨대, 도 1의 105)가 가상 머신 VM2를 de-schedule시키고 가상 머신 VM1을 스케줄하였다. 실시간 프로세스는 적시에 스케줄되어 지연 없이 실행되는 것이 중요하므로 이와 같은 가상 머신 스케줄에 의한 실시간 프로세스의 실행지연은 해당 가상 머신의 실시간 성능에 심각한 영향을 끼칠 수도 있다.
이러한 경우 실시간 프로세스의 실행 도중에 가상 머신 스케줄을 실시하는 것이 아니라 실시간 프로세스가 실행이 종료되기까지 가상 머신 스케줄을 보류하는 것이 가능하다.
예를 들어, 가상 머신 스케줄 시점 조절 장치(예컨대, 도 1의 106)는 (Now - Prev_P)가 T1보다 작은지를 확인할 수 있다. (Now - Prev_P)가 T1보다 작은 경우, 현재 실행중인 가상 머신 VM2의 실행시간을 Td만큼 증가시켜 준다. 이후 Td 시간 이내에 실시간 프로세스의 실행이 종료되고 다른 프로세스로의 프로세스 스케줄이 발생하려고 하는 순간에 가상 머신 스케줄 시점 조절 장치는 가상 머신 스케줄을 실시한다. 반면 Td 시간 이내에 실시간 프로세스의 실행이 종료되지 못한 경우, 가상 머신 스케줄 시점 조절 장치는 Td 시점에 VM2에서 VM1으로의 가상 머신 스케줄을 실시한다.
따라서 실시간 프로세스 RT가 적어도 T1 시간 동안은 실행될 수 있기 때문에 시스템의 실시간성을 만족시킬 수가 있다.
도 7은 본 발명의 다른 실시예에 따른 가상 머신 스케줄 시점 조절 방법을 도시한다.
도 7을 참조하면, 가상 머신 스케줄이 시작되려는 시점에서, 가상 머신 스케줄 시점 조절 장치(예컨대, 도 1의 106)는 가상 머신으로 인터럽트가 전달되었는지 여부를 판단한다(701).
가상 머신으로 인터럽트가 전달된 경우, 가상 머신 스케줄 시점 조절 장치는 인터럽트의 처리가 적어도 제 2 기준시간만큼 실행될 수 있는지 여부를 판단한다(702). 예컨대, 가상 머신 스케줄 시점 조절 장치는 현재시간(Now)에서 인터럽트가 전달된 시간(Irq_VM)을 뺀 값이 제 2 기준시간(T1)보다 작은지 여부를 판단할 수 있다.
만약, 인터럽트의 처리가 적어도 제 2 기준시간만큼 실행될 수 없는 경우, 해당 인터럽트가 실시간 프로세스를 깨울 가능성에 대비하여 가상 머신 스케줄 시점 조절 장치는 가상 머신 스케줄 시점을 지연시간(Td)만큼 지연시킨다(703).
그리고 가상 머신 스케줄 시점 조절 장치는 인터럽트에 의해 깨워진 실시간 프로세스의 실행이 종료되었는지 여부 또는 지연시간(Td)이 도래되었는지 여부를 판단한다(704).
만약, 해당 실시간 프로세스의 실행이 종료되었거나 또는 지연시간(Td)이 도래된 경우, 가상 머신 스케줄 시점 조절 장치는 가상 머신 스케줄러(예컨대, 도 1의 105)를 호출해서 가상 머신 스케줄이 실행되도록 한다(705).
본 발명의 다른 양상에 따라, 도 7의 방법은 도 5의 단계 501에서 "No" 경로 이후에 개시될 수도 있다. 예컨대, 인터럽트가 발생하여 실시간 프로세스를 스케줄하는 과정 중에 가상 머신 스케줄이 실시될 경우, 현재 실행 중인 프로세스가 실시간 프로세스가 아니기 때문에, 도 5의 방법만으로는 실시간성을 모두 만족시킬 수 없을 수도 있다. 따라서 도 7의 방법과 도 5의 방법을 결합해서 사용하는 것도 가능하다.
도 8은 도 7에 따른 가상 머신 스케줄 시점 조절 방법을 더 구체적으로 설명하기 위한 도면이다.
도 8에서, 가상머신 VM2가 실행중인 상황이고, 가상 머신 VM2 상에서 프로세스 P1이 실행되다가 중간에 가상 머신 VM2로 인터럽트가 전달되었다. 이 인터럽트는 실시간 프로세스 RT를 깨워서 실행시켜야 하는 긴급한 인터럽트가 될 수 있다. 이런 상황에서 이 인터럽트가 처리되는 중간에(즉 실시간 프로세스 RT가 스케줄되기 전에) 가상 머신 스케줄러(예컨대, 도 1의 105)가 가상 머신 VM2를 de-schedule 시키고 가상 머신 VM1을 스케줄하면, 인터럽트의 처리작업 및 실시간 프로세스 스케줄이 가상 머신 VM1의 실행시간만큼 지연되어 해당 가상 머신의 실시간 성능에 심각한 영향을 끼칠 수 있다.
이러한 경우, 인터럽트 처리 도중에 가상 머신 스케줄을 실시하는 것이 아니라 인터럽트가 처리되고 실시간 프로세스가 스케줄된 후 실행이 종료되기까지 가상 머신 스케줄을 보류하는 것이 가능하다.
예를 들어, 가상 머신 스케줄이 발생하는 시점에서 가상 머신 스케줄 시점 조절 장치(예컨대, 도 1의 106)는 (Now-Irq_VM)과 T2의 값을 비교한다. 만일 (Now-Irq_VM)이 T2보다 작으면 가상 머신 스케줄 시점을 Td만큼 지연시키고 현재의 가상 머신이 계속 실행되는 것을 허용한다. 그러면 실행 중인 VM2에 의해 실시간 프로세스가 스케줄될 수 있다. 그러나 (Now-Irq_VM)이 T2보다 크면 가상 머신 스케줄 시점을 지연시키지 않고 즉시 VM1으로의 가상 머신 스케줄을 실시하는 것이 가능하다.
도 9는 본 발명의 또 다른 실시예에 따른 가상 머신 스케줄 시점 조절 방법을 도시한다.
도 9를 참조하면, 프로세스 스케줄이 시작되려는 시점에서, 가상 머신 스케줄 시점 조절 장치(예컨대, 도 1의 106)는 다음에 실행될 프로세스가 비실시간 프로세스인지 여부를 판단한다(901).
만약, 다음에 실행될 프로세스가 비실시간 프로세스인 경우, 가상 머신 스케줄 시점 조절 장치는 그 비실시간 프로세스가 적어도 제 3 기준시간만큼 실행될 수 있는지 여부를 판단한다(902). 예컨대, 가상 머신 스케줄 시점 조절 장치는 가상 머신 스케줄 시점(Next_VM)에서 현재시간(Now)를 뺀 값이 제 3 기준시간(T3)보다 작은지 여부를 판단할 수 있다.
만약, 다음에 실행될 비실시간 프로세스가 적어도 제 3 기준시간만큼 실행될 수 없는 경우, 가상 머신 스케줄 시점 조절 장치는 즉시 가상머신 스케줄이 일어날 수 있도록 가상 머신 스케줄 시점을 프로세스 스케줄 시점과 일치되게 단축시킨다(903).
본 발명의 일 양상에 따라, 단계 901에서 다음에 실행될 프로세스가 실시간 프로세스인 경우 실시간성 보장을 위해 그대로 프로세스 스케줄을 실시하는 것도 가능하다.
도 10은 도 9에 따른 가상 머신 스케줄 시점 조절 방법을 더 구체적으로 설명하기 위한 도면이다.
도 10에서, 프로세스 P1에서 P2로 스케줄이 이루어진 직후에 즉시 가상 머신 스케줄 시점이 도래한다고 가정하자. 그러면 다음과 같은 시스템 성능 저하가 유발될 가능성이 있다. 예를 들어, 프로세스 P1에서 P2로 전환되고 얼마 후 VM스위치가 이루어졌다면, 프로세스 P2는 얼마 실행해보지도 못하고 그 실행이 중단되기 때문에 무의미한 컨텍스트 스위치가 될 수 있다. 또한 프로세스 P1이 프로세스간 동기화를 위해 spin lock을 설정한 경우, 이 spin lock의 해제는 가상 머신 VM1이 실행된 이후에 다시 가상 머신 VM2가 스케줄되고 스케줄된 VM2에 의해 프로세스 P2가 실행될 때까지 오랜시간동안 홀드될 수가 있다.
이러한 경우, 가상 머신 스케줄을 미리 앞당겨서 실시하는 것이 가능하다.
예를 들어, 가상 머신 스케줄 시점 조절 장치(예컨대, 도 1의 106)는 비실시간 프로세스로의 프로세스 스케줄이 발생하려고 하는 순간에 (Next_VMM - Now)가 가 T3보다 작은지를 확인한다. 그럴 경우 비실시간 프로세스는 T3시간 만큼의 연속실행시간을 보장받지 못한다는 것이므로, 가상 머신 스케줄 시점을 미리 앞당겨 가상 머신 스케줄을 실시한다. 그렇지 않을 경우 정상적으로 비실시간 프로세스로의 프로세스 스케줄이 허용된다.
이상에서 살펴본 것과 같이, 본 발명의 실시예에 따른 스케줄 시점 조절 장치 및 방법에 의하면, 가상 머신 스케줄 시점이 적절하게 조절되기 때문에 시스템의 실시간성 및 성능을 향상시킬 수가 있다. 또한 본 발명의 실시예에 따른 스케줄 시점 조절 장치 및 방법은 가상화 환경에서 VoIP, Instant Messaging, Video-on-Demand, 또는 Web Browsing 등과 같은 실시간 응용 프로그램의 응답성을 향상시킬 수 있다. 나아가 본 발명의 실시예에 따른 스케줄 시점 조절 장치 및 방법은 가상화 환경에서 비효율적인 컨텍스트 스위치나 긴 lock wait time으로 인한 성능 감소를 제거할 수 있다.
한편, 본 발명의 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
나아가 전술한 실시 예들은 본 발명을 예시적으로 설명하기 위한 것으로 본 발명의 권리범위가 특정 실시 예에 한정되지 아니할 것이다.

Claims (22)

  1. 다수의 가상 머신(Virtual Machine, VM);
    각각의 가상 머신상에서 실행되는 프로세스를 스케줄하는 프로세스 스케줄러;
    각각의 가상 머신에게 가상화된 실행 환경을 제공하는 가상 머신 모니터(Virtual Machine Monitor, VMM);
    상기 가상 머신 모니터에서 실행되는 가상 머신을 스케줄하는 가상 머신 스케줄러; 및
    상기 프로세스 스케줄러의 프로세스 스케줄 시점과 상기 가상 머신 스케줄러의 가상 머신 스케줄 시점을 동기화하거나, 또는 상기 프로세스 스케줄 시점을 고려하여 상기 가상 머신 스케줄 시점을 변경하는 동기화부; 를 포함하고,
    상기 동기화부는 현재 실행 중인 가상 머신으로부터 전달되는 하이퍼콜(hypercall)을 정의하고, 상기 현재 실행 중인 가상 머신 내부에서 스케줄링이 발생할 때 마다 상기 하이퍼콜을 통해 실시간 프로세스로의 프로세스 전환을 검출하고, 상기 실시간 프로세스가 적어도 제 1 기준시간만큼 실행되었는지 여부를 판단하고, 상기 실시간 프로세스가 상기 제 1 기준시간만큼 실행되지 아니한 경우, 상기 가상 머신 스케줄 시점을 소정의 지연 시간만큼 지연시키는 가상화 장치.
  2. 제 1 항에 있어서,
    상기 동기화부는
    가상 머신 스케줄 시점, 프로세스 스케줄 시점, 실행 중인 또는 다음에 실행될 프로세스의 종류, 및 가상 머신으로 전달되는 인터럽트 중 적어도 하나를 포함하는 동기화 정보를 검출하고,
    검출된 동기화 정보에 기초하여, 상기 가상 머신 스케줄 시점과 상기 프로세스 스케줄 시점을 동기화하거나 또는 상기 프로세스 스케줄 시점을 고려하여 상기 가상 머신 스케줄 시점을 변경하는 가상화 장치.
  3. 제 1 항에 있어서,
    상기 동기화부는
    가상 머신 스케줄이 시작되기 직전에, 가상 머신에서 실시간 프로세스가 실행중인지 여부를 판단하고,
    상기 실시간 프로세스가 실행중인 경우, 상기 가상 머신 스케줄 시점을 상기 실시간 프로세스의 실행이 완료된 이후로 변경하는 가상화 장치.
  4. 제 1 항에 있어서,
    상기 동기화부는
    가상 머신 스케줄이 시작되기 직전에, 가상 머신에서 실시간 프로세스가 실행중인지 여부를 판단하고,
    상기 실시간 프로세스가 실행중인 경우, 상기 실시간 프로세스가 적어도 제 1 기준시간만큼 실행되었는지 여부를 판단하고,
    상기 실시간 프로세스가 상기 제 1 기준시간만큼 실행되지 아니한 경우, 상기 가상 머신 스케줄 시점을 소정의 지연 시간만큼 지연시키는 가상화 장치.
  5. 제 4 항에 있어서,
    상기 동기화부는
    상기 지연된 가상 머신 스케줄 시점 또는 상기 실시간 프로세스의 실행이 종료된 때에 가상 머신이 스케줄되도록 가상 머신 스케줄러를 호출하는 가상화 장치.
  6. 제 1 항에 있어서,
    상기 동기화부는
    가상 머신 스케줄이 시작되기 직전에, 가상 머신으로 인터럽트가 전달되었는지 여부를 판단하고,
    상기 인터럽트가 전달된 경우, 상기 인터럽트의 처리가 적어도 제 2 기준시간만큼 실행될 수 있는지 여부를 판단하고,
    상기 인터럽트의 처리가 적어도 제 2 기준시간만큼 실행될 수 없는 경우, 상기 가상 머신 스케줄 시점을 소정의 지연 시간만큼 지연시키는 가상화 장치.
  7. 제 6 항에 있어서,
    상기 동기화부는
    상기 지연된 가상 머신 스케줄 시점 또는 상기 인터럽트에 의해 깨워진 실시간 프로세스의 실행이 종료된 때에 가상 머신이 스케줄되도록 가상 머신 스케줄러를 호출하는 가상화 장치.
  8. 제 1 항에 있어서,
    상기 동기화부는
    프로세스 스케줄이 시작되기 직전에, 다음에 실행될 프로세스가 비실시간 프로세스인지 여부를 판단하고,
    다음에 실행될 프로세스가 비실시간 프로세스인 경우, 상기 비실시간 프로세스가 적어도 제 3 기준시간만큼 실행될 수 있는지 여부를 판단하고,
    상기 비실시간 프로세스가 적어도 제 3 기준시간만큼 실행될 수 없는 경우, 상기 가상 머신 스케줄 시점을 단축하는 가상화 장치.
  9. 제 8 항에 있어서, 상기 동기화부는
    상기 가상 머신 스케줄 시점을 상기 프로세스 스케줄 시점과 일치되도록 변경하는 가상화 장치.
  10. 가상 머신 스케줄 시점, 프로세스 스케줄 시점, 실행 중인 또는 다음에 실행될 프로세스의 종류, 및 가상 머신으로 전달되는 인터럽트 중 적어도 하나를 포함하는 동기화 정보를 검출하는 검출부; 및
    검출된 동기화 정보에 기초하여, 상기 가상 머신 스케줄 시점과 상기 프로세스 스케줄 시점을 동기화하거나 또는 상기 프로세스 스케줄 시점을 고려하여 상기 가상 머신 스케줄 시점을 변경하는 제어부; 를 포함하고,
    상기 제어부는 현재 실행 중인 가상 머신으로부터 전달되는 하이퍼콜(hypercall)을 정의하고, 상기 현재 실행 중인 가상 머신 내부에서 스케줄링이 발생할 때 마다 상기 하이퍼콜을 통해 실시간 프로세스로의 프로세스 전환을 검출하고, 상기 실시간 프로세스가 적어도 제 1 기준시간만큼 실행되었는지 여부를 판단하고, 상기 실시간 프로세스가 상기 제 1 기준시간만큼 실행되지 아니한 경우, 상기 가상 머신 스케줄 시점을 소정의 지연 시간만큼 지연시키는 가상 머신 스케줄 시점 조절 장치.
  11. 제 10 항에 있어서,
    상기 제어부는
    가상 머신 스케줄이 시작되기 직전에, 가상 머신에서 실시간 프로세스가 실행중인지 여부를 판단하고,
    상기 실시간 프로세스가 실행중인 경우, 상기 가상 머신 스케줄 시점을 상기 실시간 프로세스의 실행이 완료된 이후로 변경하는 가상 머신 스케줄 시점 조절 장치.
  12. 제 10 항에 있어서,
    상기 제어부는
    가상 머신 스케줄이 시작되기 직전에, 가상 머신에서 실시간 프로세스가 실행중인지 여부를 판단하고,
    상기 실시간 프로세스가 실행중인 경우, 상기 실시간 프로세스가 적어도 제 1 기준시간만큼 실행되었는지 여부를 판단하고,
    상기 실시간 프로세스가 상기 제 1 기준시간만큼 실행되지 아니한 경우, 상기 가상 머신 스케줄 시점을 소정의 지연 시간만큼 지연시키는 가상 머신 스케줄 시점 조절 장치.
  13. 제 12 항에 있어서,
    상기 제어부는
    상기 지연된 가상 머신 스케줄 시점 또는 상기 실시간 프로세스의 실행이 종료된 때에 가상 머신이 스케줄되도록 가상 머신 스케줄러를 호출하는 가상 머신 스케줄 시점 조절 장치.
  14. 제 10 항에 있어서,
    상기 제어부는
    가상 머신 스케줄이 시작되기 직전에, 가상 머신으로 인터럽트가 전달되었는지 여부를 판단하고,
    상기 인터럽트가 전달된 경우, 상기 인터럽트의 처리가 적어도 제 2 기준시간만큼 실행될 수 있는지 여부를 판단하고,
    상기 인터럽트의 처리가 적어도 제 2 기준시간만큼 실행될 수 없는 경우, 상기 가상 머신 스케줄 시점을 소정의 지연 시간만큼 지연시키는 가상 머신 스케줄 시점 조절 장치.
  15. 제 14 항에 있어서,
    상기 제어부는
    상기 지연된 가상 머신 스케줄 시점 또는 상기 인터럽트에 의해 깨워진 실시간 프로세스의 실행이 종료된 때에 가상 머신이 스케줄되도록 가상 머신 스케줄러를 호출하는 가상 머신 스케줄 시점 조절 장치.
  16. 제 10 항에 있어서,
    상기 제어부는
    프로세스 스케줄이 시작되기 직전에, 다음에 실행될 프로세스가 비실시간 프로세스인지 여부를 판단하고,
    다음에 실행될 프로세스가 비실시간 프로세스인 경우, 상기 비실시간 프로세스가 적어도 제 3 기준시간만큼 실행될 수 있는지 여부를 판단하고,
    상기 비실시간 프로세스가 적어도 제 3 기준시간만큼 실행될 수 없는 경우, 상기 가상 머신 스케줄 시점을 단축하는 가상 머신 스케줄 시점 조절 장치.
  17. 제 16 항에 있어서,
    상기 제어부는
    상기 가상 머신 스케줄 시점을 상기 프로세스 스케줄 시점과 일치되도록 변경하는 가상 머신 스케줄 시점 조절 장치.
  18. 가상 머신 스케줄 시점 조절 장치가 가상 머신 스케줄 시점을 조절하는 방법에 있어서,
    가상 머신 스케줄 시점, 프로세스 스케줄 시점, 실행 중인 또는 다음에 실행될 프로세스의 종류 및 가상 머신으로 전달되는 인터럽트 중 적어도 하나를 포함하는 동기화 정보를 검출하는 단계; 및
    검출된 동기화 정보에 기초하여, 상기 가상 머신 스케줄 시점과 상기 프로세스 스케줄 시점을 동기화하거나 또는 상기 프로세스 스케줄 시점을 고려하여 상기 가상 머신 스케줄 시점을 변경하는 단계; 를 포함하고,
    상기 동기화하거나 변경하는 단계는 현재 실행 중인 가상 머신으로부터 전달되는 하이퍼콜(hypercall)을 정의하고, 상기 현재 실행 중인 가상 머신 내부에서 스케줄링이 발생할 때 마다 상기 하이퍼콜을 통해 실시간 프로세스로의 프로세스 전환을 검출하고, 상기 실시간 프로세스가 적어도 제 1 기준시간만큼 실행되었는지 여부를 판단하고, 상기 실시간 프로세스가 상기 제 1 기준시간만큼 실행되지 아니한 경우, 상기 가상 머신 스케줄 시점을 소정의 지연 시간만큼 지연시키는 단계를 포함하는 가상 머신 스케줄 시점 조절 방법.
  19. 제 18 항에 있어서, 상기 가상 머신 스케줄 시점을 변경하는 단계는
    가상 머신 스케줄이 시작되기 직전에, 가상 머신에서 실시간 프로세스가 실행중인지 여부를 판단하고,
    상기 실시간 프로세스가 실행중인 경우, 상기 가상 머신 스케줄 시점을 상기 실시간 프로세스의 실행이 완료된 이후로 변경하는 가상 머신 스케줄 시점 조절 방법.
  20. 제 18 항에 있어서, 상기 가상 머신 스케줄 시점을 변경하는 단계는
    가상 머신 스케줄이 시작되기 직전에, 가상 머신에서 실시간 프로세스가 실행중인지 여부를 판단하고,
    상기 실시간 프로세스가 실행중인 경우, 상기 실시간 프로세스가 적어도 제 1 기준시간만큼 실행될 수 있는지 여부를 판단하고,
    상기 실시간 프로세스가 상기 제 1 기준시간만큼 실행될 수 없는 경우, 상기 가상 머신 스케줄 시점을 소정의 지연 시간만큼 지연시키는 가상 머신 스케줄 시점 조절 방법.
  21. 제 18 항에 있어서, 상기 가상 머신 스케줄 시점을 변경하는 단계는
    가상 머신 스케줄이 시작되기 직전에, 가상 머신으로 인터럽트가 전달되었는지 여부를 판단하고,
    상기 인터럽트가 전달된 경우, 상기 인터럽트의 처리가 적어도 제 2 기준시간만큼 실행될 수 있는지 여부를 판단하고,
    상기 인터럽트의 처리가 적어도 제 2 기준시간만큼 실행될 수 없는 경우, 상기 가상 머신 스케줄 시점을 소정의 지연 시간만큼 지연시키는 가상 머신 스케줄 시점 조절 방법.
  22. 제 18 항에 있어서, 상기 가상 머신 스케줄 시점을 변경하는 단계는
    프로세스 스케줄이 시작되기 직전에, 다음에 실행될 프로세스가 비실시간 프로세스인지 여부를 판단하고,
    다음에 실행될 프로세스가 비실시간 프로세스인 경우, 상기 비실시간 프로세스가 적어도 제 3 기준시간만큼 실행될 수 있는지 여부를 판단하고,
    상기 비실시간 프로세스가 적어도 제 3 기준시간만큼 실행될 수 없는 경우, 상기 가상 머신 스케줄 시점을 단축하는 가상 머신 스케줄 시점 조절 방법.
KR1020110015280A 2011-02-21 2011-02-21 가상 머신 스케줄 시점 조절 장치 및 방법 KR101773166B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110015280A KR101773166B1 (ko) 2011-02-21 2011-02-21 가상 머신 스케줄 시점 조절 장치 및 방법
US13/246,929 US9792137B2 (en) 2011-02-21 2011-09-28 Real-time performance apparatus and method for controlling virtual machine scheduling in real-time

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110015280A KR101773166B1 (ko) 2011-02-21 2011-02-21 가상 머신 스케줄 시점 조절 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20120095758A KR20120095758A (ko) 2012-08-29
KR101773166B1 true KR101773166B1 (ko) 2017-08-30

Family

ID=46653819

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110015280A KR101773166B1 (ko) 2011-02-21 2011-02-21 가상 머신 스케줄 시점 조절 장치 및 방법

Country Status (2)

Country Link
US (1) US9792137B2 (ko)
KR (1) KR101773166B1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110161716A1 (en) * 2009-12-31 2011-06-30 Hyvoenen Jani Systems, methods, and apparatuses for providing access to real time information
US9075789B2 (en) 2012-12-11 2015-07-07 General Dynamics C4 Systems, Inc. Methods and apparatus for interleaving priorities of a plurality of virtual processors
CN103870313B (zh) * 2012-12-17 2017-02-08 中国移动通信集团公司 一种虚拟机任务调度方法及系统
FR3000250B1 (fr) * 2012-12-20 2015-02-13 Thales Sa Systeme de processeur multi-coeurs de traitement d'informations
US9778943B2 (en) 2013-05-28 2017-10-03 Red Hat Israel, Ltd. Timer based virtual processor scheduling and suspension on physical processor for use of physical processor by other processing
CN103440159B (zh) * 2013-08-05 2017-04-19 华为技术有限公司 进程调度方法和系统
KR101712048B1 (ko) 2015-01-06 2017-03-06 (주) 솔루윈스 분배전반에 적용하는 디지털 전력계측모듈을 포함한 노이즈 저감 전력분배장치
JP6488910B2 (ja) * 2015-06-24 2019-03-27 富士通株式会社 制御方法、制御プログラム、及び情報処理装置
EP3113169B1 (en) * 2015-07-02 2018-11-14 OpenSynergy GmbH Method for controlling a graphic processing unit in a control unit, in particular of a vehicle, computer program product and system for an embedded control unit
US10019292B2 (en) * 2015-12-02 2018-07-10 Fts Computertechnik Gmbh Method for executing a comprehensive real-time computer application by exchanging time-triggered messages among real-time software components
CN110622478B (zh) * 2018-04-08 2020-11-06 华为技术有限公司 数据同步处理的方法和装置
US10713082B2 (en) * 2018-11-28 2020-07-14 Sap Se Cloud platform integration load balancer
US11593162B2 (en) * 2020-10-20 2023-02-28 EMC IP Holding Company LLC Techniques for scheduling between applications on a core
US20240134964A1 (en) * 2021-02-19 2024-04-25 Deok Woo KIM Computer having transformable architecture and method of transforming virtual computers
WO2023230909A1 (zh) * 2022-05-31 2023-12-07 华为技术有限公司 调度方法及相关装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030037089A1 (en) * 2001-08-15 2003-02-20 Erik Cota-Robles Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US20050278719A1 (en) * 2003-06-03 2005-12-15 Atsushi Togawa Information processing device, process control method, and computer program
US20070016908A1 (en) * 2005-07-15 2007-01-18 Manabu Kuroda Parallel operation apparatus
US7356817B1 (en) 2000-03-31 2008-04-08 Intel Corporation Real-time scheduling of virtual machines
US20090037926A1 (en) * 2007-08-01 2009-02-05 Peter Dinda Methods and systems for time-sharing parallel applications with performance isolation and control through performance-targeted feedback-controlled real-time scheduling
JP2010134496A (ja) 2008-12-02 2010-06-17 Hitachi Ltd 仮想計算機システム、仮想計算機システムにおけるハイパバイザ、及び仮想計算機システムにおけるスケジューリング方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903752A (en) * 1994-10-13 1999-05-11 Intel Corporation Method and apparatus for embedding a real-time multi-tasking kernel in a non-real-time operating system
US7296267B2 (en) * 2002-07-12 2007-11-13 Intel Corporation System and method for binding virtual machines to hardware contexts

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356817B1 (en) 2000-03-31 2008-04-08 Intel Corporation Real-time scheduling of virtual machines
US20030037089A1 (en) * 2001-08-15 2003-02-20 Erik Cota-Robles Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US20050278719A1 (en) * 2003-06-03 2005-12-15 Atsushi Togawa Information processing device, process control method, and computer program
US20070016908A1 (en) * 2005-07-15 2007-01-18 Manabu Kuroda Parallel operation apparatus
US20090037926A1 (en) * 2007-08-01 2009-02-05 Peter Dinda Methods and systems for time-sharing parallel applications with performance isolation and control through performance-targeted feedback-controlled real-time scheduling
JP2010134496A (ja) 2008-12-02 2010-06-17 Hitachi Ltd 仮想計算機システム、仮想計算機システムにおけるハイパバイザ、及び仮想計算機システムにおけるスケジューリング方法

Also Published As

Publication number Publication date
US20120216193A1 (en) 2012-08-23
US9792137B2 (en) 2017-10-17
KR20120095758A (ko) 2012-08-29

Similar Documents

Publication Publication Date Title
KR101773166B1 (ko) 가상 머신 스케줄 시점 조절 장치 및 방법
US11797327B2 (en) Dynamic virtual machine sizing
US10191772B2 (en) Dynamic resource configuration based on context
EP3073373B1 (en) Method for interruption affinity binding of virtual network interface card, and computer device
JP5434616B2 (ja) 仮想計算機、仮想計算機モニタ、および計算機の制御方法
CN108037994B (zh) 一种支持异构环境下多核并行处理的调度机制
KR101658035B1 (ko) 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법
KR101864980B1 (ko) 가상 머신 전력 관리
Kim et al. Demand-based coordinated scheduling for SMP VMs
US9513953B2 (en) Reducing virtual machine suspension time in checkpoint system
US20140007091A1 (en) Maintaining hardware resource bandwidth quality-of-service via hardware counter
CN111324432B (zh) 处理器调度方法、装置、服务器及存储介质
CN103870332A (zh) 虚拟机处理器资源的调整方法、装置与虚拟机系统
WO2018040845A1 (zh) 一种计算资源调度方法及装置
CN115686758B (zh) 一种基于帧统计的VirtIO-GPU性能可控方法
Kim et al. Virtual asymmetric multiprocessor for interactive performance of consolidated desktops
US20140007096A1 (en) Maintaining hardware resource bandwidth quality-of-service via hardware counter
US11175938B2 (en) Central processing unit support for efficient timers at low power states
US20230229473A1 (en) Adaptive idling of virtual central processing unit
Danisevskis et al. Minimizing event-handling latencies in secure virtual machines
Shinde et al. Concurrency Aware Dynamic Scheduler for Virtualized Environment
Dionysio et al. Improving Network I/O Performance in Virtual Machines through Workload Profile Clustering
Fanguede et al. Coordinated Task Scheduling in Virtualized Systems: Evaluation and Implementation Details

Legal Events

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