KR101644569B1 - 가상 프로세서 관리 장치 및 방법 - Google Patents

가상 프로세서 관리 장치 및 방법 Download PDF

Info

Publication number
KR101644569B1
KR101644569B1 KR1020090093696A KR20090093696A KR101644569B1 KR 101644569 B1 KR101644569 B1 KR 101644569B1 KR 1020090093696 A KR1020090093696 A KR 1020090093696A KR 20090093696 A KR20090093696 A KR 20090093696A KR 101644569 B1 KR101644569 B1 KR 101644569B1
Authority
KR
South Korea
Prior art keywords
processors
virtual
real
processor
time
Prior art date
Application number
KR1020090093696A
Other languages
English (en)
Other versions
KR20110036172A (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 KR1020090093696A priority Critical patent/KR101644569B1/ko
Priority to US12/896,503 priority patent/US9274852B2/en
Publication of KR20110036172A publication Critical patent/KR20110036172A/ko
Application granted granted Critical
Publication of KR101644569B1 publication Critical patent/KR101644569B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Power Sources (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 가상 프로세서 관리 장치 및 방법에 관한 것으로, 각각의 어플리케이션을 동작시키기 위한 자원들로 이루어지는 다수개의 가상 프로세서들이 분할되어 할당된 다수개의 실제 프로세서들에서, 제어부가 실제 프로세서들의 사용률을 파악하고, 실제 프로세서들 중 어느 하나에서 사용률이 임계치 이하이면, 가상화 관리부가 가상 프로세서들을 재분할하여 실제 프로세서들 중 적어도 일부에 재할당하도록 구성된다. 본 발명에 따르면, 가상 프로세서 관리 장치에서 실제 프로세서들의 사용률을 일정 수준으로 보장할 수 있다.
가상화, 가상 프로세서, 실제 프로세서, 어플리케이션, 사용률

Description

가상 프로세서 관리 장치 및 방법{APPARATUS AND METHOD FOR MANAGING VIRTUAL PROCESSING UNIT}
본 발명은 가상화(virtualization)를 위한 장치 및 방법에 관한 것으로, 특히 하드웨어를 통해 어플리케이션(application)을 동작시키기 위한 자원(resource)들로 구성되는 가상 프로세서를 관리하기 위한 장치 및 방법에 관한 것이다.
일반적으로 운영 체제(Operating System; OS)는 각종 신호 처리 장치(signal processing apparatus)에서 하드웨어(hardware)와 다양한 어플리케이션들 간 인터페이스(interface)를 제공한다. 즉 운영 체제는 하드웨어를 통해 어플리케이션들을 동작시키기 위한 자원들을 관리한다. 그리고 가상화를 통해, 운영 체제에서 하드웨어와 각각의 어플리케이션 간 가상 인터페이스가 구현된다. 이 때 가상화는 자원들을 어플리케이션 별로 분할하여 다수개의 가상 프로세서들을 구현하고, 이를 하드웨어에 할당하는 것을 나타낸다.
그런데, 상기와 같은 신호 처리 장치에서, 가상 프로세서들은 하드웨어에 정적으로 할당되거나 동적으로 할당된다. 이로 인하여, 가상 프로세서들의 정적 할당 시, 신호 처리 장치에서 어플리케이션들을 동작시키는 데 있어서 안정성이 보장되고 비교적 고속의 동작 속도를 획득할 수 있으나, 가상 프로세서의 이용 효율성이 낮은 문제점이 있다. 그리고 가상 프로세서들의 동적 할당 시, 신호 처리 장치에서 가상 프로세서의 이용 효율성을 향상시킬 수 있으나, 어플리케이션들을 동작시키는 데 있어서 안정성을 확보하는 것이 어려우며 동작 속도가 비교적 저하되는 문제점이 있다. 이에 따라, 신호 처리 장치에서 동작 성능을 일정 수준으로 보장하는 데 어려움이 있다. 이는 신호 처리 장치에서 다수개의 운영 체제들 구동 시, 보다 심각해진다.
상기 과제를 해결하기 위하여, 본 발명은 실제 프로세서를 통해 어플리케이션을 동작시키기 위한 자원들로 구성되는 가상 프로세서를 관리하기 위한 방법을 제공한다.
이러한 본 발명에 따른 가상 프로세서 관리 방법은, 다수개의 가상 프로세서들이 분할되어 할당된 다수개의 실제 프로세서들의 사용률을 파악하는 과정과, 상기 실제 프로세서들 중 어느 하나에서 상기 사용률이 임계치 이하이면, 상기 가상 프로세서들을 재분할하여 상기 실제 프로세서들 중 적어도 일부에 재할당하는 과정 을 포함하는 것을 특징으로 한다. 그리고 본 발명에 따른 가상 프로세서 관리 방법은, 상기 사용률이 상기 임계치를 초과하면, 상기 가상 프로세서들을 유지시키는 과정을 더 포함한다.
이 때 본 발명에 따른 가상 프로세서 관리 방법은, 상기 실제 프로세서들 중 일부에 상기 가상 프로세서들이 재할당되면, 상기 실제 프로세서들 중 나머지의 전력을 오프시키는 과정을 더 포함할 수 있다. 그리고 본 발명에 따른 가상 프로세서 관리 방법에 있어서, 상기 실제 프로세서들은 발생 시점에 신호를 처리하기 위한 적어도 하나의 실시간 프로세서 및 일정 시간 간격 동안 발생된 신호를 누적하여 처리하기 위한 다수개의 비실시간 프로세서들을 포함할 수 있다. 또한 본 발명에 따른 가상 프로세서 관리 방법은, 상기 비실시간 프로세서로부터 상기 가상 프로세서들 중 어느 하나가 추가되어 재할당되면, 상기 실시간 프로세서에서 상기 할당된 가상 프로세서 보다 낮도록 상기 재할당된 가상 프로세서에 우선 순위를 결정하는 과정을 더 포함할 수 있다.
한편, 상기 과제를 해결하기 위하여, 본 발명은 실제 프로세서를 통해 어플리케이션을 동작시키기 위한 자원들로 구성되는 가상 프로세서를 관리하기 위한 장치를 제공한다.
이러한 본 발명에 따른 가상 프로세서 관리 장치는, 각각의 어플리케이션을 동작시키기 위한 자원들로 이루어지는 다수개의 가상 프로세서들과, 상기 가상 프로세서들이 분할되어 할당되어 있는 다수개의 실제 프로세서들과, 상기 실제 프로세서들의 사용률을 파악하기 위한 제어부와, 상기 실제 프로세서들 중 어느 하나에 서 상기 사용률이 임계치 이하이면, 상기 가상 프로세서들을 재분할하여 상기 실제 프로세서들 중 적어도 일부에 재할당하는 가상화 관리부를 포함하는 것을 특징으로 한다. 그리고 본 발명에 따른 가상 프로세서 관리 장치에 있어서, 상기 가상화 관리부는, 상기 사용률이 상기 임계치를 초과하면, 상기 가상 프로세서들을 유지시킨다.
이 때 본 발명에 따른 가상 프로세서 관리 장치에 있어서, 상기 제어부는, 상기 실제 프로세서들 중 일부에 상기 가상 프로세서들이 재할당되면, 상기 실제 프로세서들 중 나머지의 전력을 오프시킬 수 있다. 그리고 본 발명에 따른 가상 프로세서 관리 장치에 있어서, 상기 실제 프로세서들은 발생 시점에 신호를 처리하기 위한 적어도 하나의 실시간 프로세서 및 일정 시간 간격 동안 발생된 신호를 누적하여 처리하기 위한 다수개의 비실시간 프로세서들을 포함할 수 있다. 또한 본 발명에 따른 가상 프로세서 관리 장치에 있어서, 상기 가상화 관리부는, 상기 비실시간 프로세서로부터 상기 가상 프로세서들 중 어느 하나가 추가되어 재할당되면, 상기 실시간 프로세서에서 상기 할당된 가상 프로세서 보다 낮도록 상기 재할당된 가상 프로세서에 우선 순위를 결정할 수 있다.
따라서, 본 발명에 따른 가상 프로세서 관리 장치 및 방법은, 가상 프로세서 관리 장치에서 실제 프로세서들의 사용률에 따라 가상 프로세서들을 재분할하여 실제 프로세서들에 재할당할 수 있다. 즉 가상 프로세서 관리 장치에서 비실시간 프로세서들 간 가상 프로세서들을 병합하거나, 비실시간 프로세서와 실시간 프로세서 간 가상 프로세서들을 병합할 수 있다. 이로 인하여, 가상 프로세서 관리 장치에서 실제 프로세서들의 사용률을 일정 수준으로 보장할 수 있다. 뿐만 아니라, 가상 프로세서들 병합 시, 실제 프로세서들 중 일부의 전력을 제어함으로써, 가상 프로세서 관리 장치에서 소비 전력을 절감시킬 수 있다. 이에 따라, 가상 프로세서 관리 장치를 구비하는 신호 처리 장치에서 동작 성능을 일정 수준으로 보장할 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 보다 상세하게 설명하고자 한다. 이 때 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음에 유의해야 한다. 그리고 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다.
도 1은 본 발명의 실시예에 따른 가상 프로세서 관리 장치를 도시하는 블록도이다. 그리고 도 2는 본 발명의 실시예에 따른 가상 프로세서 관리 기술을 설명하기 위한 예시도이다. 이 때 본 실시예에서 가상 프로세서 관리 장치가 신호 처리 장치 내에 장착되는 경우를 가정하여 설명한다.
도 1을 참조하면, 본 실시예의 가상 프로세서 관리 장치(100)는 하드웨어(110), 가상화 모니터(virtualization monitor; 120), 가상화 관리부(virtualization manager; 130) 및 운영 체제(140)를 포함한다.
하드웨어(110)는 다수개의 실제 프로세서(real central processing unit; 111)들과 제어부(controlling unit; 113)를 구비한다. 실제 프로세서(111)들은 실질적으로 어플리케이션들을 동작시키는 기능을 수행한다. 이러한 실제 프로세 서(111)들은 발생 시점에 신호를 처리하기 위한 적어도 하나의 실시간 프로세서(real-time processing unit) 및 일정 시간 간격 동안 발생된 신호를 누적하여 처리하기 위한 다수개의 비실시간 프로세서(non-real-time processing unit)들을 포함할 수 있다. 그리고 실제 프로세서(111)들은 처리 기기(processor), 메모리(memory), 입출력 기기(input/output device) 및 네트워크 카드(network card) 등과 같은 물리 자원(physical resource)들로 이루어진다. 제어부(113)는 실제 프로세서(111)들을 제어하는 기능을 수행한다. 이 때 제어부(113)는 실제 프로세서(111)들의 전력을 제어한다. 즉 제어부(111)는, 전력 공급을 통해 온(on)시킴으로써, 실제 프로세서(111)들 중 적어도 어느 하나를 구동시킬 수 있다. 그리고 제어부(111)는, 실제 프로세서(111)들 중 적어도 어느 하나에 전력 공급을 중지하여 오프(off)시킬 수 있다. 즉 제어부(111)는 실제 프로세서(111)들 중 적어도 어느 하나를 슬립 모드(sleep mode)로 전환시켜 구동을 중단시킬 수 있다. 또한 제어부(113)는 주기적으로 실제 프로세서(111)들의 사용률을 파악한다.
가상화 모니터(120)는 실제 프로세서(111)들을 어플리케이션 별로 분할하는 기능을 수행한다. 즉 가상화 모니터는 물리 자원들을 각각의 어플리케이션을 위한 가상 자원(virtual resource)들로 분할한다. 이 때 가상화 모니터(120)는 하나의 실제 프로세서의 물리 자원들을 적어도 하나의 어플리케이션을 위한 가상 자원들로 분할할 수 있다. 여기서, 가상화 모니터(120)는 가상 머신 모니터(Virtual Machine Monitor; VMM) 또는 하이퍼바이저(hypervisor)일 수 있다.
가상화 관리부(130)는 실제 프로세서(111)들에 가상 자원들을 매핑시키는 기 능을 수행한다. 즉 가상화 관리부(130)는 실제 프로세서(111)들에 각각의 어플리케이션을 위한 가상 자원들을 할당한다. 그리고 가상화 관리부(130)는 가상 자원들의 사용률을 파악한다. 이 때 가상화 관리부(130)는 각각의 실제 프로세서(111)들에서 각각의 어플리케이션을 위한 가상 자원들의 점유율을 고려하여, 가상 자원들의 사용률을 파악할 수 있다. 또한 가상화 관리부(130)는 실제 프로세서(111)들의 사용률에 따라 가상 자원들의 재할당 여부를 결정한다. 이 때 가상화 관리부(130)는 실제 프로세서(111)들의 사용률을 도 2에 도시된 바와 같이 미리 설정되는 비교값들, 즉 한계치 및 임계치과 비교할 수 있다. 여기서, 가상화 관리부(130)는 가상 자원들의 사용률을 추가적으로 고려하여, 가상 자원들의 재할당 여부를 결정할 수 있다. 게다가 가상화 관리부(130)는 가상 자원들을 재할당할 수 있다. 즉 가상화 관리부(130)는 다수개의 실제 프로세서(111)들의 가상 자원들을 하나의 실제 프로세서(111)로 병합하거나, 하나의 실제 프로세서(111)의 가상 자원들을 다수개의 실제 프로세서(111)들로 분리할 수 있다.
운영 체제(140)는 다수개의 가상 프로세서(virtual processor; 141)들, 비실시간 운영부(143) 및 실시간 운영부(145)를 구비한다. 가상 프로세서(141)들은 어플리케이션 별로 가상 자원들을 매핑시키는 기능을 수행한다. 이 때 가상 프로세서(141)들은 어플리케이션들에 일대일로 대응될 수 있다. 그리고 가상 프로세서(141)들은 각각의 어플리케이션을 위한 다수개의 가상 태스크(virtual task)들로 이루어지며, 각각의 어플리케이션을 위한 가상 자원들이 각각의 가상 태스크를 구성한다. 이를 통해, 가상 프로세서(141)들은 실제 프로세서(111)들에 할당된다. 여 기서, 가상 프로세서(141)들은 실제 프로세서(111)들에서 비실시간 프로세서들 또는 실시간 프로세서 중 적어도 어느 하나에 할당된다. 비실시간 운영부(143)는 가상 프로세서(141)들을 이용하여, 실제 프로세서(111)들에서 비실시간 프로세서들과 어플리케이션들 간 인터페이스를 제공한다. 실시간 운영부(145)는 가상 프로세서(141)들을 이용하여, 실제 프로세서(111)들에서 실시간 프로세서와 어플리케이션들 간 인터페이스를 제공한다.
상기한 바와 같이, 본 발명의 실시예에 따른 가상 프로세서 관리 장치(100)는 실제 프로세서(111)들의 사용률에 따라 가상 프로세서(141)들을 재분할하여 실제 프로세서(111)들에 재할당할 수 있다. 이를 두 개의 실시예들로 구분하여 설명하면 다음과 같다. 다만, 본 발명이 후술되는 실시예들로 한정되는 것은 아니다.
도 3은 본 발명의 일 실시예에 따른 가상 프로세서 관리 절차를 도시하는 순서도이다.
도 3을 참조하면, 본 실시예의 가상 프로세서 관리 절차는, 가상화 주기가 도래하면, 제어부(113)가 311단계에서 이를 감지하고, 313단계에서 실제 프로세서(111) 별 사용률을 파악하는 것으로부터 출발한다. 이 때 다수개의 가상 프로세서(141)들이 분할되어 실제 프로세서(111)들에 할당된 상태에서, 제어부(113)가 실제 프로세서(111)들의 사용률을 파악할 수 있다. 그리고 제어부(113)는 미리 설정된 일정 시간 간격에 따른 가상화 주기를 미리 저장하고 있으며, 가상화 주기를 기준으로 기능을 수행한다. 여기서, 실제 프로세서(111)들의 개수가 K 개이면, 실제 프로세서(111)들에 0 내지 K-1로 인덱스(index; N)가 부여될 수 있다. 또는 실제 프로세서(111)들에서 실시간 프로세서들에 인덱스가 부여되지 않고, 비실시간 프로세서들에 제한적으로 인덱스가 부여될 수 있다. 즉 비실시간 프로세서들의 개수가 K 개이면, 비실시간 프로세서들에 0 내지 K-1로 인덱스가 부여될 수 있다. 이 후 제어부(113)는 315단계에서 실제 프로세서(111)들 중 어느 하나를 결정한다. 이 때 실제 프로세서(111)들 중 어느 하나는 0의 인덱스에 해당한다.
이어서, 제어부(113)는 317단계에서 실제 프로세서(111)들 중 어느 하나에 병합 주기가 경과했는지의 여부를 판단한다. 이 때 제어부(113)는 미리 설정된 일정 시간 간격에 따른 병합 주기를 미리 저장하고 있으며, 실제 프로세서(111) 별로 상이한 시점으로부터 병합 주기를 적용한다. 여기서, 병합 주기는 적어도 하나의 가상화 주기 보다 긴 시간 간격으로 이루어질 수 있다. 그리고 병합 주기는 실제 프로세서(111) 별로 상이한 시간 간격으로 이루어질 수 있다.
계속해서, 317단계에서 실제 프로세서(111)들 중 어느 하나에 병합 주기가 경과한 것으로 판단되면, 제어부(113)는 319단계에서 실제 프로세서(111)들 중 어느 하나의 사용률과 도 2에 도시된 바와 같이 미리 설정된 임계치를 비교한다. 이 때 319단계에서 실제 프로세서(111)들 중 어느 하나의 사용률이 임계치를 초과하는 것으로 판단되면, 제어부(113)는 가상화 관리부(130)를 통해 321단계에서 가상 프로세서(141)들을 유지시킨다. 즉 제어부(113)와 가상화 관리부(130)는 실제 프로세서(111)들에 가상 프로세서(141)들이 할당되어 있는 상태를 유지시킨다. 또는 319단계에서 실제 프로세서(111)들 중 어느 하나의 사용률이 임계치 이하인 것으로 판단되면, 제어부(113)는 가상화 관리부(130)를 통해 323단계에서 가상 프로세 서(141)들을 병합하는 절차를 수행한다. 이 때 제어부(113)와 가상화 관리부(130)는 가상 프로세서(141)들을 재분할하여 실제 프로세서(111)들에 재할당한다.
이와 같이 가상 프로세서를 병합하는 절차를 보다 상세하게 설명하면 다음과 같다. 도 4는 도 3에서 가상 프로세서 병합 절차를 도시하는 순서도이다.
도 4를 참조하면, 319단계에서 실제 프로세서(111)들 중 어느 하나의 사용률이 임계치 이하인 것으로 판단되면, 제어부(113)는 411단계에서 실제 프로세서(111)들 중 어느 하나의 사용률과 도 2에 도시된 바와 같이 미리 설정된 한계치를 비교한다. 이 때 제어부(113)는 실제 프로세서(111)들 중 어느 하나의 사용률이 0 이상이고 한계치 이하인 'A' 영역에 속하는지의 여부를 확인한다. 또는 제어부(113)는 실제 프로세서(111)들 중 어느 하나의 사용률이 한계치를 초과하고 임계치 미만인 'B' 영역에 속하는지의 여부를 확인한다.
다음으로, 411단계에서 실제 프로세서(111)들 중 어느 하나의 사용률이 한계치 이하인 것으로 판단되면, 제어부(113)는 413단계에서 하드웨어(110)로부터 두 개의 다른 실제 프로세서(111)들을 결정한다. 즉 실제 프로세서(111)들 중 어느 하나의 사용률이 0 이상이고 한계치 이하이면, 제어부(113)는 하드웨어(110)에서 실제 프로세서(111)들 중 어느 하나를 제외시킨다. 이 때 제어부(113)는 하드웨어(110)에서 병합 주기가 경과되지 않은 또 다른 실제 프로세서(111)들을 더 제외시킬 수 있다. 또한 제어부(113)는 나머지 실제 프로세서(111)들에서 사용률이 최저인 다른 두 개를 결정한다.
한편, 411단계에서 실제 프로세서(111)들 중 어느 하나의 사용률이 한계치를 초과하는 것으로 판단되면, 제어부(113)는 415단계에서 하드웨어(110)로부터 하나의 다른 실제 프로세서(111)를 결정한다. 즉 실제 프로세서(111)들 중 어느 하나의 사용률이 한계치를 초과하고 임계치 미만이면, 제어부(113)는 하드웨어(110)에서 실제 프로세서(111)들 중 어느 하나를 제외시킨다. 이 때 제어부(113)는 하드웨어(110)에서 병합 주기가 경과되지 않은 또 다른 실제 프로세서(111)들을 더 제외시킬 수 있다. 또한 제어부(113)는 나머지 실제 프로세서(111)들에서 사용률이 최저인 다른 하나를 결정한다.
다음으로, 제어부(113)는 417단계에서 실제 프로세서(111)들 중 어느 하나와 적어도 다른 하나 각각의 사용률을 합산하여 결과값을 산출한다. 그리고 제어부(113)는 419단계에서 결과값과 미리 결정된 허용치를 비교한다. 이 때 419단계에서 결과값이 허용치 이하인 것으로 판단되면, 제어부(113)는 가상화 관리부(130)를 통해 421단계에서 실제 프로세서(111)들 중 어느 하나와 적어도 다른 하나의 가상 프로세서(141)들을 실제 프로세서(111)들 중 어느 하나 또는 적어도 다른 하나에 재할당한다. 즉 가상화 관리부(130)는 실제 프로세서(111)들 중 어느 하나 또는 적어도 다른 하나에서 어느 하나를 선출하여, 실제 프로세서(111)들 중 어느 하나와 적어도 다른 하나의 가상 프로세서(141)를 이전시킨다.
다음으로, 제어부(113)는 423단계에서 실제 프로세서(111)들 중 어느 하나 또는 적어도 다른 하나에서 나머지의 전력을 제어한다. 즉 제어부(113)는 전력 공급을 중지하여 오프시킨다. 그리고 제어부(113)는 425단계에서 실제 프로세서(111)들 중 어느 하나 또는 적어도 다른 하나에서 나머지의 가상 프로세서(141) 병합을 현재 시점에서 중단시킨 다음, 도 3으로 리턴한다. 이 때 제어부(113)는 현재 시점으로부터 경과 시간을 모니터링한다. 또한 도시되지는 않았으나, 현재 시점으로부터 병합 주기 경과 시, 제어부(141)는 실제 프로세서(111)들 중 어느 하나 또는 적어도 다른 하나에서 나머지로 전력을 재공급하여 온시킨다.
한편, 419단계에서 결과값이 허용치를 초과하는 것으로 판단되면, 제어부(113)는 도 3으로 리턴한다. 즉 제어부(113)는 실제 프로세서(111)들 중 어느 하나와 적어도 다른 하나의 가상 프로세서(141)들의 병합이 불가능한 것으로 결정한다. 그리고 제어부(113)는 가상화 관리부(130)를 통해 실제 프로세서(111)들에 가상 프로세서(141)들이 할당되어 있는 상태를 유지시킨다.
한편, 본 실시예에서 제어부(113)가 실제 프로세서(111)들 중 어느 하나와 적어도 다른 하나의 가상 프로세서(141)들을 실제 프로세서(111)들 중 어느 하나 또는 적어도 다른 하나에 재할당하는 예를 개시하였으나, 이에 한정하는 것은 아니다. 즉 제어부(113)가 실제 프로세서(111)들 중 적어도 어느 두 개에서 선택적으로 가상 프로세서(141)들을 병합하지 않더라도, 본 발명의 구현이 가능하다.
예를 들면, 도시되지는 않았으나, 실제 프로세서(111)들 중 어느 하나의 사용률이 한계치를 초과하면, 제어부(113)는 운영 체제(140)에서 가상 프로세서(141)들의 개수와 하드웨어(110)에서 실제 프로세서(111)들의 개수를 비교한다. 그리고 가상 프로세서(141)들의 개수가 실제 프로세서(111)들의 개수를 초과하면, 제어부(113)는 가상 프로세서(141)들의 개수와 실제 프로세서(111)들의 개수가 동일해지도록 가상 프로세서(141)들 중 적어도 일부를 병합한다. 이 때 제어부(113)는 일 정 규칙에 따라 가상 프로세서(141)들에 그루핑(grouping)을 수행할 수 있다. 여기서, 제어부(113)는 가상 프로세서(141)의 사용률을 기준으로 그루핑을 수행하기 위한 규칙을 저장하고 있을 수 있다. 또한 가상 프로세서(141)들과 실제 프로세서(111)들이 동일한 개수로 구성되는 바, 제어부(113)는 가상 프로세서(141)들을 실제 프로세서(111)들에 일대일로 대응시켜 재할당한다. 이 후 제어부(113)는 실제 프로세서(111)들 각각의 동작 주파수를 조절한 다음, 도 3으로 리턴한다. 이 때 제어부(113)는 DVFS(Dynamic Voltage and Frequency Scaling) 기능을 적용할 수 있다.
마지막으로, 317단계에서 실제 프로세서(111)들 중 어느 하나에 병합 주기가 경과한 것으로 판단되지 않으면, 제어부(113)는 325단계에서 실제 프로세서(111)들 중 다른 하나를 결정한다. 또는 321단계에서 가상 프로세서(141)들을 유지시키거나, 323단계에서 가상 프로세서(141)들을 병합한 다음, 제어부(113)는 325단계에서 실제 프로세서(111)들 중 다른 하나를 결정한다. 이 때 제어부(113)는 실제 프로세서(111)들 중 어느 하나에 해당하는 인덱스를 1 만큼 증가시켜, 실제 프로세서(111)들에서 해당 인덱스의 다른 하나를 결정할 수 있다. 그리고 제어부(113)는 327단계에서 실제 프로세서(111)들 중 다른 하나가 존재하는지의 여부를 판단한다. 즉 제어부(113)는 하드웨어(110)에서 모든 실제 프로세서(111)들에서 가상 프로세서(141) 병합 또는 유지 결정이 완료되었는지의 여부를 판단한다. 이 때 327단계에서 실제 프로세서(111)들 중 다른 하나가 존재하는 것으로 판단되면, 제어부(113)는 317단계 내지 327단계를 반복하여 수행한다. 또한 327단계에서 실제 프로세 서(111)들 중 다른 하나가 존재하지 않는 것으로 판단되면, 제어부(113)는 가상 프로세서(141) 관리 절차를 종료한다.
한편, 본 실시예에서 제어부(113)가 실제 프로세서(111)들 중 어느 하나의 사용률에 따라 실제 프로세서(111)들 중 적어도 어느 두 개의 가상 프로세서(141)들을 병합하는 예를 개시하였으나, 이에 한정하는 것은 아니다. 즉 제어부(113)가 실제 프로세서(111)들 중 어느 하나의 사용률에 따라 실제 프로세서(111)들 중 적어도 어느 두 개로 가상 프로세서(141)들을 분리함으로써, 본 발명을 구현하는 것도 가능하다. 예를 들면, 실제 프로세서(111)들 중 어느 하나의 사용률이 미리 설정된 분리치 이상이면, 제어부(113)는 실제 프로세서(111)들 중 사용률이 최저인 적어도 다른 하나를 결정할 수 있다. 그리고 제어부(113)는 실제 프로세서(111)들 중 어느 하나의 가상 프로세서(111)들 중 일부를 실제 프로세서(111)들 중 적어도 다른 하나로 분리하여 이전시킬 수 있다.
도 5는 본 발명의 다른 실시예에 따른 가상 프로세서 관리 절차를 도시하는 순서도이다.
도 5를 참조하면, 본 실시예의 가상 프로세서 관리 절차는, 가상화 주기가 도래하면, 제어부(113)가 511단계에서 이를 감지하고, 513단계에서 실제 프로세서(111)들에서 실시간 프로세서의 사용률을 파악하는 것으로부터 출발한다. 이 때 다수개의 가상 프로세서(141)들이 분할되어 실제 프로세서(111)들에 할당된 상태에서, 제어부(113)가 실시간 프로세서의 사용률을 파악할 수 있다. 그리고 제어부(113)는 미리 설정된 일정 시간 간격에 따른 가상화 주기를 미리 저장하고 있으 며, 가상화 주기를 기준으로 기능을 수행한다.
다음으로, 제어부(113)는 515단계에서 실시간 프로세서의 사용률과 도 2에 도시된 바와 같이 미리 설정된 임계치를 비교한다. 이 때 515단계에서 실시간 프로세서의 사용률이 임계치 이하인 것으로 판단되면, 제어부(113)는 가상화 관리부(130)를 통해 517단계에서 가상 프로세서(141)들을 병합하는 절차를 수행한다. 즉 제어부(113)와 가상화 관리부(130)는 비실시간 프로세서들의 가상 프로세서(141)들을 재분할하여 실시간 프로세서에 재할당한다. 이 후 제어부(113)는 가상 프로세서(141) 관리 절차를 종료한다.
이와 같이 가상 프로세서를 병합하는 절차를 보다 상세하게 설명하면 다음과 같다. 도 6은 도 5에서 가상 프로세서 병합 절차를 도시하는 순서도이다.
도 6을 참조하면, 515단계에서 실시간 프로세서의 사용률이 임계치 이하인 것으로 판단되면, 제어부(113)는 611단계에서 실시간 프로세서의 사용률과 도 2에 도시된 바와 같이 미리 설정된 한계치를 비교한다. 이 때 제어부(113)는 실시간 프로세서의 사용률이 0 이상이고 한계치 이하인 'A' 영역에 속하는지의 여부를 확인한다. 또는 제어부(113)는 실시간 프로세서의 사용률이 한계치를 초과하고 임계치 미만인 'B' 영역에 속하는지의 여부를 확인한다.
다음으로, 611단계에서 실시간 프로세서의 사용률이 한계치 이하인 것으로 판단되면, 제어부(113)는 613단계에서 실제 프로세서(111)들에서 비실시간 프로세서 별 사용률을 파악한다. 이 때 다수개의 가상 프로세서(141)들이 분할되어 실제 프로세서(111)들에 할당된 상태에서, 제어부(113)가 비실시간 프로세서들의 사용률 을 파악할 수 있다. 이 후 제어부(113)는 615단계에서 실제 프로세서(111)들 중 어느 하나의 비실시간 프로세서를 결정한다. 즉 실시간 프로세서의 사용률이 0 이상이고 한계치 이하이면, 제어부(113)는 실제 프로세서(111)들에서 사용률이 최저인 어느 하나의 비실시간 프로세서를 결정한다. 그리고 제어부(113)는 617단계에서 실시간 프로세서와 어느 하나의 비실시간 프로세서 각각의 사용률을 합산하여 결과값을 산출한다.
한편, 611단계에서 실시간 프로세서의 사용률이 한계치를 초과하는 것으로 판단되면, 제어부(113)는 가상화 관리부(130)를 통해 619단계에서 가상 프로세서(141) 별 사용률을 파악한다. 이 때 제어부(113)는 비실시간 프로세서들에 대응하는 각각의 가상 프로세서(141)들의 사용률을 파악할 수 있다. 즉 제어부(113)는 비실시간 프로세서 별 사용률을 파악하고, 각각의 비실시간 프로세서에서 가상 프로세서(141) 별 점유율을 이용하여 가상 프로세서(141) 별 사용률을 파악할 수 있다. 이 후 제어부(113)는 621단계에서 가상 프로세서(141)들 중 어느 두 개를 결정한다. 이 때 제어부(113)는 가상 프로세서(141)들에서 사용률이 최저인 어느 두 개를 결정한다. 그리고 제어부(113)는 가상화 관리부(130)를 통해 623단계에서 가상 프로세서(141)들 중 어느 두 개에서 가상 태스크들을 분배한다. 즉 가상화 관리부(130)는 두 개의 가상 프로세서(141)들 중 어느 하나의 가상 태스크들 중 일부를 가상 프로세서(141)들 중 나머지로 이전시킨다. 여기서, 가상 프로세서(141)들 중 나머지는 비실시간 프로세서들 중 어느 하나에 대응된다. 또한 제어부(113)는 625단계에서 실시간 프로세서와 두 개의 가상 프로세서(141)들 중 나머지 각각의 사용 률을 합산하여 결과값을 산출한다.
다음으로, 제어부(113)는 627단계에서 결과값과 미리 결정된 허용치를 비교한다. 이 때 627단계에서 결과값이 허용치 이하인 것으로 판단되면, 제어부(113)는 가상화 관리부(130)를 통해 629단계에서 비실시간 프로세서들 중 어느 하나의 가상 프로세서(141)를 실시간 프로세서에 재할당한다. 이 때 비실시간 프로세서들 중 어느 하나에 다수개의 가상 프로세서(141)들이 할당되어 있으면, 제어부(113)는 비실시간 프로세서들 중 어느 하나의 가상 프로세서(141)들 중 적어도 어느 하나를 실시간 프로세서에 재할당할 수 있다. 그리고 제어부(113)는 가상화 관리부(130)를 통해 631단계에서 실시간 프로세서들의 가상 프로세서(141)들 각각에 우선 순위를 부여한 다음, 도 5로 리턴한다. 즉 제어부(113)는 가상 프로세서(141)들 중 실시간 프로세서에 할당되는 순서에 따라 우선 순위를 부여한다. 예를 들면, 제어부(113)는, 실시간 프로세서에 할당되는 순서가 늦을수록 우선 순위를 낮게 부여할 수 있다.
한편, 627단계에서 결과값이 허용치를 초과하는 것으로 판단되면, 제어부(113)는 도 5로 리턴한다. 즉 제어부(113)는 실제 프로세서(111)들에서 실시간 프로세서와 비실시간 프로세서의 가상 프로세서(141)들의 병합이 불가능한 것으로 결정한다. 그리고 제어부(113)는 가상화 관리부(130)를 통해 실제 프로세서(111)들에 가상 프로세서(141)들이 할당되어 있는 상태를 유지시킨다.
한편, 515단계에서 실시간 프로세서의 사용률이 임계치를 초과하는 것으로 판단되면, 제어부(113)는 519단계에서 실시간 프로세서의 사용률과 미리 설정된 복 귀치를 비교한다. 여기서, 제어부(113)는 임계치보다 높게 설정된 복귀치를 저장하고 있을 수 있다. 이 때 519단계에서 실시간 프로세서의 사용률이 복귀치 이상인 것으로 판단되면, 제어부(113)는 가상 관리부(130)를 통해 521단계에서 실시간 프로세서에 비실시간 프로세서로부터 가상 프로세서(141)의 병합이 이루어져 있는지의 여부를 판단한다. 그리고 521단계에서 실시간 프로세서에 가상 프로세서(141)의 병합이 이루어져 있는 것으로 판단되면, 제어부(113)는 523단계에서 실시간 프로세서에서 비실시간 프로세서로 가상 프로세서(141)를 복귀시킨다. 이 후 제어부(113)는 가상 프로세서(141) 관리 절차를 종료한다.
한편, 519단계에서 실시간 프로세서의 사용률이 복귀치 미만인 것으로 판단되거나, 521단계에서 실시간 프로세서에 가상 프로세서(141)의 병합이 이루어지지 않은 것으로 판단되면, 제어부(113)는 가상화 관리부(130)를 통해 525단계에서 가상 프로세서(141)들을 유지시킨다. 즉 제어부(113)와 가상화 관리부(130)는 실제 프로세서(111)들에 가상 프로세서(141)들이 할당되어 있는 상태를 유지시킨다. 이 후 제어부(113)는 가상 프로세서(141) 관리 절차를 종료한다.
본 발명에 따르면, 가상 프로세서 관리 장치에서 실제 프로세서들의 사용률에 따라 가상 프로세서들을 재분할하여 실제 프로세서들에 재할당할 수 있다. 즉 가상 프로세서 관리 장치에서 비실시간 프로세서들 간 가상 프로세서들을 병합하거나, 비실시간 프로세서와 실시간 프로세서 간 가상 프로세서들을 병합할 수 있다. 이로 인하여, 가상 프로세서 관리 장치에서 실제 프로세서들의 사용률을 일정 수준으로 보장할 수 있다. 뿐만 아니라, 가상 프로세서들 병합 시, 실제 프로세서들 중 일부의 전력을 제어함으로써, 가상 프로세서 관리 장치에서 소비 전력을 절감시킬 수 있다. 이에 따라, 가상 프로세서 관리 장치를 구비하는 신호 처리 장치에서 동작 성능을 일정 수준으로 보장할 수 있다.
한편, 본 명세서와 도면에 개시된 본 발명의 실시예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 즉 본 발명의 기술적 사상에 바탕을 둔 다른 변형예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
도 1은 본 발명의 실시예에 따른 가상 프로세서 관리 장치를 도시하는 블록도,
도 2는 본 발명의 실시예에 따른 가상 프로세서 관리 기술을 설명하기 위한 예시도,
도 3은 본 발명의 일 실시예에 따른 가상 프로세서 관리 절차를 도시하는 순서도,
도 4는 도 3에서 가상 프로세서 병합 절차를 도시하는 순서도,
도 5는 본 발명의 다른 실시예에 따른 가상 프로세서 관리 절차를 도시하는 순서도, 그리고
도 6은 도 5에서 가상 프로세서 병합 절차를 도시하는 순서도이다.

Claims (18)

  1. 실제 프로세서에 할당된 가상 프로세서를 관리하기 위한 방법에 있어서,
    다수개의 실제 프로세서들의 사용률을 결정하는 단계;
    상기 실제 프로세서들 중에서 가장 낮은 사용률을 가지는 제1 실제 프로세서를 결정하는 단계; 및
    상기 제1 실제 프로세서에 적어도 하나의 가상 프로세서를 재할당하는 단계를 포함하는 것을 특징으로 하는 가상 프로세서 관리 방법.
  2. 제 1 항에 있어서,
    상기 적어도 하나의 가상 프로세서에 이전에 할당되었던 실제 프로세서들 중 적어도 하나의 전력을 오프시키는 단계를 더 포함하는 것을 특징으로 하는 가상 프로세서 관리 방법.
  3. 제1항에 있어서,
    상기 실제 프로세서들의 사용률의 결정은 주기적으로 수행되는 것을 특징으로 하는 가상 프로세서 관리 방법.
  4. 제 2 항에 있어서, 상기 적어도 하나의 가상 프로세서를 재할당하는 단계는,
    가상 프로세서들의 개수가 상기 실제 프로세서들의 개수를 초과하면, 상기 가상 프로세서들의 개수와 상기 실제 프로세서들의 개수가 동일해지도록 상기 가상 프로세서들 중 적어도 일부를 병합하여 상기 가상 프로세서들과 상기 실제 프로세서들을 일대일로 대응시키는 단계; 및
    상기 실제 프로세서들의 동작 주파수를 조절하는 단계를 포함하는 것을 특징으로 하는 가상 프로세서 관리 방법.
  5. 제 1 항에 있어서,
    상기 실제 프로세서들은 발생 시점에 신호를 처리하기 위한 적어도 하나의 실시간 프로세서 및 일정 시간 간격 동안 발생된 신호를 누적하여 처리하기 위한 다수개의 비실시간 프로세서들을 포함하는 것을 특징으로 하는 가상 프로세서 관리 방법.
  6. 제 5 항에 있어서, 상기 적어도 하나의 가상 프로세서를 재할당하는 단계는,
    상기 실제 프로세서들 중 어느 하나가 상기 실시간 프로세서이면, 상기 비실시간 프로세서들에서 상기 사용률이 최저인 어느 하나로부터 상기 실시간 프로세서로 상기 가상 프로세서를 재할당하는 단계를 포함하는 것을 특징으로 하는 가상 프로세서 관리 방법.
  7. 제 5 항에 있어서, 상기 적어도 하나의 가상 프로세서를 재할당하는 단계는,
    상기 실제 프로세서들 중 어느 하나가 상기 실시간 프로세서이면, 상기 비실시간 프로세서들에서 상기 가상 프로세서들의 점유율을 파악하는 단계; 및
    상기 가상 프로세서들에서 상기 점유율이 최저인 어느 하나를 상기 실시간 프로세서에 재할당하는 단계를 포함하는 것을 특징으로 하는 가상 프로세서 관리 방법.
  8. 제 5 항에 있어서,
    상기 비실시간 프로세서로부터 상기 가상 프로세서들 중 어느 하나가 추가되어 재할당되면, 상기 실시간 프로세서에서 상기 할당된 가상 프로세서 보다 낮도록 상기 재할당된 가상 프로세서에 우선 순위를 결정하는 단계를 더 포함하는 것을 특징으로 하는 가상 프로세서 관리 방법.
  9. 제 1 항에 있어서,
    상기 사용률이 임계치를 초과하면, 상기 가상 프로세서들을 유지시키는 것을 특징으로 하는 가상 프로세서 관리 방법.
  10. 각각의 어플리케이션을 동작시키기 위한 자원들로 이루어지는 다수개의 가상 프로세서들과,
    상기 가상 프로세서들이 분할되어 할당되어 있는 다수개의 실제 프로세서들과,
    상기 실제 프로세서들의 사용률을 결정하기 위한 제어부와,
    상기 실제 프로세서들 중에서 가장 낮은 사용률을 가지는 제1 실제 프로세서를 결정하고, 상기 제1 실제 프로세서에 적어도 하나의 가상 프로세서를 재할당하는 가상화 관리부를 포함하는 것을 특징으로 하는 가상 프로세서 관리 장치.
  11. 제 10 항에 있어서, 상기 제어부는,
    상기 적어도 하나의 가상 프로세서에 이전에 할당되었던 실제 프로세서들 중 적어도 하나의 전력을 오프시키는 것을 특징으로 하는 가상 프로세서 관리 장치.
  12. 제 10 항에 있어서, 상기 제어부는,
    상기 실제 프로세서들의 사용률을 주기적으로 결정하는 것을 특징으로 하는 가상 프로세서 관리 장치.
  13. 제 11 항에 있어서, 상기 가상화 관리부는,
    상기 가상 프로세서들의 개수가 상기 실제 프로세서들의 개수를 초과하면, 상기 가상 프로세서들의 개수와 상기 실제 프로세서들의 개수가 동일해지도록 상기 가상 프로세서들 중 적어도 일부를 병합하여 상기 가상 프로세서들과 상기 실제 프로세서들을 일대일로 대응시키고, 상기 실제 프로세서들의 동작 주파수를 조절하는 것을 특징으로 하는 가상 프로세서 관리 장치.
  14. 제 10 항에 있어서,
    상기 실제 프로세서들은 발생 시점에 신호를 처리하기 위한 적어도 하나의 실시간 프로세서 및 일정 시간 간격 동안 발생된 신호를 누적하여 처리하기 위한 다수개의 비실시간 프로세서들을 포함하는 것을 특징으로 하는 가상 프로세서 관리 장치.
  15. 제 14 항에 있어서, 상기 가상화 관리부는,
    상기 실제 프로세서들 중 어느 하나가 상기 실시간 프로세서이면, 상기 비실시간 프로세서들에서 상기 사용률이 최저인 어느 하나로부터 상기 실시간 프로세서로 상기 가상 프로세서를 재할당하는 것을 특징으로 하는 가상 프로세서 관리 장치.
  16. 제 14 항에 있어서, 상기 가상화 관리부는,
    상기 실제 프로세서들 중 어느 하나가 상기 실시간 프로세서이면, 상기 비실시간 프로세서들에서 상기 가상 프로세서들의 점유율을 파악하고, 상기 가상 프로세서들에서 상기 점유율이 최저인 어느 하나를 상기 실시간 프로세서에 재할당하는 것을 특징으로 하는 가상 프로세서 관리 장치.
  17. 제 14 항에 있어서, 상기 가상화 관리부는,
    상기 비실시간 프로세서로부터 상기 가상 프로세서들 중 어느 하나가 추가되어 재할당되면, 상기 실시간 프로세서에서 상기 할당된 가상 프로세서 보다 낮도록 상기 재할당된 가상 프로세서에 우선 순위를 결정하는 것을 특징으로 하는 가상 프로세서 관리 장치.
  18. 제 10 항에 있어서, 상기 가상화 관리부는,
    상기 사용률이 임계치를 초과하면, 상기 가상 프로세서들을 유지시키는 것을 특징으로 하는 가상 프로세서 관리 장치.
KR1020090093696A 2009-10-01 2009-10-01 가상 프로세서 관리 장치 및 방법 KR101644569B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090093696A KR101644569B1 (ko) 2009-10-01 2009-10-01 가상 프로세서 관리 장치 및 방법
US12/896,503 US9274852B2 (en) 2009-10-01 2010-10-01 Apparatus and method for managing virtual processing unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090093696A KR101644569B1 (ko) 2009-10-01 2009-10-01 가상 프로세서 관리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20110036172A KR20110036172A (ko) 2011-04-07
KR101644569B1 true KR101644569B1 (ko) 2016-08-01

Family

ID=43824148

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090093696A KR101644569B1 (ko) 2009-10-01 2009-10-01 가상 프로세서 관리 장치 및 방법

Country Status (2)

Country Link
US (1) US9274852B2 (ko)
KR (1) KR101644569B1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8594079B2 (en) * 2010-03-31 2013-11-26 Brocade Communications Systems, Inc. Network architecture with distribution of packet services to various switches
US9183030B2 (en) * 2011-04-27 2015-11-10 Microsoft Technology Licensing, Llc Virtual processor allocation techniques
US10187452B2 (en) 2012-08-23 2019-01-22 TidalScale, Inc. Hierarchical dynamic scheduling
JP6224244B2 (ja) 2013-08-13 2017-11-01 インテル コーポレイション 作業密度を増加させ、エネルギー効率を向上させるための電力バランシング
CN103870341A (zh) * 2014-03-12 2014-06-18 汉柏科技有限公司 一种调整虚拟机资源的方法和系统
US10002016B2 (en) * 2015-07-23 2018-06-19 Red Hat, Inc. Configuration of virtual machines in view of response time constraints
US10353736B2 (en) 2016-08-29 2019-07-16 TidalScale, Inc. Associating working sets and threads
US10095550B2 (en) * 2016-10-19 2018-10-09 International Business Machines Corporation Performance-based reallocating of logical processing units to sockets of a computer system
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
US10698392B2 (en) * 2018-06-22 2020-06-30 Applied Materials, Inc. Using graphics processing unit for substrate routing and throughput modeling
US10936467B2 (en) * 2019-04-11 2021-03-02 Dell Products L.P. Topology aware real time GPU-to-GPU traffic monitoring method and analyzing tools

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080244222A1 (en) 2007-03-30 2008-10-02 Intel Corporation Many-core processing using virtual processors

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6957435B2 (en) * 2001-04-19 2005-10-18 International Business Machines Corporation Method and apparatus for allocating processor resources in a logically partitioned computer system
US7428485B2 (en) * 2001-08-24 2008-09-23 International Business Machines Corporation System for yielding to a processor
US20050132362A1 (en) 2003-12-10 2005-06-16 Knauerhase Robert C. Virtual machine management using activity information
US7748003B2 (en) * 2004-12-20 2010-06-29 International Business Machines Corporation Hard real-time response
JP2008533564A (ja) * 2005-02-24 2008-08-21 ゼラウンド システムズ リミテッド データ管理のための方法および装置
US7607129B2 (en) 2005-04-07 2009-10-20 International Business Machines Corporation Method and apparatus for using virtual machine technology for managing parallel communicating applications
US7734833B2 (en) * 2005-09-08 2010-06-08 International Business Machines Corporation Method for scheduling operations called by a task on a real-time or non-real time processor
US20070204266A1 (en) * 2006-02-28 2007-08-30 International Business Machines Corporation Systems and methods for dynamically managing virtual machines
JP5221157B2 (ja) * 2008-02-04 2013-06-26 株式会社日立製作所 コンピュータシステム及び物理ディスク回収方法
US8302102B2 (en) * 2008-02-27 2012-10-30 International Business Machines Corporation System utilization through dedicated uncapped partitions
US8892916B2 (en) * 2008-08-06 2014-11-18 International Business Machines Corporation Dynamic core pool management
JP2010108409A (ja) * 2008-10-31 2010-05-13 Hitachi Ltd ストレージ管理方法及び管理サーバ
US8930953B2 (en) * 2009-01-16 2015-01-06 International Business Machines Corporation Dynamic checking of hardware resources for virtual environments
US8694638B2 (en) * 2009-06-29 2014-04-08 Red Hat Israel Selecting a host from a host cluster to run a virtual machine

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080244222A1 (en) 2007-03-30 2008-10-02 Intel Corporation Many-core processing using virtual processors

Also Published As

Publication number Publication date
US9274852B2 (en) 2016-03-01
KR20110036172A (ko) 2011-04-07
US20110083134A1 (en) 2011-04-07

Similar Documents

Publication Publication Date Title
KR101644569B1 (ko) 가상 프로세서 관리 장치 및 방법
CN107066332B (zh) 分布式系统及其调度方法和调度装置
US9146761B2 (en) Virtualization system and resource allocation method thereof
KR101733117B1 (ko) 멀티코어 시스템의 태스크 분배 방법 및 장치
US7748005B2 (en) System and method for allocating a plurality of resources between a plurality of computing domains
JP4112420B2 (ja) 重みを使用してアプリケーションにシステム資源を割当てる方法およびシステム
WO2018113472A1 (zh) 资源的调度方法和服务器
US20110099403A1 (en) Server management apparatus and server management method
KR101113943B1 (ko) 워크로드 관리 방법과 장치 및 이를 이용한 분산 컴퓨팅 시스템
Adhikary et al. Energy-efficient scheduling algorithms for data center resources in cloud computing
CN112269641A (zh) 一种调度方法、装置、电子设备及存储介质
JP2007272263A (ja) 計算機の管理方法、計算機システム、及び管理プログラム
KR20170116439A (ko) 태스크 스케줄링 방법 및 장치
CN104142860A (zh) 应用服务系统的资源调整方法与装置
Song et al. A service-oriented priority-based resource scheduling scheme for virtualized utility computing
TWI693548B (zh) 動態調整多核心處理器的任務負載配置的裝置以及方法
KR20110075295A (ko) 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
KR102016683B1 (ko) 소프트웨어 정의 네트워크의 모니터링 기능 자원 자율 스케일링 장치 및 방법
JP2016126562A (ja) 情報処理システム、管理装置、及び情報処理システムの制御方法
US20100235669A1 (en) Memory power consumption reduction system, and method and program therefor
US20090183166A1 (en) Algorithm to share physical processors to maximize processor cache usage and topologies
Seth et al. Dynamic threshold-based dynamic resource allocation using multiple VM migration for cloud computing systems
CN107203256B (zh) 一种网络功能虚拟化场景下的节能分配方法与装置
KR101557995B1 (ko) 다중 운영체제를 지원하는 단말기 및 그 단말기에 대한시스템 자원 할당 방법
CN111104203B (zh) 虚拟机分散调度方法、装置以及电子设备、存储介质

Legal Events

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