KR102672580B1 - 비정상 이벤트에 대한 가상 머신의 처리 용량 증가 - Google Patents

비정상 이벤트에 대한 가상 머신의 처리 용량 증가 Download PDF

Info

Publication number
KR102672580B1
KR102672580B1 KR1020217023615A KR20217023615A KR102672580B1 KR 102672580 B1 KR102672580 B1 KR 102672580B1 KR 1020217023615 A KR1020217023615 A KR 1020217023615A KR 20217023615 A KR20217023615 A KR 20217023615A KR 102672580 B1 KR102672580 B1 KR 102672580B1
Authority
KR
South Korea
Prior art keywords
cores
partition
computer
core
processor
Prior art date
Application number
KR1020217023615A
Other languages
English (en)
Other versions
KR20210107099A (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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20210107099A publication Critical patent/KR20210107099A/ko
Application granted granted Critical
Publication of KR102672580B1 publication Critical patent/KR102672580B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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/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/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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/45591Monitoring or debugging support
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Power Sources (AREA)
  • Hardware Redundancy (AREA)

Abstract

 비정상 이벤트에 대한 가상 머신의 처리 용량 증가.
 시스템 및 관련 방법 은 데이터 처리 시스템(DPS) 내에 활성 상태의 제1 코어 및 초기에 비활성 상태인 제2 코어를 포함하는 프로세서 유닛들의 세트를 포함하는 컴퓨팅 자원들의 제1 세트를 제공한다. 상기 프로세서는 DPS 상에서 호스트 되는 파티션에 대해 상기 컴퓨팅 자원들의 제1세트를 할당한다. 상기 파티션은 상기 제2 코어가 활성화되기 전에 상기 제1코어를 사용하여 운영된다. 자원 관리자는 비정상 이벤트에 기초하여 처리 용량을 증가시키는 것에 대해서 결정한다. 그런 다음 상기 프로세서는 비활성 상태에서 활성 상태로 상기 제2코어를 활성화한다. 그런 다음 상기 파티션은 상기 제1 및 제2 코어(활성화됨) 모두를 사용하여 운영된다. 미리 정의된 기준에 응답하여 상기 제2 코어는 활성 상태에서 비활성 상태로 비활성화된다.

Description

비정상 이벤트에 대한 가상 머신의 처리 용량 증가
[0001] 본 명세서에 개시된 본 발명은 비정상적인 이벤트가 발생할 때 데이터 처리 시스템의 대응 파티션들 상에서 실행하는 하나 또는 그 이상의 가상 머신들의 처리 용량을 동적으로 증가시키기 위한 데이터 처리 시스템이다. 
[0002] 조직들은 일반적으로 제품 제조, 서비스 수행, 내부 활동 및 기타 적합한 업무처리에 네트워크 데이터 처리 시스템을 사용한다. 일부 조직들은 하드웨어와 소프트웨어가 조직에서 소유 및 유지 관리되는 네트워크 데이터 처리 시스템을 사용한다. 이러한 유형의 네트워크 데이터 처리 시스템들은 근거리 통신망, 광역 통신망 및 기타 적절한 형태를 취할 수 있다. 이러한 유형의 네트워크는 조직에 자원을 유지 관리해야 하는 부담을 준다. 일부 조직들은 네트워크 데이터 처리 시스템의 유지 관리를 아웃소싱 할 수 있다. 다른 조직들은 하드웨어 및 소프트웨어를 갖추고 제3자에 의해서 유지 관리될 수 있는 네트워크 데이터 처리 시스템을 사용할 수도 있다. 이러한 유형의 조직에서는 조직은 컴퓨터 시스템을 사용하여 네트워크 데이터 처리 시스템에 액세스한다. 이러한 유형의 아키텍처를 사용하면 조직이 사용하고 유지하기 위한 하드웨어는 줄어들게 된다.
[0003] 이러한 유형의 네트워크 데이터 처리 시스템은 클라우드라 고 할 수 있다. 클라우드 환경에서, 클라우드는 종종 인터넷을 통해 액세스되고, 조직은 인터넷에서 컴퓨터나 간단한 네트워크 데이터 처리 시스템을 사용하여 이러한 자원들에 액세스한다. 또한 클라우드를 사용하면, 조직에 제공되는 컴퓨팅 자원들의 수는 동적으로 변경될 수 있다. 예를 들어, 조직에서 더 많은 컴퓨팅 자원들이 필요하면 그 조직은 이들 컴퓨팅 자원들을 요청할 수 있다. 
[0004] 그 결과, 클라우드를 사용하는 조직들은 하드웨어와 소프트웨어를 소유하지 않는다.  또한, 이러한 조직들은 컴퓨팅 자원들의 유지 관리를 위한 자본 지출 및 비용을 피한다. 이들 조직들은 사용된 컴퓨팅 자원들에 대해 비용을 지불한다. 이들 조직들은, 실제 처리 시간 및 저장 공간 또는 기타 자원들의 사용과 같은, 실제로 사용된 자원들을 기초로 지불할 수 있다. 이들 조직들은 또한 정기적으로 고정된 양의 컴퓨팅 자원들에 대해 비용을 지불할 수 있다. 예를 들어, 조직은 선택된 양의 스토리지 및 처리 능력에 대해 월단위로 비용을 지불할 수 있다. 이 사용법은 전기나 가스와 같은 자원들과 유사하다. 
[0005] 본 발명은 클라우드 컴퓨팅에 대한 상세한 설명을 포함하지만, 본 명세서에 언급된 발명들의 구현은 클라우드 컴퓨팅 환경에 한정되지 않는다. 오히려, 실시예들은 현재 알려져 있거나 나중에 개발될 임의의 다른 유형의 컴퓨팅 환경과 함께 구현될 수 있다.
[0006] 하나 또는 그 이상의 실시 예들에 따르면, 컴퓨터 구현 방법은, 데이터 처리 시스템(DPS) 내에서, 프로세서 유닛들의 세트(a set of processor units)를 포함하는 컴퓨팅 자원들의 제1 세트(a first set of computing resources)를 제공하기(providing) 위해 프로세서를 사용하는 것을 포함한다. 상기 프로세서 유닛들의 세트는 활성 상태의(in an active state)하나 또는 그 이상의 제1 코어들(one or more first cores)및 초기에 비활성 상태인 하나 또는 그 이상의 제2 코어들을 포함한다. 상기 하나 또는 그 이상의 제2 코어들은, 비활성 상태에 있는 동안(while in the inactive state), 상기 프로세서 유닛들의 세트 내에 이미 존재하는(pre-existing)잠재 CPU 용량(LCC)(latent CPU capacity (LCC))을 나타낸다. 상기 프로세서는, DPS에서 호스트 되는(hosted) 파티션(a partition)에 대해서, 활성 상태에 있는 상기 하나 또는 그 이상의 제1 코어들을 갖는 상기 프로세서 유닛들의 세트를 포함하는 상기 컴퓨팅 자원들의 제1 세트를 할당한다(allocate). 상기 파티션은, 상기 하나 또는 그 이상의 제2 코어들이 활성화되기 전에 상기 하나 또는 그 이상의 제1 코어들을 사용하여, 운영된다(operated). 자원 관리자(a resource manager)는, 비정상 이벤트 발생에(on an occurrence of an abnormal event) 기초하여 LCC를 활용하는 상기 파티션에 대해 처리 용량(processing capacity)을 증가시킬지 여부를, 결정한다(determine). 상기 증가를 결정하는 것에 응답하여, 상기 프로세서는, 비활성 상태에서 활성 상태로 상기 하나 또는 그 이상의 제2 코어들을, 활성화한다(activate). 그 다음, 상기 파티션은, 상기 하나 또는 그 이상의 제2 코어들이 활성화된 후 상기 하나 또는 그 이상의 제1 코어들과 상기 하나 또는 그 이상의 제2 코어들 모두 사용하여, 운영된다. 미리 정의된 기준(a predefined criterion)에 응답하여, 상기 하나 또는 그 이상의 제2 코어들은, 활성 상태에서 비활성 상태로, 비활성화된다 (deactivated).
[0007] 하나 또는 그 이상의 실시 예들에 따르면, 컴퓨터 구현 방법은, 데이터 처리 시스템(DPS) 내에서, 프로세서 유닛들의 세트(a set of processor units)를 포함하는 컴퓨팅 자원들의 제1 세트(a first set of computing resources)를 제공하기(providing) 위해 프로세서를 사용하는 것을 포함하고, 상기 프로세서 유닛들의 세트는 활성 상태의(in an active state)하나 또는 그 이상의 제1 코어들(one or more first cores)및 초기에 비활성 상태인 하나 또는 그 이상의 제2 코어들을 포함한다. 상기 하나 또는 그 이상의 제2 코어들은, 비활성 상태에 있는 동안(while in the inactive state), 상기 프로세서 유닛들의 세트 내에 이미 존재하는(pre-existing)잠재 CPU 용량(LCC)(latent CPU capacity (LCC))을 나타낸다. 상기 프로세서는, DPS에서 호스트 되는(hosted) 파티션(a partition)에 대해서, 활성 상태에 있는 상기 하나 또는 그 이상의 제1 코어들을 갖는 상기 프로세서 유닛들의 세트를 포함하는 상기 컴퓨팅 자원들의 제1 세트를 할당한다(allocate). 상기 파티션은, 상기 하나 또는 그 이상의 제2 코어들이 활성화되기 전에 상기 하나 또는 그 이상의 제1 코어들을 사용하여, 운영된다(operated). 자원 관리자(a resource manager)는, 비정상 이벤트 발생에(on an occurrence of an abnormal event) 기초하여 LCC를 활용하는 상기 파티션에 대해 처리 용량(processing capacity)을 증가시킬지 여부를, 결정한다(determine). 상기 증가를 결정하는 것에 응답하여, 상기 하나 또는 그 이상의 제2 코어들은, 비활성 상태에서 활성 상태로 활성화된다(activated). 그 다음, 상기 파티션은, 상기 하나 또는 그 이상의 제2 코어들이 활성화된 후 상기 하나 또는 그 이상의 제1 코어들과 상기 하나 또는 그 이상의 제2 코어들 모두를 사용하여, 운영된다. 미리 정의된 기준(a predefined criterion)에 응답하여, 상기 하나 또는 그 이상의 제2 코어들은, 활성 상태에서 비활성 상태로, 비활성화된다 (deactivated). 상기 프로세서는 상기 하나 또는 그 이상의 제2 코어들의 활성화 및 비활성화와 관련된 정보를 로그 하는 단계(logging), 트랙 하는 단계(tracking), 또는 감사하는 단계(auditing) 중의 적어도 하나를 수행한다.
[0008] 하나 또는 그 이상의 실시 예들에 따르면, 비정상 이벤트(an abnormal event)에 의해서 트리거된(triggered)가상 머신들의 증가된 처리 용량을 측정하고(measuring) 보고하는(reporting)컴퓨터-구현 방법은, 비정상 이벤트 발생에 의해서 트리거된 파티션에 대해 처리 용량을 증가시키기 위해, 추가의 자원(additional resource)이 상기 파티션에 대해서 적용되었음을 결정하기 위해, 프로세서를 사용하는 것을 포함한다. 그 다음, 상기 프로세서는 상기 추가 자원들의 적용 범위 및 기간(an extent and duration of the application)을 결정하고, 상기 추가 처리 자원들의 활성화 및 비활성화와 관련된 정보를 로그 하는 단계, 트랙 하는 단계, 또는 감사하는 단계 중의 적어도 하나를 수행한다.
[0009] 하나 또는 그 이상의 실시 예들에 따라, 컴퓨터 시스템이 비정상 이벤트에 대한 가상 머신들의 처리 용량을 증가시키기 위해 제공된다. 상기 컴퓨터 시스템은 명령들을 실행하도록 구성된 프로세서를 포함하고, 상기 명령들은, 상기 프로세서 상에서 실행되었을 때, 상기 프로세서가, 데이터 처리 시스템(DPS) 내에서, 프로세서 유닛들의 세트를 포함하는 컴퓨팅 자원들의 제1 세트를 제공하게 한다. 상기 프로세서 유닛들의 세트는 활성 상태의 하나 또는 그 이상의 제1 코어들 및 초기에 비활성 상태인 하나 또는 그 이상의 제2 코어들을 포함한다. 상기 하나 또는 그 이상의 제2 코어들은, 비활성 상태에 있는 동안, 상기 프로세서 유닛들의 세트 내에 이미 존재하는 잠재 CPU 용량(LCC)을 나타낸다. 상기 시스템은, DPS 상에서 호스트 되는 파티션에 대해서, 활성 상태에 있는 상기 하나 또는 그 이상의 제1 코어들을 갖는 상기 프로세서 유닛들의 세트를 포함하는 상기 컴퓨팅 자원들의 제1 세트를, 할당한다. 상기 시스템은, 상기 하나 또는 그 이상의 제2 코어들이 활성화되기 전에 상기 하나 또는 그 이상의 제1 코어들을 사용하여, 상기 파티션을 운영한다. 자원 관리자는, 비정상 이벤트 발생에 기초하여 LCC를 활용하는 상기 파티션에 대해 처리 용량을 증가시킬지 여부를 결정한다. 상기 시스템은, 상기 증가를 결정하는 동작에 응답하여, 비활성 상태에서 활성 상태로 상기 하나 또는 그 이상의 제2 코어들을 활성화하고, 상기 하나 또는 그 이상의 제2 코어들이 활성화된 후 상기 하나 또는 그 이상의 제1 코어들과 상기 하나 또는 그 이상의 제2 코어들 모두를 사용하여, 상기 파티션을 운영한다. 미리 정의된 기준에 응답하여, 상기 시스템은, 활성 상태에서 비활성 상태로 상기 하나 또는 그 이상의 제2 코어들을, 비활성화한다.
[0010] 하나 또는 그 이상의 실시 예들에 따르면, 컴퓨터 프로그램 제품은, 프로세서 상에서 실행되었을 때, 데이터 처리 시스템(DPS) 내에서, 제공하기 위해 구현된 컴퓨터-판독가능 프로그램 코드를 갖는 컴퓨터-판독가능 매체를 포함한다. 컴퓨팅 자원들의 제1 세트는 프로세서 유닛들의 세트를 포함하고, 상기 프로세서 유닛들의 세트는 활성 상태의 제1 코어 및 초기에 비활성 상태인 제2 코어를 포함한다. 상기 제2 코어는, 비활성 상태에 있는 동안, 상기 프로세서 유닛들의 세트 내에 이미 존재하는 잠재 CPU 용량(LCC)을 나타낸다. 상기 프로세서는, 상기 프로그램 코드를 사용하여, 데이터 처리 시스템(DPS) 상에서 호스트 되는 파티션에 대해서, 상기 프로세서 유닛들의 세트를 포함하는 상기 컴퓨팅 자원들의 제1 세트를 할당하고, 상기 제2 코어가 활성화되기 전에 상기 제1 코어를 사용하여, 상기 파티션을 운영한다. 상기 코드는, 자원 관리자로 하여금, 비정상 이벤트 발생에 기초하여 LCC를 활용하는 상기 파티션에 대해 처리 용량을 증가시키기 위한 증가 표시를 수신한다. 상기 코드는, 상기 증가 요청에 응답하여, 비활성 상태에서 활성 상태로 상기 제2 코어를 활성화하고, 상기 제2 코어가 활성화된 후 상기 제1 및 제2 코어 모두를 사용하여 상기 파티션을 운영하도록, 상기 프로세서에 지시한다. 상기 코드는, 미리 정의된 기준에 응답하여, 활성 상태에서 비활성 상태로 상기 제2 코어를 비활성화하도록, 상기 프로세서에 지시한다.
[0011] 추가적인 특징들 및 장점들은 본 발명의 기술을 통해 실현된다. 본 발명의 다른 실시예들 및 특징들은 본 명세서에 상세히 설명되어 있으며 청구된 발명의 일부로 간주된다.  본발명의 장점들과 특징들을 더 잘 이해하기 위해서는, 발명의 상세한 설명들과 도면들을 참조한다.
[0012] 다음의 발명의 상세한 설명은 첨부된 도면들을 참고하여 기술될 수 있고, 첨부된 도면들은 아래에서 직접적으로 간단하게 기술되고 다음에 더 상세하게 논의될 수 있다                 
 도 1은 본 발명의 일 실시예에 따른 클라우드 컴퓨팅 환경의 일 예를 나타내는 도면이다.
 도 2는 본 명세서에 개시된 하나 또는 그 이상의 실시 예들에 따른 추상화 모델 계층의 예의 도면이다.
 도 3은 본 명세서에 개시된 하나 또는 그 이상의 실시 예들에 따른 DPS의 블록도이다.
 도 4는 본 명세서에 개시된 하나 또는 그 이상의 실시 예들에 따른 자원 관리 환경의 블록도이다.
도 5는 본 명세서에 개시된 하나 또는 그 이상의 실시 예들에 따른 DPS의 자원 관리 모듈의 블록도이다.
도 6은 본 명세서에 개시된 하나 또는 그 이상의 실시 예들에 따른 DPS의 파티션 세트의 블록도이다.
 도 7은 본 명세서에 개시된 하나 또는 그 이상의 실시 예들에 따른 특정 이벤트 처리 동안 프로세서 코어들의 처리 용량을 증가시키기 위한 예시적인 방법의 플로 차트이다.
 도 8은 본 명세서에 개시된 하나 또는 그 이상의 실시 예들에 따른 특정 이벤트 처리 동안 프로세서 코어들의 처리 용량을 증가시키기 위한 다른 방법의 예의 플로 차트이다.
[0013] 여기서 개시된 본 발명의 하나 또는 그 이상의 실시 예들은 비정상 이벤트들(of abnormal events)의 검출에 뒤이어서 추가 컴퓨팅 자원들의 전달을 용이하게 할 수 있다. 통상적인 컴퓨팅 시스템들은 다양한 비정상 이벤트들에 뒤이어서 저하된 성능(degraded performance)을 제공한다. 저하된 성능은 또한 진단 정보의 수집, 하드웨어 및 소프트웨어 서비스 패치들의 적용, 그러한 비정상 이벤트들에 뒤따른 갱신들, 및 시스템 중단(a system outage)으로부터의 복구 등으로 인해 발생할 수 있다. 진단 정보 수집에는 덤프 및 추적(dumps and traces) 수집이 포함될 수 있다.  
[0014] 비정상 이벤트로부터의 복구하는 것도 또한, 예를 들어, 트리거된 IPL, 또는 컴퓨팅 시스템의 하나 또는 그 이상의 파티션들의 부팅 때문에 상당한 시간과 자원을 사용할 수 있다. 그러한 동작들(진단 정보 수집/복구)은 정상 운영 중에 통상적으로 예상되는 시스템 워크로드 이상의 워크로드를 포함할 수 있기 때문에 추가 시간이 요구될 수 있다.  이 외에도, 컴퓨팅 시스템의 성능은 초기 프로그램로드(부팅) 또는 예약된 갱신/패치 등과 같은 계획된 이벤트들 때문에 저하될 수 있다. 저하된 성능의 기간을 완화하기 위해 컴퓨팅 시스템에 추가의 컴퓨팅 자원들이 추가될 수 있고, 이는 시스템 중단에 뒤따라 또는 추가의 워크로드를 포함하는 예약된 동작들(the scheduled operations) 동안 성능을 증가시킬 수 있게 해 준다.
[0015] 다음의 정의들이 아래에서 사용된다: 
[0016] 다음의 약어들이 아래에서 사용될 수 있다:
[0017] 본 명세서는 클라우드 컴퓨팅에 관해서 상세한 설명들을 포함하지만, 여기서 설명된 그러한 내용들의 구현은 클라우드 컴퓨팅 환경에만 한정되는 것은 아님을 이해하여야 한다. 오히려, 본 발명의 실시 예들은 지금 알려져 있거나 또는 나중에 개발될 모든 다른 유형의 컴퓨팅 환경과 함께 구현될 수 있다[0018] 클라우드 컴퓨팅은, 최소한의 관리 노력 또는 서비스 제공자와의 상호작용으로 빠르게 제공되고 해제될 수 있는, 구성 가능한(configurable) 컴퓨팅 리소스들(예를 들어, 네트워크, 네트워크 대역폭, 서버, 처리, 메모리, 스토리지, 애플리케이션, 가상 머신들, 및 서비스)의 공유 풀에 대한 편리한 주문형(on-demand) 네트워크 액세스를 가능하게 하는 서비스 전달 모델이다. 이 클라우드 모델은 적어도 5가지의 특성(characteristics), 적어도 3가지 서비스 모델(service models), 및 적어도 4가지 배치 모델(deployment models)을 포함할 수 있다.
[0019] 클라우드 컴퓨팅 특성들은 다음과 같다:
주문형 셀프-서비스(On-demand self-service): 클라우드 소비자는, 서비스 제공자와의 인적 상호작용을 필요로 하지 않고 필요한 만큼 자동적으로, 서버 시간(server time) 및 네트워크 스토리지 같은 컴퓨팅 기능들을 일방적으로 제공(provision)할 수 있다.
광역 네트워크 액세스(Broad network access): 혼성의 씬 또는 씩 클라이언트 플랫폼들(heterogeneous thin or thick client platforms)(예를 들어, 모바일폰, 랩탑, 및 PDA)에 의한 사용을 장려하는 표준 메커니즘들을 통해 액세스되는 기능들을 네트워크를 통해서 이용할 수 있다.
리소스 풀링(Resource pooling): 제공자의 컴퓨팅 리소스들은 멀티-테넌트 모델(a multi-tenant model)을 이용하여, 각기 다른 물리적 및 가상 리소스들을 요구(demand)에 따라 동적으로 할당 및 재할당하면서, 다수의 소비자들에게 서비스할 수 있도록 풀에 넣어둔다(pooled). 소비자는 일반적으로 제공된 리소스들의 정확한 위치를 제어할 수 없거나 그에 대한 지식이 없지만 더 높은 추상 수준에서(예를 들어, 국가, 주, 또는 데이터센터) 위치를 명시할 수 있다는 점에서 위치 독립성이 있다.
기민한 탄력성(Rapid elasticity): 용량들(capabilities)이 기민하게 탄력적으로 제공되어 (어떤 경우엔 자동으로) 신속히 규모를 확장할 수도 있고(scale out) 그리고 탄력적으로 해제되어 신속히 규모를 축소할 수도 있다(scale in). 소비자에게 제공할 수 있는 가능성이 종종 무제한이고 언제든지 얼마든지 구매할 수 있는 것처럼 보인다.
측정 가능한 서비스(Measured service): 클라우드 시스템은 리소스 사용을 자동으로 제어하고 최적화하는데, 서비스의 유형(예를 들어, 스토리지, 처리, 대역폭, 및 활성 사용자 계정)에 적절한 추상화 수준에서(at some level of abstraction) 계측 기능을 이용하여서 그렇게 한다. 리소스 사용량은 모니터되고, 제어되고, 그리고 보고될 수 있으며 이로써 이용하는 서비스의 제공자와 사용자 모두에게 투명성을 제공한다.
[0020] 서비스 모델들(Service Models)은 다음과 같다:
소프트웨어 서비스(Software as a Service)(SaaS): 소비자에게 제공되는 서비스는 클라우드 인프라스트럭처 상에서 실행되는 제공자의 애플리케이션들을 사용하게 해주는 것이다. 애플리케이션들은 웹 브라우저(예를 들어, 웹기반 이메일) 같은 씬(thin) 클라이언트 인터페이스를 통해 여러 클라이언트 장치들에서 액세스 가능하다. 소비자는 네트워크, 서버, 운영체제, 스토리지, 또는 개별 애플리케이션 성능을 포함하는 하부 클라우드 인프라스트럭처를 관리하거나 제어하지 않는다. 단, 제한된 사용자-특화 애플리케이션 구성 세팅들은 예외로서 가능하다.
플랫폼 서비스(Platform as a Service)(PaaS): 소비자에게 제공되는 서비스는 제공자에 의해 지원되는 프로그래밍 언어들 및 도구들을 이용하여 생성된 소비자-생성 또는 획득 애플리케이션들을 클라우드 인프라스트럭처에 배치하게 해주는 것이다. 소비자는 네트워크, 서버, 운영체제, 또는 스토리지를 포함하는 하부 클라우드 인프라스트럭처를 관리하거나 제어하지 않는다. 그러나 배치된 애플리케이션들에 대해서 그리고 가능한 경우 애플리케이션 호스팅 환경 구성들에 대해서 제어할 수 있다.
인프라스트럭처 서비스(Infrastructure as a Service)(IaaS): 소비자에게 제공되는 서비스는 처리, 스토리지, 네트워크, 및 기타 기본 컴퓨팅 리소스들을 제공하여 주는 것이며, 여기서 소비자는 임의의 소프트웨어를 배치 및 실행할 수 있고, 이 소프트웨어에는 운영체제와 애플리케이션들이 포함될 수 있다. 소비자는 하부 클라우드 인프라스트럭처를 관리하거나 제어하지 않지만, 운영체제, 스토리지, 배치된 애플리케이션들, 및 가능한 경우 선택된 네트워킹 컴포넌트들의 제한적인 제어(예를 들어, 호스트 방화벽들)에 대하여 제어할 수 있다.
[0021] 배치 모델들(Deployment Models)은 다음과 같다:
사설 클라우드(Private cloud): 클라우드 인프라스트럭처는 오직 한 조직(an organization)을 위해서 운영되고, 그 조직 또는 제3자에 의해 관리될 수 있으며 옥내(on-premises) 또는 옥외(on-premises)에 위치할 수 있다.
커뮤니티 클라우드(Community cloud): 클라우드 인프라스트럭처는 여러 조직들에 의해 공유되고 관심사(예를 들어, 선교, 보안 요건, 정책, 및 규정 준수 심사)를 공유하는 특정 커뮤니티를 지원하며, 여러 조직들 또는 제3자에 의해 관리될 수 있으며 옥내(on-premises) 또는 옥외(on-premises)에 위치할 수 있다.
공공 클라우드(Public cloud): 클라우드 인프라스트럭처는 일반 대중 또는 대규모 산업 집단에서 이용할 수 있으며 클라우드 서비스를 판매하는 조직이 소유한다.
하이브리드 클라우드(Hybrid cloud): 클라우드 인프라스트럭처는 둘 또는 그 이상의 클라우드들(사설, 커뮤니티, 또는 공공)이 혼합된 구성이며, 이들은 고유한 독립체들로 있지만 데이터 및 애플리케이션 이식가능성(portability)을 가능하게 해주는 표준화된 또는 소유권 있는 기술(예를 들어, 클라우드들 사이의 부하 균형을 위한 클라우드 버스팅(cloud bursting))에 의해 서로 결합되어 있다.
[0022] 클라우드 컴퓨팅 환경은 무국적(statelessness), 낮은 결합(low coupling), 모듈 방식(modularity), 및 의미적 상호운용성(semantic interoperability)에 집중하는 서비스를 지향한다. 클라우드 컴퓨팅의 중심에는 상호 연결된 노드들의 네트워크를 포함하는 인프라스트럭처가 있다.
[0023] 이제 도 1을 참조하면, 예시적인 클라우드 컴퓨팅 환경(50)이 도시된다. 도시된 바와 같이, 클라우드 컴퓨팅 환경(50)은 하나 또는 그 이상의 클라우드 컴퓨팅 노드들(10)을 포함하며, 이들은 예를 들어 개인 휴대 정보 단말기(PDA) 또는 휴대폰(54A), 데스크탑 컴퓨터(54B), 랩탑 컴퓨터(54C), 및/또는 자동차용 컴퓨터 시스템(54N)과 통신할 수 있다. 노드들(10)은 서로 통신할 수 있다. 이들은 여기에 기술된 바와 같은 사설, 커뮤니티, 공공, 또는 하이브리드 클라우드들 또는 이들의 조합 등의 하나 또는 그 이상의 네트워크들에서 물리적으로 또는 가상으로 그룹화될 수 있다(도시되지 않음). 이것은 클라우드 소비자가 로컬 컴퓨팅 장치 상에 리소스들을 유지할 필요가 없게 클라우드 컴퓨팅 환경(50)이 인프라스트럭처, 플랫폼들 및/또는 소프트웨어를 서비스로서 제공할 수 있게 해준다. 도 1에 도시된 컴퓨팅 장치들(54A-N)의 유형들은 단지 예시의 목적으로 기술한 것이며 컴퓨팅 노드들(10)과 클라우드 컴퓨팅 환경(50)은 모든 유형의 네트워크 및/또는 네트워크 주소지정가능 연결을 통해서 (예를 들어, 웹 브라우저를 사용하여) 모든 유형의 컴퓨터화된 장치와 통신할 수 있다는 것을 이해해야 한다.
[0024] 이제 도 2를 참조하면, 클라우드 컴퓨팅 환경(50)(도 1)에 의해 제공되는 일 세트의 기능별 추상화 계층들이 도시된다. 도 2에 도시된 컴포넌트들, 계층들, 및 기능들은 단지 예시의 목적이며 본 발명의 바람직한 실시 예들은 이것에 한정되지 않는다는 것을 미리 이해해야 한다. 도시된 바와 같이, 다음의 계층들과 그에 대응하는 기능들이 제공된다:
하드웨어 및 소프트웨어 계층(60)은 하드웨어 및 소프트웨어 컴포넌트들을 포함한다. 하드웨어 컴포넌트들의 예들에는: 메인프레임들(61); RISC(Reduced Instruction Set Computer) 아키텍처 기반 서버들(62); 서버들(63); 블레이드 서버들(64); 스토리지 디바이스들(65); 그리고 네트워크 및 네트워킹 컴포넌트들(66)이 포함된다. 일부 실시 예들에서, 소프트웨어 컴포넌트들은 네트워크 애플리케이션 서버 소프트웨어(67) 및 데이터베이스 소프트웨어(68)를 포함한다.
가상화 계층(70)은 추상화 계층을 제공하며 이로부터 다음의 가상 실체들의 예들이 제공될 수 있다: 가상 서버들(71); 가상 스토리지(72); 가상 사설 네트워크를 포함하는, 가상 네트워크들(73); 가상 애플리케이션들 및 운영체제들(74); 및 가상 클라이언트들(75).
[0025] 한 예에서, 관리 계층(80)은 아래에 기술하는 기능들을 제공한다. 리소스 제공(Resource provisioning)(81)은 클라우드 컴퓨팅 환경 내에서 작업들을 수행하는 데 이용되는 컴퓨팅 리소스들 및 기타 리소스들의 동적 조달을 제공한다. 계측 및 가격 책정(Metering and Pricing)(82)은 리소스들이 클라우드 컴퓨팅 환경 내에서 이용될 때 비용 추적, 및 이 리소스들의 소비에 대한 요금 청구를 제공한다. 한 예에서, 이 리소스들은 애플리케이션 소프트웨어 라이센스를 포함할 수 있다. 보안(Security)은 데이터 및 기타 리소스들뿐 아니라 클라우드 소비자들과 작업들에 대한 신원 확인을 제공한다. 사용자 포털(User portal)(83)은 소비자들 및 시스템 관리자들에게 클라우드 컴퓨팅 환경에 대한 액세스를 제공한다. 서비스 수준 관리(Service level management)(84)는 요구되는 서비스 수준이 충족되도록 클라우드 컴퓨팅 리소스 할당 및 관리를 제공한다. 서비스 수준 협약서(SLA) 기획 및 충족(planning and fulfillment)(85)은 SLA에 부합하는 예상되는 미래 요건에 맞는 클라우드 컴퓨팅 리소스들의 사전-배치(pre-arrangement) 및 조달(procurement)을 제공한다.
[0026] 워크로드 계층(90)은 클라우드 컴퓨팅 환경이 이용될 수 있는 기능들의 예들을 제공한다. 이 계층에서 제공될 수 있는 워크로드들과 기능들의 예들은 다음과 같다: 맵핑 및 네비게이션(91); 소프트웨어 개발 및 라이프사이클 관리(92); 가상 교실 교육 전달(93); 데이터 분석 처리(94); 트랜잭션 처리(95); 및 압축/압축해제 처리(96).
[0027] 도 3은 하나 또는 그 이상의 본 발명의 실시 예들에 따른 예시적인 DPS의 블록도이다.  DPS는 클라우드 컴퓨팅 노드(10)로서 사용될 수 있다. 이 예시적인 예에서, DPS(100)는 프로세서 유닛(104), 메모리(106), 영구 스토리지(108), 통신 유닛(110), I/O 유닛(112), 및 디스플레이(114) 사이 통신들을 제공할 수 있는 통신 버스(102)를 포함할 수 있다. 
[0028] 프로세서 유닛(104)은 메모리(106)로 로드 될 수 있는 소프트웨어를 위한 명령들을 실행하는 역할을 수행한다.  프로세서 유닛(104)은, 특정 구현에 따라서, 다수의 프로세서들, 멀티-프로세서 코어, 또는 기타 유형의 프로세서일 수 있다. 여기서 사용되는, 하나의 항목을 참조하는 하나의 번호는 하나 또는 그 이상의 항목들을 의미한다. 또한, 프로세서 유닛(104)은 메인 프로세서가 단일 칩 상에 보조 프로세서들과 함께 존재하는 다수의 이종(heterogeneous) 프로세서 시스템들을 사용하여 구현될 수 있다. 다른 예시적인 예로서, 프로세서 유닛(104)은 동일한 유형의 다수 프로세서들을 포함하는 대칭 멀티-프로세서 시스템일 수도 있다.                 
[0029] 메모리(106)와 영구 스토리지(108)는 스토리지 디바이스들(116)의 예들이다. 스토리지 디바이스는 정보를 저장할 능력이 있는 모든 하드웨어가 될 수 있고, 스토리지 디바이스에 저장될 수 있는 정보는, 예를 들어, 일시적 및/또는 영구적으로 저장되는 데이터, 함수적 형태의 프로그램 코드, 및/또는 기타 적합한 정보이며, 이에 한정되지 않는다. 이들 예들에서, 메모리(106)는, 예를 들어, 랜덤 액세스 메모리 또는 모든 기타 적절한 휘발성 또는 비휘발성 스토리지 디바이스일 수 있다. 영구 스토리지(108)는 특정 구현에 따라 다양한 형태를 취할 수 있다.   
[0030] 예를 들면, 영구 스토리지(108)는 하나 또는 그 이상의 컴포너트들 또는 디바이스들을 포함할 수 있다. 예를 들어, 영구 스토리지(108)는 하드 드라이브, 플래시 메모리, 재기록 가능한 광 디스크, 재기록 가능한 자기 테이프, 또는 이들의 일부 조합일 수 있다. 영구 스토리지(108)에 의해 사용되는 미디어는 또한 제거 가능하다. 예를 들어, 영구 스토리지(108)에 제거 가능한 하드 드라이브가 사용될 수 있다.  
[0031] 이들 실시 예에서, 통신 유닛 (110)은 다른 DPSS들 또는 디바이스들과의 통신을 제공할 수 있다. 이러한 예들에서, 통신 유닛(110)은 네트워크 인터페이스 카드이다. 통신 유닛(110)은 물리적 및 무선 통신 링크 중 하나 또는 둘 다를 사용하여 통신을 제공할 수 있다. 
[0032] 입력/출력 유닛(112)은 DPS (100)에 접속될 수 있는 다른 디바이스들에 데이터의 입력 및 출력을 허용할 수 있다. 예를 들어, 입력/출력 유닛(112)은 키보드, 마우스 및/또는 기타 적절한 입력 디바이스를 통해 사용자 입력에 대한 연결을 제공할 수 있다.  또한, 입력/출력 유닛(112)은 출력을 프린터로 보낼 수 있다. 디스플레이(114)는 사용자에게 정보를 디스플레이하기 위한 메커니즘을 제공할 수 있다.   
[0033] 운영 체제, 애플리케이션들 및/또는 프로그램들의 명령들은, 통신 버스 (102)를 통해 프로세서(104)와 통신하는, 스토리지 디바이스들(116)에 위치할 수 있다. 이 예시적 예들에서, 상기 명령들은 영구 스토리지(108)에 함수적 형태로(in a functional form) 저장된다. 이러한 명령들은 프로세서 유닛(104)에 의해서 실행을 위해 메모리(106)에 로드 될 수 있다. 다른 실시예들의 프로세스들도, 메모리(106)와 같은, 메모리에 위치할 수 있는, 컴퓨터 구현 명령들을 사용하여 프로세서 유닛(104)에 의해서 수행될 수 있다.  
[0034] 이러한 명령들은 프로세서 유닛 (104)의 프로세서에 의해서 판독되고 실행될 수 있는 프로그램 코드, 컴퓨터 사용 가능 프로그램 코드 또는 컴퓨터 판독 가능 프로그램 코드라고도 한다. 다른 실시 예들에서 프로그램 코드는, 메모리(106) 또는 영구 스토리지(108)와 같은, 물리적 또는 유형의 컴퓨터 판독 가능 매체 상에 구현될 수 있다.   
[0035] 프로그램 코드 (118)는 선택적으로 제거 가능한 컴퓨터 판독 가능 매체 (120)에 함수적 형태(a functional form)로 위치할 수 있고 프로세서 유닛 (104)에 의한 실행을 위해 DPS (100)에 로드 되거나 또는 전송될 수 있다. 이러한 예들에서, 프로그램 코드 (118) 및 컴퓨터 판독 가능 매체(120)는 컴퓨터 프로그램 제품(122)을 형성할 수 있다. 일 예에서, 컴퓨터 판독 가능 매체(120)는 컴퓨터 판독 가능 스토리지 매체(124) 또는 컴퓨터 판독 가능 신호 매체(126)일 수 있다. 컴퓨터 판독 가능 스토리지 매체(124)는, 예를 들어, 영구 스토리지(108)의 일부인, 하드 드라이브와 같은, 스토리지 디바이스로 전송하기 위한 영구 스토리지(108)의 일부인 드라이브 또는 다른 디바이스에 삽입되거나 배치되는 광학 또는 자기 디스크를 포함할 수 있다. 컴퓨터 판독 가능 스토리지 매체(124)는 또한, DPS(100)에 연결된, 하드 드라이브, 드라이브, 썸 드라이브, 또는 플래시 메모리와 같은, 영구 스토리지의 형태를 취할 수 있다. 일부 예들에서, 컴퓨터 판독 가능 스토리지 매체(124)는 DPS(100)로부터 제거 가능하지 않을 수 있다. 이러한 예시적인 예들에서, 컴퓨터 판독 가능 스토리지 매체(124)는 비-일시적 컴퓨터 판독 가능 스토리지 매체이다.    
[0036] 선택적으로, 프로그램 코드(118)는 컴퓨터 판독 가능 신호 매체(126)를 사용하여 DPS(100)에 전송될 수 있다. 컴퓨터 판독 가능 신호 매체(126)는, 예를 들어, 프로그램 코드(118)를 포함하는 전파된 데이터 신호가 될 수 있다 예를 들어, 컴퓨터 판독가능 신호 매체(126)는 전자기 신호, 광학 신호, 및/또는 기타 적절한 유형의 신호일 수 있다. 이러한 신호들은, 무선 통신 링크들, 광섬유 케이블, 동축 케이블, 유선 및/또는 기타 적절한 유형의 통신 링크와 같은, 통신 링크들을 통해 전송될 수 있다. 다시 말해서, 통신 링크 및/또는 연결은 예시적인 예들에서 물리적 또는 무선일 수 있다.     
[0037] 몇몇 예시적인 실시 예들에서, 프로그램 코드(118)는 DPS(100) 내에서 사용하기위한 컴퓨터 판독 가능한 신호 매체(126)를 통해 다른 디바이스 또는 DPS로부터 영구 스토리지 디바이스(108)로 네트워크를 통해 다운로드 될 수 있다. 예를 들어, 서버 DPS의 컴퓨터 판독 가능 저장 매체에 저장된 프로그램 코드는 상기 서버로부터 DPS(100)로 네트워크를 통해 다운로드 될 수 있다. 프로그램 코드(118)를 제공하는 DPS는 서버 컴퓨터, 클라이언트 컴퓨터, 또는 프로그램을 저장하고 전송할 수 있는 다른 디바이스일 수 있다. 
[0038] DPS(100)를 위해서 도시된 다른 컴포넌트들은 다른 실시 예들이 구현될 수 있는 방식에 대한 아키텍처적인 제한들을 제공하려고 의도한 것은 아니다. 다른 예시적인 실시예들이 DPS(100)에 대해 예시된 것에 추가로 또는 대신하여 컴포넌트들을 포함하는 DPS에서 구현될 수 있다. 도 1은 도시된 기타 컴포넌트들은 예시적인 예들과 다를 수 있다.
[0039] 도 4를 참조하면, 예시적인 자원 관리 환경의 블록도가 본 발명의 하나 또는 그 이상의 실시예들에 따라 도시된다. 자원 관리 환경(200)은 예시적인 실시예가 구현될 수 있는 환경의 예이다. 예시적인 실시예 자원 관리 환경(200)은, 예를 들어, 서버일 수 있는 다수의 DPS(202a-202c)(집합적으로 또는 예로서 참조 번호 202로 참조될 수 있음)를 포함하는 서버 클러스터에서 구현될 수 있다. DPS들(202)은 DPS(100)의 구현의 예일 수 있다. 예시에서, DPS 블록들 중 하나에 대해서만 세부사항이 도시되지만, 다른 DPS들(202)도 유사한 아키텍처를 포함할 수 있다.  또한, 도 4에는 3개의 DPS 블록들(202)만이 도시되어 있지만, 다른 예들에서는, 자원 관리 환경(200)은 임의의 다른 수의 DPS들을 포함할 수 있다.      
[0040] DPS들(202)의 각각은 자원 관리자(203)와 자원들의 세트(206)를 포함할 수 있다. 하나 또는 그 이상의 자원들(206)을 관리한다. 또한, 자원 관리자(203)는 다른 DPS들 사이에서 추가의 컴퓨팅 자원들을 제공하거나/ 수신하기 위해 자원관리환경(200) 내 다른 DPS들(202)의 대응하는 자원 관리 모듈과 통신할 수 있다. 자원 관리자(203)는 도면들에서 단일의 블록으로 예시되었지만, 그 기능의 다양한 부분들이 전체 자원 관리 환경(200)에 걸쳐 분산될 수 있다.
[0041] 자원들의 세트(206)는 DPS (202) 내의 하나 또는 그 이상의 컴퓨팅 자원들을 일 수 있다. 예를 들어, 자원들의 세트(206)는 디바이스들(208)을 포함할 수 있다. 디바이스들(208)은 어떤 수의 다른 디바이스들도 포함할 수 있는데, 이들에는, 예를 들어, 프로세서 유닛(104), 메모리(106), 영구 스토리지(108), 통신 유닛(110), 입/출력(I/O) 유닛(112), 및 디스플레이(114)가 포함될 수 있다. 디바이스들(208)은 또한 DPS(202) 외부에 있는 디바이스들도 포함할 수 있다. 예를 들어, 디바이스들(208)은 범용 직렬 버스(USB) 또는 다른 적절한 커넥터에 의해 연결된 카메라 또는 외부 스토리지 디바이스와 같은, DPS에 연결된 디바이스들을 포함할 수 있다.      
[0042] 여러 가지 예시적인 실시 예에서, 자원 관리 프로세스 (204)는 증가된 자원들에 대한 요청 (210)을 수신할 수 있다. 자원 관리 프로세스(204)는 도 4에 도시된 바와 같이 사용자 인터페이스(214)를 통해 사용자로부터 요청(210)을 수신할 수 있다. 그러나, 자원 관리 프로세스(204)는 또한 자원 관리 환경(200)의 일부를 형성하는 다른 엔티티로부터 요청(210)을 수신할 수도 있다. 도 5를 참조하면, 요청(210)은 자원 관리자와 상호작용하는 하이퍼바이저(330)로부터 올 수 있다. 도 6을 참조하면, 요청(210)은 또한 파티션(414a)의 운영 체제(430), 또는 파티션 내에서 실행되고 파티션 메모리(418)를 활용하는 애플리케이션(435)으로부터 올 수 있다. 도면들에는 예시되지 않았더라도. 일부 실시 예들에서, 요청(210)은 자원 관리자(203)에 의해 수신된 실제 통신을 기술적으로 포함 하지는 않을 수 있지만, 자원 관리자(203) 내에 포함된 로직에 기초한 "추론된 요청(inferred request)" 이 될 수 있고, 이용 가능한 자원 관리 환경(200)의 다양한 자원의 정보에 대해 액세스 할 수도 있다. 다시 말해서, "추론된 요청"은 자원 관리자(203)가 일부의 필요한(그러나 명시적으로 요청되지 않은) 자원에 관하여 스스로 내리는 결정으로 여기서는 해석될 수 있다. 본 명세서에서 사용된 "요청"(210)이라는 용어의 사용은 단순화를 위해 그러한 "추론된 요청"을 포함할 수 있다. 추론된 요청은 또한 증가 표시(an increase indication)로 해석될 수 있다(즉, 증가 표시는 파티션에 대한 처리 용량을 증가시키기 위해 명시적으로 요청되지 않은 일부 필요한 자원을 결정하는 것으로 해석될 수 있음).   
[0043] 이들 실시 예들에서, 요청(210)은 자원들의 세트(206)의 용량 또는 성능의 증가에 대한 요청일 수 있다. 예를 들어, 요청 (210)은 CUoD(주문형 용량)에 대한 요청 일 수 있다. 일 예에서, 요청(210)은 자원들 세트(206)의 처리 용량(212)을 증가시키기 위한 요청이다. 다른 예에서, 요청(210)은 자원들의 세트(206) 대한 메모리(216)의 증가에 대한 요청이다. 또 다른 예시적인 예에서, 요청(210)은 자원들의 세트(206) 대한 입력/출력 디바이스들의 세트(218)의 증가에 대한 요청일 수 있다. 증가를 결정하는 것은, 일 구현에서, 자원 관리자(203)에 의해 수신된 증가 요청에 기초할 수 있다. 요청은 파티션에서 실행되는 운영 체제 및/또는 파티션 내의 운영 체제에서 실행되는 응용 프로그램으로부터 올 수도 수 있다(Originate).               
[0044] 자원 관리 프로세스(204)가 자원들의 세트(206)의 처리 용량(212)을 증가시키기 위한 요구(210)를 수신(또는 추론) 할 때, 자원 관리 프로세스(204)는 복수의 코어들(222) 중 비활성 코어(220)를 활성화할지 여부를 결정하고 요청 (210)을 승인 할 수도 있다. 이러한 예들에서, 코어(220)는 프로세서들의 세트 (224) 내 복수의 코어들(222) 중 하나의 코어이다. 예를 들어, 복수의 코어들(222) 내 코어들의 세트(226)는 프로세서들의 세트(224)에서 활성 상태에 있다. 여기에서 사용된 바와 같이, 프로세서의 코어를 언급할 때 "활성"은 코어가 현재 명령을 연산 및 실행하고 프로세서에 대한 연산들을 수행하는 데 이용 가능 함을 의미한다.  코어(220)는 프로세서(224)의 세트 내에서 비활성일 수 있다. 여기에서 사용된 바와 같이, 프로세서의 코어를 언급할 때 "비활성"은 프로세서에 대한 명령들을 실행하고 연산들을 수행하기 위해 코어가 현재 이용 가능하지 않음을 의미한다. 예를 들어, 코어(220)는 비활성 상태(221) 또는 활성 상태(223)에 있을 수 있다. 코어(220)의 비활성 상태(221)는 코어(220)가 명령들을 실행하기 위해 현재 이용 가능하지 않을 때이다. 예를 들어, 코어(220)는 프로세서 유닛들의 세트(224)에서 비활성 상태(221)에 있는 동안 슬립 상태에 있을 수 있다. 자원들의 세트(206)에서 코어(220)을 활성 상태로 활성화하는 것은 자원들의 세트(206)의 처리 용량을 증가시킬 수 있다. 일 실시예에서, 비활성 코어는 또한 사용자에 대한 정상 동작 동안 이용되지 않는 코어일 수 있고, 특정 조건들 하에서만 활성화되는 잠재 프로세서 용량을 나타낸다. 따라서 비활성 상태의 프로세서는 프로세서 유닛들의 세트 내에 이미 존재하는 LCC(잠재 CPU 용량)를 나타낸다. 
[0045] 자원 관리 프로세스(204)는 코어(220)의 활성화를 위해 자원(들)의 사용이 DPS(202)내의 하나 또는 그 이상의 자원 사용 정책들 또는 규칙들(230)을 충족하는 지를 결정할 수 있다. 예를 들어, 하나 또는 그 이상의 정책들(230)은SLA, DPS(202)등에서 전력의 사용에 관한 규칙들을 제공하는 전력 사용 정책을 포함할 수 있다. 상기 하나 또는 그 이상의 자원 사용 정책들은 또한 DPS의 사용자들 또는 클라이언트 디바이스들이 사용자와의 SLA에 기초하여 DPS(202) 내의 특정 자원들을 사용할 수 있는 지에 관한 규칙들을 포함할 수 있다.
[0046] 만일 자원 관리 프로세스(204)가 제 1 주파수(228)에서 코어(220)의 활성화에 의한 자원들의 사용이 하나 또는 그 이상의 정책들(230)을 충족하는 것으로 결정한다면, 자원 관리 프로세스(204)는 제 1 주파수(228)에서 코어(220)를 활성화시킬 수 있다. 예를 들어, 자원 관리 프로세스(204)는 제1 주파수(228)를 설정하고 코어(220)에 관한 명령들을 예약(scheduling)함으로써 코어(220)를 활성화할 수 있다. 반면에, 만일 하나 또는 그 이상의 정책들(230)이 충족되지 않는다면, 자원 관리 프로세스(204)는 처리 용량(212)을 증가시키기 위한 요청(210)을 거부할 수 있다. 자원 관리 프로세스(204)는 처리 용량(212)을 증가시키기 위한 요청(210)이 이용 가능하지 않다는 표시(227)를 제공할 수 있다. 예를 들어, 자원 관리 프로세스(204)는 사용자 인터페이스(214), 또는 암시된 요청에 대한 메시징 또는 로깅의 일부 형태를 통해 표시(227)를 사용자에게 제공할 수 있다.
[0047] 이들 실시 예들에서, 최저 동작 주파수는 코어가 동작 할 수 있는 가장 낮은 주파수 일 수 있다. 상기 최소 주파수는 코어의 물리적 속성, 논리적 설계의 결과 이거나, 또는, 시스템의 다양한 컴포넌트들을 상호 연결하는 버스들의 크기와 같은, 시스템의 다른 속성으로 인한 것일 수 있다. 제한의 원인이 무엇이든 잘 정의된 최소 동작 주파수가 있을 수 있다. 
[0048] 자원 관리 프로세스(204)는 코어 (220)의 제 1 주파수(228)를 증가시킬 수 있다. 이들 예시적인 실시 예들에서, 제 1 주파수(228)에 대한 원하는 값은 자원들의 세트(206)에 대한 처리 용량(212)의 증가 양에 기초하여 선택될 수 있다. 이 예에서, 코어(220) 및 코어들의 세트(226)는 동일한 주파수에서 동작할 수 있다. 그러나, 이 동일한 주파수는 코어(220)의 활성화 이전의 코어들의 세트(226)의 제2 주파수(232)보다 낮을 수 있다. 
[0049] 상기 예들은 프로세서 주파수 조정의 형태로 자원을 조정하는 것을 기술하였지만, 다른 실시 예들에서, 자원들의 다른 유형들이 조절될 수 있다. 예를 들어, 요청(210)은 또한 자원들의 세트(206)에서 메모리(216)의 증가에 대한 요청일 수 있다. 예를 들어, 위에서 설명된 사용자 또는 다른 엔티티는 주문형 용량 업그레이드에서 추가 메모리를 요청할 수 있다. 대안적으로 또는 추가적으로, 자원 관리 프로세스(204)는 데이터가 메모리(216)에 기록되고 메모리(216)로부터 판독되는 속도(rate)(244)를 식별할 수 있다. 자원 관리 프로세스(204)는, 예를 들어, 스로틀링(throttling)에 의해 속도(244)를 조정할 수 있다. 스로틀링은 메모리(216)에서 수행되는 동작들에 휴지 기간들(rest periods)을 삽입하는 프로세스이다. 예를 들어, 특정 기간 동안 메모리(216)는 비활성화될 수 있다. 메모리(216)의 비활성은 데이터가 메모리(216)에 기록되고 메모리(216)로부터 판독되는 속도(244)를 감소시킨다. 하나 또는 그 이상의 예들에서, 특정 기능들을 위해 이전에 예약된 특수 컴퓨터 자원들이 또한 제한된 시간 동안 사용자에게 이용 가능할 수 있다. 
[0050] 또한, 하나 또는 그 이상의 실시 예들에서, 요청 (210)는 또한 자원들의 세트(206)의 입력/출력 디바이스들의 세트(218)의 증가에 대한 요청 일 수 있다, 예를 들어, 전술한 사용자 또는 다른 엔티티는 주문형 용량 업그레이드에서 추가 입력/출력 디바이스들을 요청할 수 있다. 입력/출력 디바이스들의 세트(218)는, 예를 들어, 영구 스토리지(108) 및 통신 유닛(110)과 같은, 영구 스토리지 및/또는 통신 유닛들을 포함할 수 있다.    
[0051] 하나 또는 그 이상의 실시 예들에 따르면, 자원 관리 프로세스(204)는 자원들의 세트(206)을 모니터 하고 요청(210)을 관리할 수 있다. 자원 관리 프로세스(204)는 요청(210)가 승인된 후 DPS(202)의 자원들(206)의 사용을 모니터 할 수 있다. 만일 자원들(206)의 사용이 SLA 또는 다른 정책들을 충족하지 못한다면, 자원 관리 프로세스(204)는 자원들 세트(206)에서 디바이스들(208)의 파라미터들의 세트(248)를 조정할 수 있다. 예를 들어, 자원 관리 프로세스(204)는 메모리(216)에 대한 전송 속도(244)를 조정할 수 있다. 자원 관리 프로세스(204)는 코어들의 세트(226)의 제2 주파수(232), 또는 코어들의 세트(222)에 공급되는 전압을 조정할 수 있다. 주파수 및 전압에 대한 조정은 스케일링으로 지칭될 수 있다. 자원 관리 프로세스(204)는 전력 사용 정책(230)을 충족하도록 주파수 및 전압을 스케일 할 수 있다. 자원 관리 프로세스(204)는 또한 코어(220)를 비활성화하여 코어(220)가 비활성화 상태(221)에 있게 할 수 있고, 메모리(216)의 일부, 및/또는 입력/출력 디바이스들의 세트(218)에서 디바이스들을 비활성화 할 수 있다.   
[0052] 하나의 예시적인 실시 예에서, 자원 관리 프로세스(204)는 처리 용량(212)을 유지하기 위해 자원들의 세트(206)에서 활성 상태(223)인 코어들의 세트(226) 중의 코어들(220)의 수를 식별할 수 있다. 자원 관리 프로세스(204)는 코어들의 세트(226)가 동작하는 제2 주파수(232)를 모니터 할 수 있다. 그 다음 자원 관리 프로세스(204)는 이 제2 주파수(232)를 코어들의 세트(226)에 대한 공칭 주파수(nominal frequency)(250)와 비교할 수 있다. 공칭 주파수(250)는 코어들의 세트(226)가 주파수의 변경(감소/증가) 없이 동작할 수 있는 예상 주파수이다.
[0053] 하나 또는 그 이상의 실시 예들에 따르면, DPS(202) 내의 자원들의 세트(206)는 DPS(202) 내의 하나의 파티션(a partition)일 수 있다. 예를 들어, 자원들의 세트(206)는 공통의 하우징 내에 위치된 디바이스들(208)을 갖는 물리적 파티션일 수 있다. 메모리(216) 및 입력/출력 디바이스들의 세트(218)는 또한 공통 하우징 내에 위치될 수 있다. 다른 예시적인 실시들예에서, 프로세서들의 세트(224), 메모리(216), 및 입력/출력 디바이스들의 세트(218)는 모두 하나 또는 그 이상의 통신 유닛들을 통해 상호 연결되고 서로 외부에 위치하는 자원들 풀의 일부일 수 있다. 자원 관리 프로세스(204)는 자원들의 세트(206)를 형성하기 위해 디바이스들(208)을 할당할 수 있다. 주어진 자원들의 세트(206)는 동시에 하나 또는 그 이상의 사용자들에 의해 사용될 수 있다.    
[0054] 다른 예에서, 코어(220)는 자원들의 세트(206)의 일부가 아닐 수 있다. 자원들의 세트(206) 내의 모든 코어들은 자원 관리 프로세스(204)은 처리 능력(212)을 증가하기 위한 요청(210)을 수신할 때 동작 중일 수 있다. 자원 관리 프로세스(204)는 코어(220)를 다른 자원들의 세트로부터 자원들의 세트(206)에 할당할 수 있다. 유사한 방식으로, 메모리(216) 및 입력/출력 디바이스들의 세트(218)도 또한 자원들의 세트(206)에 할당될 수 있다.    
[0055] 또 다른 예에서, 요청(210)은 일시적 요청일 수 있다. 요청(210)은 일정 기간 동안만 증가된 용량에 대한 요청일 수 있다. 일정 기간 후, 자원 관리 프로세스(204)는 요청(210)을 승인하기 위해 활성화된 디바이스들을 비활성화할 수 있다. 다른 예들에서, 요청(210)은 측정기준(metric)이 시간의 사용이 아니라, 서비스 청구 측정기준 또는 다른 정책-기반의 기준일 수 있다. 
[0056] 도 5는 하나 또는 그 이상의 실시예들에 따라 자원 관리자(203)로 확장하는 예시적인 DPS(202)의 블록도이다. 자원 관리자(203)는 자원 관리 프로세스(204) 및 업그레이드 관리 프로세스(306)를 포함할 수 있다. 예를 들어, 자원 관리 프로세스(204)는 DPS(202) 내의 디바이스들에 의한 컴퓨팅 자원의 사용을 관리할 수 있다. 업그레이드 관리 프로세스(306)는, 예를 들어, 요청(210)과 같은, 증가된 용량을 위한 요청을 관리할 수 있다. 
[0057] DPS(202)는 자원들의 세트(206)를 포함할 수 있다. 자원들의 세트(206)는 기판들의 세트(310), 메모리 (216), 및 입력/출력 디바이스들의 세트(218)를 포함할 수 있다. 기판들의 세트(310), 메모리 (216), 및 입력/출력 디바이스들의 세트(218)는 이 예들에서 자원들의 세트(206)에 있을 수 있는 자원들이다. 기판들의 세트(310)는 다수의 프로세서들(316)을 포함할 수 있다. 예를 들어, 기판들의 세트(310)는 프로세서들(316a, b)를 포함할 수 있다. 다른 예에서, 기판들의 세트(310)는 임의의 수의 프로세서들을 포함할 수 있다. 이러한 예들에서, 기판들의 세트(310)는 DPS의 컴포넌트들의 배치를 위한 임의의 표면이고 컴포넌트들 사이에 연결을 제공하기 위한 임의의 표면일 수 있다. 예를 들어, 제한 없이, 기판들의 세트(310)는 인쇄 회로 기판, 마더보드, 브레드보드 및/또는 다른 적절한 표면들일 수 있다. 
[0058] 하나 또는 그 이상의 예들에서, 기판들의 세트(310)는 또한 프로세서들(316)을 제어하는 제어기(324)를 포함할 수 있다. 예를 들어, 제어기(324)는 프로세서(316a) 또는 프로세서(316a) 내부의 복수의 코어들(222) 중 하나를 활성화시킬 수 있다. 제어기(324)는 또한 복수의 코어들(222) 내의 코어들(220) 각각이 동작하는 주파수를 제어할 수 있다. 제어기(324)는 또한 복수의 코어들(222)의 코어들(220)에 인가되는 전압을 제어할 수 있다. 제어기(324)는, 예를 들어, 제한 없이, 마이크로컨트롤러, 프로세서, 전압 및 주파수 센서, 발진기 및/또는 기타 적합한 디바이스들과 같은, 하드웨어 디바이스들을 포함할 수 있다. 다른 예들에서, 제어기(324)는 프로세서(316)를 제어하기 위한 프로그램 코드를 포함할 수 있다.    
[0059] 자원 관리 프로세스(204)와 업그레이드 관리 프로세스(306)는 자원들의 세트(206)의 자원들을 관리하기 위해 제어기(324)와 통신한다. 예를 들어, 자원 관리자(203)는 사용자 인터페이스(214) 또는 위에서 논의된 다른 엘리멘트들로부터의 요청(210)을 통해 자원들의 세트(206)의 용량을 증가시키기 위한 요청을 수신할 수 있다. 요청(210)은 복수의 코어들(222)에서 하나 또는 그 이상의 코어들(220)을 활성화함으로써 처리 용량을 증가시키기 위한 요청일 수 있다. 복수의 코어들(222) 내의 일부 코어들은 비활성 상태(221)에 있을 수 있다. 자원들의 세트(206)는 특정 수의 코어들이 활성화되도록 허용될 수 있다. 다시 말해서, 자원들의 세트는 다수의 코어들(222)에서 특정 수의 코어(220)를 사용하도록 허가될 수 있다. 하나 또는 그 이상의 예에서, 요청(210)은 라이센스 코드를 포함할 수 있다. 라이센스 코드는 코어(220a)의 식별자 및 코어(220a)를 활성화하기 위한 키를 포함할 수 있다. 자원 관리자(203)는 라이선스 코드를 수신하고 하이퍼바이저(330)와 통신하여 다수의 코어들(222) 중에서 어떤 코어들이 라이선스 되는지를 결정할 수 있다.  
[0060] 하이퍼 바이저(330)는 다수의 운영 체제들이 DPS(202) 상에서 실행하도록 허용하는 모듈(a module)이다. 하이퍼 바이저(330)는 요청으로부터의 라이센스 코드를 스토리지 디바이스에 저장된 라이센스 코드들 세트(332)와 비교할 수 있다. 이러한 예들에서, 다수 코어들(222) 가운데 각각의 코어는 라이센스 코드들의 세트(332)에서 하나의 라이센스 코드를 갖는다. 만일 요청으로부터의 라이센스 코드가 라이센스 코드들 세트(332)의 라이센스 코드와 매치(match) 하면, 하이퍼바이저(330)는 복수의 코어들(222)에서 어느 코어가 라이센스 코드들의 세트(332) 내의 매치된 라이센스 코드에 대응하는 지를 결정한다. 결정된 코어가 자원들의 세트(206)에서 라이선스 될 코어(220)이다. 하이퍼바이저(330)는 자원들의 세트(206)에서 라이선스 될 코어(220)를 자원 관리자(203)에게 알려준다(communicate). 반면에, 만일 요청의 라이센스 코드가 라이센스 코드들의 세트(332)에서 하나의 라이센스 코드와도 매치하지 않으면, 요청(210)은 거부될 수 있다. 아래에 더 자세히 설명되는, 특정 상황들 아래에서, 그러한 라이센스 코드들(332)은 요청(210)을 수락하거나 이용 가능한 자원을 증가시키기 위해 사용될 필요가 없다. 
[0061] 추가로, 만일 자원들의 세트(206)가 DPS (202) 내의 파티션이라면, 하이퍼 바이저 (330)는 어느 자원들이 파티션(414)(도 6)의 일부인지를 결정하기 위해 파티션 관리자(334)와 통신할 수 있다. 예를 들어, 처리 용량(증가되는 컴퓨팅 자원들)을 증가하기 위한 요청(210)은 특정 파티션의 용량을 증가하기 위한 요청일 수 있다. 하이퍼바이저(330)는 다수의 코어들(222) 가운데 라이선스 되도록 요청된 코어(220a)가 파티션(414)의 일부임을 확인할 수 있다. 파티션 관리자(334)는 특정 파티션(414)의 일부인 자원들의 목록을 유지할 수 있다. 만일 라이선스 되도록 요청된 코어(220a)가 용량 증가를 요청하는 파티션의 일부가 아니면, 파티션 관리자(334)는 코어(220a)를 파티션(414)에 할당할 수 있다. 그런 다음, 하이퍼바이저(330)는 자원들의 세트(206)에서 라이선스 될 코어(220a)를 자원 관리자(203)에 알려줄 수 있다. 
[0062] 이러한 예시적인 실시 예들에서, 자원 관리자(203)는 복수의 코어들(222)에서 라이선스 될 코어(220a)를 식별하는 정보를 수신할 수 있다. 그 다음 업그레이드 관리 프로세스(306)는 명령들을 제어기(324)에 보내어 복수의 코어들(222)에서 라이선스 될 코어 (220a)를 활성화시킬 수 있다. 하나 또는 그 이상의 예들에서, 업그레이드 관리 프로세스(306)는 코어 성능 센서(336)를 포함할 수 있다. 코어 성능 센서(336)는 코어들(222)로부터 하나 또는 그 이상의 코어들의 성능을 모니터한다. 예를 들어, 코어 성능 센서(336)는 다수의 코어들(222) 가운데 활성 코어들이 동작하는 주파수를 모니터 할 수 있다. 업그레이드 관리 프로세스(306)는, 도 4의 코어(220)와 관련하여 이전에 논의된 바와 같이, 복수의 코어들(222) 내의 다른 활성 코어들과 동일한 주파수에 있도록 코어(220a)를 활성화할 수 있다. 다른 예들에서, 업그레이드 관리 프로세스(306)는 제1 주파수에서 코어(220a)를 활성화하고 자원들의 세트(206)에서 복수의 코어들(222)의 처리 용량을 증가시키도록 주파수를 조정할 수 있다.   
[0063] DPS(202)에서 자원 관리자(203)의 예시는 다른 특징들이 구현될 수 있는 방식에 물리적, 구조적 제한을 암시하려는 것이 아니다. 예시된 것들에 더하여 및/또는 그 대신에 다른 컴포넌트들이 사용될 수 있다. 또한 일부 기능 컴포넌트들을 예시하기 위해 블록들이 제공될 수 있다. 이들 블록 중 하나 또는 그 이상의 이들 블록들은 다른 예시적인 실시 예들에서 구현될 때 합쳐지거나 및/또는 다른 블록들로 분할될 수 있다. 이것은 당업자에 의해 이해되는 바와 같이 도면들에 예시된 블록들 중 어떠한 것에 대해서도 사실이다. 
[0064] 예를 들어, 제한없이, 몇몇 예시적인 실시 예들에서, 자원 관리자(203)는 DPS (202)의 일부가 아닐 수 있다. 자원 매니저(203)는 DPS (202)로부터 원격적으로 위치될 수 있다. 예를 들어, 자원 관리 프로세스(204)와 업그레이드 관리 프로세스(306)는 DPS(202)로부터 원격적으로 위치한 컴퓨팅 시스템에서 실행될 수 있다. 자원 관리 프로세스(204) 및 업그레이드 관리 프로세스(306)는 DPS(202) 내의 전력 사용을 모니터 및 제어하기 위해 다른 데이터 처리 엘리멘트들과 통신할 수 있다. 
[0065] 또 다른 예시적인 실시 예에서, 자원들의 세트(206)는 기판들의 세트(310)으로서 임의의 수의 기판들을 포함할 수 있다. 자원들의 세트(206)의 각 기판은, 예를 들어, 제어기(3240와 같은, 별도의 제어기를 가질 수 있다. 제어기(324)는 또한 자원들의 세트(206)의 기판들의 세트(310) 세트에서 하나 이상의 기판 상의 프로세서들을 제어할 수 있다. 일부 예시적인 실시예들에서, 코어 성능 센서(336)와 같은, 센서들은 자원들의 세트(206)의 각 기판에 위치할 수 있다. 다른 예에서, 자원들의 세트(206)는 각 자원에 대한 센서를 포함할 수 있다. 코어 성능 센서(336)에서 센서들은 프로세서(316)의 개별 프로세서들 및 다수 코어들(222)의 코어의 일부일 수 있다.    
[0066] 도 6은 예시적인 실시예에 따른, DPS(202)의 파티션들의 세트(402)의 예를 예시하는 블록도이다.  DPS(202)는 파티션들의 세트(402)를 포함한다. 예시된 예에서, 자원 관리자(203)는 DPS(202)의 파티션들의 세트(402)에 대한 자원 사용 정책(230)을 포함할 수 있다. 자원 사용 정책(230)은 DPS(202)에서 컴퓨팅 자원들의 사용을 명시하는 정책 또는 규칙들의 세트를 포함할 수 있다. 예를 들어, 자원 사용 정책(230)은 자원 제한(들)(408)을 포함할 수 있다. 자원 제한(408)은 DPS(202)에서 사용 가능한 컴퓨팅 자원의 양에 대한 제한일 수 있다. 자원 제한(408)은 또한 파티션들의 세트(402)로부터 파티션(414a)에 의해 "소비"되거나 "사용"될 수 있는 전력량에 대한 제한일 수 있다. 하나 또는 그 이상의 예들에서, 자원 제한(408)은 파티션과 연관된 SLA를 기초로 할 수 있으며, SLA는 파티션을 사용하는 사용자와의 셋업이다. 
[0067] 이 예시적인 실시 예들에서, 자원 사용 정책(230)은 파티션(414a)에 대한 임계 값들의 세트(412)를 포함할 수 있다. 임계 값들의 세트(412)는 파티션(414a)의 디바이스들에 대한 자원 사용 임계 값들을 포함할 수 있다. 예를 들어, 임계 값들의 세트(412)는 기판들의 세트(310)의 각 기판, 메모리(216), 및/또는 입력/출력 디바이스들의 세트(218)에 대한 자원 사용 임계 값들을 포함할 수 있다. 따라서, 임계 값들의 세트(412)에서 전력 사용 임계 값들은 파티션(414a)의 디바이스들에 대해 특정될 수 있다. 유사하게, 프로세서들의 세트(224)에서 각 프로세서 및 코어들의 세트(424)에서 각 코어는 전력 사용에 대한 임계 값들의 세트(412)에서 임계 값들을 가질 수 있다.  
[0068] 자원 관리자 (203)는 파티션(414a)에서 디바이스들에 의해 컴퓨팅 자원 사용을 모니터 할 수 있다. 자원 관리자(203)는 파티션(414a)의 디바이스들에 의한 컴퓨팅 자원들의 사용이 임계 값(들 세트(412)의 임계값들 내에 있는지 여부를 결정할 수 있다. 만일 컴퓨팅 자원들의 사용이 임계값들 내에 있지 않다면, 자원 관리자(203)는 컴퓨팅 자원들의 사용이 컴퓨팅 자원 사용 정책(230) 충족하지 않는다고 결정할 수 있다.     
[0069] 컴퓨팅 자원 관리자 (203)는 또한 파티션들(414b 및 414c)에서 사용되는 컴퓨팅 자원을 모니터 할 수 있다. 예를 들어, 자원 사용 정책(230)은 파티션(414b)의 디바이스들에 의한 컴퓨팅 자원의 사용에 대한 임계 값들의 세트(414b)를 포함할 수 있다. 임계 값들의 세트(412b)는 파티션(414b)에서 컴퓨팅 자원들의 사용을 제한할 수 있다. 예를 들어, 자원 관리자(203)는 파티션(414b)의 용량을 증가시키기 위한 요청(210)을 수신할 수 있다. 자원 관리자(203)는, 만일 요청이 임계 값들의 세트(412b) 내에 있고 자원 사용 정책(230)을 충족한다면, 컴퓨팅 자원의 사용 요청을 승인할 수 있다. 파티션(414b)에 대한 임계 값들의 세트(412b)는 파티션(414b)의 디바이스들에 의한 컴퓨팅 자원들의 사용의 증가들이, 예를 들어, SLA에 따른 계약 값들을 초과하지 않게 할 수 있다. 따라서 자원 관리자(203)는 요청으로 인하여 용량이 SLA 값들을 초과하게 될 때 하나의 파티션에서 용량을 증가시키기 위한 요청들을 승인하지 않을 수 있다.  
[0070] 자원 관리자(203)는 자원 관리 환경 (200)에서 다른 DPS(202)로부터 자원들(206)을 할당할 수 있다. 예를 들어, 제1 DPS (202)의 프로세서들 (224) 중 하나가 제1 DPS (202)의 내부 이벤트를 위해 사용되고있거나 또는 정상 연산을 벗어난 상황- 이에는 진단 이벤트, 초기 프로그램 로드, 캡처링 트레이스, 또는 기타 모든 연산 집약적 연산이 포함될 수 있다-을 위해 사용되고 있는 경우에, 자원 관리자(203)는 제1 DPS(202)에서 하나 또는 그 이상의 연산/워크로드를 처리하기 위해 제2 DPS(202)로부터 프로세서들(224) 중 하나를 할당할 수 있다. 유사한 방식으로, 만일 제1DPS(202)의 컴퓨팅 자원들(206) 중 어느 하나가 비정상 이벤트를 위해 사용되고 있다면, 제2 DPS(202)의 모든 기타 유형의 자원들(206)은 제1 DPS(202)의 작업/연산을 수행하기 위해 할당될 수 있다.  
[0071] 하나 또는 그 이상의 예들에서, 보고 모듈 (440)은 파티션들의 세트(402) 내의 파티션들 각각에 의한 컴퓨팅 자원 사용량(usage)을 수신한다. 보고 모듈 (440)은 대응 파티션들에 의해서 사용된 컴퓨팅 자원들에 따라 하나 또는 그 이상의 각 사용자들(클라이언트 디바이스들)에 대해서 청구서(a bill)를, 자동으로, 생성할 수 있다. 예를 들어, 보고 모듈(440)은 특정 컴퓨팅 자원이 파티션(414)에 의해 사용된 기간을 수신할 수 있다. 보고 모듈(440)은 파티션(414)에 의해서 사용된 하나 또는 그 이상의 컴퓨팅 자원들에 대한 요금(rates)을 결정하기 위해 파티션(414)을 사용하는 사용자에 대하여 SLA를 사용할 수 있고 SLA에 따라 사용자에 대한 청구 금액(bill amount)을 계산할 수 있다.    
[0072] DPS (202)의 파티션들의 세트(402) 예시는 다양한 특징들이 구현될 수 있는 방식에 물리적, 아키텍처적인 제한들을 암시하려고 한 것이 아니다. 다른 컴포넌트들을 예시된 것들에 더하거나 및/또는 예시된 것들을 대신에 다른 컴포넌트들이 사용될 수 있다.  
[0073] 비정상 이벤트가 발생한 경우에, 하나 또는 그 이상의 컴퓨팅 자원들이 비정상 이벤트를 처리하기 위해 사용될 수 있다. 비정상 이벤트를 처리하는 것은 DPS(202)에 대한 내부 이벤트로 간주될 수 있기 때문에, 컴퓨팅 자원들의 그러한 사용은 사용자에게 청구될 필요가 없다. 또한 비정상 이벤트로 인해 사용자가 DPS(202)에서 제공하는 서비스가 중단될 수 있다. 예를 들어, 사용자는 소셜 네트워크 제공자들(예를 들어, FaceBookTM), 전자 상거래 제공자들(예를 들어, AmazonTM), 금융 기관들(예를 들어, 은행들), 의료 서비스 제공자들(예를 들어, 의사들, 병원들, 보험 제공자들) 등과 같은 클라우드 서비스 제공자일 수 있고, 이들에게는 가장 작은 서비스 중단도 중대한 결과들을 초래할 수 있다.본 명세서에 기술된 바와 같이, 하나 또는 그 이상의 예들에서, 클라우드 서비스 중단들 및 기타 비정상 이벤트들은 DPS(202)의 인프라에서의 고장들의 결과일 수 있다. 대안적으로, 또는 추가로, 고장들은 클라우드 서비스 제공자 또는 클라우드 서비스 공급자의 최종 사용자에 의해서 제공된 워크로드에 의해 야기될 수 있다. 서비스 중단 또는 비정상 이벤트의 원인에 관계없이 DPS 202에서 실행하는 시스템들이 가능한 한 빨리 정상 실행 조건들에서 운영되도록 하는 것이 중요하다.      
[0074] 일반적으로, 고장 상태를 진단하는 것은 자원 집약적 진단(resource intensive diagnostics)을 요구한다. 예를 들어, 고장 진단이 자세한 추적 기록과 추가의 데이터 로깅의 생성을 요구할 때 추가의 프로세서 자원들이 소비될 수 있다. 하나 또는 그 이상의 프로세서의 분기 추적(a branch trace)과 같은, 일부 하드웨어 특징들은 상당한 프로세서 오버헤드를 도입할 수 있다. 또한 x86 아키텍처와 같은, 프로세서들에서 스택 오버레이들(stack overlays)의 디버깅은 포인터들을 체크하고 스택 배치(stack placement)를 제어하기 위해 추가 프로세서를 요구할 수 있다. 하나 또는 그 이상의 예들에서, 다른 파티션들이 고장 상태 없이 정상 처리를 계속하는 동안 컴퓨팅-자원-집약적-추적 또는 진단을 요구하는 고장 상태를 일으키는 비정상 이벤트가 파티션(414)에서 발생할 수 있다.
[0075] 하나 또는 그 이상의 예들에서, 그러한 서비스 중단들을 처리하기 위해, 클러스터된 컴퓨팅이 HA 처리를 제공하기위한 일반적인 기술이다. HA 시스템에서는, 각각 워크로드를 실행할 수 있는 다수의 머신들이 셋업 된다. 하나 또는 그 이상의 예들에서, 워크로드는 클러스터의 다수 머신들 상에서 분할되어 동시적으로 실행될 수 있다. 클러스터의 한 머신이 서비스 중단 또는 고장 상태를 경험할 때, 클러스터의 제2머신으로부터 추가 프로세서들이 서비스 중단에 관한 진단을 위한 지원을 제공할 수 있다. 대안으로 또는 추가로, 클러스터의 제2머신은 고장이 발생한 제1머신에 의해서 처리되고 있던 추가의 워크로드를 흡수할 수 있다. 그러한 경우들에서, 폴백 시스템(이 경우는 제2 머신) 상의 추가 부하의 우선순위는 제1머신으로서 안정된 상태 부하(the steady state load )보다 더 높다. 또한 제2머신은 고장이 발생한 제1머신인, 프라이머리 시스템이 운영되지 않는 동안 발생한 모든 백로그 워크로드를 완료하기 위해 추가의 연산들 작업을 수행해야 할 수도 있다. 이러한 대체 연산은 계획되거나 계획되지 않을 수 있다.         
[0076] 따라서, 이와 같이, 고장 상태를 해결하는 것은 컴퓨팅 자원 집약적일 수 있다. 예를 들어, 고장 상태를 해결하는 것은 시스템 덤프를 캡처하기 위한 추적 작업을 수행하는 것과 캡처된 시스템 덤프의 데이터를 사용하여 DPS(202)를 진단하는 것을 포함할 수 있다. 또한, 고장 상태를 해결하는 것은, IPL(부팅)을 포함할 수 있는, 파티션(414)에서 운영 체제를 다시 시작하는 것을 포함할 수 있다. IPL은 계산 집약적인 프로세스일 수 있다. 컴퓨팅 자원들의 그러한 사용은 사용자가 SLA에서 계약된 레벨의 성능을 받지 못하기 때문에 사용자와의 SLA에 영향을 미칠 수 있다.    
[0077] 추가적으로 또는 대안적으로, 하나 또는 그 이상의 예들에서, 하나의 DPS로부터 다른 DPS로 워크로드들을 이동시키는 것은 필수적 일 수 있다(mandatory).  예를 들어, 미국 정부는 은행 산업 및 기타 민감한 산업들이 규정 준수를 입증하기 위해 둘 또는 그 이상의 DPS들 간에 주기적으로 처리 이동을 수행하도록 요구하는 규정들을 갖고 있다. 그러한 워크로드들의 이동은 DPS들로 하여금 IPL을 수행하게 한다. 
[0078] 그러한 고장 상태 해결들 및 IPL들은 DPS들의 연산을 느리게 하는 기술적 문제를 야기한다. 또한, 기술적인 문제들은 사용자로부터의 정상적인 워크로드가 아닌 연산들을 위해 컴퓨팅 자원들을 사용하는 것을 포함할 수 있다. 대신, 컴퓨팅 자원들은 사용자에게 보이지 않는 내부 데이터 처리 연산들을 위해 사용될 수 있다. 
[0079] 따라서, 본 발명의 하나 또는 그 이상의 실시 예들은, 프로세서로부터 또는 클러스터의 하나 또는 그 이상의 프로세서들로부터 처리 능력을 빼앗는 비정상 이벤트를 검출함으로써 그러한 기술적 문제들을 해결할 수 있고, 이러한 상태들 하에서 추가적인 CPU 또는 다른 자원들을 제공할 수 있다. 하나 또는 그 이상의 실시 예들에 따르면, DPS가 하나의 하이퍼바이저(또는 파티션)에서 IPL/부팅을 검출할 때, DPS는 부팅 시스템 또는 파티션에 의해 사용되는 프로세서의 처리 용량을 증가시키기 위해 하나 또는 그 이상의 하이퍼바이저들와 함께 일할 수 있다. 자원들의 그러한 증가에 대해 사용자에게 대응하는 청구 또는 회계 처리함이 없이 (프로세서의 처리용량) 증가가 수행될 수 있다. DPS가 IPL/부팅을 검출하더라도, 하이퍼바이저도 또한, 일 실시예에서, 처리를 위해 IPL을 DPS에 보고하거나, 또는 요청(210)을 통해 추가 자원들에 대한 요청을 보고할 수 있다. 유사하게도, 파티션 내의 OS 또는 애플리케이션도 유사한 요청을 할 수 있다.       
[0080] 용량 증가의 기간은 미리 정의된 벽시계(즉, 세계) 시간, 프로세서 사이클들의 미리 정의된 수 또는 미리 정의된 이벤트가 될 수 있다. 기간은 이러한 기준들 또는 다른 기준들 모두를 고려한 미리 정의된 규칙들의 세트에 의해서 관리될 수 있다. 이 문맥에서 사용된 "미리 정의된"이라는 용어는 비정상 이벤트가 발생하기 전에 모든 엔터티에 의해서 정의한 것을 의미한다. 
[0081] 현재 부팅/IPL/복구를 겪고 있지 않은 다른 파티션들(가상 머신)에 대한 안정적 성능(steady performance)을 유지하면서 파티션(가상 머신)의 부팅/IPL/복구를 지원하도록 하는 것이 개선된 성능의 목표가 될 수 있다. 하나 또는 그 이상의 실시 예들은 베어 메탈 머신들(bare metal machines)에 대해서 적용될 수 있고, 레벨 1 및 레벨 2 하이퍼바이저들을 포함하는 다양한 레벨들의 하이퍼바이저에도 적용될 수 있다. 
[0082] "베어 메탈" 머신들은 일반적으로 단일 운영 체제 또는 하나의 하이퍼 바이저를 호스트하고, 베어 메탈 머신 상에서 실행중인 운영 체제의 부팅/IPL/복구 시간을 향상시킬 능력을 포함할 수 있다.  제1레벨 하이퍼바이저는 베어 메탈 머신 상에서 실행되며, 각각, 단일 운영 체제 또는 하이퍼바이저를 호스트하는, 많은 머신들을 시뮬레이트 한다. 제1 레벨 하이퍼바이저에서 실행되는 하나 또는 그 이상의 운영 체제들의 부팅/IPL/복구 시간을 향상하기 위한 능력을 제공하기 위해 제1 레벨 하이퍼바이저들은 베어메탈 머신과 함께 일할 수 있다.  IBM z14®의 LPAR 은 1단계 하이퍼바이저의 한 예이다.  제2레벨 하이퍼바이저들은 제1레벨 하이퍼바이저에 의해서 호스트 되는 하이퍼바이저들이다.  제2레벨 하이퍼바이저도 또한, 각각, 단일 운영 체제 또는 하이퍼바이저를 호스트하는, 많은 머신들을 시뮬레이트 할 수 있다. 제2 레벨 하이퍼바이저에서 실행되는 하나 또는 그 이상의 운영 체제들의 부팅/IPL/복구 시간을 향상하기 위한 능력을 제공하기 위해 제2 레벨 하이퍼바이저들은 제1 레벨 하이퍼바이저들과 그리고 베어메탈 머신과 함께 일할 수 있다.  IBM z14®의 LPAR아래에서 실행되는 zVM® 은 제2 레벨 하이퍼바이저의 예이다.  IBM z14®의 LPAR아래에서 실행되는 zVM 아래에서 실행되는 zVM 은 제3 레벨 하이퍼바이저의 예이다.  하이퍼바이저들 아래의 하이퍼바이저들의 체인은 무한정 계속될 수 있다. 이들 하이퍼바이저들의 각각은 호스트 된 운영 체제의 부팅/IPL/복구 시간을 향상할 수 있다. 성능 향상을 부여하고 격리하는 메커니즘은 각 하이퍼바이저 수준에서 약간 다를 수 있지만 기본 개념과 가치 제안은 동일하게 유지된다.                 
 [0083] 증가된 성능은 DPS (202)에서 적어도 두 가지 방법으로 사용될 수 있다.  첫번째는, 컴퓨팅 자원들의 증가는 부팅/IPL/복구 과정을 단축할 수 있다. 두번째는, 컴퓨팅 자원들의 증가는 부팅/IPL/복구 프로세스 완료 후 워크로드 백로그를 완료하는 데 사용될 수 있는 추가의 처리 용량을 제공할 수 있다. 증가된 컴퓨팅 자원들은 일단 부팅이 완료된 후 워크로드 백로그를 더 빠르게 완료하는 데 사용될 수 있는 DPS(202)의 성능 용량의 증가를 도울 수 있다.    
[0084] 하나 또는 그 이상의 예들에서, 제2 DPS(202)로부터 컴퓨팅 자원들을 할당함으로써 획득되는 증가된 성능은, 서버 클러스터(즉, 자원 관리 환경(200))의 하나 또는 그 이상의 멤버들이 비정상 이벤트(들)로 인해 추가의 처리 비용들을 지불하는 동안 제1DPS(202)를 전체 용량으로 사용할 수 있게 한다. 하나 또는 그 이상의 예들에서, 제2 DPS(202)는 제1 DPS(202)(또는 임의의 다른 DPS)에 추가 컴퓨팅 자원을 부여할 수 있으며, 여기서 두 개의 DPS들은 모두 동일한 서버 클러스터의 일부이다. 대안적으로, 또는 추가적으로, 하나 또는 그 이상의 예들에서, 제2 DPS(202)는 제2 서버 클러스터(자원 관리 환경(200))의 일부인 DPS(202)의 처리 비용을 상쇄하기 위해 추가 컴퓨팅 자원들을 제공할 수 있다. 하나 또는 그 이상의 예들에서, 제2 서버 클러스터로부터의 컴퓨팅 자원들(206)을 사용함으로써 비정상 이벤트들을 완료하고 비정상 이벤트들, 예를 들어 추적들과 같은 진단 이벤트들을 해결하는 데 소비되는 처리 비용들을 상쇄할 수 있다. 
[0085] 프로세서들(224)은 다른 비용/성능 트레이드-오프들(trade-off)을 제공할 수 있다. 예를 들어, IBM z14와 같은, 프로세서들은 26가지 고유한 용량 수준들을 제공한다; 따라서 6개의 프로세서들 세트를 갖는 DPS는 총 156개의 용량 세팅들(26 x 6)을 제공할 수 있다. 하나 또는 그 이상의 예들에서, 프로세서들(224)은 파티션들(402)의 안정된 상태 운영(steady state operation) 동안에는 인위적으로 감소된 용량 레벨에서 운영될 수 있다. 용량 레벨은 프로세서들(224)에게 추가의 컴퓨팅 자원들을 사용하도록 명령하고, 프로세서들(224)이 동작하는 주파수 등을 변경함으로써 증가될 수 있다. 추가적으로 또는 대안적으로, 용량 레벨은 비활성 상태(221)에 있는 하나 또는 그 이상의 코어들(220)을 활성화함으로써 증가될 수 있다. 프로세서들(224)은, ARM?? 프로세서들과 같은, 위에서 언급한 예가 아닌 임의의 다른 프로세서 유형, X86-아키텍처-기반 프로세서들 및 기타 유형일 수 있음에 유의해야 한다.  
[0086] 프로세서 속도를 증가시킴으로써, 비활성 코어들을 추가함으로써, 또는 둘 모두를 사용함으로써 프로세서 자원을 증가시킬지에 관한 결정이 자원 관리자(203)에 의해서 내려질 수 있다. 대부분의 파티션들 및/또는 파티션 내의 활동들은 프로세서 속도의 증가로부터 얻을 수 있는 이점이 많다(robust in benefitting from an increase in the processor speed). 그러나, 모든 파티션들 및/또는 파티션 내의 활동들이 추가의 활성 코어들을 도입하는 것으로부터 이점을 얻을 수 있는 것은 아니다. 따라서, 자원 관리자(203)는 자원들을 증가할 때 어떤 접근 방식(들)이 가장 유리할지 결정하는 데 도움이 될 수 있는 데이터베이스를 구성할 수 있고, 다양한 상황들 아래에서 추가할 자원들의 범위를 조절하는데 도움이 되는 규칙들을 더 구성할 수 있다. 일 실시 예에서, 하이퍼바이저는 파티션 및/또는 그 안에서 실행되는 연산이 별도의 코어에서 각각 실행될 수 있는 복수의 스레드들로 실행될 수 있다고 결정될 때 제2 코어를 활성화하는 것이 비정상적인 이벤트를 처리하는 데 유리하다고 결정할 수 있다. 
[0087] 추가적으로, 비정상 이벤트는 비정상 이벤트 스테이지들 및/또는 비정상 이벤트 서브-이벤트들로 구성될 수 있고, 자원들의 양들은 이들 스테이지들/서브-이벤트들에 따라서 다르게 추가될 수 있다. 주어진 상황에서 추가할 자원들의 양은 테이블이나 데이터베이스에 저장될 수 있으며 실제 이용 가능한 하드웨어의 다양한 특성, 비정상 이벤트의 유형, 사용하지 않는 자원들의 양에 따라 달라질 수 있다. 추가할 자원들의 양은, 무엇보다도, 미리 정의된 저장된 값을 활용한 계산된 공식 값들(calculated formulaic values)에 더 기초할 수 있다. 비활성 프로세서를 활성화하는 형태로 자원들을 추가할 때, 한 구현에서, 그러한 추가들 및 제거들은 또한 프로세서 속도들에 대한 수정들과 결합될 수도 있는데, 그러한 결합으로, 그렇지 않으면 발생할 수 있는 갑작스러운 변경과는 대조적인, 시스템 처리 파우어에서의 스무드한 트랜지션들(smooth transitions이 최종 사용자에 의해서 감지될 수 있다. 
[0088] 또한, 로깅 /트래킹/감사(LTA) 절차가 증가된 자원들이 시스템에서 이용될 때 시스템의 성능을 평가하는 데 도움을 주기 위해 사용될 수 있다. LTA 절차는 해당 시간 구간의 타이밍 정보를 포함할 수 있다. 타이밍 정보는 비정상 이벤트 기간 및 추가 자원 처리 기간과 같은, 이러한 기간들에 대한 시작 및 종료 날짜 및 시간으로 구성될 수 있다. LTA 절차는 비정상 이벤트 및 증가된 처리 기간 동안 이러한 타이밍 정보를 캡처할 수 있다. LTA 절차는 또한 증가된 처리의 기간 동안 또는 증가된 처리의 다양한 스테이지들에서 제공되는 자원의 양에 대한 정보, 증가된 처리 전, 도중 및 후에 시스템 응답 시간, 및 기타 관련 데이터를 포함할 수 있다. 파티션 내에서 실행되거나 파티션 외부에서 실행되는 프로세스뿐만 아니라 관련된 파티션에 대한 정보도 포함될 수 있다. LTA 데이터를 검토하고 분석하면 적용할 자원들의 범위에 관한 다양한 파라미터들을 조정할 수 있다.     
[0089] 멀티-파티션 시스템에서, 둘 또는 그 이상의 파티션들이 동시에 비정상 이벤트들을 경험하거나, 또는 그들 각각의 비정상 이벤트들의 발생이 같은 시간에 중첩할 수 있다. 각각의 제1 및 제2 파티션들은 이들을 처리하기 위해 추가 자원들을 동시에 또는 중첩하여 적용함으로써 이익을 얻을 수 있다. 그러한 상황에서, 이용 가능한 자원들을 어떻게 할당할지를 결정하는 것은, 위에서 설명한 바와 같이, 자원들을 단일 파티션에 제공하는 방식(표, 공식 계산 등)과 유사한 방식으로 결정될 수 있다. 일 실시예에서, 모든(또는 최대 수/양) 이용 가능 자원들은 비정상 이벤트의 처리가 완료될 때까지 더 높은 우선순위의 비정상 이벤트 파티션에 주어지고, 그 후에 모든 이용 가능 자원들은 더 낮은 우선순위 비정상 이벤트 파티션에 주어질 수 있다. 다른 실시예에서, 이용 가능 자원들은 그들 사이에서 분할될 수 있다. 다른 실시예에서, 발생할 "제1 비정상 이벤트"는 이용 가능 자원들에 대해서 우선순위를 가질 수 있거나, 또는 나중에 발생하는 비정상 이벤트가 그 전에(earlier) 발생하는 비정상 이벤트와 같거나 더 낮은 우선순위를 갖는 경우에만 우선순위를 가질 수 있다.   
[0090] 도 7은 하나 또는 그 이상의 실시 예들에 따른 특정 이벤트 처리 동안 프로세서 코어들(220)의 처리 용량을 증가시키는 것에 관한 예시적인 프로세스 (700)의 플로차트이다. 연산 단계 (710)에서, 프로세스(700)는DPS(202)의 파티션들의 세트(402)로부터의 파티션(414)에서의 비정상 이벤트를 모니터하는 단계를 포함할 수 있다. 하나 또는 그 이상의 예들에서, 하이퍼바이저(330) 또는 파티션 관리자(334)는 비정상 이벤트에 대한 파티션들의 성능을 모니터 할 수 있다. 파티션(414)에서의 비정상 이벤트는 파티션(414)의 출력 레벨을 모니터함으로써 검출될 수 있으며, 여기서 비정상 이벤트는 예상되는 출력 레벨들을 전달하는 파티션(414)의 능력에 부정적인 영향을 미치는 상태이다. 비정상 이벤트는 파티션(414)의 운영 체제(430)의 IPL을 더 포함할 수 있다. 하나 또는 그 이상의 예들에서, 운영 체제(430)는 클라우드 또는 하이퍼스케일 환경에 있을 수 있다.   
[0091] 연산 단계(720)에서, 비정상 이벤트들이 검출될 때까지, (연산 단계 720: NO), 파티션(414)은, 연산 단계(730)에서, 할당된 컴퓨팅 자원들(206)을 사용하여 계속 운영될 수 있다. 할당된 컴퓨팅 자원들(206)은 파티션(414)을 사용하는 사용자/클라이언트와의 SLA에 기초할 수 있다. 파티션이 SLA에 따른 기본(default) 컴퓨팅 자원 세팅들을 사용하여 운영되고 있을 때 이것을 파티션(414)의 "안정된 상태(steady state)" 또는 "정상 운영(normal operation)"이라고 한다.    
[0092] 만일 비정상 이벤트가 검출된다면(연산단계720: YES), 파티션(414)에 의해서 사용 중인 컴퓨팅 자원들(206)이, 연산 단계(740)에서, 식별될 수 있다. 또한, 연산 단계(750)에서, 자원 관리자(203)는, 예를 들어, 코어 속도를 증가시키고, 비활성 코어들(220)을 활성화하며, 위에서 논의된 다른 기술을 사용하여, 파티션(414)에 할당된 컴퓨팅 자원들(206)을 증가시킴으로써, 파티션(414)의 처리 능력을 증가시킬 수 있다. 제공되는 추가의 컴퓨팅 자원들은 제1 DPS(202), 제2 DPS(202), 또는 임의의 다른 DPS(202)로부터 제공될 수 있다.   
[0093] 예를 들어, 추가된 추가의 자원은, 비활성 상태(221)에서 활성 상태(223)로 될 수 있는 코어들(220)을 가져와서, 파티션(414)에 대해 할당된 코어들(222)의 수를 증가시킴으로써 전달될 수 있는 추가의 처리 용량을 포함할 수 있다. 대안적으로 또는 추가로, 처리 용량은 코어(222)당 처리 용량을 증가시킴으로써 증가될 수 있다. 예를 들어, 프로세서(224)의 운영은 프로세서들(224)의 하드웨어 엔진들을 인에이블 및 디스에이블하기 위한 On /Off CoD를 사용하여 조정될 수 있다. 대안적으로, 또는 추가적으로, 처리 용량은 가상화된 시스템에서 가상 머신 우선순위를 변경함으로써 증가될 수 있다. 
[0094] 하나 또는 그 이상의 예들에서, 파티션 (414)의 추가의 처리 용량은 파티션(414)에 할당된 I/O 디바이스들(218), 메모리(216), 또는 다른 컴퓨팅 자원들(206)을 증가시킴으로써, 제공될 수 있다. 대안적으로, 또는 추가적으로, 추가 용량은 라이브 게스트 재배치 기술들(live guest relocation techniques)을 사용하여 파티션(414)의 운영 체제 이미지를 다른 DPS(202)로 이동함으로써 전달될 수 있고, DPS(202)는 비정상적인 이벤트의 성능 영향을 부분적으로 또는 완전히 상쇄할 의도로 추가 용량을 전달할 수 있다. 이 경우, 파티션(414)이 이동되는 다른 DPS(202)는 백업 DPS(202)로 지칭될 수 있다. 하나 또는 그 이상의 예들에서, 백업 DPS(202)의 자원 관리자(203)는 하나 또는 그 이상의 컴퓨팅 자원들(206)을 제3DPS(202)로부터 재배치된 파티션(414)에 할당할 수 있다. 본 명세서에 설명된 바와 같이, 파티션(414)에 할당된 컴퓨팅 자원은, 예를 들어, CoD 또는 다른 기술들을 사용하여, 동적으로 추가로 구성될 수 있다.  
[0095] 추가의 처리 능력이 자원 관리자(203)에 의해 제공될 수 있다. 하나 또는 그 이상의 예들에서, 파티션(414)은 비정상적인 이벤트의 유형을 표시하고, 응답으로, 처리 용량이, 전술한 바와 같이, 하나 또는 그 이상의 추가적인 컴퓨팅 자원들(206)을 제공함으로써 증가된다. 
[0096] 연산 단계(760)에서, 추가의 처리 용량이 일단 제공되면, 증가된 처리 능력에서 파티션의 처리가 계속된다. 연산 단계(770)에서, 비정상 이벤트 처리가 완료되었는지 여부에 대한 결정이 내려질 수 있다. 이것은 위에서 논의한 기준 중 하나에 기초하여 수행될 수 있다. 만일 비정상 이벤트 처리가 완료되지 않았다면(연산 단계770: NO), 증가된 처리 능력은 연산 단계(760)에서 계속되고, 그렇지 않은 경우(연산 단계 770: YES), 연산 단계(780)에서, 파티션(414)의 운영을 위한 처리가 완료되고 운영은, 연산 단계(780)에서, 정상 처리 능력으로 복원되며, 정상의 안정된 상태에서(at normal steady state) 파티션의 운영이 계속된다. 비정상 이벤트를 해결하는 것은 비정상 이벤트가 완료된 후에 수행되는 연산들을 포함할 수 있다. 예를 들어, 비정상 이벤트가 IPL인 경우, 추가 컴퓨팅 자원들(206)은 안정된 상태의 컴퓨팅 자원들에서 IPL과 비교하여 더 짧은 시간에 IPL을 완료하도록 파티션(414)을 도울 수 있다. 
[0097] 또한, 하나 또는 그 이상의 예들에서, 추가의 컴퓨팅 자원들은 비정상 이벤트를 해결하기위해 파티션에 의해서 사용된다. 비정상 이벤트를 해결하는 것은, 비정상 이벤트의 원인을 결정하는 것과 같은, 하나 또는 그 이상의 후속 작업을 수행하는 것을 포함할 수 있다. 예를 들어, 비정상 이벤트가 계획되지 않은 시스템 종료로 인한 IPL인 경우에, 해결에는 시스템 진단, 추적 및 기타 유형의 분석을 수행하여 비정상 이벤트의 원인을 파악하는 것이 포함될 수 있다. 비정상 이벤트를 해결하기 위한 그러한 연산들은 또한 계산 집약적일 수 있기 때문에 자원 관리자(203)는 그러한 진단 또는 분석 연산들을 완료하기 위해 추가 컴퓨팅 자원을 제공하는 것을 도울 수 있다. 
[0098] 프로세스(700)는 계속적으로 작동하도록 설계될 수 있다. 파티션(414)의 컴퓨팅 자원들을 복원하는 것은 파티션(414)에 할당된 추가 컴퓨팅 자원들의 할당을 해제하는 것을 포함할 수 있다. 파티션(414)은 사용될 수 있는 프로세스(700)를 설명하기 위한 예시적인 파티션으로 위에서 설명되었지만, 다른 예들에서는 파티션들의 세트(402)로부터 다른 파티션이 비정상적인 이벤트를 경험할 수도 있다.   
[0099] 도 8은 본 명세서에 개시된 하나 또는 그 이상의 실시 예들에 따른 특정 이벤트 처리 동안 프로세서 코어들의 처리 용량을 증가시키기 위한 다른 방법의 예의 플로차트이다. 연산 단계(805)에서, 프로세스(800)는, DPS(202) 상에서 호스트 되는 파티션(414a)에 대해서, 활성 상태(223)에 있는 제1 코어(220a) 및 초기에 비활성 상태(221)에 있는 제2 코어(220b)를 포함하는 프로세서 유닛들의 세트(224)를 포함하는, 컴퓨팅 자원들의 제1 세트를 할당하는 단계에 의해서 시작될 수 있다. 제2 코어(220b)는, 비활성 상태(221)에 있는 동안, 프로세서 유닛들의 세트(224) 내에 이미 존재하는(pre-exiting) LCC(잠재 CPU 용량)를 나타낼 수 있다. 시스템이 정상 상태 또는 정상 운영 모드에서 실행되고 있을 때, 연산 단계(810)에서, 시스템은 제2 코어(220b)없이 제1 코어(220a)만으로 운영된다. 연산 단계(815)에서, IPL과 같은, 비정상 이벤트의 표시가 자원 관리자(203)에 의해 결정되거나 수신될 수 있으며, 이는 비정상 이벤트에 의해서 생성된 증가된 처리 로드를 처리하기 위해 파티션(414a)의 처리 용량이 증가되어야 함을 표시한다. 연산 단계(820)에서, 제2 코어(220b)는 비활성 상태(221)에서 활성 상태(223)로 변경되고, 이에 의해서, 제1 코어(220a) 및 제2 코어(220b)를 모두 사용하여 파티션(414a)에 처리 파우어를 제공한다.    
[0100] 연산 단계(825)에서, IPL과 같은, 제2 비정상 이벤트의 표시가 자원 관리자(203)에 의해 결정되거나 수신될 수 있으며, 이는 제2비정상 이벤트에 의해서 생성된 증가된 처리 로드를 처리하기 위해 제2파티션(414b)의 처리 용량이 증가되어야 함을 표시한다. 연산 단계(830)에서, 제2파티션(414b)와 연관된 제3 코어(220c)는 비활성 상태(221)에서 활성 상태(223)로 변경되고, 이에 의해서, 파티션(414b)에 추가의 처리 파우어를 제공한다. 연산 단계(835)에서, 제1 파티션(414a)에서 비정상 이벤트가 종료되거나, 위에서 설명한 미리 정의된 또는 다른 기준이 발생할 때, 제1 파티션(414a)에서의 제2 코어(220b)는 활성 상태(223)에서 비활성 상태(221)로 변경될 수 있다. 유사하게, 제2 파티션(414b)에서 비정상 이벤트가 종료되거나, 위에서 기술된 미리 정의된 또는 다른 기준이 발생할 때, 제1 파티션(414a)에서의 제3 코어(220c)는 활성 상태(223)에서 비활성 상태(221)로 변경될 수 있다.     
[0101] 따라서, 여기서 논의된 하나 또는 그 이상의 실시 예들은 비정상 이벤트가 검출되고 추가의 자원들이 상기 이벤트의 검출에 기초하여 제공되는 시스템을 제공한다. 비정상 이벤트는 SLA 또는 기타 임계 값들에 의해서, 기대되는 레벨들의 출력을 전달하는, DPS의, 특히 DPS의 파티션의, 능력에 영향을 미치는 상태(condition)이다. 추가 자원들의 적용 기간은 이벤트 기간을 지나서 연장될 수 있다. 예를 들어, IPL(부팅) 동안 적용된 추가 자원들은, IPL(부팅)과 같은, 비정상 이벤트 이후 일정 기간 동안 계속 이용 가능할 수 있다.   
[0102] 하나 또는 그 이상의 실시 예들에 따라, 컴퓨터 서버와 같은, DPS는 파티션에서 비정상 이벤트를 검출할 수 있으며, 응답으로, 그 파티션에 추가의 컴퓨팅 자원들을 제공한다. 원하는 레벨의 출력은, 예를 들어, SLA에 제공된, 하나 또는 그 이상의 임계 값들을 포함할 수 있다.     
[0103] 하나 또는 그 이상의 예들에서, 검출되는 비정상 이벤트는 물리적 또는 가상의 하드웨어 상에서 운영체제의 IPL(부팅)이다. 하나 또는 그 이상의 예들에서, 운영 체제의 IPL(부팅)은 클라우드 또는 하이퍼스케일 환경에서 일어날 수 있다. 
[0104]는 하나 또는 그 이상의 예들에서, 추가된 추가의 자원은 추가의 처리 용량이고, 이는 추가의 코어들을 통해서 전달될 수 있으며, 코어 당 처리 능력을 증가시킴으로써(예를 들어, 서브-용량 모델로부터 완전 속도 모델로 용량을 증가시킴으로써), 및/또는 가상화된 시스템 상에서 가상 머신 우선 순위를 변경함으로써 전달될 수 있다. 추가된 추가의 용량은 사용하기 위해 파티션(414)에 할당되어 있는, I/O 디바이스들, 메모리, 또는 다른 하드웨어 전자 회로를 포함할 수 있다. 하나 또는 그 이상의 예들에서, 추가된 추가의 용량은 영향을 받은 파티션의 운영 체제 이미지를 비정상적인 이벤트의 성능 영향을 부분적으로 또는 완전히 상쇄할 의도로 추가 용량을 전달할 수 있는 환경으로 이동함으로써 전달된다.  
[0105] 따라서, 여기서 개시된 하나 또는 그 이상의 실시 예들은 컴퓨터 기술에 대한 개선을 제공한다. 예를 들어, 클라우드 컴퓨팅 제공자는 하이퍼바이저 우선순위의 조정을 통해서 가상화된 환경의 파티션에서 가상 머신에 의해서 보여지는 실제 처리 성능을 증가시키도록 하나 또는 그 이상의 실시예를 사용할 수 있다. 가상 머신은 다양한 워크로드들을 처리하고 가상 머신을 호스트 하는 컴퓨터 서버뿐만 아니라, 컴퓨터 서버의 서버 클러스터의 일부일 수 있는 다른 컴퓨터 서버로부터, 할당될 수 있는 추가 컴퓨팅 자원을 요청할 수 있다. 또한, 하나 또는 그 이상의 예에서, 특히 다수 파티션들을 갖는 DPS들에서, 제2 파티션으로부터의 컴퓨팅 자원들이 더 높은 컴퓨팅 자원들을 요구하는 파티션에 할당될 수 있다. 여기에 설명된 바와 같이, 컴퓨팅 자원들은, 컴퓨터 사용자들에게 다운타임의 주요 소스가 될 수 있는, 부팅/IPL/복구 시간 등과 같은, 계획된 및/또는 계획되지 않은 이벤트의 검출에 응답하여 할당된다. 본 발명의 하나 또는 그 이상의 실시 예들은 부팅/IPL/복구 시간 또는 기타 이벤트로 인한 그러한 다운타임을 단축하여 DPS의 성능을 향상시킨다.  
[0106] 다른 예들에서, Oracle ExadataTM 와 같은 데이터베이스는 상기 하나 또는 그 이상의 실시 예들을 사용하여, 데이터베이스 장치(the database appliance) 내부에서 트레이스들 (traces)을 실행하는 동안, 충격없이 워크로드 처리를 계속할 수 있다. 상기 데이터베이스 서버는 또한 서버 중단 후에 추가 처리 용량을 제공할 수 있고 워크로드 중단을 해결하기 위한 추가의 컴퓨팅 자원들을 할당함으로써 클라이언트가 워크로드 중단으로부터 복구할 수 있도록 도울 수 있다.  
[0107] 도면들에서의 플로차트와 블록도는 발명의 다양한 실시 예들에 따른 시스템들, 방법들 및 컴퓨터 프로그램 제품들의 가능한 구현들의 아키텍처, 기능 및 연산을 예시한다. 이와 관련하여, 플로차트 또는 블록도의 각 블록은, 특정 논리 함수(들)을 구현하기 위한 하나 또는 그 이상의 실행 가능한 명령들을 포함하는, 모듈, 세그먼트, 또는 코드의 일부를 나타낼 수 있다. 
[0108] 일부 대안적인 구현들에서, 블록들에서 언급된 기능들(함수들)은 도면들에 명시된 순서를 벗어나서 발생할 수 있다. 예를 들어, 연속적으로 도시된 2개의 블록은, 실제로, 실질적으로 동시에 실행될 수 있거나, 관련된 기능에 따라, 블록이 때때로 역순으로 실행될 수 있다. 블록도 및/또는 플로차트의 각 블록, 및 블록도 및/또는 플로차트의 블록 조합은 명시된 함수들 또는 동작들을 수행하는 특수 목적 하드웨어 기반 시스템, 또는 특수 목적 하드웨어와 컴퓨터 명령의 조합에 의해서 구현될 수도 있다. 
[0109] 본 발명의 실시 예들은 시스템, 방법, 및/또는 통합의 모든 가능한 기술적 세부 수준에서 컴퓨터 프로그램 제품이 될 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 스토리지 매체를 포함할 수 있으며, 이 매체 상에 프로세서가 본 발명의 실시 예들을 수행하도록 하는 컴퓨터 판독 가능 프로그램 명령들을 갖는다. 
[0110] 상기 컴퓨터 판독 가능 스토리지 매체는 명령 실행 장치에 의해 사용될 명령들을 유지 및 저장할 수 있는 유형의(tangible) 디바이스일 수 있다. 상기 컴퓨터 판독 가능 ㅅ토리지 매체는, 예를 들면, 전자 스토리지 디바이스, 자기 스토리지 디바이스, 광 스토리지 디바이스, 전자기 스토리지 디바이스, 반도체 스토리지 디바이스, 또는 전술한 것들의 모든 적절한 조합일 수 있으며, 그러나 이에 한정되지는 않는다. 컴퓨터 판독 가능 스토리지 매체의 더 구체적인 예들의 비포괄적인 목록에는 다음이 포함될 수 있다: 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 소거 및 프로그램가능 판독-전용 메모리(EPROM 또는 플래시 메모리), 정적 랜덤 액세스 메모리(SRAM), 휴대용 컴팩트 디스크 판독-전용 메모리(CD-ROM), 디지털 다용도 디스크(DVD), 메모리 스틱, 플로피 디스크, 천공-카드들 또는 명령들이 히스토리된 홈에 있는 융기된 구조들 같이 기계적으로 인코드 된 장치, 및 전술한 것들의 모든 적절한 조합. 본 명세서에서 사용될 때, 컴퓨터 판독 가능 스토리지 매체는 무선 전파들이나 다른 자유롭게 전파되는 전자기파들, 도파 관이나 기타 전송 매체(예를 들어, 광섬유 케이블을 통해 전달되는 광 펄스들)를 통해 전파되는 전자기파들, 또는 선(wire)을 통해 전송되는 전기 신호들 같이 그 자체로 일시적인(transitory) 신호들로 해석되지는 않는다.
[00111] 본 명세서에 기술되는 컴퓨터 판독 가능 명령들은, 예를 들어, 인터넷, 근거리 통신망, 광역 통신망 및/또는 무선 네트워크 등의 통신망(네트워크)을 통해 컴퓨터 판독 가능 스토리지 매체로부터 각각 컴퓨팅/처리 디바이스들로 또는 외부 스토리지 디바이스로부터 외부 컴퓨터로 다운로드 될 수 있다. 상기 통신망은 구리 전송 케이블들, 광 전송 섬유들, 무선 전송, 라우터들, 방화벽들, 스위치들, 게이트웨이 컴퓨터들 및/또는 엣지 서버들을 포함할 수 있다. 각 컴퓨팅/처리 장치 내 네트워크 어댑터 카드 또는 네트워크 인터페이스는 상기 통신망으로부터 컴퓨터 판독 가능 프로그램 명령들을 수신하고 그 컴퓨터 판독 가능 프로그램 명령들을 각각의 컴퓨팅/처리 디바이스 내의 컴퓨터 판독 가능 스토리지 매체에 저장하기 위해 전송한다.
[0112] 본 발명의 연산들을 실행하기 위한 컴퓨터 판독 가능 프로그램 명령들은 Smalltalk, C++ 또는 그와 유사 언어 등의 객체 지향 프로그래밍 언어와 "C" 프로그래밍 언어 또는 그와 유사한 언어 등의 종래의 절차적 프로그래밍 언어들을 포함하여, 하나 또는 그 이상의 프로그래밍 언어들을 조합하여 작성된(written) 어셈블러 명령들, 명령-세트-아키텍처(ISA) 명령들, 머신 명령들, 머신 종속 명령들, 마이크로코드, 펌웨어 명령들, 상태-셋팅 데이터, 집적회로를 위한 구성 데이터, 또는 소스 코드나 목적 코드일 수 있다. 상기 컴퓨터 판독 가능 프로그램 명령들은 전적으로 사용자의 컴퓨터상에서, 부분적으로 사용자의 컴퓨터상에서, 독립형(stand-alone) 소프트웨어 패키지로서, 부분적으로 사용자의 컴퓨터상에서 그리고 부분적으로 원격 컴퓨터상에서 또는 전적으로 원격 컴퓨터나 서버상에서 실행될 수 있다. 위에서 마지막의 경우에, 원격 컴퓨터는 근거리 통신망(LAN) 또는 광역 통신망(WAN)을 포함한 모든 종류의 네트워크를 통해서 사용자의 컴퓨터에 접속될 수 있고, 또는 이 접속은 (예를 들어, 인터넷 서비스 제공자를 이용한 인터넷을 통해서) 외부 컴퓨터에 이루어질 수도 있다. 일부 실시 예들에서, 예를 들어 프로그램 가능 로직 회로, 필드-프로그램 가능 게이트 어레이들(FPGAs), 또는 프로그램 가능 로직 어레이들(PLAs)을 포함한 전자 회로는 본 발명의 실시 예들을 수행하기 위해 전자 회로를 맞춤화하도록 상기 컴퓨터 판독 가능 프로그램 명령들의 상태 정보를 활용하여 상기 컴퓨터 판독 가능 프로그램 명령들을 실행할 수 있다.
[0113] 본 명세서에서는 본 발명의 실시 예들에 따른 방법들, 장치들(시스템들), 및 컴퓨터 프로그램 제품들의 플로 차트 예시도들 및/또는 블록도들을 참조하여 본 발명의 실시 예들을 기술한다. 플로 차트 예시도들 및/또는 블록도들의 각 블록과 플로 차트 예시도들 및/또는 블록도들 내 블록들의 조합들은 컴퓨터 판독 가능 프로그램 명령들에 의해 구현될 수 있다는 것을 이해할 수 있을 것이다.
[0114] 이들 컴퓨터 판독 가능 프로그램 명령들은 범용 컴퓨터, 특수목적용 컴퓨터, 또는 기타 프로그램가능 데이터 처리 장치의 프로세서에 제공되어 머신(machine)을 생성하고, 그렇게 하여 그 명령들이 상기 컴퓨터 또는 기타 프로그램가능 데이터 처리 장치의 프로세서를 통해서 실행되어, 상기 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현하기 위한 수단을 생성할 수 있다. 이들 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터 판독 가능 스토리지 매체에 저장될 수 있으며, 컴퓨터, 프로그램가능 데이터 처리 장치 및/또는 기타 디바이스들에 지시하여 명령들이 저장된 상기 컴퓨터 판독 가능 스토리지 매체가 상기 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능/동작의 특징들을 구현하는 명령들을 포함하는 제조품(an article of manufacture)을 포함하도록 특정한 방식으로 기능하게 할 수 있다.
[0115] 상기 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터, 기타 프로그램가능 데이터 처리 장치, 또는 다른 디바이스에 로드 되어, 상기 컴퓨터, 기타 프로그램가능 장치 또는 다른 디바이스에서 일련의 동작 단계들이 수행되게 하여 컴퓨터 구현 프로세스를 생성하며, 그렇게 하여 상기 컴퓨터, 기타 프로그램가능 장치, 또는 다른 디바이스 상에서 실행되는 명령들이 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현할 수 있다.
[0116] 다양한 실시 예들에 대한 설명은 예시와 설명의 목적으로 제공되는 것이며, 개시되는 형태로 빠짐없이 총 망라하거나 한정하려는 의도가 있는 것은 아니다. 기술된 실시 예들의 범위 및 정신을 벗어나지 않으면서 이 기술 분야에서 통상의 지식을 가진 자라면 많은 수정들 및 변형들이 있을 수 있다는 것을 알 수 있다. 여기서 사용된 용어들은 상기 실시 예들의 원리들, 실제 응용 또는 시장에서 발견된 기술들에 대한 기술적 개선을 가장 잘 설명하기 위해, 또는 여기에 개시된 상기 실시 예들을 이 기술 분야에서 통상의 지식을 가진 자들이 이해할 수 있도록 하기 위해 선택되었다.

Claims (25)

  1. 비정상 이벤트에 대한 가상 머신들의 처리 용량을 증가시키는 컴퓨터-구현 방법에 있어서, 상기 방법은, 프로세서를 사용하여:
    데이터 처리 시스템(DPS) 내에서, 프로세서 유닛들의 세트를 포함하는 컴퓨팅 자원들의 제1 세트를 제공하는 단계 - 상기 프로세서 유닛들의 세트는 활성 상태의 하나 또는 그 이상의 제1 코어들 및 초기에 비활성 상태인 하나 또는 그 이상의 제2 코어들을 포함하고, 상기 하나 또는 그 이상의 제2 코어들은, 비활성 상태에 있는 동안, 상기 프로세서 유닛들의 세트 내에 이미 존재하는 잠재 CPU 용량(LCC)을 나타냄-;
    DPS에서 호스트 되는 파티션에 대해서, 활성 상태에 있는 상기 하나 또는 그 이상의 제1 코어들을 갖는 상기 프로세서 유닛들의 세트를 포함하는 상기 컴퓨팅 자원들의 제1 세트를 할당하는 단계;
    상기 하나 또는 그 이상의 제2 코어들이 활성화되기 전에 상기 하나 또는 그 이상의 제1 코어들을 사용하여 상기 파티션을 운영하는 단계;
    비정상 이벤트 발생에 기초하여 LCC를 활용하는 상기 파티션에 대한 처리 용량을 증가시키는 것을, 자원 관리자에 의해서, 결정하는 단계;
    운영 체제 또는 상기 파티션 내의 애플리케이션에 의해서 상기 비정상 이벤트를 검출하는 단계 - 상기 증가시키는 것을 결정하는 것은 상기 비정상 이벤트를 검출하는 운영 체제 또는 상기 파티션의 애플리케이션에 의해서 요청된 증가 요청에 기초하고, 상기 비정상 이벤트는 그것을 검출한 상기 파티션 내에서 발생함 -;
    상기 증가시키는 것을 결정하는 것에 응답하여, 비활성 상태에서 활성 상태로 상기 하나 또는 그 이상의 제2 코어들을 활성화하는 단계;
    상기 하나 또는 그 이상의 제2 코어들이 활성화된 후 상기 하나 또는 그 이상의 제1 코어들과 상기 하나 또는 그 이상의 제2 코어들 모두 사용하여 상기 파티션을 운영하는 단계; 및
    미리 정의된 기준에 응답하여, 활성 상태에서 비활성 상태로 상기 하나 또는 그 이상의 제2 코어들을 비활성화 하는 단계를 포함하는
    컴퓨터-구현 방법.
  2. 제1항에 있어서, 상기 하나 또는 그 이상의 제 2 코어들은 상기 파티션을 호스트하는 상기 DPS의 일부인
    컴퓨터-구현 방법.
  3. 제1항에 있어서, 상기 증가시키는 것을 결정하는 단계는 상기 자원 관리자에 의해서 수신된 증가 요청에 기초하는
    컴퓨터-구현 방법.
  4. 제1항에 있어서, 상기 비정상 이벤트는 상기 파티션에서 실행되는 운영 체제 인스턴스의 초기 프로그램로드(IPL)인
    컴퓨터-구현 방법.
  5. 제1항에 있어서, 상기 미리 정의된 기준은 상기 비정상 이벤트의 완료인
    컴퓨터-구현 방법.
  6. 제1항에 있어서, 상기 미리 정의된 기준은 상기 하나 또는 그 이상의 제 2 코어들의 활성화 이후 미리 정의된 기간과 프로세서 전력의 미리 정의된 양의 사용 중 적어도 하나인
    컴퓨터-구현 방법.
  7. 제1항에 있어서, 상기 컴퓨터-구현 방법은 비정상 이벤트의 미리 정의된 또는 검출된 부하 요구 중 적어도 하나에 기초하여 상기 파티션을 위해 활성화할 추가 비활성 코어들의 수를 결정하는 단계를 더 포함하는
    컴퓨터-구현 방법.
  8. 제 1 항에 있어서, 상기 컴퓨터-구현 방법은 상기 파티션과 연관된 히스토리 데이터에 기초하여 상기 파티션을 위해 활성화할 상기 하나 또는 그 이상의 제 2 코어들의 수를, 상기 자원 관리자에 의해서, 결정하는 단계를 더 포함하는 
    컴퓨터-구현 방법.
  9. 제 8 항에 있어서, 상기 자원 관리자는 상기 파티션의 생성, 종료 및 운영을 감독하는 하이퍼 바이저를 포함하는
    컴퓨터-구현 방법.
  10. 삭제
  11. 삭제
  12. 제 1 항에 있어서, 상기 컴퓨터-구현 방법은 상기 하나 또는 그 이상의 제 2 코어들의 활성화가 비정상적인 이벤트를 처리하는데(addressing) 유용할 때 하이퍼 바이저에 의해서 결정하는 단계를 더 포함하는
    컴퓨터-구현 방법.
  13. 제 1 항에 있어서, 상기 컴퓨터-구현 방법은:
    상기 파티션에 컴퓨팅 자원들을 추가하는 것과 시간적으로 중첩되는 제2 비정상 이벤트의 발생에 기초하여 LCC를 활용하는 제2 파티션에 대한 처리 용량을 증가시키는 것을, 상기 자원 관리자에 의해서, 결정하는 단계;
    상기 제2 파티션에 대한 처리 용량을 증가시키는 것을 결정하는 것에 응답하여, a) 활성화된 상기 하나 또는 그 이상의 제2 코어들에 의해서 제공된 자원들을 증가시키는 단계, 또는 b) 상기 제2 파티션에 하나 또는 그 이상의 제3 코어들을 할당하는 단계로 구성되는 그룹으로부터 선택된 상기 제2 파티션에 추가 자원들을 제공하는 단계;
    상기 하나 또는 그 이상의 제3 코어들이 활성화된 후 제1 파티션의 상기 하나 또는 그 이상의 제1 코어들 또는 상기 하나 또는 그 이상의 제2 코어들 중 적어도 하나와 일시적으로 중첩되는 상기 제2 파티션의 상기 하나 또는 그 이상의 제3 코어들을 사용하여 상기 제2 파티션을 운영하는 단계; 및
    제2의 미리 정의된 기준에 응답하여, a) 활성화된 상기 하나 또는 그 이상의 제2 코어들에 의해서 제공된 자원들을 감소시키는 단계, 또는 b) 상기 제2 파티션으로부터 하나 또는 그 이상의 제3 코어들을 할당해제 하는 단계로 구성되는 그룹으로부터 선택된 상기 제2 파티션에 이전에 제공되었던 추가 자원들을 제거하는 단계를 더 포함하는
    컴퓨터-구현 방법.
  14. 제 13 항에 있어서,
    상기 하나 또는 그 이상의 제3 코어들의 할당하는 단계는 비활성 상태로부터 활성 상태로 상기 하나 또는 그 이상의 제3 코어들을 활성화하는 단계를 포함하고; 그리고
    상기 하나 또는 그 이상의 제3 코어들의 할당 해제하는 단계는 활성 상태로부터 비활성 상태로 상기 하나 또는 그 이상의 제3 코어들을 비활성화하는 단계를 포함하는
    컴퓨터-구현 방법.
  15. 제 13 항에 있어서,
    상기 하나 또는 그 이상의 제3 코어들의 할당하는 단계는 상기 제2 코어들 중 하나 또는 그 이상을 상기 제1파티션으로부터 상기 제2파티선으로 부분적으로 또는 완전하게 재 배정하는 단계를 포함하고; 그리고
    상기 하나 또는 그 이상의 제3 코어들의 할당 해제하는 단계는 상기 하나 또는 그 이상의 제3 코어들을 상기 제2파티션으로부터 배정 해제하는 단계를 포함하는
    컴퓨터-구현 방법.
  16. 비정상 이벤트에 대한 가상 머신들의 처리 용량을 증가시키는 컴퓨터-구현 방법에 있어서, 상기 방법은, 프로세서를 사용하여:
    데이터 처리 시스템(DPS) 내에서, 프로세서 유닛들의 세트를 포함하는 컴퓨팅 자원들의 제1 세트를 제공하는 단계 - 상기 프로세서 유닛들의 세트는 활성 상태의 하나 또는 그 이상의 제1 코어들 및 초기에 비활성 상태인 하나 또는 그 이상의 제2 코어들을 포함하고, 상기 하나 또는 그 이상의 제2 코어들은, 비활성 상태에 있는 동안, 상기 프로세서 유닛들의 세트 내에 이미 존재하는 잠재 CPU 용량(LCC)을 나타냄-;
    DPS에서 호스트 되는 파티션에 대해서, 활성 상태에 있는 상기 하나 또는 그 이상의 제1 코어들을 갖는 상기 프로세서 유닛들의 세트를 포함하는 상기 컴퓨팅 자원들의 제1 세트를 할당하는 단계;
    상기 하나 또는 그 이상의 제2 코어들이 활성화되기 전에 상기 하나 또는 그 이상의 제1 코어들을 사용하여 상기 파티션을 운영하는 단계;
    비정상 이벤트 발생에 기초하여 LCC를 활용하는 상기 파티션에 대한 처리 용량을 증가시키는 것을, 자원 관리자에 의해서, 결정하는 단계;
    상기 증가시키는 것을 결정하는 것에 응답하여, 비활성 상태에서 활성 상태로 상기 하나 또는 그 이상의 제2 코어들을 활성화하는 단계;
    상기 하나 또는 그 이상의 제2 코어들이 활성화된 후 상기 하나 또는 그 이상의 제1 코어들 및 상기 하나 또는 그 이상의 제2 코어들 모두를 사용하여 상기 파티션을 운영하는 단계;
    미리 정의된 기준에 응답하여, 활성 상태에서 비활성 상태로 상기 하나 또는 그 이상의 제2 코어들을 비활성화 하는 단계; 및
    상기 하나 또는 그 이상의 제2 코어들의 활성화 및 비활성화와 관련된 정보를 로그 하는 단계, 트랙하는 단계, 또는 감사하는 단계 중의 적어도 하나를 수행하는 단계를 포함하는
    컴퓨터-구현 방법.
  17. 비정상 이벤트에 의해서 트리거된 가상 머신들의 증가된 처리 용량을 측정하고 보고하는 컴퓨터-구현 방법에 있어서, 상기 방법은, 프로세서를 사용하여:
    비정상 이벤트 발생에 의해서 트리거된 파티션에 대해 처리 용량을 증가시키기 위해, 추가의 자원들이 상기 파티션에 적용되었음을 결정하는 단계;
    상기 추가 자원들의 적용 범위 및 기간을 결정하는 단계; 및
    상기 추가 자원들의 활성화 및 비활성화와 관련된 정보를 로그 하는 단계, 트랙 하는 단계, 또는 감사하는 단계 중의 적어도 하나를 수행하는 단계를 포함하는
    컴퓨터-구현 방법.
  18. 비정상 이벤트에 대한 가상 머신들의 처리 용량을 증가시키는 컴퓨터 시스템에 있어서, 상기 컴퓨터 시스템은 명령들을 실행하도록 구성된 프로세서를 포함하고, 상기 명령들은, 상기 프로세서 상에서 실행되었을 때, 상기 프로세서가 방법을 실행하게 하며, 상기 방법은:
    데이터 처리 시스템(DPS) 내에서, 프로세서 유닛들의 세트를 포함하는 컴퓨팅 자원들의 제1 세트를 제공하는 단계 - 상기 프로세서 유닛들의 세트는 활성 상태의 하나 또는 그 이상의 제1 코어들 및 초기에 비활성 상태인 하나 또는 그 이상의 제2 코어들을 포함하고, 상기 하나 또는 그 이상의 제2 코어들은, 비활성 상태에 있는 동안, 상기 프로세서 유닛들의 세트 내에 이미 존재하는 잠재 CPU 용량(LCC)을 나타냄-;
    DPS 상에서 호스트 되는 파티션에 대해서, 활성 상태에 있는 상기 하나 또는 그 이상의 제1 코어들을 갖는 상기 프로세서 유닛들의 세트를 포함하는 상기 컴퓨팅 자원들의 제1 세트를 할당하는 단계;
    상기 하나 또는 그 이상의 제2 코어들이 활성화되기 전에 상기 하나 또는 그 이상의 제1 코어들을 사용하여 상기 파티션을 운영하는 단계;
    비정상 이벤트 발생에 기초하여 LCC를 활용하는 상기 파티션에 대한 처리 용량을 증가시키는 것을, 자원 관리자에 의해서, 결정하는 단계;
    상기 증가시키는 것을 결정하는 것에 응답하여, 비활성 상태에서 활성 상태로 상기 하나 또는 그 이상의 제2 코어들을 활성화하는 단계;
    상기 하나 또는 그 이상의 제2 코어들이 활성화된 후 상기 하나 또는 그 이상의 제1 코어들과 상기 하나 또는 그 이상의 제2 코어들 모두를 사용하여 상기 파티션을 운영하는 단계; 
    미리 정의된 기준에 응답하여, 활성 상태에서 비활성 상태로 상기 하나 또는 그 이상의 제2 코어들을 비활성화 하는 단계; 및
    상기 제2 코어의 활성화 및 비활성화와 관련된 정보를 로그 하는 단계를 수행하는 단계를 포함하는
    컴퓨터 시스템.
  19. 제 18 항에 있어서,
    상기 비정상 이벤트는 상기 파티션에서 실행 중인 운영 체제 인스턴스의 초기 프로그램 로드이고;
    상기 미리 정의된 기준은 상기 비정상 이벤트의 완료, 제2 코어를 활성화한 후 미리 정의된 기간, 및 프로세서 전력의 미리 정의된 양의 사용 중 적어도 하나이며;
    상기 자원 관리자는 상기 파티션의 생성, 종료 및 운영을 감독하는 하이퍼바이저를 포함하고; 그리고
    상기 명령은 상기 제2 코어의 활성화가 상기 비정상적인 이벤트를 처리하는 데 유용한 때를 상기 하이퍼바이저에 의해서 결정하는 단계를 상기 프로세서가 더 수행하도록 하는
     컴퓨터 시스템.
  20. 삭제
  21. 구현된 컴퓨터-판독가능 프로그램 코드를 갖는 컴퓨터-판독가능 매체에 있어서, 상기 프로그램 코드는, 프로세서 상에서 실행되었을 때, 상기 프로세서가 비정상 이벤트에 대한 가상 머신들의 처리 용량을 증가시키는 방법을 실행하게 하며, 상기 방법은:
    데이터 처리 시스템(DPS) 상에서 호스트 되는 파티션에 대해서, 프로세서 유닛들의 세트를 포함하는 컴퓨팅 자원들의 제1 세트를 할당하는 단계-상기 프로세서 유닛들의 세트는 활성 상태의 제1 코어 및 초기에 비활성 상태인 제2 코어를 포함하고, 상기 제2 코어는, 비활성 상태에 있는 동안, 상기 프로세서 유닛들의 세트 내에 이미 존재하는 잠재 CPU 용량(LCC)을 나타냄-;
    상기 제2 코어가 활성화되기 전에 상기 제1 코어를 사용하여 상기 파티션을 운영하는 단계;
    비정상 이벤트 발생에 기초하여 LCC를 활용하는 상기 파티션에 대해 처리 용량을 증가시키기 위해, 자원 관리자에 의해서, 증가 표시를 수신하는 단계;
    상기 파티션의 생성, 종료 및 운영을 감독하는 하이퍼바이저에 의해서 상기 비정상 이벤트를 검출하는 단계 - 상기 증가 표시는 상기 하이퍼바이저가 상기 비정상 이벤트를 검출하는 것에 응답함 -;
    상기 증가 표시에 응답하여, 비활성 상태에서 활성 상태로 상기 제2 코어를 활성화하는 단계;
    상기 제2 코어가 활성화된 후 상기 제1 및 제2 코어 모두를 사용하여 상기 파티션을 운영하는 단계; 및
    미리 정의된 기준에 응답하여, 활성 상태에서 비활성 상태로 상기 제2 코어를 비활성화하는 단계를 포함하는
    컴퓨터-판독가능 매체.
  22. 제21항에 있어서, 컴퓨터-판독가능 매체에 구현된 상기 프로그램 코드는 상기 제2 코어의 활성화가 비정상적인 이벤트를 처리하는 데 유용한 때를 상기 하이퍼바이저에 의해서 결정하도록 더 구성되는
    컴퓨터-판독가능 매체.
  23. 제21항에 있어서, 컴퓨터-판독가능 매체에 구현된 상기 프로그램 코드는:
    LCC를 활용하는 상기 파티션에 대해 처리 용량을 증가시키기 위해, 비정상 이벤트 발생에 기초하여, 자원 관리자에 의해서, 증가 표시를 수신하는 단계;
    상기 증가 표시에 응답하여, 비활성 상태에서 활성 상태로 상기 제2 코어를 활성화하는 단계;
    LCC를 활용하는 제2 파티션에 대해 처리 용량을 증가시키기 위해, 상기 제2파티션의 비정상 이벤트와 시간적으로 중첩되는 제2 비정상 이벤트 발생에 기초하여, 자원 관리자에 의해서, 제2 증가 표시를 수신하는 단계;
    상기 제2 증가 표시에 응답하여, 비활성 상태에서 활성 상태로 제3 코어를 활성화하는 단계;
    상기 제3 코어가 활성화된 후 제1 파티션의 상기 제2 코어와 일시적으로 중첩하는 상기 제2파티션의 상기 제3 코어를 사용하여 상기 파티션을 운영하는 단계; 및
    제2의 미리 정의된 기준에 응답하여, 활성 상태에서 비활성 상태로 상기 제3 코어를 비활성화하는 단계를 더 수행하도록 구성되는
    컴퓨터-판독가능 매체.
  24. 제 23 항에 있어서, 
    상기 비정상 이벤트는 상기 파티션에서 실행 중인 운영 체제 인스턴스의 초기 프로그램 로드이고;
    상기 미리 정의된 기준은 상기 비정상 이벤트의 완료, 상기 제2 코어를 활성화한 후 미리 정의된 기간, 및 프로세서 전력의 미리 정의된 양의 사용 중 적어도 하나이며;
     상기 자원 관리자는 상기 파티션의 생성, 종료 및 운영을 감독하는 하이퍼바이저를 포함하고;
     상기 방법은 상기 제2 코어의 활성화가 비정상 이벤트를 처리하는 데 유용한 때를, 하이퍼바이저에 의해서, 결정하는 단계를 더 포함하는
    컴퓨터-판독가능 매체.
  25. 삭제
KR1020217023615A 2019-02-05 2020-01-28 비정상 이벤트에 대한 가상 머신의 처리 용량 증가 KR102672580B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/268,059 2019-02-05
US16/268,059 US10990434B2 (en) 2019-02-05 2019-02-05 Increasing processing capacity of virtual machines for an abnormal event
PCT/EP2020/052028 WO2020160961A1 (en) 2019-02-05 2020-01-28 Increasing processing capacity of partitions for an abnormal event

Publications (2)

Publication Number Publication Date
KR20210107099A KR20210107099A (ko) 2021-08-31
KR102672580B1 true KR102672580B1 (ko) 2024-06-07

Family

ID=69375343

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217023615A KR102672580B1 (ko) 2019-02-05 2020-01-28 비정상 이벤트에 대한 가상 머신의 처리 용량 증가

Country Status (14)

Country Link
US (1) US10990434B2 (ko)
EP (1) EP3921730A1 (ko)
JP (1) JP7465045B2 (ko)
KR (1) KR102672580B1 (ko)
CN (1) CN113396392A (ko)
AU (1) AU2020219324B2 (ko)
BR (1) BR112021015456A2 (ko)
CA (1) CA3128930A1 (ko)
IL (1) IL284657B2 (ko)
MX (1) MX2021009162A (ko)
SG (1) SG11202105526XA (ko)
TW (1) TWI734348B (ko)
WO (1) WO2020160961A1 (ko)
ZA (1) ZA202105523B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11366506B2 (en) * 2019-11-22 2022-06-21 Intel Corporation System, apparatus and method for globally aware reactive local power control in a processor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140007097A1 (en) 2012-06-29 2014-01-02 Brocade Communications Systems, Inc. Dynamic resource allocation for virtual machines
US20140059542A1 (en) 2012-08-27 2014-02-27 International Business Machines Corporation Optimizing virtual machine deployment time by temporarily allocating more processing resources during the initial deployment time of the virtual machine
US20140101471A1 (en) 2010-11-09 2014-04-10 International Business Machines Corporation Power management for processing capacity upgrade on demand

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US806061A (en) * 1905-05-09 1905-11-28 John W Butler Wrench.
US5649093A (en) 1995-05-22 1997-07-15 Sun Microsystems, Inc. Server disk error recovery system
US7137034B2 (en) 2000-05-19 2006-11-14 Vir2Us, Inc. Self repairing computer having user accessible switch for modifying bootable storage device configuration to initiate repair
JP2002202959A (ja) * 2000-12-28 2002-07-19 Hitachi Ltd 動的な資源分配をする仮想計算機システム
US20030009654A1 (en) 2001-06-29 2003-01-09 Nalawadi Rajeev K. Computer system having a single processor equipped to serve as multiple logical processors for pre-boot software to execute pre-boot tasks in parallel
CA2383825A1 (en) 2002-04-24 2003-10-24 Ibm Canada Limited-Ibm Canada Limitee Dynamic configuration and self-tuning of inter-nodal communication resources in a database management system
US20050081210A1 (en) 2003-09-25 2005-04-14 International Business Machines Corporation Dynamic adjustment of system resource allocation during query execution in a database management system
US8898246B2 (en) 2004-07-29 2014-11-25 Hewlett-Packard Development Company, L.P. Communication among partitioned devices
US8464250B1 (en) 2004-09-23 2013-06-11 Transcontinental Events, Llc System and method for on-demand cloning of virtual machines
US7721292B2 (en) 2004-12-16 2010-05-18 International Business Machines Corporation System for adjusting resource allocation to a logical partition based on rate of page swaps and utilization by changing a boot configuration file
US8060610B1 (en) 2005-10-28 2011-11-15 Hewlett-Packard Development Company, L.P. Multiple server workload management using instant capacity processors
US7814307B2 (en) * 2006-03-16 2010-10-12 Microsoft Corporation Fast booting a computing device to a specialized experience
JP2006323872A (ja) * 2006-08-01 2006-11-30 Hitachi Ltd 論理区画の予備リソース提供方法及び計算機システム
US7676683B2 (en) 2006-08-24 2010-03-09 Sony Computer Entertainment Inc. Method and system for rebooting a processor in a multi-processor system
US8365182B2 (en) 2006-10-02 2013-01-29 International Business Machines Corporation Method and system for provisioning of resources
US8862734B2 (en) * 2006-10-25 2014-10-14 Hewlett-Packard Development Company, L.P. System and method for selectively controlling the addition of reserve computing capacity
GB2451441B (en) 2007-07-30 2012-07-11 Lein Applied Diagnostics Ltd Optical alignment apparatus and method thereof
US9164784B2 (en) 2007-10-12 2015-10-20 International Business Machines Corporation Signalizing an external event using a dedicated virtual central processing unit
US8082433B1 (en) 2008-02-12 2011-12-20 Western Digital Technologies, Inc. Disk drive employing boot disk space to expedite the boot operation for a host computer
US8972978B2 (en) * 2008-05-02 2015-03-03 Skytap Multitenant hosted virtual machine infrastructure
US8171276B2 (en) 2008-06-10 2012-05-01 International Business Machines Corporation Minimal startup mode for performing multiple-reboot configuration
US7861117B2 (en) 2008-06-25 2010-12-28 International Business Machines Corporation Method to recover from a boot device failure during reboot or system IPL
US8418176B1 (en) 2008-09-23 2013-04-09 Gogrid, LLC System and method for adapting virtual machine configurations for hosting across different hosting systems
US8924961B2 (en) 2008-10-29 2014-12-30 Dell Products L.P. Virtual machine scheduling methods and systems
US20100153763A1 (en) 2008-12-11 2010-06-17 Kapil Sood Method and apparatus to modulate multi-core usage for energy efficient platform operations
US8627123B2 (en) 2010-03-25 2014-01-07 Microsoft Corporation Managing power provisioning in distributed computing
US8473587B1 (en) 2010-05-20 2013-06-25 Gogrid, LLC System and method for caching server images in a hosting system
US8627133B2 (en) 2010-12-20 2014-01-07 Red Hat Israel, Ltd. Virtual machine boot speed-up by clock acceleration
US20130117168A1 (en) 2011-11-04 2013-05-09 Mark Henrik Sandstrom Maximizing Throughput of Multi-user Parallel Data Processing Systems
US9288117B1 (en) 2011-02-08 2016-03-15 Gogrid, LLC System and method for managing virtual and dedicated servers
JP5673233B2 (ja) * 2011-03-09 2015-02-18 富士通株式会社 情報処理装置、仮想マシン管理方法および仮想マシン管理プログラム
US8880671B2 (en) 2011-11-14 2014-11-04 International Business Machines Corporation Releasing computing infrastructure components in a networked computing environment
US8954797B2 (en) 2012-04-16 2015-02-10 International Business Machines Corporation Reconfigurable recovery modes in high availability processors
US9037922B1 (en) 2012-05-01 2015-05-19 Amazon Technololgies, Inc. Monitoring and analysis of operating states in a computing environment
US9569275B2 (en) 2012-05-14 2017-02-14 International Business Machines Corporation Allocation and reservation of virtualization-based resources
US9513950B2 (en) * 2012-07-25 2016-12-06 Vmware, Inc. Dynamic resource configuration based on context
CN103049309B (zh) 2012-12-11 2017-09-29 华为技术有限公司 虚拟机的资源管理装置、方法和系统
TWI479421B (zh) 2013-02-04 2015-04-01 Wistron Corp 開機方法與電子裝置
WO2014147802A1 (ja) * 2013-03-21 2014-09-25 富士通株式会社 情報処理装置、資源割当方法、及びプログラム
US9280371B2 (en) 2013-07-10 2016-03-08 International Business Machines Corporation Utilizing client resources during mobility operations
US9454778B2 (en) 2013-08-14 2016-09-27 Globalfoundries Inc. Automating capacity upgrade on demand
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US9130831B2 (en) 2013-11-07 2015-09-08 International Business Machines Corporation Streaming state data for cloud management
US10140136B2 (en) 2013-11-07 2018-11-27 Datrium, linc. Distributed virtual array data storage system and method
US9626210B2 (en) 2014-09-11 2017-04-18 Amazon Technologies, Inc. Resource credit pools for replenishing instance resource credit balances of virtual compute instances
US9563777B2 (en) 2015-04-29 2017-02-07 International Business Machines Corporation Security policy generation based on snapshots of similar virtual machines
EP3531321B1 (en) 2015-09-15 2020-08-19 Gatekeeper Ltd. System and method for securely connecting to a peripheral device
US10162684B2 (en) * 2015-10-15 2018-12-25 International Business Machines Corporation CPU resource management in computer cluster
TWI595760B (zh) 2015-12-01 2017-08-11 廣達電腦股份有限公司 伺服器資源之管理系統及其管理方法
US20170178041A1 (en) 2015-12-18 2017-06-22 Hewlett Packard Enterprise Development Lp Completion contracts
US10289403B1 (en) 2018-03-29 2019-05-14 Microsoft Technology Licensing, Llc Enhanced server farm patching system for enabling developers to override off-peak patching schedules

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140101471A1 (en) 2010-11-09 2014-04-10 International Business Machines Corporation Power management for processing capacity upgrade on demand
US20140007097A1 (en) 2012-06-29 2014-01-02 Brocade Communications Systems, Inc. Dynamic resource allocation for virtual machines
US20140059542A1 (en) 2012-08-27 2014-02-27 International Business Machines Corporation Optimizing virtual machine deployment time by temporarily allocating more processing resources during the initial deployment time of the virtual machine
JP2015532754A (ja) * 2012-08-27 2015-11-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想マシンの配備時間の最適化

Also Published As

Publication number Publication date
KR20210107099A (ko) 2021-08-31
SG11202105526XA (en) 2021-06-29
BR112021015456A2 (pt) 2021-10-05
IL284657B2 (en) 2024-04-01
JP2022519102A (ja) 2022-03-18
AU2020219324B2 (en) 2023-01-05
WO2020160961A1 (en) 2020-08-13
CA3128930A1 (en) 2020-08-13
IL284657A (en) 2021-08-31
US20200249974A1 (en) 2020-08-06
TW202046098A (zh) 2020-12-16
MX2021009162A (es) 2021-09-10
EP3921730A1 (en) 2021-12-15
CN113396392A (zh) 2021-09-14
ZA202105523B (en) 2022-07-27
TWI734348B (zh) 2021-07-21
JP7465045B2 (ja) 2024-04-10
US10990434B2 (en) 2021-04-27
AU2020219324A1 (en) 2021-06-03
IL284657B1 (en) 2023-12-01

Similar Documents

Publication Publication Date Title
US10838803B2 (en) Resource provisioning and replacement according to a resource failure analysis in disaggregated data centers
US11050637B2 (en) Resource lifecycle optimization in disaggregated data centers
US9760395B2 (en) Monitoring hypervisor and provisioned instances of hosted virtual machines using monitoring templates
US10944581B2 (en) Increasing processing capacity of processor cores during initial program load processing
US11010187B2 (en) Resource allocation in high availability (HA) systems
AU2018217316A1 (en) Systems and methods for provisioning and managing an elastic computing infrastructure
US10754720B2 (en) Health check diagnostics of resources by instantiating workloads in disaggregated data centers
US11327767B2 (en) Increasing resources for partition to compensate for input/output (I/O) recovery event
US10884845B2 (en) Increasing processing capacity of processor cores during initial program load processing
US10761915B2 (en) Preemptive deep diagnostics and health checking of resources in disaggregated data centers
US10831580B2 (en) Diagnostic health checking and replacement of resources in disaggregated data centers
US11379290B2 (en) Prioritizing and parallelizing the capture of data for debugging computer programs
US20150331763A1 (en) Host swap hypervisor that provides high availability for a host of virtual machines
US11644876B2 (en) Data analytics for mitigation of data center thermal issues
US10884818B2 (en) Increasing processing capacity of virtual machines
JP2020536299A (ja) 改善されたパフォーマンスのためのユーザ・プロファイルの動的かつ自動的な変更を実施するための方法、コンピュータ・システム及びプログラム
KR102672580B1 (ko) 비정상 이벤트에 대한 가상 머신의 처리 용량 증가
US20210349705A1 (en) Performance sensitive storage system upgrade

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