KR102193747B1 - 매니코어 시스템의 하이퍼바이저에서 스케줄링 하는 방법 - Google Patents

매니코어 시스템의 하이퍼바이저에서 스케줄링 하는 방법 Download PDF

Info

Publication number
KR102193747B1
KR102193747B1 KR1020140011089A KR20140011089A KR102193747B1 KR 102193747 B1 KR102193747 B1 KR 102193747B1 KR 1020140011089 A KR1020140011089 A KR 1020140011089A KR 20140011089 A KR20140011089 A KR 20140011089A KR 102193747 B1 KR102193747 B1 KR 102193747B1
Authority
KR
South Korea
Prior art keywords
virtual machine
virtual
virtual machines
cores
hypervisor
Prior art date
Application number
KR1020140011089A
Other languages
English (en)
Other versions
KR20150090439A (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 KR1020140011089A priority Critical patent/KR102193747B1/ko
Publication of KR20150090439A publication Critical patent/KR20150090439A/ko
Application granted granted Critical
Publication of KR102193747B1 publication Critical patent/KR102193747B1/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
    • 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/5027Allocation 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/5038Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

매니코어 시스템의 하이퍼바이저에서 다수의 코어로 이루어진 물리적 자원을 다수의 가상 머신에게 분산 할당하는 스케줄링 방법이 개시된다. 이 방법은, 요구되는 코어의 개수의 크기 순으로 다수의 가상 머신을 정렬하는 과정과, 크기 순으로 정렬된 다수의 가상 머신을 다수의 가상 머신 지도에 순차적으로 번갈아 배치하는 과정 및 각 가상 머신 지도에 배치된 가상 머신들로 이루어진 가상 머신 집합들을 타임 슬롯 단위로 실행하는 과정을 포함한다.

Description

매니코어 시스템의 하이퍼바이저에서 스케줄링 하는 방법{METHOD FOR SCHEDULING A TASK IN HYPERVISOR FOR MANY-CORE SYSTEMS}
본 발명은 매니코어 시스템의 하이퍼바이저에서 태스크를 스케줄링 방법에 관한 것으로서, 다수의 코어(core)를 가진 CPU를 사용하는 매니코어 시스템에서 가상 머신(virtual machine)을 제공하는 하이퍼바이저(hypervisor)에서 태스크(task)를 스케줄링 하는 방법에 관한 것이다.
응용의 고성능 및 저전력 요구 사항이 커짐에 따라 다수의 processing core를 사용하는 매니코어 시스템(many-core system)이 증가추세에 있다. 이러한 매니코어 시스템의 자원을 효율적으로 관리하기 위해서,
컴퓨터 운영체제와 하이퍼바이저에서 사용되는 스케줄링 방법은 적은 수의 코어를 가진 CPU를 대상으로 하고 있다. 코어는 컴퓨터를 구성하는 다른 자원에 비해 빠르고 가격적으로 비싼 자원이므로 하나의 코어에 여러 개의 프로세스를 할당하고 이 프로세스는 주어진 타임 슬롯(time slot)동안 실행되고 다른 작업으로 교체되는 시분할 스케줄링 방법이 흔히 사용된다.
매니코어 시스템의 경우 수십 내지 수백 개의 코어가 하나의 CPU에 집적되어 있으므로 시분할 방식의 스케줄링을 사용할 경우 각 코어마다 프로세스를 관리하는 구조가 매우 복잡해진다. 이 때문에 공간분할 방식의 스케줄링, 즉 태스크마다 코어를 할당하여 다른 태스크(혹은 프로세스)와 코어를 공유하지 않는 방법이 필요하다.
그러나, 매니코어 시스템에서 공간분할 스케줄링만 사용하는 경우, 아직 출시되는 범용 CPU에서 코어의 수가 부족하고 동시에 실행되는 가상 머신의 수가 코어의 수보다 많아지는 경우가 존재할 수 있으므로, 이를 고려한 공간-시분할 스케줄링 방법이 필요하다.
상기 문제점을 해결하기 위하여, 본 발명은 공간-시분할 스케줄링 방법을 통해 가상 머신의 수가 증가한 경우에도 효율적으로 하이퍼바이저에서 태스크를 스케줄링 하는 방법을 제공하는데 그 목적이 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 일면에 따른 매니코어 시스템의 하이퍼바이저에서 태스크를 스케줄링하는 방법은 다수의 가상 머신을 정렬하는 단계; 다수의 가상 머신을 다수의 가상 머신 지도에 순차적으로 번갈아 배치하는 단계; 및 각 가상 머신 지도에 배치된 가상 머신들로 이루어진 가상 머신 집합들을 타임 슬롯 단위로 실행하는 단계;을 포함한다.
본 발명의 다른 일면에 따른 매니코어 시스템은, 하이퍼바이저에서 다수의 코어로 이루어진 물리적 자원을 다수의 가상 머신에게 분산 할당하는 매니코어 시스템으로서, 수십 내지 수백 개의 코어가 집적화된 CPU를 포함하는 하드웨어 계층; 상기 하드웨어 계층에 대한 액세스를 제어하고 중재하기 위한 실행 가능 명령어들로 구성된 가상 머신 스케줄러를 포함하는 하이퍼바이저 계층; 및 다수의 가상 머신을 포함하는 가상 머신 계층을 포함하고, 상기 가상 머신 스케줄러는, 공간 분할 스케줄링에 따라 다수의 가상 머신을 정렬하고, 정렬된 상기 다수의 가상 머신을 다수의 가상 머신 지도에 순차적으로 번갈아 배치하고, 시분할 스케줄링에 따라 각 가상 머신 지도에 배치된 가상 머신들로 이루어진 가상 머신 집합들을 타임 슬롯 단위로 실행한다.
본 발명에 의하면, 매니코어 시스템에서 필요한 공간분할 스케줄링 방법을 유지하면서 시분할 스케줄링이 가능하도록 함으로써, 코어의 수가 많아지거나 응용 프로그램의 수가 많아지더라도 확장성을 잃지 않는 스케줄링을 할 수 있으며, 그 구조가 간단하여 구현이 용이하다는 장점이 있다.
도 1은 본 발명의 일 실시 예를 실시하기 위한 매니코어 시스템의 동작 환경을 보여주는 블록도이다.
도 2는 도 1에 도시된 하이퍼바이저 계층의 가상 머신 스케줄러에 의한 공간-시분할 스케줄링 방법을 설명하기 위한 도면이다.
도 3은 도 2에 도시된 각 가상 머신 지도에 배치되는 가상 머신의 배치 규칙을 개념적으로 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시 예에 따른 하이퍼바이저에서 다수의 코어로 이루어진 물리적 자원을 다수의 가상 머신에게 분산 할당하는 스케줄링 방법을 보여주는 순서도이다.
본 발명에서는 가상 머신이 요구하는 수의 물리적 자원(예컨대, CPU의 코어)를 제공하며, 다수의 가상 머신이 효율적이면서도 공평하게 실행될 기회를 제공하는 방법이 제공된다. 본 명세서에서는 이러한 방법을 공간-시분할 스케줄링 방법이라 지칭하며, 이러한 본 발명의 공간-시분할 스케줄링 방법은 매니코어 시스템이라 하더라도 한정된 수의 코어를 다수의 가상 머신이 시분할 방법으로 점유하면서도 공간분할 스케줄링 방법을 사용할 수 있도록 구현됨으로써, 코어의 수가 많아지거나 응용 프로그램의 수가 많아지더라도 스케줄링의 확장성을 유지할 수 있다.
본 발명의 이해하기 위한 실시 예를 설명하기에 앞서, 본 발명을 이해하기 위한 가상화 기술에 대한 기술적 개념을 간략히 소개한다. 그 중 하나로서, 가상화(virtualization) 기술이란 운영체제(operating system, OS)에 대하여 프로세서, 메모리, 네트워크, 디바이스, 그래픽스 기능 등의 하드웨어 자원을 가상화하는 것이다.
가상화 기술은 하드웨어와 운영체제의 사이에 운영체제에 대해 가상적인 하드웨어 인터페이스를 제공하는 것으로 한대의 컴퓨터 상에서 여러 운영체제를 동시에 실행 가능하도록 한다. 가상 머신(virtual machine)들로 구성된 가상화 시스템에서는 하이퍼바이저(hypervisor)가 컴퓨터의 물리적 리소스들을 개별적인 가상 머신들로 논리적으로 할당한다.
이러한 하이퍼바이저는 하나 이상의 실행 중인 운영체제와 보호된 물리적 리소스 사이에 개입하도록 구성된 소프트웨어 계층으로 이해될 수 있다. 하이퍼바이저는 운영체제들에 대해 보호된 물리적 자원들을 기능적으로 다중화하고, 가상의 방식으로 각각의 운영체제에 대해 자원을 지정(할당 또는 부여)한다.
아래의 실시 예에서는, 하이퍼바이저(hypervisor)가 공간분할 스케줄링 방법을 유지하면서 시분할 스케줄링 방법으로 물리적 자원들을 들로 논리적으로 할당하는 방법을 설명한다. 특별히 한정하는 것은 아니지만, 물리적 자원들 중 다른 자원에 비해 빠르고 가격적으로 비싼 코어들을 가상 머신들에게 공간-시간 분할 스케줄링 방법으로 할당하는 방법을 설명한다.
도 1은 본 발명의 일 실시 예를 실시하기 위한 매니코어 시스템의 동작 환경을 보여주는 블록도이다.
도 1을 참조하면, 매니코어 시스템(100)은 하드웨어 계층(20), 하이퍼바이저 계층(40) 및 가상 머신 계층(60)을 포함한다.
상기 하드웨어 계층(20)은 수십 내지 수백 개의 코어가 집적화된 CPU(23), 실재 RAM(24), 실재 I/O 장치(25) 등으로 이루어진 물리적 자원들을 포함한다. 아래에서 상세히 설명하겠지만, 이러한 물리적 자원들은 본 발명의 일 실시 예에 따른 공간-시분할 스케줄링 방법에 따라 가상 머신들(63, 65, 67)에게 할당됨으로써, 가상 머신들의 수가 증가하더라도 자원들에 대한 스케줄링의 확장성을 유지할 수 있다.
하이퍼바이저 계층(40)은 이 분야에서 가상 머신 모니터(virtual machine monitor)로서 지칭될 수 있다. 이러한 하이퍼바이저 계층(40)은 매니코어 시스템(100)의 하드웨어 계층(20)에 대한 액세스를 제어하고 중재하기 위한 실행 가능 명령어들로 구성된 가상 머신 스케줄러(42)를 포함한다. 또한 하이퍼바이저 계층(40)은 가상 머신 계층(60)을 구성하는 가상 머신들(63, 65, 67)의 각 실행 환경들을 생성할 수 있다. 즉, 하이퍼바이저 계층(40)은 각 실행 환경들은 하이퍼바이저 계층(40)에 의해 지원되는 파티션과 같은 특정 단위로 격리될 수 있다. 상기 특정 단위로 격리된 각 가상 머신은 하이퍼바이저 계층(40)에 포함된 가상 머신 스케줄러(42)의 제어에 따라 물리적 자원들 예컨대, CPU에 집적화된 다수의 코어에 상기 공간-시분할 스케줄링 방법에 따라 맵핑될 수 있다. 이를 위해, 가상 머신 스케줄러(42)는 다수의 가상 머신 지도를 구비하며, 전체 가상 머신들(63, 65, 67)에 대한 맵핑 정보를 이용하여 물리적 자원들을 상기 다수의 가상 머신 지도에 분산되어 있는 전체 가상 머신들에 맵핑시키는 공간-시분할 스케줄링을 수행한다. 이러한 하이퍼바이저(42)는 독립형 소프트웨어 제품, 마더보드의 펌웨어 내에 내장된 운영 체제의 일부, 특수화된 집적 회로들 또는 이들의 결합일 수 있다.
가상 머신 계층(60)은 다수의 가상 머신을 포함하며, 도 1의 실시 예에서는 3개의 가상 머신들(63, 65, 67)만을 도시하고 있으나, 실제로는 이보다 더 많은 가상 머신들을 포함할 수 있다. 각 가상 머신들은 게스트 O/S 계층, 어플리케이션 계층 및 미들웨어 계층을 포함한다. 이러한 각 가상 머신은 하이퍼바이저 계층(42)의 가상 머신 스케줄러(42)에 의해 공간-시분할 방법 스케줄링에 따라 물리적 자원들을 할당 받는다. 이렇게 함으로써, 가상 머신들의 수가 증가하더라도 상기 물리적 자원들에 대한 스케줄링의 확장성이 유지될 수 있다.
이하, 본 발명의 일 실시 예에 따른 공간-시분할 스케줄링 방법에 대해서 설명하기로 한다.
도 2는 도 1에 도시된 하이퍼바이저 계층의 가상 머신 스케줄러에 의한 공간-시분할 스케줄링 방법을 설명하기 위한 도면이다.
도 2를 참조하면, 가상 머신 스케줄러(42: VM scheduler)는 전체 가상 머신에 대한 매핑 정보를 가지며, 다수의 가상 머신 지도(VM map)(42-1, 42-2, ..., 42-n)을 구비한다. 이때, 가상 머신이 요구하는 코어 수가 매니코어 시스템이 보유하고 있는 전체 코어의 개수보다 적은 경우에는 가상 머신 스케줄러(42)는 오직 하나의 가상 머신 지도를 포함할 수 있다.
이러한 가상 머신 스케줄러(42)는 가상 머신 지도(41-1)에 표시된 가상 머신(63)에 상기 가상 머신(63)을 실행하는데 요구되는 코어 집합(Core 1, Core 2, Core 3, Core 7, Core 8, Core 9)을 매핑 한다. 마찬가지로, 상기 가상 머신 지도(41-1)에 표시된 가상 머신(65)에는 상기 가상 머신(65)을 실행하는데 요구되는 코어 집합(Core 4, Core 5, Core 6, Core 10, Core 11, Core 12, Core 16, Core 17, Core 18, Core 22, Core 23, Core 24)이 매핑 된다. 나머지 가상 머신들도 동일한 방식으로 각 가상 머신들(67, 68)이 요구하는 코어 집합이 매핑된다. 각 코어 집합들이 각 가상 머신들에 매핑 되며, 매핑된 각 가상 머신들은 동일한 타임 슬롯에서 동시에 실행된다.
이후, 상기 가상 머신 지도(41-1)에 있는 가상 머신들(63, 65, 67, 69)에 대한 타임 슬롯이 종료되면, 다음 가상 머신 지도(42-2)에 있는 가상 머신들에게 실행 순서가 돌아간다. 이러한 실행 방식은 라운드 로빈(round-robin) 방식 또는 가중치를 부여한 웨이티드 라운드 로빈(weighted round-robin) 방식일 수 있다.
도 3은 도 2에 도시된 각 가상 머신 지도에 배치되는 가상 머신의 배치 규칙을 개념적으로 설명하기 위한 도면이다.
먼저, 본 발명의 일 실시 예에 따른 하이포바이저 계층(40)이 5개의 실행 환경에 각각 격리된 5개의 가상 머신(VM1 ~ VM5)을 생성하는 것으로 가정한다. 각 가상 머신(VM1 ~ VM5)이 실행되기 위해 요구되는 코어의 개수는 아래의 표와 같으며, 이를 가상 머신 목록이라 지칭한다. 이 때, 가상 머신 목록은 코어를 필요로 하는 개수가 내림차순으로 정렬되도록 구성된다. 그리고, 도 3에 도시된 바와 같이, 2개의 가상 머신 지도(VMmap_1, VMmap_2)에 배치되는 가상 머신의 배치 규칙을 설명하기로 한다.
가상 머신 VM1 VM2 VM3 VM4 VM5
실행에 필요한 코어의 개수 10 8 6 4 4
전체 가상 머신 중 VM1이 위의 가상 머신 목록에 나타나는 바와 같이, 가장 많은 10개의 코어가 요구된다. 실행을 위해 가장 많은 10개의 코어가 필요한 VM1은 도 3의 (a)에 도시된 바와 같이, 가장 먼저 VM map_1(302)에 배치된다.
VM2는 위의 가상 머신 목록에 나타나는 바와 같이, VM1을 제외한 나머지 가상 머신들 중 가장 많은 8개의 코어가 요구된다. 이때, VM2는 VM1과 동일한 VM map_1(302)에 배치되는 것이 아니라 다른 가상 머신 지도 즉, VM map_2(304)에 배치된다.
VM3는 VM2 다음으로 가장 많은 6개의 코어가 필요하다. 이 경우, VM3는 VM2의 배치된 방식와 동일하게 VM2가 배치된 VM map_2(304)에 배치되는 것이 아니라 VM map_1(302)에 배치된다.
VM4는 전체 가상 머신들 중 가장 낮은 4개의 코어가 요구된다. 이 경우도 VM4는 이전의 VM3가 배치된 VM map_1(302)에 배치되지 않고, VM map_2(304)에 배치된다.
한편, VM5는 VM4와 동일하게 전체 가상 머신들 중 가장 낮은 4개의 코어가 요구되지만, 위의 배치 규칙에 따라 VM4가 배치된 VM map_2(304)에 배치되지 않고, VM map_1(302)에 배치된다.
이와 같이, 요구되는 코어의 개수 순으로 정렬된 가상 머신을 순서대로 다수의 가상 머신 지도(VM map)에 번갈아 가면서 배치함으로써, 가상 머신들이 자연스럽게 다수의 가상 머신 지도에 분산된다. 즉, 더 큰 코어 요구량을 가진 가상 머신들이 배치된 VM map에 코어의 여유가 없는 경우, 그 다음 VM map에 배치됨으로써, 코어의 수가 많아지거나 응용 프로그램의 수가 증가할지라도 물리적 자원에 대한 스케줄링의 확장성을 그대로 유지할 수 있다.
도 4는 본 발명의 일 실시 예에 따른 하이퍼바이저에서 다수의 코어로 이루어진 물리적 자원을 다수의 가상 머신에게 분산 할당하는 스케줄링 방법을 보여주는 순서도이다.
도 4를 참조하면, 먼저, S410에서, 요구되는 코어의 개수의 크기 순으로 다수의 가상 머신을 정렬하는 과정이 수행된다. 이어, S420에서, 크기 순으로 정렬된 다수의 가상 머신을 다수의 가상 머신 지도에 순차적으로 번갈아 배치하는 과정이 수행된다. 이어, S430에서, 각 가상 머신 지도에 배치된 가상 머신들로 이루어진 가상 머신 집합들을 타임 슬롯 단위로 실행하는 과정이 수행된다.
이와 같이, 본 발명에서는 가상 머신이 요구하는 수의 물리적 자원(예컨대, CPU의 코어)를 제공하며, 다수의 가상 머신이 효율적이면서도 공평하게 실행될 기회를 제공하는 방법이 제공된다. 본 명세서에서는 이러한 방법을 공간-시분할 스케줄링 방법이라 지칭하며, 이러한 본 발명의 공간-시분할 스케줄링 방법은 매니코어 시스템이라 하더라도 한정된 수의 코어를 다수의 가상 머신이 시분할 방법으로 점유하면서도 공간분할 스케줄링 방법을 사용할 수 있도록 구현됨으로써, 코어의 수가 많아지거나 응용 프로그램의 수가 많아지더라도 스케줄링의 확장성을 유지할 수 있다.
이상의 설명으로 당업자는 전술한 실시 예들을 이해하고 구현할 수 있다. 특히 방법에서의 블록들 모두 또는 그 일부는 프로그램에 의해 명령되는 관련 하드웨어로 구현될 수도 있다. 프로그램은 컴퓨터 판독 가능한 저장 매체에 저장될 수도 있다. 프로그램을 실행할 때, 상술한 방법 실시 예에서 하나의 블록 또는 이들의 조합이 포함될 수도 있다.

Claims (8)

  1. 하이퍼바이저에서 다수의 코어로 이루어진 물리적 자원을 다수의 가상 머신에게 분산 할당하는 스케줄링 방법에 있어서,
    다수의 가상 머신을 정렬하는 단계;
    다수의 가상 머신을 다수의 가상 머신 지도에 순차적으로 번갈아 배치하는 단계; 및
    각 가상 머신 지도에 배치된 가상 머신들로 이루어진 가상 머신 집합들을 타임 슬롯 단위로 실행하는 단계;
    을 포함하는 매니코어 시스템의 하이퍼바이저에서 스케줄링 하는 방법.
  2. 제1항에서, 상기 정렬하는 단계는,
    각 가상 머신이 요구하는 코어 개수의 크기 순서로 정렬하는 단계인 것인 매니코어 시스템의 하이퍼바이저에서 스케줄링 하는 방법.
  3. 제2항에서, 상기 배치하는 단계는,
    상기 다수의 가상 머신을 각 가상 머신이 요구하는 코어 개수의 크기 순서로 상기 다수의 가상 머신 지도에 순차적으로 번갈아 배치하는 단계인 것인 매니코어 시스템의 하이퍼바이저에서 스케줄링 하는 방법.
  4. 제2항에서, 상기 다수의 가상 머신들이 제1 내지 제4 가상 머신(VM1~VM4)으로 이루어지고, 제1 내지 제4 가상 머신(VM1~VM4)을 제1 내지 제2 가상 머신 지도(VMmap_1, VMmap_2)에 배치하고, 각 가상 머신들의 실행에 요구되는 코어의 개수의 크기 순서가 VM1 > VM2 > VM3 > VM4인 경우,
    상기 배치하는 단계는,
    상기 제1 가상 머신(VM1)을 상기 제1 가상 머신 지도에 배치하고, 상기 제2 가상 머신(VM2)을 상기 제2 가상 머신 지도에 배치하고, 상기 제3 가상 머신(VM3)을 상기 제1 가상 머신 지도에 배치하고, 상기 제4 가상 머신(VM4)을 상기 제2 가상 머신 지도에 배치하는 단계인 것인 매니코어 시스템의 하이퍼바이저에서 스케줄링 하는 방법.
  5. 제4항에서, 상기 다수의 가상 머신들이 제5 가상 머신(VM5)를 더 포함하고, 상기 제5 가상 머신(VM5)이 상기 제4 가상 머신(VM4)의 실행에 요구되는 코어의 개수와 동일한 경우,
    상기 배치하는 단계는,
    상기 제5 가상 머신(VM5)을 상기 제1 가상 머신 지도에 배치하는 단계인 것인 매니코어 시스템의 하이퍼바이저에서 스케줄링 하는 방법.
  6. 하이퍼바이저에서 다수의 코어로 이루어진 물리적 자원을 다수의 가상 머신에게 분산 할당하는 매니코어 시스템에서,
    다수의 코어가 집적화된 CPU를 포함하는 하드웨어 계층;
    상기 하드웨어 계층에 대한 액세스를 제어하고 중재하기 위한 실행 가능 명령어들로 구성된 가상 머신 스케줄러를 포함하는 하이퍼바이저 계층; 및
    다수의 가상 머신을 포함하는 가상 머신 계층을 포함하고,
    상기 가상 머신 스케줄러는,
    공간 분할 스케줄링에 따라 다수의 가상 머신을 정렬하고, 정렬된 상기 다수의 가상 머신을 다수의 가상 머신 지도에 순차적으로 번갈아 배치하고, 시분할 스케줄링에 따라 각 가상 머신 지도에 배치된 가상 머신들로 이루어진 가상 머신 집합들을 타임 슬롯 단위로 실행하는 것인 매니코어 시스템.
  7. 제6항에서, 상기 가상 머신 스케줄러는,
    상기 다수의 가상 머신을 각 가상 머신이 요구하는 코어 개수의 크기 순서로 정렬하는 것인 매니코어 시스템.
  8. 제7항에서, 상기 가상 머신 스케줄러는,
    상기 다수의 가상 머신을 각 가상 머신이 요구하는 코어 개수의 크기 순서로 상기 다수의 가상 머신 지도에 순차적으로 번갈아 배치하는 것인 매니코어 시스템.
KR1020140011089A 2014-01-29 2014-01-29 매니코어 시스템의 하이퍼바이저에서 스케줄링 하는 방법 KR102193747B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140011089A KR102193747B1 (ko) 2014-01-29 2014-01-29 매니코어 시스템의 하이퍼바이저에서 스케줄링 하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140011089A KR102193747B1 (ko) 2014-01-29 2014-01-29 매니코어 시스템의 하이퍼바이저에서 스케줄링 하는 방법

Publications (2)

Publication Number Publication Date
KR20150090439A KR20150090439A (ko) 2015-08-06
KR102193747B1 true KR102193747B1 (ko) 2020-12-21

Family

ID=53885152

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140011089A KR102193747B1 (ko) 2014-01-29 2014-01-29 매니코어 시스템의 하이퍼바이저에서 스케줄링 하는 방법

Country Status (1)

Country Link
KR (1) KR102193747B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106227578A (zh) * 2016-07-12 2016-12-14 腾讯科技(深圳)有限公司 一种虚拟机热迁移的方法、设备及系统
CN112395071A (zh) * 2019-08-12 2021-02-23 北京百度网讯科技有限公司 用于资源管理的方法、装置、电子设备和存储介质
KR102622448B1 (ko) 2021-12-30 2024-01-09 (주)페르세우스 하이퍼바이저 시스템의 운영체제 성능 간섭 방지 장치
US20230418652A1 (en) 2021-12-30 2023-12-28 Perseus Co., Ltd Operating System Performance Interference Preventing Apparatus of Hypervisor System

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010128866A (ja) 2008-11-28 2010-06-10 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム
JP2012185541A (ja) 2011-03-03 2012-09-27 Denso Corp 車載装置、スケジューリングプログラム、及びスケジューリング方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101303079B1 (ko) * 2011-05-04 2013-09-03 한국과학기술원 멀티-코어 기반의 가상화 환경에서 캐쉬 일관성을 제어하는 장치 및 방법
KR101665976B1 (ko) * 2011-11-30 2016-10-14 한국전자통신연구원 운영 체제 커널의 자동 반가상화 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010128866A (ja) 2008-11-28 2010-06-10 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム
JP2012185541A (ja) 2011-03-03 2012-09-27 Denso Corp 車載装置、スケジューリングプログラム、及びスケジューリング方法

Also Published As

Publication number Publication date
KR20150090439A (ko) 2015-08-06

Similar Documents

Publication Publication Date Title
EP3522500B1 (en) Method and system for multi-tenant resource distribution
US11113782B2 (en) Dynamic kernel slicing for VGPU sharing in serverless computing systems
WO2015154686A1 (en) Scheduling method and apparatus for distributed computing system
KR102193747B1 (ko) 매니코어 시스템의 하이퍼바이저에서 스케줄링 하는 방법
CN112181585A (zh) 虚拟机的资源分配方法及装置
Jena et al. Response time minimization of different load balancing algorithms in cloud computing environment
KR102635453B1 (ko) Gpu를 위한 피드백 기반 분할 작업 그룹 디스패치
Iordache et al. High performance in the cloud with FPGA groups
US11740921B2 (en) Coordinated container scheduling for improved resource allocation in virtual computing environment
US20120096462A1 (en) Dynamic virtualization technique for multicore processor system
Han et al. The effect of multi-core on HPC applications in virtualized systems
Diab et al. Dynamic sharing of GPUs in cloud systems
CN102508696B (zh) 一种不对称的资源调度方法及装置
Kim et al. A parallel migration scheme for fast virtual machine relocation on a cloud cluster
Zhou et al. Comparison of virtualization and containerization techniques for high performance computing
US20150220442A1 (en) Prioritizing shared memory based on quality of service
CN105653347A (zh) 一种服务器、资源管理方法及虚拟机管理器
US8881163B2 (en) Kernel processor grouping
US11182183B2 (en) Workload placement using conflict cost
JP2015228075A (ja) 計算機資源割当装置及び計算機資源割当プログラム
Peng et al. A throughput-oriented nvme storage virtualization with workload-aware management
EP3066568B1 (en) System and method for supporting efficient packet processing model and optimized buffer utilization for packet processing in a network environment
Sajjapongse et al. A flexible scheduling framework for heterogeneous CPU-GPU clusters
KR102248978B1 (ko) 다수 사용자의 분산 기계학습에서 평균 지연 속도 절감을 위한 자원 할당 방법 및 장치
Shahabanath et al. K-TIER and Selective Backfilling Approach for Parallel Workload Scheduling In Cloud

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant