KR101952795B1 - 자원 프로세싱 방법, 운영체제, 및 장치 - Google Patents

자원 프로세싱 방법, 운영체제, 및 장치 Download PDF

Info

Publication number
KR101952795B1
KR101952795B1 KR1020167018877A KR20167018877A KR101952795B1 KR 101952795 B1 KR101952795 B1 KR 101952795B1 KR 1020167018877 A KR1020167018877 A KR 1020167018877A KR 20167018877 A KR20167018877 A KR 20167018877A KR 101952795 B1 KR101952795 B1 KR 101952795B1
Authority
KR
South Korea
Prior art keywords
operating system
load operating
physical
resource
processor core
Prior art date
Application number
KR1020167018877A
Other languages
English (en)
Other versions
KR20160097363A (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 KR20160097363A publication Critical patent/KR20160097363A/ko
Application granted granted Critical
Publication of KR101952795B1 publication Critical patent/KR101952795B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/4408Boot device selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • 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/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • 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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Landscapes

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

Abstract

본 발명의 실시예는 자원 프로세싱 방법, 운영체제, 및 장치를 제공한다. 상기 자원 프로세싱 방법은 멀티-커널 운영체제에 적용되며, 상기 멀티-커널 운영체제는 관리 운영체제 및 호스트 머신 상에서 실행되는 복수의 부하 운영체제 및 물리적 자원 풀(pool)을 포함한다. 상기 자원 프로세싱 방법은:
상기 관리 운영체제가 각각의 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원 집합을 각각의 부하 운영체제에 할당하는 단계; 각각의 부하 운영체제에 대한 부트 이미지(boot image)를 구축하는 단계; 각각의 부하 운영체제에 대해, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정하는 단계; 상기 관리 운영체제가 제1 부하 운영체제에 할당된 프로세서 코어에서, 제1 부하 운영체제를 기동하는 스타트업 프로세서 코어를 결정하는 단계; 상기 관리 운영체제가, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요하고 상기 관리 운영체제에 의해 사전에 구축되어 있는 맵핑 관계를 판독하도록 상기 스타트업 프로세서 코어에 명령하는 단계; 및 상기 제1 부하 운영체제에 대해 사전에 구축된 부트 이미지를 실행하도록 상기 스타트업 프로세서 코어에 명령하는 단계를 포함한다.

Description

자원 프로세싱 방법, 운영체제, 및 장치{RESOURCE PROCESSING METHOD, OPERATING SYSTEM, AND DEVICE}
본 발명의 실시예는 통신 기술에 관한 것이며, 특히 자원 프로세싱 방법, 운영체제, 및 장치에 관한 것이다.
현재, 프로세서는 멀티-코어 프로세서의 시대로 접어들었고, 대부분의 멀티-코어 프로세서는 가상화 기술을 지원한다. 멀티-코어 프로세서에서는, 복수의 프로세서가 하나의 칩에 집적되고, 이에 의해 병렬 실행이 가능하게 된다. 게다가, 하나의 물리적 컴퓨터는 가상화 기술을 사용함으로써 복수의 가상 컴퓨터로 변환될 수 있다. 그러므로 멀티-코어 프로세서 및 가상화 기술의 결합으로, 복수의 운영체제가 하나의 물리적 컴퓨터 상에서 동시에 운영될 수 있다.
기존의 이종 멀티-커널 운영체제 아키텍처에서는, 하나의 관리 운영체제와 복수의 부하 운영체제가 하나의 물리적 컴퓨터(호스트 머신) 상에서 운영된다. 관리 운영체제는 다양한 응용 프로그램 및 복수의 부하 운영체제를 위한 실행 환경을 제공하도록 구성되어 있다. 부하 운영체제는 다양한 응용 프로그램을 위한 실행 환경을 제공하도록 구성되어 있다. 관리 운영체제는 하이퍼바이저(Hypervisor)를 사용함으로써 부하 운영체제를 실행 환경에 대응하는 물리적 자원을 제공하며, 여기서 물리적 자원은 프로세서 코어, 물리적 메모리, 외부 장치 등을 주로 포함한다. 각각의 부하 운영체제는 배타적 방식으로 하나 이상의 프로세서 코어를 사용하고, 물리적 메모리, 외부 장치 등을 시분할 다중화 방식으로 다른 부하 운영체제와 공유한다.
복수의 부하 운영체제는 물리적 메모리, 외부 장치 등을 시분할 다중화 방식으로 공유하기 때문에, 상대적으로 대량의 부하 운영체제가 있을 때, 부하 운영체제의 운영에 지연이 야기되고, 이에 의해 부하 운영체제의 전반적인 성능이 저하된다.
본 발명의 실시예는 부하 운영체제의 전반적인 성능을 향상시키기 위해 자원 프로세싱 방법, 운영체제, 및 장치를 제공한다.
제1 관점에 따라, 본 발명의 실시예는 자원 프로세싱 방법으로서, 상기 자원 프로세싱 방법은 멀티-커널 운영체제에 적용되며, 상기 멀티-커널 운영체제는 관리 운영체제, 복수의 부하 운영체제 및 물리적 자원 풀(pool)을 포함하며, 상기 물리적 자원 풀은 호스트 머신의 프로세서 코어 및 물리적 메모리를 포함하며, 상기 자원 프로세싱 방법은:
상기 관리 운영체제가 각각의 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원 집합을 각각의 부하 운영체제에 할당하고, 각각의 부하 운영체제에 대한 부트 이미지(boot image)를 구축하며, 각각의 부하 운영체제에 대해, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정하는 단계 - 각각의 물리적 자원 집합은 상기 호스트 머신의 프로세서 코어 중 일부와 상기 호스트 머신의 물리적 메모리 중 한 부분을 포함함 - ;
상기 관리 운영체제가 제1 부하 운영체제에 할당된 프로세서 코어에서, 제1 부하 운영체제를 기동하는 스타트업 프로세서 코어를 결정하는 단계 - 상기 제1 부하 운영체제는 상기 부하 운영체제 중 어느 하나임 - ;
상기 관리 운영체제가, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요하고 상기 관리 운영체제에 의해 사전에 구축되어 있는 맵핑 관계를 판독하도록 상기 스타트업 프로세서 코어에 명령하여, 상기 스타트업 프로세서 코어가 상기 부트 이미지를 실행하는 프로세스에서 상기 맵핑 관계에 따라 상기 물리적 메모리 어드레스에 액세스할 수 있게 하는 단계 - ; 및
상기 제1 부하 운영체제에 대해 사전에 구축된 부트 이미지를 실행하도록 상기 스타트업 프로세서 코어에 명령하는 단계
를 포함하며,
상기 부트 이미지는 제1 부하 운영체제의 스타트업 파라미터를 포함하고, 상기 스타트업 파라미터는 제1 부하 운영체제에 할당된 프로세서 코어의 식별자 및 제1 부하 운영체제에 할당된 물리적 메모리 어드레스의 식별자를 포함한다.
제1 관점을 참조하여, 제1 관점의 제1 가능한 실시 방식에서, 상기 관리 운영체제가, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요하고 상기 관리 운영체제에 의해 사전에 구축되어 있는 맵핑 관계를 판독하도록 상기 스타트업 프로세서 코어에 명령하여, 상기 스타트업 프로세서 코어가 상기 부트 이미지를 실행하는 프로세스에서 상기 맵핑 관계에 따라 상기 물리적 메모리 어드레스에 액세스할 수 있게 하는 단계, 및 상기 제1 부하 운영체제에 대해 사전에 구축된 부트 이미지를 실행하도록 상기 스타트업 프로세서 코어에 명령하는 단계는:
상기 관리 운영체제가 상기 스타트업 프로세서 코어에 인터-코어 차단 메시지를 송신하는 단계 - 상기 인터-코어 차단 메시지는, 스타트업 프로세서 코어를 초기화하도록 구성되어 있고 제1 부하 운영체제에 대응하는 초기화 프로그램을 실행하도록 스타트업 프로세서 코어에 명령함 - ; 및
상기 관리 운영체제가 제1 부하 운영체제에 대응하는 초기화 프로그램을 실행하도록 스타트업 프로세서 코어에 명령함으로써, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요한 맵핑 관계를 상기 초기화 프로그램으로부터 판독하도록 상기 스타트업 프로세서 코어에 명령하고, 상기 초기화 프로그램의 실행이 종료된 후, 상기 물리적 메모리에 있는 상기 부트 이미지의 위치로 점프하도록 상기 스타트업 프로세서 코어에 명령하여, 제1 부하 운영체제의 부트 이미지를 실행하는 단계
를 포함한다.
제1 관점의 제1 가능한 실시 방식을 참조하여, 제1 관점의 제2 가능한 실시 방식에서, 상기 관리 운영체제가 각각의 부하 운영체제에 대해, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정하는 단계 이전에, 상기 자원 프로세싱 방법은:
상기 관리 운영체제가 제1 부하 운영체제에 대해, 제1 부하 운영체제를 초기화하도록 구성되어 있는 초기화 프로그램을 사전에 설정하고, 상기 초기화 프로그램에서, 상기 물리적 메모리 어드레스에 있는 제1 부하 운영체제의 부트 이미지의 위치를 사전에 설정하는 단계
를 더 포함하고,
상기 관리 운영체제가 각각의 부하 운영체제에 대해, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정하는 단계는,
상기 관리 운영체제가 제1 부하 운영체제에 대해 상기 초기화 프로그램에서, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정하는 단계
를 포함한다.
제1 관점을 참조하여, 제1 관점의 제3 가능한 실시 방식에서, 상기 관리 운영체제가 제1 부하 운영체제에 할당된 프로세서 코어에서, 제1 부하 운영체제를 기동하는 스타트업 프로세서 코어를 결정하는 단계 이전에, 상기 자원 프로세싱 방법은:
상기 관리 운영체제가, 제2 부하 운영체제의 이용 가능한 프로세서 코어를 획득하는 단계
를 더 포함하며, 여기서 상기 제2 부하 운영체제는 복수의 부하 운영체제에서 제1 부하 운영체제가 아닌 로그아웃된 부하 운영체제이고, 상기 이용 가능한 프로세서 코어는 기동된 프로세서 코어를 포함하며, 제1 부하 운영체제의 물리적 자원 집합은 상기 이용 가능한 프로세서 코어를 포함하며,
상기 관리 운영체제가 제1 부하 운영체제에 할당된 프로세서 코어에서, 제1 부하 운영체제를 기동하는 스타트업 프로세서 코어를 결정하는 단계는,
상기 제1 부하 운영체제의 물리적 자원 집합이 상기 이용 가능한 프로세서 코어를 포함할 때, 상기 관리 운영체제가 상기 이용 가능한 프로세서 코어에서, 제1 부하 운영체제를 기동하는 스타트업 프로세서 코어를 결정하는 단계
를 포함한다.
제1 관점의 제3 가능한 실시 방식을 참조하여, 제1 관점의 제4 가능한 실시 방식에서, 상기 관리 운영체제가 상기 이용 가능한 프로세서 코어에서, 제1 부하 운영체제를 기동하는 스타트업 프로세서 코어를 결정하는 단계 이후에, 상기 자원 프로세싱 방법은:
상기 관리 운영체제가 제1 부하 운영체제에 대해 상기 스타트업 프로세서 코어에 대한 데몬(daemon)을 사전에 설정하고, 상기 데몬에서, 상기 물리적 메모리 어드레스에 있는 제1 부하 운영체제의 부트 이미지의 위치를 사전에 설정하는 단계
를 더 포함하고,
상기 관리 운영체제가 각각의 부하 운영체제에 대해 상기 데몬에서, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정하는 단계는,
상기 관리 운영체제가 제1 부하 운영체제에 대해 상기 데몬에서, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정하는 단계
를 포함한다.
제1 관점의 제4 가능한 실시 방식을 참조하여, 제1 관점의 제5 가능한 실시 방식에서, 상기 관리 운영체제가, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요하고 상기 관리 운영체제에 의해 사전에 구축되어 있는 맵핑 관계를 판독하도록 상기 스타트업 프로세서 코어에 명령하여, 상기 스타트업 프로세서 코어가 상기 부트 이미지를 실행하는 프로세스에서 상기 맵핑 관계에 따라 상기 물리적 메모리 어드레스에 액세스할 수 있게 하는 단계, 및 상기 제1 부하 운영체제에 대해 사전에 구축된 부트 이미지를 실행하도록 상기 스타트업 프로세서 코어에 명령하는 단계는:
상기 관리 운영체제가 상기 스타트업 프로세서 코어 상에서 실행 중인 데몬에 인터-코어 차단 메시지를 송신하는 단계
를 포함하며,
상기 인터-코어 차단 메시지는 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요하고 상기 관리 운영체제에 의해 제1 부하 운영체제에 대해 사전에 구축되어 있는 맵핑 관계를 상기 데몬으로부터 판독하도록 상기 스타트업 프로세서 코어에 명령하고, 제1 부하 운영체제에 대응하는 부트 이미지의, 상기 물리적 메모리 어드레스에 있는, 상기 관리 운영체제에 의해 상기 데몬에 사전에 설정되어 있는 위치는 상기 물리적 메모리 어드레스에 있는 상기 부트 이미지가 위치하는 위치로 점프하도록 상기 스타트업 프로세서 코어에 명령한다.
제1 관점 또는 제1 관점의 제1 내지 제5 가능한 실시 방식 중 어느 하나의 가능한 실시 방식을 참조하여, 제1 관점의 제6 가능한 실시 방식에서, 상기 관리 운영체제가 각각의 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원 집합을 각각의 부하 운영체제에 할당하는 것은:
상기 관리 운영체제가 상기 부하 운영체제의 수에 따라, 상기 물리적 자원 풀에 있으면서 상기 자원 풀 내의 이용 가능한 물리적 자원의 목록에서의 물리적 자원의 식별자에 대응하는 이용 가능한 물리적 자원에 대해 1차 분할(first-time division)을 수행하여 복수의 물리적 자원 집합을 획득하고 - 상기 물리적 자원 집합의 수는 상기 부하 운영체제의 수와 같음 - , 상기 관리 운영체제가 각각의 부하 운영체제와 각각의 물리적 자원 집합 간의 대응관계를 결정하는 단계; 및
상기 관리 운영체제가 각각의 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원 집합을 상기 대응관계에 따라 각각의 부하 운영체제에 할당하는 단계
를 포함한다.
제1 관점의 제6 가능한 실시 방식을 참조하여, 제1 관점의 제7 가능한 실시 방식에서, 각각의 물리적 자원 집합은 상기 호스트 머신의 일부의 외부 장치를 더 포함하며,
상기 스타트업 파라미터는 제1 부하 운영체제에 할당된 외부 장치의 식별자 및 상기 외부 장치에 대응하는 장치 설명 정보 테이블을 더 포함한다.
제1 관점의 제7 가능한 실시 방식을 참조하여, 제1 관점의 제8 가능한 실시 방식에서, 상기 관리 운영체제가 상기 제1 부하 운영체제에 대해 사전에 구축된 부트 이미지를 실행하도록 상기 스타트업 프로세서 코어에 명령하는 단계 이후에, 상기 자원 프로세싱 방법은:
상기 관리 운영체제가 제1 부하 운영체제의 실행을 모니터링하는 단계;
상기 제1 부하 운영체제에 할당된 물리적 자원의 이용률이 제1 사전설정된 임계값보다 낮을 때, 물리적 자원은 제1 부하 운영체제에 대해 감소되어야 하는 것으로 결정하고, 감소되어야 하는 물리적 자원의 유형 식별자를 결정하는 단계 - 상기 물리적 자원의 유형 식별자는 상기 물리적 자원이 프로세서 코어 자원, 물리적 메모리 자원, 또는 외부 장치 자원인지를 구별하는 데 사용됨 - ; 및
상기 관리 운영체제가 상기 감소되어야 하는 물리적 자원의 유형 식별자에 따라, 상기 물리적 자원 풀에 있으면서 상기 자원 풀 내의 이용 가능한 물리적 자원의 목록에서의 물리적 자원의 식별자에 대응하는 상기 이용 가능한 물리적 자원에 대해 2차 분할을 수행하고, 제1 부하 운영체제의 물리적 자원을 부가하는 단계
를 포함하며,
상기 감소된 물리적 자원은 상기 감소되어야 하는 물리적 자원의 유형 식별자에 대응하는 물리적 자원이다.
제1 관점의 제7 가능한 실시 방식을 참조하여, 제1 관점의 제9 가능한 실시 방식에서, 상기 관리 운영체제가 상기 제1 부하 운영체제에 대해 사전에 구축된 부트 이미지를 실행하도록 상기 스타트업 프로세서 코어에 명령하는 단계 이후에, 상기 자원 프로세싱 방법은:
상기 관리 운영체제가 제1 부하 운영체제의 실행을 모니터링하는 단계;
상기 제1 부하 운영체제에 할당된 물리적 자원의 이용률이 제2 사전설정된 임계값보다 낮을 때, 물리적 자원은 제1 부하 운영체제에 대해 부가되어야 하는 것으로 결정하고, 부가되어야 하는 물리적 자원의 유형 식별자를 결정하는 단계 - 상기 물리적 자원의 유형 식별자는 상기 부가되어야 하는 물리적 자원이 프로세서 코어 자원, 물리적 메모리 자원, 또는 외부 장치 자원인지를 구별하는 데 사용됨 - ; 및
상기 관리 운영체제가 상기 부가되어야 하는 물리적 자원의 유형 식별자에 따라, 상기 물리적 자원 풀에 있으면서 상기 자원 풀 내의 이용 가능한 물리적 자원의 목록에서의 물리적 자원의 식별자에 대응하는 상기 이용 가능한 물리적 자원에 대해 2차 분할을 수행하고, 제1 부하 운영체제의 물리적 자원을 부가하는 단계
를 포함하며,
상기 부가된 물리적 자원은 상기 부가되어야 하는 물리적 자원의 유형 식별자에 대응하는 물리적 자원이다.
제1 관점에 따라, 본 발명의 실시예는 자원 프로세싱 방법을 제공하며, 상기 자원 프로세싱 방법은 멀티-커널 운영체제에 적용되며, 상기 멀티-커널 운영체제는 관리 운영체제 및 호스트 머신 상에서 실행되는 복수의 부하 운영체제를 포함하고 물리적 자원 풀을 포함하며, 상기 물리적 자원 풀은 호스트 머신의 프로세서 코어 및 물리적 메모리를 포함하며, 각각의 부하 운영체제는 상기 관리 운영체제에 의해 할당되는 물리적 자원 집합을 배타적으로 사용하고, 각각의 물리적 자원 집합은 상기 호스트 머신의 프로세서 코어 중 일부와 상기 호스트 머신의 물리적 메모리 중 한 부분을 포함하며; 상기 관리 운영체제는 각각의 부하 운영체제에 대해 부트 이미지를 사전에 구축하고, 각각의 부하 운영체제에 대해, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정하며, 상기 자원 프로세싱 방법은:
제1 부하 운영체제의 스타트업 프로세서 코어가, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요한 맵핑 관계를 판독하는 단계 - 상기 맵핑 관계는 제1 부하 운영체제의 스타트업 프로세서 코어가 상기 물리적 메모리 어드레스에 액세스할 수 있게 하는 데 사용되며, 제1 부하 운영체제는 상기 멀티-커널 운영체제 중 임의의 부하 운영체제임 - ;
상기 제1 부하 운영체제의 스타트업 프로세서 코어가, 상기 관리 운영체제에 의해 설정되고 부트 이미지 점프를 실행하기 위한 명령에 따라, 제1 부하 운영체제에 대응하는 부트 이미지의, 물리적 메모리 어드레스에 있는 위치로 점프하고, 상기 맵핑 관계에 따라 제1 부하 운영체제에 대응하는 부트 이미지를 실행하는 단계;
상기 제1 부하 운영체제의 스타트업 프로세스 코어가 제1 부하 운영체제의 부트 이미지를 실행하는 프로세스에서, 제1 부하 운영체제의 부트 이미지로부터 제1 부하 운영체제의 스타트업 파라미터를 획득하는 단계 - 상기 스타트업 파라미터는 제1 부하 운영체제에 할당된 프로세서 코어의 식별자 및 제1 부하 운영체제에 할당된 물리적 메모리 어드레스의 식별자를 포함함 - ; 및
상기 제1 부하 운영체제가 프로세서 코어의 식별자 및 제1 부하 운영체제의 물리적 메모리 어드레스의 식별자에 따라, 상기 관리 운영체제에 의해 제1 부하 운영체제에 할당되고 제1 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원을 결정하는 단계
를 포함한다.
제2 관점을 참조하여, 제2 관점의 제1 가능한 실시 방식에서, 상기 제1 부하 운영체제의 스타트업 프로세서 코어가, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요한 맵핑 관계를 판독하는 단계는:
상기 제1 부하 운영체제의 스타트업 프로세서 코어가, 상기 관리 운영체제에 의해 송신된 인터-코어 차단 메시지를 수신하는 단계 - 상기 스타트업 프로세서 코어는 상기 인터-코어 차단 메시지의 명령에 따라, 상기 스타트업 프로세서 코어를 초기화하도록 구성되어 있고 제1 부하 운영체제에 대응하는 초기화 프로그램을 실행함 - ; 및
상기 제1 부하 운영체제의 스타트업 프로세서 코어가, 상기 초기화 프로그램을 실행하고, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 부트 이미지를 실행하는 데 필요하고 상기 관리 운영체제에 의해 제1 부하 운영체제에 대해 사전에 구축되어 있는 맵핑 관계를 상기 초기화 프로그램으로부터 판독하는 단계
를 포함하며,
상기 제1 부하 운영체제의 스타트업 프로세서 코어가, 상기 관리 운영체제에 의해 설정되고 부트 이미지 점프를 실행하기 위한 명령에 따라, 제1 부하 운영체제에 대응하는 부트 이미지의, 물리적 메모리 어드레스에 있는 위치로 점프하는 단계는,
상기 제1 부하 운영체제의 스타트업 프로세서 코어가, 상기 초기화 프로그램을 실행하고, 상기 관리 운영체제에 의해 상기 초기화 프로그램에 사전에 설정되어 있는 점프 명령을 상기 초기화 프로그램으로부터 판독하며, 제1 부하 운영체제에 대응하는 부트 이미지의, 물리적 메모리 어드레스에 있는 위치로 점프하는 단계
를 포함한다.
제2 관점을 참조하여, 제2 관점의 제2 가능한 실시 방식에서, 상기 제1 부하 운영체제의 스타트업 프로세서 코어는, 기동되어 있고 상기 관리 부하 운영체제에 의해 결정되는 프로세서 코어이며, 제1 부하 운영체제의 스타트업 프로세서 코어 상에서 데몬이 실행되며, 상기 데몬은 제1 부하 운영체제에 대해 관리 운영체제에 의해 사전에 설정되며, 제1 부하 운영체제에 대응하는 부트 이미지의, 물리적 메모리 어드레스에 있는 위치 및 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요한 맵핑 관계가 상기 데몬에 설정되어 있으며,
상기 제1 부하 운영체제의 스타트업 프로세서 코어가, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요한 맵핑 관계를 판독하는 단계는:
상기 제1 부하 운영체제의 스타트업 프로세서 코어 상에서 실행되고 있는 데몬이, 상기 관리 운영체제에 의해 송신된 인터-코어 차단 메시지를 수신하고, 상기 스타트업 프로세서 코어가 상기 인코-코어 차단 메시지의 명령에 따라 상기 데몬으로부터, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 부트 이미지를 실행하는 데 필요하고 상기 관리 운영체제에 의해 제1 부하 운영체제에 대해 사전에 구축되어 있는 맵핑 관계를 판독하는 단계
를 포함하고,
상기 제1 부하 운영체제의 스타트업 프로세서 코어가, 상기 관리 운영체제에 의해 설정되고 부트 이미지 점프를 실행하기 위한 명령에 따라, 제1 부하 운영체제에 대응하는 부트 이미지의, 물리적 메모리 어드레스에 있는 위치로 점프하는 단계는:
상기 제1 부하 운영체제의 스타트업 프로세서 코어가, 상기 관리 운영체제에 의해 데몬에 사전에 설정되어 있는 점프 명령을 판독하고, 제1 부하 운영체제에 대응하는 부트 이미지의, 물리적 메모리 어드레스에 있는 위치로 점프하는 단계
를 포함한다.
제2 관점 또는 제2 관점의 제1 또는 제2 가능한 실시 방식을 참조해서, 제2 관점의 제3 가능한 실시 방식에서, 각각의 물리적 자원 집합은 상기 호스트 머신의 일부의 외부 장치를 더 포함하며,
상기 스타트업 파라미터는 상기 관리 운영체제에 의해 제1 부하 운영체제에 할당된 외부 장치의 식별자 및 상기 외부 장치에 대응하는 장치 설명 정보 테이블을 더 포함한다.
제3 관점에 따라, 본 발명의 실시예는 관리 운영체제를 제공하며, 상기 관리 운영체제는 멀티-커널 운영체제에 적용되며, 상기 멀티-커널 운영체제는 상기 관리 운영체제 및 호스트 머신 상에서 실행되는 복수의 부하 운영체제를 포함하고 물리적 자원 풀을 포함하며, 상기 물리적 자원 풀은 호스트 머신의 프로세서 코어 및 물리적 메모리를 포함하며, 상기 관리 운영체제는:
각각의 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원 집합을 각각의 부하 운영체제에 할당하도록 구성되어 있는 자원 할당 모듈 - 각각의 물리적 자원 집합은 상기 호스트 머신의 프로세서 코어 중 일부와 상기 호스트 머신의 물리적 메모리 중 한 부분을 포함함 - ;
각각의 부하 운영체제에 대한 부트 이미지를 구축하고, 각각의 부하 운영체제에 대해, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정하도록 구성되어 있는 맵핑 관계 설정 모듈;
제1 부하 운영체제에 할당된 프로세서 코어에서, 제1 부하 운영체제를 기동하는 스타트업 프로세서 코어를 결정하도록 구성되어 있는 스타트업 프로세서 코어 결정 모듈 - 상기 제1 부하 운영체제는 상기 부하 운영체제 중 어느 하나임 - ; 및
가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요하고 상기 맵핑 관계 설정 모듈에 의해 사전에 구축되어 있는 맵핑 관계를 판독하도록 상기 스타트업 프로세서 코어에 명령하여, 상기 스타트업 프로세서 코어가 상기 부트 이미지를 실행하는 프로세스에서 상기 맵핑 관계에 따라 상기 물리적 메모리 어드레스에 액세스할 수 있도록 하고, 상기 제1 부하 운영체제에 대해 사전에 구축된 부트 이미지를 실행하도록 상기 스타트업 프로세서 코어에 명령하도록 구성되어 있는 명령 모듈
을 포함하며,
상기 부트 이미지는 제1 부하 운영체제의 스타트업 파라미터를 포함하고, 상기 스타트업 파라미터는 제1 부하 운영체제에 할당된 프로세서 코어의 식별자 및 제1 부하 운영체제에 할당된 물리적 메모리 어드레스의 식별자를 포함한다.
제3 관점을 참조하여, 제3 관점의 제1 가능한 실시 방식에서, 상기 명령 모듈은 구체적으로:
상기 스타트업 프로세서 코어에 인터-코어 차단 메시지를 송신하고 - 상기 인터-코어 차단 메시지는, 스타트업 프로세서 코어를 초기화하도록 구성되어 있고 제1 부하 운영체제에 대응하는 초기화 프로그램을 실행하도록 스타트업 프로세서 코어에 명령함 - ; 및
상기 제1 부하 운영체제에 대응하는 초기화 프로그램을 실행하도록 스타트업 프로세서 코어에 명령함으로써, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요한 맵핑 관계를 상기 초기화 프로그램으로부터 판독하도록 상기 스타트업 프로세서 코어에 명령하고, 상기 초기화 프로그램의 실행이 종료된 후, 상기 물리적 메모리에 있는 상기 부트 이미지의 위치로 점프하도록 상기 스타트업 프로세서 코어에 명령하여, 제1 부하 운영체제의 부트 이미지를 실행하도록 구성되어 있다.
제3 관점의 제1 가능한 실시 방식을 참조하여, 제3 관점의 제2 가능한 실시 방식에서, 상기 관리 운영체제는:
상기 맵핑 관계 설정 모듈이 각각의 부하 운영체제에 대해, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정하기 전에, 상기 제1 부하 운영체제에 대해, 제1 부하 운영체제를 초기화하도록 구성되어 있는 초기화 프로그램을 사전에 설정하고, 상기 초기화 프로그램에서, 상기 물리적 메모리 어드레스에 있는 제1 부하 운영체제의 부트 이미지의 위치를 사전에 설정하도록 구성되어 있는 초기화 프로그램 구성 모듈
을 더 포함하고,
상기 맵핑 관계 설정 모듈은 구체적으로, 상기 초기화 프로그램에서 제1 부하 운영체제에 대해, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정하도록 구성되어 있다.
제3 관점을 참조하여, 제3 관점의 제3 가능한 실시 방식에서, 상기 관리 운영체제는:
상기 스타트업 프로세서 코어 결정 모듈이, 제1 부하 운영체제에 할당된 프로세서 코어에서, 제1 부하 운영체제를 기동하는 스타트업 프로세서 코어를 결정하기 전에, 제2 부하 운영체제의 이용 가능한 프로세서 코어를 획득하도록 구성되어 있는 이용 가능한 프로세서 코어 획득 모듈
을 더 포함하며,
여기서 상기 제2 부하 운영체제는 복수의 부하 운영체제에서 제1 부하 운영체제가 아닌 로그아웃된 부하 운영체제이고, 상기 이용 가능한 프로세서 코어는 기동된 프로세서 코어를 포함하며, 제1 부하 운영체제의 물리적 자원 집합은 상기 이용 가능한 프로세서 코어를 포함하며,
상기 이용 가능한 프로세서 코어 획득 모듈은 구체적으로, 상기 제1 부하 운영체제의 물리적 자원 집합이 상기 이용 가능한 프로세서 코어를 포함할 때, 상기 이용 가능한 프로세서 코어에서, 제1 부하 운영체제를 기동하는 스타트업 프로세서 코어를 결정하도록 구성되어 있다.
제3 관점의 제3 가능한 실시 방식을 참조하여, 제3 관점의 제4 가능한 실시 방식에서, 상기 관리 운영체제는:
상기 스타트업 프로세서 코어 결정 모듈이 상기 이용 가능한 프로세서 코어에서, 제1 부하 운영체제를 기동하는 스타트업 프로세서 코어를 결정한 후에, 상기 제1 부하 운영체제에 대해 상기 스타트업 프로세서 코어에 대한 데몬을 사전에 설정하고, 상기 데몬에서, 상기 물리적 메모리 어드레스에 있는 제1 부하 운영체제의 부트 이미지의 위치를 사전에 설정하도록 구성되어 있는 데몬 구성 모듈
을 더 포함하고,
상기 맵핑 관계 설정 모듈은 구체적으로, 상기 제1 부하 운영체제에 대해 상기 데몬에서, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정하도록 구성되어 있다.
제3 관점의 제4 가능한 실시 방식을 참조하여, 제3 관점의 제5 가능한 실시 방식에서, 상기 명령 모듈은 구체적으로: 상기 스타트업 프로세서 코어 상에서 실행 중인 데몬에 인터-코어 차단 메시지를 송신하도록 구성되어 있으며, 여기서 상기 인터-코어 차단 메시지는 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요하고 상기 관리 운영체제에 의해 제1 부하 운영체제에 대해 사전에 구축되어 있는 맵핑 관계를 상기 데몬으로부터 판독하도록 상기 스타트업 프로세서 코어에 명령하고, 제1 부하 운영체제에 대응하는 부트 이미지의, 상기 물리적 메모리 어드레스에 있는, 상기 데몬 구성 모듈에 의해 상기 데몬에 사전에 설정되어 있는 위치는 상기 물리적 메모리에 있는 상기 부트 이미지가 위치하는 위치로 점프하도록 상기 스타트업 프로세서 코어에 명령하여, 제1 부하 운영체제의 부트 이미지를 실행한다.
제3 관점 또는 제3 관점의 제1 내지 제5 가능한 실시 방식 중 임의의 가능한 실시 방식을 참조하여, 제3 관점의 제6 가능한 실시 방식에서, 상기 자원 할당 모듈은 구체적으로:
상기 부하 운영체제의 수에 따라, 상기 물리적 자원 풀에 있으면서 상기 자원 풀 내의 이용 가능한 물리적 자원의 목록에서의 물리적 자원의 식별자에 대응하는 이용 가능한 물리적 자원에 대해 1차 분할을 수행하여 복수의 물리적 자원 집합을 획득하고 - 상기 물리적 자원 집합의 수는 상기 부하 운영체제의 수와 같고, 상기 관리 운영체제는 각각의 부하 운영체제와 각각의 물리적 자원 집합 간의 대응관계를 결정함 - ; 그리고
각각의 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원 집합을 상기 대응관계에 따라 각각의 부하 운영체제에 할당하도록 구성되어 있다.
제3 관점의 제6 가능한 실시 방식을 참조하여, 제3 관점의 제7 가능한 실시 방식에서, 각각의 물리적 자원 집합은 상기 호스트 머신의 일부의 외부 장치를 더 포함하며,
상기 스타트업 파라미터는 제1 부하 운영체제에 할당된 외부 장치의 식별자 및 상기 외부 장치에 대응하는 장치 설명 정보 테이블을 더 포함한다.
제3 관점의 제7 가능한 실시 방식을 참조하여, 제3 관점의 제8 가능한 실시 방식에서, 상기 관리 운영체제는:
상기 명령 모듈이 상기 제1 부하 운영체제에 대해 사전에 구축된 부트 이미지를 실행하도록 상기 스타트업 프로세서 코어에 명령한 후에, 제1 부하 운영체제의 실행을 모니터링하도록 구성되어 있는 제1 모니터링 모듈; 및
상기 제1 모니터링 모듈의 모니터링 결과가 상기 제1 부하 운영체제에 할당된 물리적 자원의 이용률이 제1 사전설정된 임계값보다 낮다는 것이면, 물리적 자원은 제1 부하 운영체제에 대해 감소되어야 하는 것으로 결정하고, 감소되어야 하는 물리적 자원의 유형 식별자를 결정하도록 구성되어 있는 제1 자원 관리 모듈
을 포함하고,
상기 물리적 자원의 유형 식별자는 상기 물리적 자원이 프로세서 코어 자원, 물리적 메모리 자원, 또는 외부 장치 자원인지를 구별하는 데 사용되며,
상기 자원 할당 모듈은, 상기 감소되어야 하는 물리적 자원의 유형 식별자에 따라, 상기 물리적 자원 풀에 있으면서 상기 자원 풀 내의 이용 가능한 물리적 자원의 목록에서의 물리적 자원의 식별자에 대응하는 상기 이용 가능한 물리적 자원에 대해 2차 분할을 수행하고, 제1 부하 운영체제의 물리적 자원을 감소시키도록 추가로 구성되어 있으며,
여기서 상기 감소된 물리적 자원은 상기 감소되어야 하는 물리적 자원의 유형 식별자에 대응하는 물리적 자원이다.
제3 관점의 제7 가능한 실시 방식을 참조하여, 제3 관점의 제9 가능한 실시 방식에서, 상기 관리 운영체제는:
상기 명령 모듈이 상기 제1 부하 운영체제에 대해 사전에 구축된 부트 이미지를 실행하도록 상기 스타트업 프로세서 코어에 명령한 후에, 상기 제1 부하 운영체제의 실행을 모니터링하도록 구성되어 있는 제2 모니터링 모듈; 및
상기 제2 모니터링 모듈의 모니터링 결과가 상기 제1 부하 운영체제에 할당된 물리적 자원의 이용률이 제2 사전설정된 임계값보다 낮다는 것이면, 물리적 자원은 제1 부하 운영체제에 대해 부가되어야 하는 것으로 결정하고, 부가되어야 하는 물리적 자원의 유형 식별자를 결정하도록 구성되어 있는 제2 자원 관리 모듈
을 더 포함하며,
여기서 상기 물리적 자원의 유형 식별자는 상기 부가되어야 하는 물리적 자원이 프로세서 코어 자원, 물리적 메모리 자원, 또는 외부 장치 자원인지를 구별하는 데 사용되며,
상기 자원 할당 모듈은, 상기 부가되어야 하는 물리적 자원의 유형 식별자에 따라, 상기 물리적 자원 풀에 있으면서 상기 자원 풀 내의 이용 가능한 물리적 자원의 목록에서의 물리적 자원의 식별자에 대응하는 상기 이용 가능한 물리적 자원에 대해 2차 분할을 수행하고, 제1 부하 운영체제의 물리적 자원을 부가하도록 추가로 구성되어 있으며, 여기서 상기 부가된 물리적 자원은 상기 부가되어야 하는 물리적 자원의 유형 식별자에 대응하는 물리적 자원이다.
제3 관점의 제7 가능한 실시 방식을 참조하여, 제3 관점의 제10 가능한 실시 방식에서, 상기 관리 운영체제는:
상기 명령 모듈이 상기 제1 부하 운영체제에 대해 사전에 구축된 부트 이미지를 실행하도록 상기 스타트업 프로세서 코어에 명령한 후에, 제1 부하 운영체제에 의해 송신된 자원 감소 요구 메시지를 수신하도록 구성되어 있는 제1 수신 모듈
을 더 포함하며,
여기서 상기 자원 감소 요구 메시지는 감소되어야 하는 물리적 자원의 유형 식별자를 포함하고, 상기 물리적 자원의 유형 식별자는 상기 물리적 자원이 프로세서 코어 자원, 물리적 메모리 자원, 또는 외부 장치 자원인지를 구별하는 데 사용되며,
상기 자원 할당 모듈은, 상기 자원 감소 요구 메시지에서, 상기 감소되어야 하는 물리적 자원의 유형 식별자에 따라, 상기 물리적 자원 풀에 있으면서 상기 자원 풀 내의 이용 가능한 물리적 자원의 목록에서의 물리적 자원의 식별자에 대응하는 상기 이용 가능한 물리적 자원에 대해 2차 분할을 수행하고, 제1 부하 운영체제의 물리적 자원을 감소시키도록 추가로 구성되어 있으며,
상기 감소된 물리적 자원은 상기 감소되어야 하는 물리적 자원의 유형 식별자에 대응하는 물리적 자원이다.
제4 관점에 따라, 본 발명의 실시예는 부하 운영체제를 제공하며, 상기 부하 운영체제는 멀티-커널 운영체제에 적용되며, 상기 멀티-커널 운영체제는 관리 운영체제 및 호스트 머신 상에서 실행되는 복수의 부하 운영체제를 포함하고 물리적 자원 풀을 포함하며, 상기 물리적 자원 풀은 호스트 머신의 프로세서 코어 및 물리적 메모리를 포함하며, 각각의 부하 운영체제는 상기 관리 운영체제에 의해 할당되는 물리적 자원 집합을 배타적으로 사용하고, 각각의 물리적 자원 집합은 상기 호스트 머신의 프로세서 코어 중 일부와 상기 호스트 머신의 물리적 메모리 중 한 부분을 포함하며; 상기 관리 운영체제는 각각의 부하 운영체제에 대해 부트 이미지를 사전에 구축하고, 각각의 부하 운영체제에 대해, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정하며, 상기 부하 운영체제는:
가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요한 맵핑 관계를 판독하도록 구성되어 있는 맵핑 관계 획득 모듈 - 상기 맵핑 관계는 제1 부하 운영체제의 스타트업 프로세서 코어가 상기 물리적 메모리 어드레스에 액세스할 수 있게 하는 데 사용되며, 제1 부하 운영체제는 상기 멀티-커널 운영체제 중 임의의 부하 운영체제임 - ;
상기 관리 운영체제에 의해 설정되고 부트 이미지 점프를 실행하기 위한 명령에 따라, 제1 부하 운영체제에 대응하는 부트 이미지의, 물리적 메모리 어드레스에 있는 위치로 점프하고, 상기 맵핑 관계에 따라 제1 부하 운영체제에 대응하는 부트 이미지를 실행하도록 구성되어 있는 명령 실행 모듈;
상기 명령 실행 모듈에 의해 상기 제1 부하 운영체제의 부트 이미지를 실행하는 프로세스에서, 제1 부하 운영체제의 부트 이미지로부터 제1 부하 운영체제의 스타트업 파라미터를 획득하도록 구성되어 있는 스타트업 파라미터 획득 모듈 - 상기 스타트업 파라미터는 제1 부하 운영체제에 할당된 프로세서 코어의 식별자 및 제1 부하 운영체제에 할당된 물리적 메모리 어드레스의 식별자를 포함함 - ; 및
상기 프로세서 코어의 식별자 및 상기 제1 부하 운영체제의 물리적 메모리 어드레스에 따라, 상기 관리 운영체제에 의해 제1 부하 운영체제에 할당되고 제1 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원을 결정하도록 구성되어 있는 물리적 자원 집합 획득 모듈
을 포함한다.
제4 관점을 참조하여, 제4 관점의 제1 가능한 실시 방식에서, 상기 맵핑 관계 획득 모듈은 구체적으로:
상기 관리 운영체제에 의해 송신된 인터-코어 차단 메시지를 수신하고 - 상기 스타트업 프로세서 코어는 상기 인터-코어 차단 메시지의 명령에 따라, 상기 스타트업 프로세서 코어를 초기화하도록 구성되어 있고 제1 부하 운영체제에 대응하는 초기화 프로그램을 실행함 - ; 그리고
상기 초기화 프로그램을 실행하고, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 부트 이미지를 실행하는 데 필요하고 상기 관리 운영체제에 의해 제1 부하 운영체제에 대해 사전에 구축되어 있는 맵핑 관계를 상기 초기화 프로그램으로부터 판독하도록 구성되어 있으며,
상기 명령 실행 모듈은 구체적으로, 상기 초기화 프로그램을 실행하고, 상기 관리 운영체제에 의해 상기 초기화 프로그램에 사전에 설정되어 있는 점프 명령을 상기 초기화 프로그램으로부터 판독하며, 제1 부하 운영체제에 대응하는 부트 이미지의, 물리적 메모리 어드레스에 있는 위치로 점프하도록 구성되어 있다.
제4 관점을 참조하여, 제4 관점의 제2 가능한 실시 방식에서, 상기 제1 부하 운영체제의 스타트업 프로세서 코어는, 기동되어 있고 상기 관리 부하 운영체제에 의해 결정되는 프로세서 코어이며, 제1 부하 운영체제의 스타트업 프로세서 코어 상에서 데몬이 실행되며, 상기 데몬은 제1 부하 운영체제에 대해 관리 운영체제에 의해 사전에 설정되며, 제1 부하 운영체제에 대응하는 부트 이미지의, 물리적 메모리 어드레스에 있는 위치 및 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요한 맵핑 관계가 상기 데몬에 설정되어 있으며,
상기 맵핑 관계 획득 모듈은 구체적으로, 상기 제1 부하 운영체제의 스타트업 프로세서 코어 상에서 실행되고 있는 데몬이, 상기 관리 운영체제에 의해 송신된 인터-코어 차단 메시지를 수신한 후, 상기 인코-코어 차단 메시지의 명령에 따라 상기 데몬으로부터, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 부트 이미지를 실행하는 데 필요하고 상기 관리 운영체제에 의해 제1 부하 운영체제에 대해 사전에 구축되어 있는 맵핑 관계를 판독하도록 구성되어 있으며,
상기 명령 실행 모듈은 구체적으로, 상기 관리 운영체제에 의해 데몬에 사전에 설정되어 있는 점프 명령을 판독하고, 제1 부하 운영체제에 대응하는 부트 이미지의, 물리적 메모리 어드레스에 있는 위치로 점프하도록 구성되어 있다.
제4 관점 또는 제4 관점의 제1 또는 제2 가능한 실시 방식을 참조하여, 제4 관점의 제3 가능한 실시 방식에서, 각각의 물리적 자원 집합은 상기 호스트 머신의 일부의 외부 장치를 더 포함하며,
상기 스타트업 파라미터는 상기 관리 운영체제에 의해 제1 부하 운영체제에 할당된 외부 장치의 식별자 및 상기 외부 장치에 대응하는 장치 설명 정보 테이블을 더 포함한다.
제5 관점에 따라, 본 발명의 실시예는 멀티-커널 운영체제를 제공하며, 상기 멀티-커널 운영체제는:
제3 관점에서 설명된 호스트 머신 상에서 실행 중인 관리 운영체제;
제4 관점에서 설명된 복수의 부하 운영체제; 및
물리적 자원 풀
을 포함하며,
상기 물리적 자원 풀은 호스트 머신의 프로세서 코어, 물리적 메모리, 및 외부 장치를 포함한다.
제6 관점에 따라, 본 발명의 실시예는 호스트 머신을 제공하며, 상기 호스트 머신은 프로세서 및 메모리를 포함하며, 상기 메모리는 실행 명령을 저장하며, 상기 호스트 머신이 실행될 때, 상기 프로세서는 상기 메모리와 통신하며, 상기 프로세서는 상기 실행 명령을 실행하여, 상기 호스트 머신으로 하여금 제1 관점 또는 제1 관점의 제1 내지 제9 가능한 실시 방식 중 임의의 가능한 실시 방식에서 설명된 자원 프로세싱 방법을 실행할 수 있게 한다.
본 발명의 실시예는 자원 프로세싱 방법, 운영체제 및 장치를 제공한다. 상기 방법에 따르면, 관리 운영체제는 각각의 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원 집합을 각각의 부하 운영체제에 할당하고, 각각의 부하 운영체제에 대한 부트 이미지(boot image)를 구축하고, 각각의 부하 운영체제에 대해, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정하며; 상기 관리 운영체제는 제1 부하 운영체제에 할당된 프로세서 코어에서, 제1 부하 운영체제를 기동하는 스타트업 프로세서 코어를 결정하고; 상기 관리 운영체제는, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요하고 상기 관리 운영체제에 의해 사전에 구축되어 있는 맵핑 관계를 판독하도록 상기 스타트업 프로세서 코어에 명령하여, 상기 스타트업 프로세서 코어가 상기 맵핑 관계에 따라 물리적 메모리 어드레스에 액세스할 수 있게 하며, 상기 제1 부하 운영체제에 대해 사전에 구축된 부트 이미지를 실행하도록 상기 스타트업 프로세서 코어에 명령하며, 여기서 상기 부트 이미지는 제1 부하 운영체제의 스타트업 파라미터를 포함하고, 상기 스타트업 파라미터는 제1 부하 운영체제에 할당된 프로세서 코어의 식별자 및 제1 부하 운영체제에 할당된 물리적 메모리 어드레스의 식별자를 포함하며; 상기 관리 운영체제는 상기 부트 이미지에 스타트업 파라미터를 기록하여, 하이퍼바이저의 참여를 요구함이 없이, 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원을 그 부하 운영체제에 할당하며, 이에 의해 관리 운영체제에 의해 부하 운영체제에 물리적 자원을 할당하는 프로세스를 단순화한다. 또한, 각각의 부하 운영체제는 물리적 자원을 배타적으로 사용하여, 각각의 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원에 대해 독립적인 페이지 테이블, 러닝 클록, 런타임 환경 등을 구성하며, 이에 의해 부하 운영체제의 전반적인 성능을 개선한다.
본 발명의 실시예 또는 종래기술의 기술적 솔루션을 더 명확하게 설명하기 위해, 이하에서는 실시예 또는 종래기술을 설명하는 데 필요한 첨부된 도면에 대해 간략하게 설명한다. 당연히, 이하의 실시예의 첨부된 도면은 본 발명의 일부의 실시예에 지나지 않으며, 당업자라면 창조적 노력 없이 첨부된 도면으로부터 다른 도면을 도출해낼 수 있을 것이다.
도 1은 본 발명에 따른 멀티-커널 운영체제의 아키텍처에 대한 개략도이다.
도 2는 본 발명에 따른 자원 프로세싱 방법의 실시예 1에 대한 개략적인 흐름도이다.
도 3은 본 발명에 따른 자원 프로세싱 방법의 실시예 2에 대한 개략적인 흐름도이다.
도 4는 본 발명에 따른 자원 프로세싱 방법의 실시예 3에 대한 개략적인 흐름도이다.
도 5는 본 발명에 따른 자원 프로세싱 방법의 실시예 4에 대한 개략적인 흐름도이다.
도 6은 본 발명에 따른 자원 프로세싱 방법의 실시예 5에 대한 개략적인 흐름도이다.
도 7은 본 발명에 따른 자원 프로세싱 방법의 실시예 6에 대한 개략적인 흐름도이다.
도 8a는 본 발명에 따른 제1 부하 운영체제를 위한 프로세서 코어를 부가하는 개략적인 흐름도이다.
도 8b는 본 발명에 따라 제1 부하 운영체제에 의해 프로세서 코어를 해제하는 개략적인 흐름도이다.
도 9a는 본 발명에 따른 제1 부하 운영체제를 위한 물리적 메모리를 부가하는 개략적인 흐름도이다.
도 9b는 본 발명에 따라 제1 부하 운영체제에 의해 물리적 메모리를 해제하는 개략적인 흐름도이다.
도 10a는 본 발명에 따른 제1 부하 운영체제를 위한 외부 장치를 부가하는 개략적인 흐름도이다.
도 10b는 본 발명에 따른 제1 부하 운영체제를 위한 외부 장치를 감소시키는 개략적인 흐름도이다.
도 11은 본 발명에 따른 관리 운영체제의 실시예 1에 대한 개략적인 구조도이다.
도 12는 본 발명에 따른 관리 운영체제의 실시예 2에 대한 개략적인 구조도이다.
도 13은 본 발명에 따른 관리 운영체제의 실시예 3에 대한 개략적인 구조도이다.
도 14는 본 발명에 따른 부하 운영체제의 실시예 1에 대한 개략적인 구조도이다.
도 15는 본 발명에 따른 부하 운영체제의 실시예 2에 대한 개략적인 구조도이다.
도 16은 이종 플랫폼 상의 멀티-커널 시스템의 아키텍처에 대한 개략도이다.
도 17은 본 발명에 따른 호스트 머신의 실시예 1에 대한 개략적인 구조도이다.
본 발명의 실시예의 목적, 기술적 솔루션, 및 이점을 더 잘 이해할 수 있도록 하기 위해, 이하에서는 본 발명의 실시예의 첨부된 도면을 참조하여 본 발명의 실시예에 따른 기술적 솔루션에 대해 명확하고 완전하게 설명한다. 당연히, 이하의 상세한 설명에서의 실시예는 본 발명의 모든 실시예가 아닌 일부에 지나지 않는다. 당업자가 창조적 노력 없이 본 발명의 실시예에 기초하여 획득하는 모든 다른 실시예는 본 발명의 보호 범위 내에 있게 된다.
도 1은 본 발명에 따른 멀티-커널 운영체제의 아키텍처에 대한 개략도이다. 도 1에 도시된 바와 같이, 본 실시예에서 제공하는 멀티-커널 운영체제는 호스트 머신 상에서 실행되는 관리 운영체제 및 복수의 부하 운영체제를 포함하고 물리적 자원 풀(pool)을 포함한다. 호스트 머신은 실제의 물리적 노드이고, 관리 운영체제는 복수의 부하 운영체제를 관리하는데, 이것은 주로 복수의 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원을 복수의 부하 운영체제에 할당하는 것과, 부하 운영체제의 기동 및 로그아웃을 담당하는 것을 포함한다. 복수의 부하 운영체제는 기동되지 않은 부하 운영체제 및 실행 중인 부하 운영체제를 포함한다. 특히, 부하 운영체제가 기동된 후, 부하 운영체제는 관리 운영체제에 의해 할당된 물리적 자원을 배타적으로 사용하고 물리적 자원에 액세스할 수 있으며; 부하 운영체제는 하이퍼바이저에 도움을 요청함이 없이 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원에 대해 독립적인 페이지 테이블, 독립적인 클록, 독립적인 런타임 라이브러티 등을 구성하며, 부하 운영체제는 독립적인 페이지 테이블, 독립적인 클록, 독립적인 런타임 라이브러티 등을 사용함으로써, 관리 운영체제 및 부하 운영체제는 어드레스 버스, 데이터 버스, 및 제어 버스를 포함하는 시스템 버스를 공유한다. 관리 운영체제와 부하 운영체제 간의 통신 및 부하 운영체제와 다른 부하 운영체제 간의 통신은 내부 통신 메커니즘(인터-인스턴스 통신 모듈)에 의해 실현된다. 관리 운영체제 및 각각의 부하 운영체제는 독립적 페이지 테이블을 개별적으로 가지며, 각각의 부하 운영체제는 독립적인 물리적 자원을 사용하고, 관리 운영체제는 관리를 수행하되, 부하 운영체제가 물리적 자원에 대해 수행하는 액세스, 통신 등에는 참여하지 않는다. 물리적 자원 풀은 호스트 머신의 프로세서 코어 및 물리적 메모리를 포함하고, 선택적으로 물리적 자원 풀은 네트워크 어댑터 어레이와 같은 외부 장치를 더 포함한다.
도 2는 본 발명에 따른 자원 프로세싱 방법의 실시예 1에 대한 개략적인 흐름도이다. 본 실시예의 실행 본체는 호스트 머신 상에서 실행되는 관리 운영체제이고, 여기서 관리 운영체제는 구체적으로 도 1의 실시예에 도시된 관리 운영체제이다. 도 2에 도시된 바와 같이, 본 발명의 실시예에서 제공하는 자원 프로세싱 방법은 다음을 포함한다:
단계 201: 상기 관리 운영체제는 각각의 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원 집합을 각각의 부하 운영체제에 할당하고, 각각의 부하 운영체제에 대한 부트 이미지(boot image)를 구축하며, 각각의 부하 운영체제에 대해, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정한다.
각각의 물리적 자원 집합은 상기 호스트 머신의 프로세서 코어 중 일부와 상기 호스트 머신의 물리적 메모리 중 한 부분을 포함한다.
단계 202: 상기 관리 운영체제는 제1 부하 운영체제에 할당된 프로세서 코어에서, 제1 부하 운영체제를 기동하는 스타트업 프로세서 코어를 결정한다.
상기 제1 부하 운영체제는 상기 부하 운영체제 중 어느 하나이다.
단계 203: 상기 관리 운영체제는, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요하고 상기 관리 운영체제에 의해 사전에 구축되어 있는 맵핑 관계를 판독하도록 상기 스타트업 프로세서 코어에 명령하고, 제1 부하 운영체제에 대해 사전에 구축된 부트 이미지를 실행하도록 스타트업 프로세서 코어에 명령한다.
상기 부트 이미지는 제1 부하 운영체제의 스타트업 파라미터를 포함하고, 상기 스타트업 파라미터는 제1 부하 운영체제에 할당된 프로세서 코어의 식별자 및 제1 부하 운영체제에 할당된 물리적 메모리 어드레스의 식별자를 포함한다.
본 실시예의 애플리케이션 시나리오는 도 1의 실시예에 도시된 것일 수 있으며, 본 실시예에서 반복적으로 상세히 설명하지 않는다. 본 실시예에서, 본 실시예에서 제공하는 자원 프로세싱 방법은 관리 운영체제를 실행 본체로 사용함으로써 상세히 설명된다. 관리 운영체제는 구체적으로 도 1에 도시된 관리 운영체제일 수 있다.
특정한 실시 프로세스에서, 단계 201에서, 관리 운영체제가 각각의 부하 운영체제에 대해, 각각의 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원을 할당하는 것은 다음의 방식으로 실행될 수 있다:
관리 운영체제는, 물리적 자원 풀에 있으면서 이 자원 풀 내의 이용 가능한 물리적 자원의 목록에서의 물리적 자원의 식별자에 대응하는 이용 가능한 물리적 자원을 결정한다. 구체적으로, 관리 운영체제는 자원 풀 내의 이용 가능한 물리적 자원의 목록을 유지하며, 여기서 물리적 자원 풀 내의 모든 이용 가능한 물리적 자원의 식별자가 목록에 기록된다. 이용 가능한 물리적 자원은 관리 운영체제 또는 부하 운영체제에 의해 현재 사용되고 있지 않은 물리적 자원이다. 관리 운영체제는 부하 운영체제의 수에 따라 상기 자원 풀 내의 이용 가능한 물리적 자원에 대해 1차 분할(first-time division)을 수행하여 복수의 물리적 자원 집합을 획득하고, 여기서 상기 물리적 자원 집합의 수는 상기 부하 운영체제의 수와 같으며; 상기 관리 운영체제는 각각의 부하 운영체제와 각각의 물리적 자원 집합 간의 대응관계를 결정하고, 각각의 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원 집합을 상기 대응관계에 따라 각각의 부하 운영체제에 할당한다. 각각의 물리적 자원 집합은 호스트 머신의 프로세서 코어 중 일부 및 호스트 머신의 물리적 메모리 중 한 부분을 포함한다.
선택적으로, 관리 운영체제는 부하 운영체제에 의해 배타적으로 사용되는 외부 장치를 부하 운영체제에 할당할 수 있으며, 물리적 자원 집합은 호스트 머신의 외부 장치를 더 포함한다. 외부 장치는 네트워크 어댑터 또는 자기디스크 등이 될 수 있다.
특정한 실시예를 예로 사용한다. 도 1을 더 참조하면, 도 1에서, 물리적 자원 풀의 검은색 영역은 사용 중인 물리적 자원이고, 이 흑색 영역이 아닌 물리적 자원은 이용 가능한 물리적 자원이다. 2개의 부하 운영체제가 있으며, 이것을 제1 부하 운영체제 및 제2 부하 운영체제라 한다. 관리 운영체제는 이용 가능한 물리적 자원에 대해 1차 분할을 수행하고, 2개의 물리적 자원 집합을 획득한다. 특정한 실시 프로세스에서, 관리 운영체제는 물리적 자원에 대해 물리적 분할을 수행하고, 그 분할은 다음의 방식으로 수행될 수 있다:
프로세서 코어: 프로세서 코어는 분할을 위한 최소 기능 단위로서 사용되거나, 프로세서가 단위로서 사용될 수 있다. 이중 플랫폼에 있어서는, 이종 프로세서 코어 및 코프로세서 코어가 글로벌 컴퓨팅 자원으로 분류될 수도 있다.
물리적 메모리: 물리적 메모리의 연속적 또는 불연속적 세그먼트가 분할을 위한 단위로서 사용되고, 메모리 블록의 특정한 크기는 신호 블록의 크기 또는 하이브리드 블록의 크기일 수 있다.
외부 장치와 관련해서, 분할은 다음의 방식으로 주로 수행될 수 있다:
네트워크: 물리적 네트워크 어댑터가 분할을 위한 단위로서 사용된다. 물리적 네트워크 어댑터가 불충분하면, 멀티-어레이 기능을 가지거나 서버 가상화(예를 들어, Single-Root I/O Virtualization, SR-IOV로 약칭)를 지원하는 물리적 네트워크 어댑터가 사용되고, 어레이 또는 가상 기능(Virtual Function, VF로 약칭)에 따라 분할된다. 물리적 네트워크 어댑터도 이 네트워크 어댑터의 독립적인 물리적 기능도 충분하지 않을 때만, 물리적 네트워크 어댑터를 공유하는 것으로 간주하여, 네트워크 어댑터의 전면부 및 후면부를 가상화하는 방식으로, 운영체제 인스턴스에 복수의 가상 네트워크 어댑터를 제공한다.
자기디스크: 물리적 자기디스크가 분할을 위한 단위로서 사용된다. 물리적 자기디스크가 불충분하면, 장래에 SR-IOV를 지원할 수 있는 자기디스크는 디스크 가상화 기능을 사용함으로써 분할될 수 있다. 단일의 물리적 자기디스크는 자기디스크를 논리적으로 파티셔닝하는 방식으로 공유되며, 최종적으로 네트워크 파일 시스템(Network File System, NFS로 약칭) 및 랜덤 액세스 메모리 디스크(RAM)와 같은 기술을 사용하여 종래의 디스크 파일 시스템의 기능을 대체할 수 있다.
단말: 단말 장치(모니터 또는 키보드), 직렬 포트 등의 사용은 자원을 소비하지 않으므로, 시스템 성능이 영향을 받지 않는다는 전제하에, 상위 계층 요구를 충족하도록, 하드웨어 추출 계층 가상화 방식으로 직렬 포트와 단말과 같은 복수 집합의 장치 자원을 가상화에 의해 획득할 수 있다.
자원 분할과 관련해서, 본 실시예에서, 프로세서 코어 및 물리적 메모리는 물리적 공간에서 분리되고, 주변기기에 대해서도 물리적 단위 분할 방식을 사용하지만 물리적 분할이 부적절할 때는 시분할 다중화를 수행하는 대안의 솔루션 역시 지원된다.
관리 운영체제는 제1 부하 운영체제상에서 실행 중인 운영체제 인스턴스의 유형 및 제2 부하 운영체제상에서 실행 중인 운영체제 인스턴스의 유형에 따라, 물리적 자원 집합과 부하 운영체제 간의 대응관계를 구축한다. 관리 운영체제가 제1 부하 운영체제상에서 실행 중인 운영체제 인스턴스의 유형에 따라 더 많은 물리적 자원을 필요로 하면, 관리 운영체제는 그림자 영역에 대응하는 물리적 자원을 제1 부하 운영체제에 할당하고, 이에 상응해서, 관리 운영체제는 흰색 영역에 대응하는 물리적 자원을 제2 부하 운영체제에 할당한다.
관리 운영체제가 각각의 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원을 각각의 부하 운영체제에 할당한 후, 관리 운영체제는 각각의 부하 운영체제에 대해, 각각의 부하 운영체제를 기동하는 데 사용되는 부트 이미지를 사전에 구축한다. 부트 이미지란 부하 운영체제의 실행에 필요한 하드웨어 및 코어 데이터 구조가 구성되지 않았거나 충분하게 준비되지 않았을 때 부하 운영체제에 대해, 코어 실행에 필요한 하드웨어를 구성하고 코어 실행에 필요한 데이터 구조를 구축하는 프로그램을 말한다. 상기 부트 이미지는 구체적으로 스타트업 프로세서 코어가 자신의 상태를 갱신할 수 있도록 프로그램의 세그먼트 방식으로 실행되며, 여기서 상기 프로그램은 하드웨어 및 코어 데이터 구조가 준비된 후 각각의 부하 운영체제에 대해 구성되고 각각의 코어 서비스를 기동하며 각각의 코어 모듈을 로딩하여, 최종적으로 부하 운영체제를 기동한다.
또한, 관리 운영체제는 각각의 부하 운영체제에 대해, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 각각의 부하 운영체제의 각각의 부트 이미지를 실행하는 데 필요한 맵핑 관계를 추가로 설정한다. 당업자라면 본 발명에 포함된, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 부트 이미지를 실행하는 데 필요한 맵핑 관계란 구체적으로 부트 이미지에 대응하는 가상 메모리 어드레스 내 중 그 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의 맵핑 관계를 말하며, 관리 운영체제는 페이지 테이블의 방식으로 맴핑 관계를 실현할 수 있다는 것을 이해할 수 있을 것이다.
특정한 실시 프로세스에서, 부하 운영체제의 스타트업 프로세서 코어는 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 각각의 부하 운영체제의 부트 이미지를 실행하는 데 필요하고 관리 운영체제에 의해 부하 운영체제에 대해 설정되어 있는 맵핑 관계를 먼저 획득하고, 그 부하 운영체제는 맵핑 관계에 따라 물리적 메모리 어드레스에 직접적으로 액세스할 수 있고 어드레스 변환을 수행하지 않아도 된다. 부하 운영체제의 부트 이미지가 기동된 후, 부트 이미지는 부하 운영체제를 기동하도록 구성된다. 실행 프로세스에서, 부트 이미지는 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 부트 이미지에 대응하는 맵핑 관계에 따라 물리적 메모리 어드레스에 직접적으로 액세스한다. 당업자라면 관리 운영체제가 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의 일부의 맵핑 관계를 부트 이미지에 대해 설정할 수도 있고, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의 모든 맵핑 관계를 부트 이미지에 대해 설정할 수도 있다는 것을 이해할 수 있을 것이다. 관리 운영체제가 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의 일부의 맵핑 관계를 부트 이미지에 대해 설정할 때, 그리고 부하 운영체제에 할당된 스타트업 프로세서 코어가 부트 이미지의 기동을 실행하는 프로세스 중에 있을 때, 스타트업 프로세서 코어는 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 부트 이미지를 실행하는 데 필요한 모든 맵핑 관계를 설정할 수 있다. 부하 운영체제가 기동된 후, 부하 운영체제는 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 부하 운영체제를 실행하는 데 필요한 모든 맵핑 관계를 설정한다.
단계 202에서, 관리 운영체제가 제1 부하 운영체제에 할당된 프로세서 코어에서, 스타트업 프로세서 코어를 결정하는 것은 다음의 가능한 실시 방식을 포함한다: 관리 운영체제는 사전에 설정된 정책에 따라 스타트업 프로세서 코어를 결정하고, 관리 운영체제는 제1 부하 운영체제에 할당된 프로세서 코어에서, 하나의 프로세서 코어를 스타트업 프로세서 코어로서 무작위로 선택하며, 관리 운영체제는 사용자 명령을 획득하며, 그 사용자 명령에 따라 스타트업 프로세서 코어를 결정한다. 본 실시예는 관리 운영체제가 스타트업 프로세서 코어를 결정하는 특정한 실시 프로세스에 특별한 제한을 두지 않는다.
단계 203에서, 관리 운영체제는 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요한 맵핑 관계를 판독하도록 스타트업 프로세서 코어에 명령한다.
구체적으로, 스타트업 프로세서 코어는 맵핑 관계를 판독함으로써 물리적 메모리 어드레스에 직접적으로 액세스할 수 있으므로 어드레스 변환 프로세스를 수행하지 않아도 된다.
또한, 단계 203에서, 관리 운영체제는 관리 운영체제에 의해 제1 부하 운영체제에 대해 사전에 구축된 부트 이미지를 실행하도록 스타트업 프로세서 코어에 추가로 명령한다. 부트 이미지는 제1 부하 운영체제의 스타트업 파라미터를 포함하므로, 스타트업 프로세서 코어는 부트 이미지를 실행하는 프로세스에서, 부트 이미지로부터 스타트업 파라미터를 판독하며, 여기서 스타트업 파라미터는 제1 부하 운영체제에 할당된 프로세서 코어의 식별자 및 제1 부하 운영체제에 할당된 물리적 메모리 어드레스의 식별자를 포함하고, 이에 따라 제1 부하 운영체제는 스타트업 파라미터에 따라, 관리 운영체제에 의해 제1 부하 운영체제에 할당된 물리적 자원 집합을 획득한다. 부트 이미지의 실행은 부하 운영체제를 기동하기 위한 것이다. 부트 이미지의 실행은 제1 부하 운영체제의 스타트업 프로세스와 동일하다.
선택적으로, 물리적 자원 집합이 호스트 머신의 일부의 외부 장치를 포함할 때, 스타트업 파라미터는 제1 부하 운영체제에 할당된 외부 장치의 식별자 및 외부 장치에 대응하는 장치 설명 정보 테이블을 더 포함한다. 장치 설명 정보 테이블은 외부 장치의 구성 정보, 예를 들어, 외부 어드레스의 물리적 메모리 어드레스의 구성, 및 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의 맵핑 관계를 포함한다. 본 실시예는 장치 설명 정보 테이블에 포함되어 있는 특정한 내용에 대해 특별한 제한을 두지 않는다.
본 실시예에서 제공하는 자원 프로세싱 방법에 따르면, 관리 운영체제는 각각의 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원 집합을 각각의 부하 운영체제에 할당하고, 각각의 부하 운영체제에 대한 부트 이미지(boot image)를 구축하고, 각각의 부하 운영체제에 대해, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정하며; 상기 관리 운영체제는 제1 부하 운영체제에 할당된 프로세서 코어에서, 제1 부하 운영체제를 기동하는 스타트업 프로세서 코어를 결정하고; 상기 관리 운영체제는, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요하고 상기 관리 운영체제에 의해 사전에 구축되어 있는 맵핑 관계를 판독하도록 상기 스타트업 프로세서 코어에 명령하여, 상기 스타트업 프로세서 코어가 상기 맵핑 관계에 따라 물리적 메모리 어드레스에 액세스할 수 있게 하며, 상기 제1 부하 운영체제에 대해 사전에 구축된 부트 이미지를 실행하도록 상기 스타트업 프로세서 코어에 명령하며, 여기서 상기 부트 이미지는 제1 부하 운영체제의 스타트업 파라미터를 포함하고, 상기 스타트업 파라미터는 제1 부하 운영체제에 할당된 프로세서 코어의 식별자 및 제1 부하 운영체제에 할당된 물리적 메모리 어드레스의 식별자를 포함하며; 상기 관리 운영체제는 상기 부트 이미지에 스타트업 파라미터를 기록하여, 하이퍼바이저의 참여를 필요로 함이 없이, 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원을 부하 운영체제에 할당하며, 이에 의해 관리 운영체제에 의해 부하 운영체제에 물리적 자원을 할당하는 프로세스를 단순화한다. 또한, 각각의 부하 운영체제는 물리적 자원을 배타적으로 사용하여, 각각의 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원에 대해 독립적인 페이지 테이블, 러닝 클록, 런타임 환경 등을 구성하며, 이에 의해 부하 운영체제의 전반적인 성능을 개선한다.
이하에서는 수 개의 특정한 실시예를 사용하여 도 2에 도시된 방법 실시예의 기술적 솔루션을 상세히 설명한다.
특정한 실시예는 도 3에 도시된 것일 수 있다. 도 3은 본 발명에 따른 자원 프로세싱 방법의 실시예 2에 대한 개략적인 흐름도이다. 도 3에 도시된 바와 같이, 본 발명의 이 실시예에서 제공하는 자원 프로세싱 방법은 다음을 포함한다:
단계 301: 관리 운영체제는 각각의 부하 운영체제에 대해, 각각의 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원 집합을 할당하고, 각각의 부하 운영체제에 대해 부트 이미지를 구축한다.
각각의 물리적 자원 집합은 호스트 머신의 프로세서 코어 중 일부 및 호스트 머신의 물리적 메모리 중 한 부분을 포함한다.
단계 302: 관리 운영체제는 제1 부하 운영체제에 대해, 제1 부하 운영체제를 초기화하도록 구성되어 있는 초기화 프로그램을 사전에 설정하고, 상기 초기화 프로그램에서, 물리적 메모리 어드레스에 있는 제1 부하 운영체제에 대응하는 부트 이미지의 위치를 사전에 설정한다.
단계 303: 관리 운영체제는 제1 부하 운영체제에 대해 상기 초기화 프로그램에서, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정한다.
단계 304: 관리 운영체제는 스타트업 프로세서 코어에 인터-코어 차단 메시지를 송신한다.
인터-코어 차단 메시지는, 스타트업 프로세서 코어를 초기화하도록 구성되어 있고 제1 부하 운영체제에 대응하는 초기화 프로그램을 실행하도록 스타트업 프로세서 코어에 명령한다.
단계 305: 관리 운영체제는 제1 부하 운영체제에 대응하는 초기화 프로그램을 실행하도록 스타트업 프로세서 코어에 명령함으로써, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요한 맵핑 관계를 상기 초기화 프로그램으로부터 판독하도록 상기 스타트업 프로세서 코어에 명령하고, 상기 초기화 프로그램의 실행이 종료된 후, 상기 물리적 메모리에 있는 상기 부트 이미지의 위치로 점프하도록 상기 스타트업 프로세서 코어에 명령하여, 제1 부하 운영체제의 부트 이미지를 실행한다.
부트 이미지는 제1 부하 운영체제의 스타트업 파라미터를 포함하고, 스타트업 파라미터는 제1 부하 운영체제에 할당된 프로세서 코어의 식별자 및 제1 부하 운영체제에 할당된 물리적 메모리 어드레스의 식별자를 포함한다.
단계 301에서, 관리 운영체제가 각각의 부하 운영체제에 대해, 각각의 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원 집합을 할당하고 각각의 부하 운영체제에 대해 부트 이미지를 구축하는 프로세스는 단계 201에서의 프로세스와 유사하므로, 이에 대해서는 본 실시예에서 반복 설명하지 않는다.
단계 302에서, 관리 운영체제는 제1 부하 운영체제에 대해, 제1 부하 운영체제를 초기화하도록 구성되어 있는 초기화 프로그램을 사전에 설정하고, 상기 초기화 프로그램에서, 물리적 메모리 어드레스에 있는 제1 부하 운영체제에 대응하는 부트 이미지의 위치를 사전에 설정한다.
당업자라면 관리 운영체제가 각각의 부하 운영체제에 대해, 각각의 부하 운영체제에 대응하는 초기화 프로그램을 사전에 설정하고, 상기 초기화 프로그램에서, 물리적 메모리 어드레스에 있는 각각의 부하 운영체제에 대응하는 부트 이미지의 위치를 사전에 설정한다는 것을 이해할 수 있을 것이다. 당업자라면 가상의 메모리 어드레스에 있는 각각의 부하 운영체제에 대응하는 부트 이미지의 위치는 초기화 프로그램에 사전에 설정될 수도 있으며, 스타트업 프로세서 코어는 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의 맵핑 관계에 따라, 물리적 메모리 어드레스에 있으면서 부트 이미지가 위치하는 위치를 획득할 수 있다는 것을 이해할 수 있을 것이다.
단계 303에서, 관리 운영체제는 제1 부하 운영체제에 대해 초기화 프로그램에서, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정한다.
단계 304에서, 관리 운영체제는 스타트업 프로세서 코어에 인터-코어 차단 메시지를 송신하며, 여기서 상기 인터-코어 차단 메시지는, 스타트업 프로세서 코어를 초기화하도록 구성되어 있고 제1 부하 운영체제에 대응하는 초기화 프로그램을 실행하도록 스타트업 프로세서 코어에 명령한다.
당업자라면 인터-코어 차단 메시지에 의해 하나의 값이 전달되고 이 값은 차단 벡터라 할 수 있으며, 인터-코어 차단 메시지에 대응하는 값 및 이 값에 대응하는 실행 프로세스 양자는 관리 운영체제 및 제1 부하 운영체제에 의해 미리 합의된다. 관리 운영체제가 스타트업 프로세서 코어에 인터-코어 차단 메시지를 송신할 때, 인터-코어 차단 메시지는 스타트업 프로세서 코어를 초기화하도록 구성되어 있고 제1 부하 운영체제에 대응하는 초기화 프로그램을 실행하도록 스타트업 프로세서 코어에 명령한다.
인터-코어 차단 메시지를 수신한 후, 제1 부하 운영체제의 스타트업 프로세서 코어는 사전에 설정된 고정 물리적 메모리에서 초기화 프로그램을 검색하고, 그 초기화 프로그램을 실행하며, 스타트업 프로세서 코어의 초기화를 완료하며, 여기서 스타트업 프로세서 코어의 초기화는 스타트업 프로세서 코어의 스타트업 프로세스이다. 초기화 프로그램의 실행 프로세스에서, 스타트업 프로세서 코어는 그 실행 중인 초기화 프로그램으로부터, 제1 부하 운영체제에 대응하는 부트 이미지의, 물리적 메모리 어드레스에 있는, 관리 운영체제에 의해 제1 부하 운영체제에 대해 사전에 설정되어 있는 위치를 판독하여, 부트 이미지를 기동한다.
단계 305에서, 관리 운영체제는 제1 부하 운영체제에 대응하는 초기화 프로그램을 실행하도록 스타트업 프로세서 코어에 명령하고; 초기화 프로그램을 실행하는 프로세스에서, 스타트업 프로세서 코어는 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요한 맵핑 관계를 판독한다.
관리 운영체제가 초기화 프로그램의 실행이 종료된 후, 물리적 메모리 어드레스에 있는, 부트 이미지가 위치하는 위치로 점프하도록 스타트업 프로세서 코어에 명령하여, 제1 부하 운영체제의 부트 이미지를 실행하는 것은 다음의 방식으로 실시된다:
초기화 프로그램의 최종 명령은 부트 이미지로 점프하도록 스타트업 프로세서 코어에 명령하는 데 사용된다. 초기화 프로그램의 최종 명령이 실행될 때, 스타트업 프로세서 코어는 부트 이미지로 점프하여 부트 이미지를 실행하며, 여기서 부트 이미지는 제1 부하 운영체제의 스타트업 파라미터를 포함하고, 스타트업 파라미터는 제1 부하 운영체제에 할당된 프로세서 코어의 식별자 및 제1 부하 운영체제에 할당된 물리적 메모리 어드레스의 식별자를 포함한다.
제1 부하 운영체제는 제1 부하 운영체제에 할당된 프로세서 코어의 식별자 및 제1 부하 운영체제에 할당된 물리적 메모리 어드레스의 식별자에 따라, 관리 운영체제에 의해 제1 부하 운영체제에 할당되는, 제1 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원 집합을 결정한다.
본 실시예에서 제공하는 자원 프로세싱 방법에 따르면, 관리 운영체제는 부하 운영체제에 대해 초기화 프로그램을 사전에 구축하고, 상기 초기화 프로그램에서 부하 운영체제에 대해, 물리적 메모리 어드레스에 있는, 제1 부하 운영체제에 대응하는 부트 이미지의 위치를 사전에 설정하며, 초기화 프로그램에서 제1 부하 운영체제에 대해, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 부트 이미지를 실행하는 데 필요한 맵핑 관계를 사전에 설정하고; 부하 운영체제의 스타트업 프로세서 코어는 초기화 프로그램을 실행하고, 부트 이미지로부터 스타트업 파라미터를 판독하고, 스타트업 파라미터에 따라 물리적 자원 집합을 획득하며, 부하 운영체제의 스타트업 프로세스를 완료한다. 관리 운영체제는 하이퍼바이저의 참여를 요구함이 없이, 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원을 그 부하 운영체제에 할당하며, 이에 의해 관리 운영체제에 의해 부하 운영체제에 물리적 자원을 할당하는 프로세스를 단순화하며; 또한, 각각의 부하 운영체제는 물리적 자원을 배타적으로 사용할 수 있으며, 이에 의해 부하 운영체제의 전반적인 성능을 개선한다.
다른 특정한 실시예가 도 4에 도시되어 있다. 도 4는 본 발명에 따른 자원 프로세싱 방법의 실시예 3에 대한 개략적인 흐름도이다. 도 4에 도시된 바와 같이, 본 발명의 이 실시예에서 제공하는 자원 프로세싱 방법은 다음을 포함한다:
단계 401: 관리 운영체제는 제2 부하 운영체제의 이용 가능한 프로세서 코어를 획득한다.
제2 부하 운영체제는 복수의 부하 운영체제에서 제1 부하 운영체제가 아닌 로그아웃된 부하 운영체제이고, 상기 이용 가능한 프로세서 코어는 기동된 프로세서 코어를 포함하며, 제1 부하 운영체제의 물리적 자원 집합은 상기 이용 가능한 프로세서 코어를 포함한다.
단계 402: 제1 부하 운영체제의 물리적 자원 집합이 이용 가능한 프로세서 코어를 포함할 때, 관리 운영체제는 상기 이용 가능한 프로세서 코어에서, 제1 부하 운영체제를 기동하는 스타트업 프로세서 코어를 결정한다.
단계 403: 관리 운영체제는 제1 부하 운영체제에 대해 스타트업 프로세서 코어에 대한 데몬(daemon)을 사전에 설정하고, 상기 데몬에서, 물리적 메모리 어드레스에 있는 제1 부하 운영체제에 대응하는 부트 이미지의 위치를 사전에 설정한다.
단계 404: 관리 운영체제는 제1 부하 운영체제에 대해 데몬에서, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정한다.
단계 405: 관리 운영체제는 스타트업 프로세서 코어 상에서 실행 중인 데몬에 인터-코어 차단 메시지를 송신하며, 여기서 제1 부하 운영체제에 대응하는 부트 이미지의, 물리적 메모리 어드레스에 있는, 관리 운영체제에 의해 상기 데몬에 사전에 설정되어 있는 위치는, 물리적 메모리 어드레스에 있는, 부트 이미지가 위치하는 위치로 점프하도록 상기 스타트업 프로세서 코어에 명령하여, 제1 부하 운영체제의 부트 이미지를 실행한다.
인터-코어 차단 메시지는 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 부트 이미지를 실행하는 데 필요하고 관리 운영체제에 의해 제1 부하 운영체제에 대해 사전에 구축되어 있는 맵핑 관계를 데몬으로부터 판독하도록 스타트업 프로세서 코어에 명령한다.
단계 401에서, 관리 운영체제가 제2 부하 운영체제의 이용 가능한 프로세서 코어를 획득하는 것은 다음의 가능한 실시 방식들을 포함할 수 있다: 관리 운영체제는 제2 부하 운영체제의 실행 프로세스 중에 제2 부하 운영체제를 강제로 로그아웃하고; 관리 운영체제는 제2 부하 운영체제가 종료된 후 제2 부하 운영체제를 로그아웃하고; 제2 부하 운영체제는 실행이 종료된 후 자동으로 로그아웃된다. 제2 부하 운영체제가 로그아웃된 후, 관리 운영체제는 제2 부하 운영체제의 이용 가능한 프로세서 코어를 획득하고, 여기서 이용 가능한 프로세서 코어는 제2 부하 운영체제의 스타트업 프로세서 코어 및 다른 응용 프로그램을 실행하는 다른 프로세서 코어를 포함한다.
당업자라면 제1 부하 운영체제의 물리적 자원 집합이 상기 이용 가능한 프로세서 코어를 포함할 수도 있고, 상기 이용 가능한 프로세서 코어를 포함하지 않을 수도 있다는 것을 이해할 수 있을 것이다.
특히, 본 실시예에서, 제2 부하 운영체제는 로그아웃되지만, 제2 부하 운영체제의 스타트업 프로세서 코어는 초기화 프로그램을 실행하였으며; 관리 운영체제는 제2 부하 운영체제의 스타트업 프로세서 코어를 제1 부하 운영체제의 스타트업 프로세서 코어로서 사용할 수 있다. 제2 부하 운영체제의 스타트업 프로세서 코어가 제1 부하 운영체제의 스타트업 프로세서 코어로서 작동할 때는, 하나의 초기화 프로그램을 완료하기 위해 상기 초기화 프로그램을 다시 초기화 프로그램을 실행하지 않아도 되며; 그렇지만, 상기 이용 가능한 프로세서 코어에 있으면서 다른 응용 프로그램을 실행하는 프로세서 코어가 상기 스타트업 프로세서 코어로서 작동할 때는, 여전히 초기화를 완료하기 위해 상기 초기화 프로그램을 실행하여야 한다.
단계 402에서, 제1 부하 운영체제의 물리적 자원 집합을 포함할 때, 관리 운영체제는 상기 이용 가능한 프로세서 코어에서, 제1 부하 운영체제를 기동하는 스타트업 프로세서 코어를 결정한다.
당업자라면, 제1 부하 운영체제의 물리적 자원 집합이 상기 이용 가능한 프로세서 코어를 포함할 때, 관리 운영체제는 상기 이용 가능한 프로세서 코어에서, 제1 부하 운영체제의 스타트업 프로세서 코어를 결정할 수도 있고, 물리적 자원 집합 내의 다른 프로세서 코어 중에서 스타트업 프로세서 코어를 결정할 수도 있다.
관리 운영체제가 상기 이용 가능한 프로세서 코어 중에서 스타트업 프로세서 코어를 결정하면, 다음의 방식들이 실시에 사용될 수 있다: 관리 운영체제는 사전에 설정된 정책에 따라 이용 가능한 프로세서 코어 중에서 스타트업 프로세서 코어를 결정하고; 관리 운영체제는 상기 이용 가능한 프로세서 코어 중에서 하나의 프로세서 코어를 스타트업 프로세서 코어로서 무작위로 선택하고; 관리 운영체제는 사용자 명령을 획득하고, 상기 사용자 명령에 따라 상기 이용 가능한 프로세서 코어 중에서 스타트업 프로세서 코어를 결정한다.
단계 403에서, 관리 운영체제는 제1 부하 운영체제에 대해, 스타트업 프로세서 코어에 대한 데몬을 설정하고, 설정이 완료된 후, 데몬은 기동되어 있는 스타트업 프로세서 코어 상에서 항상 실행하며, 관리 운영체제에 의해 송신된 다양한 시스템 커맨드를 대기한다. 데몬은 관리 운영체제에 의해 제1 부하 운영체제에 대해 사전에 설정된다. 관리 운영체제는 데몬에서, 물리적 메모리 어드레스에 있는, 제1 부하 운영체제에 대응하는 부트 이미지의 위치를 추가로 사전에 설정한다.
또한, 단계 404에서, 관리 운영체제는 데몬에서, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요한 맵핑 관계를 사전에 설정한다.
단계 405에서, 관리 운영체제는 스타트업 프로세서 코어 상에서 실행 중인 데몬에 인터-코어 차단 메시지를 송신하고, 인터-코어 차단 메시지에 대응하는 명령은 관리 운영체제와 제1 부하 운영체제에 의해 미리 합의된다. 스타트업 프로세서 코어 상에서 실행 중인 데몬이 관리 운영체제에 의해 송신된 인터-코어 차단 메시지를 수신한 후, 스타트업 프로세서 코어는 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 부트 이미지를 실행하는 데 필요하고 관리 운영체제에 의해 제1 부하 운영체제에 대해 사전에 구축되어 있는 맵핑 관계를 데몬으로부터 판독하며; 스타트업 프로세서 코어가 부트 이미지를 실행하는 프로세스에서, 스타트업 프로세서 코어는 상기 맵핑 관계에 따라 물리적 메모리 어드레스에 액세스한다.
관리 운영체제는 물리적 메모리에 있는 부트 이미지가 위치하는 위치로 점프하도록 스타트업 프로세서 코어에 명령하여, 제1 부하 운영체제의 부트 이미지를 실행하며, 여기서 점프 커맨드는 데몬에 설정되어 있으며, 이에 따라 스타트업 프로세서 코어는 물리적 메모리 어드레스에 있는 제1 부하 운영체제에 대응하는 부트 이미지의 위치를 데몬으로부터 획득하고, 물리적 메모리 어드레스에 있는 부트 이미지가 위치하는 위치로 점프하여, 제1 부하 운영체제의 부트 이미지를 실행한다.
본 발명의 실시예에서 제공하는 자원 프로세싱 방법에 따르면, 관리 운영체제는 데몬에 점프 커맨드를 설정하고, 이에 따라 스타트업 프로세서 코어는 물리적 메모리 어드레스에 있는 제1 부하 운영체제에 대응하는 부트 이미지의 위치를 데몬으로부터 획득하고, 물리적 메모리 어드레스에 있는 부트 이미지가 위치하는 위치로 점프하여, 제1 부하 운영체제의 부트 이미지를 실행하며 이 부트 이미지로부터 스타트업 파라미터를 획득한다. 관리 운영체제는 하이퍼바이저의 참여를 요구함이 없이, 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원을 그 부하 운영체제에 할당하며, 이에 의해 관리 운영체제에 의해 부하 운영체제에 물리적 자원을 할당하는 프로세스를 단순화하며; 또한, 각각의 부하 운영체제는 물리적 자원을 배타적으로 사용할 수 있으며, 이에 의해 부하 운영체제의 전반적인 성능을 개선한다.
도 5는 본 발명에 따른 자원 프로세싱 방법의 실시예 4에 대한 개략적인 흐름도이다. 본 실시예에서의 자원 프로세싱 방법은 멀티-커널 운영체제에 적용되며, 상기 멀티-커널 운영체제는 관리 운영체제 및 호스트 머신 상에서 실행되는 복수의 부하 운영체제를 포함하고 물리적 자원 풀을 포함하며, 상기 물리적 자원 풀은 호스트 머신의 프로세서 코어 및 물리적 메모리를 포함하며, 각각의 부하 운영체제는 관리 운영체제에 의해 할당되는 물리적 자원 집합을 배타적으로 사용하고, 각각의 물리적 자원 집합은 호스트 머신의 프로세서 코어 중 일부와 호스트 머신의 물리적 메모리 중 한 부분을 포함하며; 관리 운영체제는 각각의 부하 운영체제에 대해 부트 이미지를 사전에 구축하고, 각각의 부하 운영체제에 대해, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정한다. 본 실시예의 실행 본체는 복수의 부하 운영체제 중 임의의 부하 운영체제이다. 설명을 쉽게 하기 위해, 본 실시예에서, 실행 본체는 제1 부하 운영체제를 말한다. 도 5에 도시된 바와 같이, 본 발명의 실시예에서 제공하는 자원 프로세싱 방법은 다음을 포함한다:
단계 501: 제1 부하 운영체제의 스타트업 프로세서 코어는 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요한 맵핑 관계를 판독한다.
맵핑 관계는 제1 부하 운영체제의 스타트업 프로세서 코어가 물리적 메모리 어드레스에 액세스할 수 있게 하는 데 사용되고, 제1 부하 운영체제는 멀터-코어 운영체제 중 임의의 부하 운영체제이다.
단계 502: 제1 부하 운영체제의 스타트업 프로세서 코어는, 관리 운영체제에 의해 설정되고 부트 이미지 점프를 실행하기 위한 명령에 따라, 물리적 메모리에 있는, 제1 부하 운영체제에 대응하는 부트 이미지의 위치로 점프하고, 맵핑 관계에 따라, 제1 부하 운영체제에 대응하는 부트 이미지를 실행한다.
단계 503: 제1 부하 운영체제의 스타트업 프로세서 코어는 제1 부하 운영체제의 부트 이미지를 실행하는 프로세스에서, 제1 부하 운영체제의 부트 이미지로부터 제1 부하 운영체제의 스타트업 파라미터를 획득한다.
스타트업 파라미터는 제1 부하 운영체제에 할당된 프로세서 코어의 식별자 및 제1 부하 운영체제에 할당된 물리적 메모리 어드레스의 식별자를 포함한다.
단계 504: 제1 부하 운영체제는 프로세서 코어의 식별자 및 제1 부하 운영체제의 물리적 메모리 어드레스의 식별자에 따라, 관리 운영체제에 의해 설정되고 부트 이미지 점프에 의해 제1 부하 운영체제에 할당되며 제1 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원 결정한다.
본 실시예의 애플리케이션 시나리오는 도 1의 실시예에 도시된 시나리오일 수 있으며, 이에 대해 본 실시예에서 반복 설명하지 않는다. 본 실시예에서, 본 실시예에서 제공하는 자원 프로세싱 방법에 대해 제1 부하 운영체제를 실행 본체로 사용함으로써 상세히 설명한다. 제1 부하 운영체제는 구체적으로 도 1에 도시된 부하 운영체제 중 임의의 부하 운영체제일 수 있다.
단계 501에서, 관리 운영체제가 제1 부하 운영체제에 대해 스타트업 프로세서 코어를 결정하고, 제1 부하 운영체제의 스타트업 프로세서 코어는 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요하고 관리 운영체제에 의해 제1 부하 운영체제에 대해 설정되어 있는 맵핑 관계를 획득하고, 제1 부하 운영체제는 맵핑 관계에 따라 물리적 메모리 어드레스에 직접적으로 액세스할 수 있으며 어드레스 변환을 수행하지 않아도 된다.
단계 502에서, 제1 부하 운영체제의 스타트업 프로세서 코어는, 관리 운영체제에 의해 제1 부하 운영체제에 대해 사전에 설정되어 있고 부트 이미지 점프를 실행하기 위한 명령을 수신하며, 제1 부하 운영체제는 관리 운영체제에 의해 사전에 설정되어 있고 부트 이미지 점프를 위한 명령에 따라, 물리적 메모리 어드레스에 있는, 제1 부하 운영체제에 대응하는 부트 이미지의 위치로 점프하며; 제1 부하 운영체제의 스타트업 프로세서 코어가 부트 이미지일 때, 제1 부하 운영체제는 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 부트 이미지에 대응하는 맵핑 관계에 따라 물리적 메모리 어드레스에 직접적으로 액세스하여, 부트 이미지의 스타트업 프로세스를 완료한다.
단계 503에서, 제1 부하 운영체제의 스타트업 프로세서 코어는 제1 부하 운영체제의 부트 이미지를 실행하는 프로세스에서, 제1 부하 운영체제의 부트 이미지로부터 제1 부하 운영체제의 스타트업 파라미터를 획득하며, 여기서 스타트업 파라미터는 관리 운영체제에 의해 제1 부하 운영체제에 할당된 프로세서 코어의 식별자 및 관리 운영체제에 의해 제1 부하 운영체제에 할당된 물리적 메모리 어드레스의 식별자를 포함한다.
선택적으로, 물리적 자원 집합이 호스트 머신의 일부의 외부 장치를 포함할 때, 스타트업 파라미터는 관리 운영체제에 의해 제1 부하 운영체제에 할당된 외부 장치의 식별자 및 외부 장치에 대응하는 장치 설명 정보 테이블을 더 포함한다. 장치 설명 정보 테이블은 외부 장치의 구성 정보, 예를 들어, 외부 어드레스의 물리적 메모리 어드레스의 구성, 및 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의 맵핑 관계를 포함한다. 본 실시예는 장치 설명 정보 테이블에 포함되어 있는 특정한 내용에 대해 특별한 제한을 두지 않는다.
단계 504에서, 제1 부하 운영체제는 프로세서 코어의 식별자 및 제1 부하 운영체제의 물리적 메모리 어드레스의 식별자에 따라, 관리 운영체제에 의해 제1 부하 운영체제에 설정되고 제1 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원 결정할 수 있으며, 제1 부하 운영체제는 자신이 배타적으로 사용하는 물리적 자원에 대해 독립적인 페이지 테이블, 클록, 런타임 환경 등을 구성할 수 있다.
당업자라면 제1 부하 운영체제가 부트 이미지를 실행하는 목적이 제1 부하 운영체제를 기동하기 위한 것이라는 것을 이해할 수 있을 것이며; 부트 이미지의 실행이 종료된 후, 제1 부하 운영체제의 스타트업이 완료되며, 제1 부하 운영체제가 러닝 스테이지로 진입한다.
본 발명의 실시예에서 제공하는 자원 프로세싱 방법에 따르면, 제1 부하 운영체제의 스타트업 프로세서 코어는 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요한 맵핑 관계를 판독하고, 관리 운영체제에 의해 설정되어 있고 부트 이미지 점프를 실행하기 위한 명령에 따라, 물리적 메모리 어드레스에 있는, 제1 부하 운영체제에 대응하는 부트 이미지의 위치로 점프하고, 맵핑 관계에 따라, 제1 부하 운영체제에 대응하는 부트 이미지를 실행하며, 제1 부하 운영체제의 부트 이미지를 실행하는 프로세스에서, 제1 부하 운영체제의 부트 이미지로부터 제1 부하 운영체제의 스타트업 파라미터를 획득하며, 여기서 스타트업 파라미터는 제1 부하 운영체제에 할당된 프로세서 코어의 식별자 및 제1 부하 운영체제에 할당된 물리적 메모리 어드레스의 식별자를 포함한다. 제1 부하 운영체제는 프로세서 코어의 식별자 및 제1 부하 운영체제의 물리적 메모리 어드레스의 식별자에 따라, 관리 운영체제에 의해 제1 부하 운영체제에 할당되어 있고 제1 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원을 결정한다. 제1 부하 운영체제는 부트 이미지로부터 스타트업 파라미터를 판독하여, 하이퍼바이저의 참여를 요구함이 없이, 관리 운영체제에 의해 제1 부하 운영체제에 할당되고 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원을 판독하며, 이에 의해 관리 운영체제에 의해 부하 운영체제에 물리적 자원을 할당하는 프로세스를 단순화한다. 또한, 각각의 부하 운영체제는 물리적 자원을 배타적으로 사용하여, 각각의 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원에 대해 독립적인 페이지 테이블, 클록, 런타임 환경 등을 구성하며, 이에 의해 부하 운영체제의 전반적인 성능을 개선한다.
이하에서는 수 개의 특정한 실시예를 사용하여 도 5에 도시된 방법 실시예의 기술적 솔루션을 상세히 설명한다.
특정한 실시예는 도 6에 도시된 것일 수 있다. 도 5은 본 발명에 따른 자원 프로세싱 방법의 실시예 5에 대한 개략적인 흐름도이다. 도 6에 도시된 바와 같이, 본 발명의 이 실시예에서 제공하는 자원 프로세싱 방법은 다음을 포함한다:
단계 601: 제1 부하 운영체제의 스타트업 프로세서 코어는 관리 운영체제에 의해 송신된 인터-코어 차단 메시지를 수신하며, 여기서 상기 스타트업 프로세서 코어는 인터-코어 차단 메시지의 명령에 따라, 상기 스타트업 프로세서 코어를 초기화하도록 구성되어 있고 제1 부하 운영체제에 대응하는 초기화 프로그램을 실행한다.
단계 602: 제1 부하 운영체제의 스타트업 프로세서 코어는, 초기화 프로그램을 실행하고, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 부트 이미지를 실행하는 데 필요하고 관리 운영체제에 의해 제1 부하 운영체제에 대해 사전에 구축되어 있는 맵핑 관계를 상기 초기화 프로그램으로부터 판독하고, 관리 운영체제에 의해 초기화 프로그램에 사전에 설정되어 있는 점프 명령을 판독하며, 물리적 메모리 어드레스에 있는, 제1 부하 운영체제에 대응하는 부트 이미지의 위치로 점프하며, 맵핑 관계에 따라, 제1 부하 운영체제에 대응하는 부트 이미지를 실행한다.
단계 603: 제1 부하 운영체제의 스타트업 프로세서 코어는 제1 부하 운영체제의 부트 이미지를 실행하는 프로세스에서, 제1 부하 운영체제의 부트 이미지로부터 제1 부하 운영체제의 스타트업 파라미터를 획득한다.
스타트업 파라미터는 제1 부하 운영체제에 할당된 프로세서 코어의 식별자 및 제1 부하 운영체제에 할당된 물리적 메모리 어드레스의 식별자를 포함한다.
단계 604: 제1 부하 운영체제는 프로세서 코어의 식별자 및 제1 부하 운영체제의 물리적 메모리 어드레스의 식별자에 따라, 관리 운영체제에 의해 제1 부하 운영체제에 할당되고 제1 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원을 결정한다.
본 실시예에서, 단계 603은 단계 503과 유사하고, 단계 604는 단계 504와 유사하므로, 이에 대해서는 본 실시예에서 반복 설명하지 않는다.
단계 601에서, 제1 부하 운영체제의 스타트업 프로세서 코어는 관리 운영체제에 의해 송신된 인터-코어 차단 메시지를 수신하며, 여기서 스타트업 프로세서 코어는 인터-코어 차단 메시지의 명령에 따라, 스타트업 프로세서 코어를 초기화하도록 구성되어 있고 제1 부하 운영체제에 대응하는 초기화 프로그램을 실행한다.
구체적으로, 인터-코어 차단 메시지에 의해 하나의 값이 전달되고 이 값은 차단 벡터라 할 수 있으며, 인터-코어 차단 메시지에 대응하는 값 및 이 값에 대응하는 실행 프로세스 양자는 관리 운영체제 및 제1 부하 운영체제에 의해 미리 합의된다. 관리 운영체제는 제1 부하 운영체제의 스타트업 프로세서 코어에 인터-코어 차단 메시지를 송신하며, 인터-코어 차단 메시지는, 스타트업 프로세서 코어를 초기화하도록 구성되어 있고 제1 부하 운영체제에 대응하는 초기화 프로그램을 실행하도록 스타트업 프로세서 코어에 명령한다.
관리 운영체제에 의해 송신된 인터-코어 차단 메시지를 수신한 후, 제1 부하 운영체제의 스타트업 프로세서 코어는 사전에 설정된 고정 물리적 메모리에서 초기화 프로그램을 검색하고, 그 초기화 프로그램을 실행하여 스타트업 프로세서 코어의 초기화를 완료하며, 스타트업 프로세서 코어의 초기화는 스타트업 프로세서 코어의 스타트업 프로세스이다.
단계 602에서, 제1 부하 운영체제의 스타트업 프로세서 코어는 초기화 프로그램을 실행하는 프로세스에서, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 부트 이미지를 실행하는 데 필요하고 관리 운영체제에 의해 제1 부하 운영체제에 대해 사전에 구축되어 있는 맵핑 관계를 초기화 프로그램으로부터 판독하며; 제1 부하 운영체제의 스타트업 프로세서 코어가 맵핑 관계를 판독한 후, 부트 이미지를 실행하는 후속의 프로세스에서, 제1 부하 운영체제의 스타트업 프로세서 코어는 맵핑 관계에 따라 물리적 메모리 어드레스를 직접적으로 액세스할 수 있으며 어드레스 변환을 수행하지 않아도 된다.
또한, 초기화 프로그램의 최종 명령은 부트 이미지로 점프하도록 스타트업 프로세서 코어에 명령하는 데 사용되고 점프 명령으로서 해석될 수 있다. 제1 부하 운영체제의 스타트업 프로세서 코어가 관리 운영체제에 의해 초기화 프로그램에 사전에 설정되어 있는 점프 명령을 초기화 프로그램으로부터 판독하고, 물리적 메모리 어드레스에 있는, 제1 부하 운영체제에 대응하는 부트 이미지의 위치로 점프하며, 맵핑 관계에 따라 물리적 메모리 어드레스에 직접적으로 액세스하여 제1 부하 운영체제에 대응하는 부트 이미지를 실행한다.
본 발명의 실시예에서 제공하는 자원 프로세싱 방법에 따르면, 제1 부하 운영체제는 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 부트 이미지를 실행하는 데 필요하고 관리 운영체제에 의해 제1 부하 운영체제에 대해 사전에 구축되어 있는 맵핑 관계를 초기화 프로그램으로부터 판독하고, 관리 운영체제에 의해 초기화 프로그램에 사전에 설정되어 있는 점프 명령을 판독하고, 물리적 메모리 어드레스에 있는, 제1 부하 운영체제에 대응하는 부트 이미지의 위치로 점프하며, 맵핑 관계에 따라, 제1 부하 운영체제에 대응하는 부트 이미지를 실행하며, 부트 이미지로부터 스타트업 파라미터를 판독하고, 스타트업 파라미터에 따라 물리적 자원 집합을 획득하며, 제1 부하 운영체제의 스타트업 프로세스를 완료한다. 관리 운영체제는 하이퍼바이저의 참여를 요구함이 없이, 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원을 그 부하 운영체제에 할당하며, 이에 의해 관리 운영체제에 의해 부하 운영체제에 물리적 자원을 할당하는 프로세스를 단순화하며; 또한, 각각의 부하 운영체제는 물리적 자원을 배타적으로 사용하며, 이에 의해 부하 운영체제의 전반적인 성능을 개선한다.
다른 특정한 실시예는 다음과 같다: 본 실시예에서, 제1 부하 운영체제의 스타트업 프로세서 코어는, 기동되어 있고 관리 운영체제에 의해 결정되는 프로세서 코어이며, 제1 부하 운영체제의 스타트업 프로세서 코어 상에서 데몬이 실행되며, 이 데몬은 관리 운영체제에 의해 제1 부하 운영체제에 대해 사전에 설정되며, 물리적 메모리 어드레스에 있는, 제1 부하 운영체제에 대응하는 부트 이미지의 위치 및 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 부트 이미지를 실행하는 데 필요한 맵핑 관계는 데몬에 설정된다. 도 7은 본 발명에 따른 자원 프로세싱 방법의 실시예 6에 대한 개략적인 흐름도이다. 도 7에 도시된 바와 같이, 본 발명의 실시예에서 제공하는 자원 프로세싱 방법은 다음을 포함한다:
단계 701: 제1 부하 운영체제의 스타트업 프로세서 코어 상에서 실행 중인 데몬은 관리 운영체제에 의해 송신된 인터-코어 차단 메시지를 수신하고, 스타트업 프로세서 코어는 인터-코어 차단 메시지의 명령에 따라, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 부트 이미지를 실행하는 데 필요하고 관리 운영체제에 의해 제1 부하 운영체제에 대해 사전에 구축되어 있는 맵핑 관계를 데몬으로부터 판독한다.
단계 702: 제1 부하 운영체제의 스타트업 프로세서 코어는 관리 운영체제에 의해 데몬에 사전에 설정되어 있는 점프 명령을 판독하고, 물리적 메모리 어드레스에 있는, 제1 부하 운영체제에 대응하는 부트 이미지의 위치로 점프하며, 맵핑 관계에 따라, 제1 부하 운영체제에 대응하는 부트 이미지를 실행한다.
단계 703: 제1 부하 운영체제의 스타트업 프로세서 코어는 제1 부하 운영체제의 부트 이미지를 실행하는 프로세스에서, 제1 부하 운영체제의 부트 이미지로부터 제1 부하 운영체제의 스타트업 파라미터를 획득한다.
스타트업 파라미터는 제1 부하 운영체제에 할당된 프로세서 코어의 식별자 및 제1 부하 운영체제에 할당된 물리적 메모리 어드레스의 식별자를 포함한다.
단계 704: 제1 부하 운영체제는 프로세서 코어의 식별자 및 제1 부하 운영체제의 물리적 메모리 어드레스의 식별자에 따라, 관리 운영체제에 의해 제1 부하 운영체제에 할당되고 제1 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원 집합을 결정한다.
본 실시예와 도 6에서의 실시예 간의 차이점은 본 실시예어서의 스타트업 프로세서 코어는 기동되어 있는 프로세서 코어이며, 즉 초기화 프로그램이 스타트업 프로세서 코어 상에서 수행되지 않아도 된다는 점이다. 본 실시예에서의 단계 703은 도 5의 실시예에서의 단계 503과 유사하고 단계 704는 도 5의 실시예에서의 단계 504와 유사하므로, 이에 대해서는 본 실시예에서 반복 설명하지 않는다. 특정한 실시 프로세스에서, 관리 운영체제는 제1 부하 운영체제에 대해 스타트업 프로세서 코어에 대한 데몬을 사전에 설정하고, 설정이 완료된 후, 데몬은 기동되어 있는 스타트업 프로세서 코어 상에서 항상 실행된다.
단계 701에서, 관리 운영체제는 스타트업 프로세서 코어 상에서 실행 중인 데몬에 인터-코어 차단 메시지를 송신하고, 인터-코어 차단 메시지에 대응하는 명령은 관리 운영체제 및 제1 부하 운영체제에 의해 미리 합의된다. 스타트업 프로세서 코어 상에서 실행 중인 데몬이 관리 운영체제에 의해 송신된 인터-코어 차단 메시지를 수신한 후, 스타트업 프로세서 코어는 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 부트 이미지를 실행하는 데 필요하고 관리 운영체제에 의해 제1 부하 운영체제에 대해 사전에 구축되어 있는 맵핑 관계를 데몬으로부터 판독하며; 스타트업 프로세서 코어가 부트 이미지를 실행하는 프로세스에서, 스타트업 프로세서 코어는 상기 맵핑 관계에 따라 물리적 메모리 어드레스에 액세스한다.
단계 702에서, 제1 부하 운영체제의 스타트업 프로세서 코어는 관리 운영체제에 의해 데몬에 사전에 설정되어 있는 점프 명령을 판독하고, 물리적 메모리 어드레스에 있는, 제1 부하 운영체제에 대응하는 부트 이미지의 위치로 점프하며, 맵핑 관계에 따라, 제1 부하 운영체제에 대응하는 부트 이미지를 실행한다.
본 발명의 실시예에서 제공하는 자원 프로세싱 방법에 따르면, 제1 부하 운영체제의 스타트업 프로세서 코어는 물리적 메모리 어드레스에 있는, 제1 부하 운영체제에 대응하는 부트 이미지의 위치를 사전에 설정된 데몬으로부터 획득하고, 물리적 메모리 어드레스에 있는 부트 이미지가 위치하는 위치로 점프하여, 제1 부하 운영체제의 부트 이미지를 실행하고 이 부트 이미지로부터 스타트업 파라미터를 획득한다. 관리 운영체제는 하이퍼바이저의 참여를 요구함이 없이, 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원을 그 부하 운영체제에 할당하며, 이에 의해 관리 운영체제에 의해 부하 운영체제에 물리적 자원을 할당하는 프로세스를 단순화하며; 또한, 각각의 부하 운영체제는 물리적 자원을 배타적으로 사용하며, 이에 의해 부하 운영체제의 전반적인 성능을 개선한다.
도 5 내지 도 7에서의 실시예에 기초하여, 스타트업 프로세서 코어는 부트 이미지를 실행하고 제1 부하 운영체제의 스타트업을 완료한다. 제1 부하 운영체제가 기동된 후, 제1 부하 운영체제는 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요한 모든 맵핑 관계를 구축하고; 제1 부하 운영체제의 프로세서 코어는 맵핑 관계에 따라, 가상 메모리 어드레스를 물리적 메모리 어드레스로 변환하며, 물리적 메모리 어드레스에 직접적으로 액세스한다.
또한, 제1 부하 운영체제의 실행 프로세스에서, 제1 부하 운영체제는 자신에게 할당된 프로세서 코어를 사용함으로써, 관리 운영체제에 의해 전달된 특권 명령을 실행할 수 있다. 특정한 실시 프로세스에서, 특권 명령을 실행하는 프로세서 코어는 스타트업 프로세서 코어일 수도 있고, 특권 명령을 실행하는 프로세서 코어가 관리 운영체제에 의해 제1 부하 운영체제에 할당된 프로세서 코어이기만 하면, 스타트업 프로세서 코어가 아닌 다른 프로세서 코어일 수도 있다. 특권 명령은 운영체제에 적용되고 일반적으로 사용자에게 직접 제공되지 않는다. 특권 명령은 자원 할당 및 관리에 주로 사용되는데, 이것은 사용자 액세스 권한의 검출, 작업 생성 및 전환 등을 들 수 있다.
본 실시예에서, 제1 부하 운영체제는 가상화 기술에서 특권 동작에 대한 하이퍼콜(hypercall)을 번역 또는 수행하는 단계 없이, 이 특권 명령을 직접적으로 수행한다. 구체적으로, 관리 운영체제는 제1 부하 운영체제가 실행을 수행하도록 제1 부하 운영체제에 특권 명령을 전달할 수 있으며, 이것은 호스트 머신의 정상적인 러닝 스테이지에 영향을 주지 않는다.
도 2 내지 도 7에서의 실시예는 관리 운영체제에 의해 제1 부하 운영체제에 물리적 자원을 할당하는 프로세스를 상세히 설명하며, 제1 부하 운영체제가 부트 이미지를 실행하여 제1 부하 운영체제의 스타트업 프로세스를 완료하는 방법도 추가로 상세히 설명한다.
제1 부하 운영체제의 실행 프로세스에서, 제1 부하 운영체제의 물리적 자원은 동적으로 조정되어야 한다. 특정한 실시 프로세스에서, 제1 부하 운영체제를 동적으로 조정하는 2개의 가능한 실시 방식이 있다.
하나의 가능한 실시 방식은 관리 운영체제가 제1 부하 운영체제의 실행을 모니터링하고 제1 부하 운영체제의 물리적 자원을 조정하는 것이며, 이것은 구체적으로 2개의 가능한 상황을 포함한다.
하나의 가능한 상황에서: 관리 운영체제가 제1 부하 운영체제의 실행을 모니터링하며; 그리고
제1 부하 운영체제에 할당된 물리적 자원의 이용률이 제1 사전설정된 임계값보다 낮을 때, 물리적 자원은 제1 부하 운영체제에 대해 감소되어야 하는 것으로 결정하고, 감소되어야 하는 물리적 자원의 유형 식별자를 결정하며, 여기서 상기 물리적 자원의 유형 식별자는 상기 물리적 자원이 프로세서 코어 자원, 물리적 메모리 자원, 또는 외부 장치 자원인지를 구별하는 데 사용되며; 그리고
관리 운영체제가 상기 감소되어야 하는 물리적 자원의 유형 식별자에 따라, 상기 물리적 자원 풀에 있으면서 상기 자원 풀 내의 이용 가능한 물리적 자원의 목록에서의 물리적 자원의 식별자에 대응하는 상기 이용 가능한 물리적 자원에 대해 2차 분할을 수행하고, 제1 부하 운영체제의 물리적 자원을 감소시키며, 여기서 상기 감소된 물리적 자원은 상기 감소되어야 하는 물리적 자원의 유형 식별자에 대응하는 물리적 자원이다.
다른 가능한 상황에서: 관리 운영체제가 제1 부하 운영체제의 실행을 모니터링하며; 그리고
제1 부하 운영체제에 할당된 물리적 자원의 이용률이 제2 사전설정된 임계값보다 낮을 때, 물리적 자원은 제1 부하 운영체제에 대해 부가되어야 하는 것으로 결정하고, 부가되어야 하는 물리적 자원의 유형 식별자를 결정하며, 여기서 상기 물리적 자원의 유형 식별자는 상기 부가되어야 하는 물리적 자원이 프로세서 코어 자원, 물리적 메모리 자원, 또는 외부 장치 자원인지를 구별하는 데 사용되며; 그리고
관리 운영체제가 상기 부가되어야 하는 물리적 자원의 유형 식별자에 따라, 상기 물리적 자원 풀에 있으면서 상기 자원 풀 내의 이용 가능한 물리적 자원의 목록에서의 물리적 자원의 식별자에 대응하는 상기 이용 가능한 물리적 자원에 대해 2차 분할을 수행하고, 제1 부하 운영체제의 물리적 자원을 부가하며, 여기서 상기 부가된 물리적 자원은 상기 부가되어야 하는 물리적 자원의 유형 식별자에 대응하는 물리적 자원이다.
구체적으로, 본 실시예에서, 관리 운영체제에 의해 제1 부하 운영체제에 할당된 물리적 자원은 프로세서 코어 자원, 물리적 메모리 자원, 및 외부 장치 자원을 포함한다. 관리 운영체제는 제1 부하 운영체제의 실행 프로세스에서, 제1 부하 운영체제에 할당된 물리적 자원의 이용률을 모니터링하며, 즉 프로세서 코어 자원, 물리적 메모리 자원, 및 외부 장치 자원의 이용률을 모니터링한다.
관리 운영체제가 제1 부하 운영체제에 할당된 물리적 자원의 이용률이 제1 사전설정된 임계값보다 낮은 것으로 결정할 때, 그것은 제1 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원 집합을 제1 부하 운영체제에 할당할 때, 관리 운영체제가 제1 부하 운영체제에 너무 많은 물리적 자원을 할당한다는 것을 나타내며; 이 경우, 관리 운영체제는 물리적 자원이 제1 부하 운영체제에 대해 감소되어야 하는 것으로 결정한다. 3가지 유형의 물리적 자원이 있으므로, 관리 운영체제는 각각의 물리적 자원의 이용률에 따라, 감소되어야 하는 물리적 자원의 유형 식별자를 결정하고, 그런 다음 관리 운영체제는 상기 감소되어야 하는 물리적 자원의 유형 식별자에 따라, 상기 물리적 자원 풀에 있으면서 상기 자원 풀 내의 이용 가능한 물리적 자원의 목록에서의 물리적 자원의 식별자에 대응하는 상기 이용 가능한 물리적 자원에 대해 2차 분할을 수행하고, 제1 부하 운영체제의 물리적 자원을 감소한다. 특정한 실시 프로세스에서, 관리 운영체제는 제1 부하 운영체제의 물리적 자원의 이용률 및 다른 부하 운영체제의 물리적 자원의 이용률에 따라, 이용 가능한 물리적 자원에 대한 2차 분할을 수행하여, 제1 부하 운영체제의 물리적 자원을 감소시킬 수 있다. 상기 감소된 물리적 자원은 상기 감소되어야 하는 물리적 자원의 유형 식별자에 대응하는 물리적 자원이다.
관리 운영체제가 제1 부하 운영체제에 할당된 물리적 자원의 이용률이 제1 사전설정된 임계값보다 높다 것으로 결정할 때, 그것은 제1 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원 집합을 제1 부하 운영체제에 할당할 때, 관리 운영체제가 제1 부하 운영체제에 너무 적은 물리적 자원을 할당한다는 것을 나타내며; 이 경우, 관리 운영체제는 물리적 자원이 제1 부하 운영체제에 대해 부가되어야 하는 것으로 결정한다. 3가지 유형의 물리적 자원이 있으므로, 관리 운영체제는 각각의 물리적 자원의 이용률에 따라, 부가되어야 하는 물리적 자원의 유형 식별자를 결정하고, 그런 다음 관리 운영체제는 상기 부가되어야 하는 물리적 자원의 유형 식별자에 따라, 상기 물리적 자원 풀에서의 상기 이용 가능한 물리적 자원에 대해 2차 분할을 수행하고, 제1 부하 운영체제의 물리적 자원을 부가한다. 특정한 실시 프로세스에서, 관리 운영체제는 제1 부하 운영체제의 물리적 자원의 이용률 및 다른 부하 운영체제의 물리적 자원의 이용률에 따라, 이용 가능한 물리적 자원에 대한 2차 분할을 수행하여, 제1 부하 운영체제의 물리적 자원을 부가할 수 있다. 상기 부가된 물리적 자원은 상기 부가되어야 하는 물리적 자원의 유형 식별자에 대응하는 물리적 자원이다.
다른 가능한 실시 방식은 다음과 같다: 제1 부하 운영체제는 자신의 물리적 자원의 사용 상태를 모니터링하고, 이에 따라 관리 운영체제는 제1 부하 운영체제의 물리적 자원을 조정한다. 2가지의 가능한 상황이 구체적으로 다음에 포함될 수 있다:
하나의 가능한 상황에서: 제1 부하 운영체제가 제1 부하 운영체제의 물리적 자원을 모니터링하며; 그리고
제1 부하 운영체제가 관리 운영체제에 의해 제1 부하 운영체제에 할당되는 물리적 자원의 이용률이 제1 사전설정된 임계값보다 낮은 것으로 결정하면, 제1 부하 운영체제는 관리 운영체제에 자원 감소 요구 메시지를 송신하고, 여기서 상기 자원 감소 요구 메시지는 감소되어야 하는 물리적 자원의 유형 식별자를 포함하고, 상기 물리적 자원의 유형 식별자는 상기 감소되어야 하는 물리적 자원이 프로세서 코어 자원, 물리적 메모리 자원, 또는 외부 장치 자원인지를 구별하는 데 사용된다
다른 가능한 상황에서: 제1 부하 운영체제가 제1 부하 운영체제의 물리적 자원을 모니터링하며; 그리고
제1 부하 운영체제가 관리 운영체제에 의해 제1 부하 운영체제에 할당되는 물리적 자원의 이용률이 제2 사전설정된 임계값보다 높은 것으로 결정하면, 제1 부하 운영체제가 관리 운영체제에 자원 부가 요구 메시지를 송신하고, 여기서 상기 자원 부가 요구 메시지는 부가되어야 하는 물리적 자원의 유형 식별자를 포함하고, 상기 물리적 자원의 유형 식별자는 상기 부가되어야 하는 물리적 자원이 프로세서 코어 자원 또는 물리적 메모리 자원인지를 구별하는 데 사용된다.
구체적으로, 본 실시예에서, 제1 부하 운영체제는, 관리 운영체제에 의해 제1 부하 운영체제에 할당된 물리적 자원은 프로세서 코어 자원, 물리적 메모리 자원, 및 외부 장치 자원을 포함하는 것으로 결정한다. 제1 부하 운영체제는 실행 프로세스에서, 관리 운영체제에 의해 제1 부하 운영체제에 할당된 물리적 자원의 이용률을 모니터링하며, 즉 프로세서 코어 자원, 물리적 메모리 자원, 및 외부 장치 자원의 이용률을 모니터링한다.
관리 운영체제가 제1 부하 운영체제에 할당된 물리적 자원의 이용률이 제1 사전설정된 임계값보다 낮은 것으로 결정할 때, 그것은 제1 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원 집합을 제1 부하 운영체제에 할당할 때, 관리 운영체제가 제1 부하 운영체제에 너무 많은 물리적 자원을 할당한다는 것을 나타내며; 이 경우, 관리 운영체제는 물리적 자원이 제1 부하 운영체제에 대해 감소되어야 하는 것으로 결정하고, 관리 운영체제에 자원 감소 요구 메시지를 송신한다. 3가지 유형의 물리적 자원이 있으므로, 제1 부하 운영체제는 각각의 물리적 자원의 이용률에 따라, 감소되어야 하는 물리적 자원의 유형 식별자를 결정한다. 그러므로 자원 감소 요구 메시지는 감소되어야 하는 물리적 자원의 유형 식별자를 포함하며, 여기서 물리적 자원의 유형 식별자는 상기 감소되어야 하는 물리적 자원이 프로세서 코어 자원, 물리적 메모리 자원, 또는 외부 장치 자원인지를 구별하는 데 사용된다.
관리 운영체제가 제1 부하 운영체제에 할당된 물리적 자원의 이용률이 제1 사전설정된 임계값보다 높은 것으로 결정할 때, 그것은 제1 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원 집합을 제1 부하 운영체제에 할당할 때, 관리 운영체제가 제1 부하 운영체제에 너무 적은 물리적 자원을 할당한다는 것을 나타내며; 이 경우, 관리 운영체제는 물리적 자원이 제1 부하 운영체제에 대해 부가되어야 하는 것으로 결정하고, 관리 운영체제에 자원 부가 요구 메시지를 송신한다. 3가지 유형의 물리적 자원이 있으므로, 제1 부하 운영체제는 각각의 물리적 자원의 이용률에 따라, 부가되어야 하는 물리적 자원의 유형 식별자를 결정한다. 그러므로 자원 부가 요구 메시지는 부가되어야 하는 물리적 자원의 유형 식별자를 포함하며, 여기서 물리적 자원의 유형 식별자는 상기 부가되어야 하는 물리적 자원이 프로세서 코어 자원, 물리적 메모리 자원, 또는 외부 장치 자원인지를 구별하는 데 사용된다.
전술한 2가지 가능한 실시 방식은 관리 운영체제 및 제1 부하 운영체제의 관점에서, 제1 부하 운영체제의 물리적 자원이 부가 또는 감소되어야 하는 것을 개별적으로 설명한다. 이하에서는 물리적 자원의 유형에 따라, 각각의 물리적 자원의 부가 또는 감소에 대해 상세히 설명한다.
도 8a는 본 발명에 따라 물리적 자원이 프로세서 코어일 때 제1 부하 운영체제를 위한 프로세서 코어를 부가하는 개략적인 흐름도이다. 도 8b는 본 발명에 따라 제1 부하 운영체제가 프로세서 코어를 해제하는 개략적인 흐름도이다.
도 8a에 도시된 바와 같이, 제1 부하 운영체제를 위한 프로세서 코어를 부가하는 단계는 다음의 단계를 포함한다.
단계 8101: 관리 운영체제는 제1 부하 운영체제에 대해 부가되어야 하는 프로세서 코어를 제1 부하 운영체제에 속하는 물리적 자원으로서 마킹하고, 제1 부하 운영체제에 자원 부가 메시지를 송신한다.
상기 자원 부가 메시지는 상기 부가되어야 하는 프로세서 코어의 식별자를 포함한다.
구체적으로, 관리 운영체제는 제1 부하 운영체제에 대해 부가되어야 하는 프로세서 코어를 제1 부하 운영체제에 속하는 물리적 자원으로서 마킹하고, 여기서 부가된 프로세서 코어는 물리적 자원 풀에서의 이용 가능한 물리적 자원으로서 사용되지 않으며, 관리 운영체제 및 제1 부하 운영체제는 상기 부가된 프로세서 코어의 이용률을 모니터링한다.
단계 8102: 제1 부하 운영체제는 관리 운영체제에 의해 송신된 자원 부가 메시지를 수신하며, 여기서 상기 자원 부가 메시지는 부가되어야 하는 프로세서 코어의 식별자를 포함한다.
단계 8103: 제1 부하 운영체제는 부가되어야 하는 프로세서 코어의 식별자에 따라, 관리 운영체제에 의해 제1 부하 운영체제에 대해 부가되는 프로세서 코어를 결정한다.
단계 8104: 관리 운영체제는 부가된 프로세서 코어에 점프 명령을 송신한다.
점프 명령은 제1 부하 운영체제의 커널 프로그램을 실행하도록 상기 부가된 프로세서 코어에 명령하고, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제를 실행하는 데 필요한 모든 맵핑 관계를 상기 커널 프로그램으로부터 판독하도록 상기 부가된 프로세서 코어에 명령하는 데 사용된다.
관리 운영체제는 제1 부하 운영체제에 대해, 사전에 설정된 고정 물리적 메모리에 커널 프로그램을 설정하고, 관리 운영체제 및 제1 부하 운영체제는, 제1 부하 운영체제가 가상 메모리 어드레스에서 물리적 메모리 어드레스가지의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요한 모든 맵핑 관계를 커널 프로그램에 기록할 수 있다는 것을 미리 합의한다. 당업자라면 커널 프로그램이 상기 부가된 프로세서 코어를 실행하는 데 필요한 다른 정보를 더 포함할 수 있다는 것을 이해할 수 있을 것이며, 이에 대해서는 본 실시예에서 특별한 제한을 두지 않는다.
단계 8105: 제1 부하 운영체제의 부가된 프로세서 코어는 관리 운영체제에 의해 송신된 점프 명령을 수신하고, 이 점프 명령에 따라 제1 부하 운영체제의 커널 프로그램을 실행하고, 가상 메모리 어드레스에서 물리적 메모리 어드레스가지의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요한 모든 맵핑 관계를 커널 프로그램으로부터 판독한다.
도 8b에 도시된 바와 같이, 제1 부하 운영체제에 의해 프로세서 코어를 해제하는 단계는 이하의 단계를 포함한다.
단계 8201: 관리 운영체제는 제1 부하 운영체제에 자원 감소 메시지를 송신한다.
자원 감소 메시지는 해제되어야 하는 프로세서 코어의 식별자를 포함한다.
단계 8202: 제1 부하 운영체제는 관리 운영체제에 의해 송신된 자원 감소 메시지를 수신하며, 여기서 상기 자원 감소 메시지는 해제되어야 하는 프로세서 코어의 식별자를 포함한다.
단계 8203: 제1 부하 운영체제는 해제되어야 하는 프로세서 코어의 식별자에 따라, 제1 부하 운영체제에 의해 해제되어야 하는 프로세서 코어를 결정한다.
단계 8204: 제1 부하 운영체제는 프로세서 코어를 해제하며, 여기서 상기 해제된 프로세서 코어는 해제되어야 하는 프로세서 코어의 식별자에 대응하는 프로세서 코어이다.
제1 부하 운영체제가 프로세서 코어를 해제하는 것은 제1 부하 운영체제가 그 프로세서 코어를 더 이상 사용하지 않는다는 것을 말한다.
단계 8205: 관리 운영체제는 제1 부하 운영체제에 의해 해제된 프로세서 코어의 식별자를 획득하고, 상기 해제된 프로세서 코어의 식별자를 자원 풀 내의 이용 가능한 물리적 자원의 목록에 부가하며, 여기서 상기 해제된 프로세서 코어는 감소되어야 하는 프로세서 코어의 식별자에 대응하는 프로세서 코어이다.
도 9a는 본 발명에 따라 물리적 자원이 물리적 메모리 자원일 때 제1 부하 운영체제를 위한 물리적 메모리 어드레스를 부가하는 개략적인 흐름도이다. 도 9b는 본 발명에 따라 제1 부하 운영체제가 물리적 메모리 어드레스를 해제하는 개략적인 흐름도이다.
도 9a에 도시된 바와 같이, 제1 부하 운영체제를 위한 물리적 메모리 어드레스를 부가하는 단계를 이하의 단계를 포함한다:
단계 9101: 관리 운영체제는 제1 부하 운영체제에 대해 부가되어야 하는 물리적 메모리 어드레스를 제1 부하 운영체제에 속하는 물리적 자원으로서 마킹하고, 제1 부하 운영체제에 자원 부가 메시지를 송신한다.
상기 자원 부가 메시지는 상기 부가되어야 하는 물리적 메모리 어드레스의 식별자를 포함한다.
관리 운영체제는 제1 부하 운영체제에 대해 부가되어야 하는 물리적 메모리 어드레스를 제1 부하 운영체제에 속하는 물리적 자원으로서 마킹하고, 제1 부하 운영체제에 자원 부가 메시지를 송신하며, 여기서 부가된 물리적 메모리 어드레스는 물리적 자원 풀에서의 이용 가능한 물리적 자원으로서 사용되지 않으며, 관리 운영체제 및 제1 부하 운영체제는 상기 부가된 물리적 메모리 어드레스의 이용률을 모니터링하며; 제1 부하 운영체제는 가상 메모리 어드레스에서 상기 부가된 물리적 메모리 어드레스까지의 맵핑 관계를 추가로 구축한다.
단계 9102: 제1 부하 운영체제는 관리 운영체제에 의해 송신된 자원 부가 메시지를 수신하고, 여기서 상기 자원 부가 메시지는 부가되어야 하는 물리적 메모리 어드레스의 식별자를 포함한다.
단계 9103: 제1 부하 운영체제는 부가되어야 하는 물리적 메모리 어드레스의 식별자에 따라, 관리 운영체제에 의해 제1 부하 운영체제에 대해 부가된 물리적 메모리 어드레스를 결정한다.
도 9b에 도시된 바와 같이, 제1 부하 운영체제가 물리적 메모리 어드레스를 해제하는 단계는 이하의 단계를 포함한다:
단계 9201: 관리 운영체제는 제1 부하 운영체제에 자원 감소 메시지를 송신한다.
자원 감소 메시지는 해제되어야 하는 물리적 메모리 어드레스의 식별자를 포함한다.
단계 9202: 제1 부하 운영체제는 관리 운영체제에 의해 송신된 자원 감소 메시지를 수신하며, 여기서 상기 자원 감소 메시지는 해제되어야 하는 물리적 메모리 어드레스의 식별자를 포함한다.
단계 9203: 제1 부하 운영체제는 해제되어야 하는 물리적 메모리 어드레스의 식별자에 따라, 제1 부하 운영체제에 의해 해제되어야 하는 물리적 메모리 어드레스를 결정한다.
단계 9204: 제1 부하 운영체제는 물리적 메모리 어드레스를 해제하고, 여기서 상기 해제된 물리적 메모리 어드레스는 해제되어야 하는 물리적 메모리 어드레스의 식별자에 대응하는 물리적 메모리 어드레스이다.
단계 9205: 관리 운영체제는 제1 부하 운영체제에 의해 해제된 물리적 메모리 어드레스의 식별자를 획득하고, 상기 해제된 물리적 메모리 어드레스의 식별자를 자원 물 내의 이용 가능한 물리적 자원의 목록에 부가하며, 여기서 해제된 물리적 메모리 어드레스는 해제되어야 하는 물리적 메모리 어드레스의 식별자에 대응하는 물리적 메모리 어드레스이다.
도 10a는 본 발명에 따라 물리적 자원이 외부 장치 자원일 때 제1 부하 운영체제를 위한 외주 장치를 부가하는 개략적인 흐름도이다. 도 10b는 본 발명에 따라 제1 부하 운영체제를 위한 외부 장치를 감소시키는 개략적인 흐름도이다.
도 10a에 도시된 바와 같이, 제1 부하 운영체제를 위한 외부 장치를 부가하는 단계를 다음의 단계를 포함한다:
단계 10101: 관리 운영체제는 제1 부하 운영체제에 대해 부가되어야 하는 외부 장치를 제1 부하 운영체제에 속하는 물리적 자원으로서 마킹하고, 제1 부하 운영체제에 강렬한 삽입 메시지(hot-insertion message)를 송신한다.
상기 강렬한 삽입 메시지는 상기 부가되어야 하는 외부 장치의 식별자 및 상기 부가된 외부 장치에 대응하는 장치 설명 정보 테이블을 획득하도록 제1 부하 운영체제에 명령하는 데 사용된다.
구체적으로, 관리 운영체제는 제1 부하 운영체제에 대해 부가되어야 하는 외부 장치를 제1 부하 운영체제에 속하는 물리적 자원으로서 마킹하고, 여기서 상기 부가된 외부 장치는 물리적 자원 풀에서의 이용 가능한 물리적 자원으로서 사용되지 않으며, 관리 운영체제 및 제1 부하 운영체제는 상기 부가된 외부 장치의 이용률을 모니터링한다.
강렬한 삽입 메시지가 상기 부가되어야 하는 외부 장치의 식별자 및 상기 부가된 외부 장치에 대응하는 장치 설명 정보 테이블을 획득하도록 제1 부하 운영체제에 명령하는 데 사용되는 것은 2가지의 가능한 실시 방식을 포함한다:
하나의 가능한 실시 방식에서: 관리 운영체제는 제1 부하 운영체제에 강렬한 삽입 메시지를 송신하며, 여기서 상기 강렬한 삽입 메시지는 부가되어야 하는 외부 장치의 식별자 및 상기 부가된 외부 장치에 대응하는 장치 설명 정보 테이블을 포함한다.
다른 가능한 실시 방식에서: 관리 운영체제는 제1 부하 운영체제에 강렬한 명령 메시지를 송신하며, 여기서 상기 강렬한 명령 메시지는 상기 부가되어야 하는 외부 장치의 식별자 및 상기 부가된 외부 장치에 대응하는 장치 설명 정보 테이블을 사전에 설정된 고정 물리 메모리로부터 판독하도록 제1 부하 운영체제에 명령하는 데 사용된다.
단계 10102: 제1 부하 운영체제는 관리 운영체제에 의해 송신된 강렬한 삽입 메시지를 수신한다.
단계 10103: 제1 부하 운영체제는 상기 부가되어야 하는 외부 장치의 식별자 및 상기 부가된 외부 장치에 대응하는 장치 설명 정보 테이블에 따라, 부가되어야 하는 외부 장치의 식별자에 대응하는 외부 장치에 대한 강렬한 삽입 동작을 실행한다.
도 10b에 도시된 바와 같이, 제1 부하 운영체제를 위한 외부 장치를 감소시키는 단계는 다음의 단계를 포함한다:
단계 10201: 관리 운영체제는 제1 부하 운영체제에 강렬한 제거 메시지를 송신한다.
상기 강렬한 제거 메시지는 감소되어야 하는 외부 장치의 식별자를 포함한다.
단계 10202: 제1 부하 운영체제는 관리 운영체제에 의해 송신된 강렬한 제거 메시지를 수신하며, 여기서 상기 강렬한 제거 메시지는 상기 감소되어야 하는 외부 장치의 식별자를 포함한다.
단계 10203: 제1 부하 운영체제는 상기 감소되어야 하는 외부 장치의 식별자에 따라, 상기 감소되어야 하는 외부 장치의 식별자에 대응하는 외부 장치에 대해 강렬한 제거 동작을 수행한다.
단계 10204: 관리 운영체제는 제1 부하 운영체제에 대해 감소되어야 하는 외부 장치의 식별자를 획득하고, 상기 감소된 외부 장치의 식별자를 자원 풀에서의 이용 가능한 물리적 자원의 목록에 부가하며, 여기서 상기 감소된 외부 장치는 상기 감소되어야 하는 외부 장치의 식별자에 대응하는 외부 장치이다.
본 발명의 실시예에서, 전술한 방식으로 물리적 자원의 동작 조정이 실행되고, 이에 따라 제1 부하 운영체제가 물리적 자원을 배타적으로 사용할 수 있을 뿐만 아니라, 물리적 자원의 이용률도 제1 부하 운영체제의 물리적 자원을 부가 또는 감소함으로써 향상된다.
도 11은 본 발명에 따른 관리 운영체제의 실시예 1에 대한 개략적인 구조도이다. 상기 관리 운영체제는 도 1에 도시된 멀티-커널 운영체제에 적용되며, 상기 멀티-커널 운영체제는 상기 관리 운영체제 및 호스트 머신 상에서 실행되는 복수의 부하 운영체제를 포함하고 물리적 자원 풀을 포함하며, 상기 물리적 자원 풀은 호스트 머신의 프로세서 코어 및 물리적 메모리를 포함한다. 도 11에 도시된 바와 같이, 본 실시예에서 제공하는 관리 운영체제(110)는 자원 할당 모듈(1101), 맵핑 관계 설정 모듈(1102), 스타트업 프로세서 코어 결정 모듈(1103), 및 명령 모듈(1104)을 포함한다.
자원 할당 모듈(1101)은 각각의 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원 집합을 각각의 부하 운영체제에 할당하도록 구성되어 있으며, 여기서 각각의 물리적 자원 집합은 상기 호스트 머신의 프로세서 코어 중 일부와 상기 호스트 머신의 물리적 메모리 중 한 부분을 포함한다.
맵핑 관계 설정 모듈(1102)은: 각각의 부하 운영체제에 대한 부트 이미지를 구축하고, 각각의 부하 운영체제에 대해, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정하도록 구성되어 있다.
스타트업 프로세서 코어 결정 모듈(1103)은 제1 부하 운영체제에 할당된 프로세서 코어에서, 제1 부하 운영체제를 기동하는 스타트업 프로세서 코어를 결정하도록 구성되어 있으며, 여기서 상기 제1 부하 운영체제는 상기 부하 운영체제 중 어느 하나이다.
명령 모듈(1104)은 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요하고 상기 맵핑 관계 설정 모듈에 의해 사전에 구축되어 있는 맵핑 관계를 판독하도록 상기 스타트업 프로세서 코어에 명령하여, 상기 스타트업 프로세서 코어가 상기 부트 이미지를 실행하는 프로세스에서 상기 맵핑 관계에 따라 상기 물리적 메모리 어드레스에 액세스할 수 있도록 하고, 상기 제1 부하 운영체제에 대해 사전에 구축된 부트 이미지를 실행하도록 상기 스타트업 프로세서 코어에 명령하도록 구성되어 있으며, 여기서 상기 부트 이미지는 제1 부하 운영체제의 스타트업 파라미터를 포함하고, 상기 스타트업 파라미터는 제1 부하 운영체제에 할당된 프로세서 코어의 식별자 및 제1 부하 운영체제에 할당된 물리적 메모리 어드레스의 식별자를 포함한다.
본 발명의 실시예에서 제공하는 관리 운영체제는 전술한 자원 프로세싱 방법 실시예의 기술적 솔루션을 실행할 수 있으며, 유사한 실시 원리 및 기술적 효과를 가지며, 이에 대해서는 본 실시예에서 반복적으로 설명하지 않는다.
도 12는 본 발명에 따른 관리 운영체제의 실시예 2에 대한 개략적인 구조도이다. 본 실시예는 도 11의 실시예에 기초하여 실시되며, 구체적으로 다음과 같다:
선택적으로, 상기 명령 모듈(1104)은 구체적으로:
상기 스타트업 프로세서 코어에 인터-코어 차단 메시지를 송신하고 - 상기 인터-코어 차단 메시지는, 스타트업 프로세서 코어를 초기화하도록 구성되어 있고 제1 부하 운영체제에 대응하는 초기화 프로그램을 실행하도록 스타트업 프로세서 코어에 명령함 - ; 및
상기 제1 부하 운영체제에 대응하는 초기화 프로그램을 실행하도록 스타트업 프로세서 코어에 명령함으로써, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요한 맵핑 관계를 상기 초기화 프로그램으로부터 판독하도록 상기 스타트업 프로세서 코어에 명령하고, 상기 초기화 프로그램의 실행이 종료된 후, 상기 물리적 메모리에 있는 상기 부트 이미지의 위치로 점프하도록 상기 스타트업 프로세서 코어에 명령하여, 제1 부하 운영체제의 부트 이미지를 실행하도록 구성되어 있다.
선택적으로, 상기 관리 운영체제는, 상기 맵핑 관계 설정 모듈이 각각의 부하 운영체제에 대해, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정하기 전에, 상기 제1 부하 운영체제에 대해, 제1 부하 운영체제를 초기화하도록 구성되어 있는 초기화 프로그램을 사전에 설정하고, 상기 초기화 프로그램에서, 상기 물리적 메모리 어드레스에 있는 제1 부하 운영체제의 부트 이미지의 위치를 사전에 설정하도록 구성되어 있는 초기화 프로그램 구성 모듈(1105)을 더 포함한다.
상기 맵핑 관계 설정 모듈(1102)은 구체적으로, 상기 초기화 프로그램에서 제1 부하 운영체제에 대해, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정하도록 구성되어 있다.
본 발명의 실시예에서 제공하는 관리 운영체제는 전술한 자원 프로세싱 방법 실시예의 기술적 솔루션을 실행할 수 있고, 유사한 기술적 원리 및 기술적 효과를 가지며, 이에 대해서는 본 실시예에서 반복적으로 설명하지 않는다.
도 13은 본 발명에 따른 관리 운영체제의 실시예 3에 대한 개략적인 구조도이다. 본 실시예는 도 11의 실시예에 기초하여 실시되며, 구체적으로 다음과 같다:
선택적으로, 상기 관리 운영체제는, 상기 스타트업 프로세서 코어 결정 모듈이, 제1 부하 운영체제에 할당된 프로세서 코어에서, 제1 부하 운영체제를 기동하는 스타트업 프로세서 코어를 결정하기 전에, 제2 부하 운영체제의 이용 가능한 프로세서 코어를 획득하도록 구성되어 있는 이용 가능한 프로세서 코어 획득 모듈(1106)을 더 포함하며, 여기서 상기 제2 부하 운영체제는 복수의 부하 운영체제에서 제1 부하 운영체제가 아닌 로그아웃된 부하 운영체제이고, 상기 이용 가능한 프로세서 코어는 기동된 프로세서 코어를 포함하며, 제1 부하 운영체제의 물리적 자원 집합은 상기 이용 가능한 프로세서 코어를 포함한다.
상기 이용 가능한 프로세서 코어 획득 모듈(1103)은 구체적으로: 상기 제1 부하 운영체제의 물리적 자원 집합이 상기 이용 가능한 프로세서 코어를 포함할 때, 상기 이용 가능한 프로세서 코어에서, 제1 부하 운영체제를 기동하는 스타트업 프로세서 코어를 결정하도록 구성되어 있다.
선택적으로, 상기 관리 운영체제는, 상기 스타트업 프로세서 코어 결정 모듈이 상기 이용 가능한 프로세서 코어에서, 제1 부하 운영체제를 기동하는 스타트업 프로세서 코어를 결정한 후에, 상기 제1 부하 운영체제에 대해 상기 스타트업 프로세서 코어에 대한 데몬을 사전에 설정하고, 상기 데몬에서, 상기 물리적 메모리 어드레스에 있는 제1 부하 운영체제의 부트 이미지의 위치를 사전에 설정하도록 구성되어 있는 데몬 구성 모듈(1107)을 더 포함한다.
상기 맵핑 관계 설정 모듈(1102)은 구체적으로, 상기 제1 부하 운영체제에 대해 상기 데몬에서, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정하도록 구성되어 있다.
선택적으로, 상기 명령 모듈(1104)은 구체적으로: 상기 스타트업 프로세서 코어 상에서 실행 중인 데몬에 인터-코어 차단 메시지를 송신하도록 구성되어 있으며, 여기서 상기 인터-코어 차단 메시지는 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요하고 상기 관리 운영체제에 의해 제1 부하 운영체제에 대해 사전에 구축되어 있는 맵핑 관계를 상기 데몬으로부터 판독하도록 상기 스타트업 프로세서 코어에 명령하고, 제1 부하 운영체제에 대응하는 부트 이미지의, 상기 물리적 메모리 어드레스에 있는, 상기 데몬 구성 모듈에 의해 상기 데몬에 사전에 설정되어 있는 위치는 상기 물리적 메모리에 있는 상기 부트 이미지가 위치하는 위치로 점프하도록 상기 스타트업 프로세서 코어에 명령하여, 제1 부하 운영체제의 부트 이미지를 실행한다.
본 발명의 실시예에서 제공하는 관리 운영체제는 전술한 자원 프로세싱 방법 실시예의 기술적 솔루션을 실행할 수 있고, 유사한 기술적 원리 및 기술적 효과를 가지며, 이에 대해서는 본 실시예에서 반복적으로 설명하지 않는다.
도 12 및 도 13에서의 실시예에 기초하여, 상기 자원 할당 모듈은 구체적으로:
상기 부하 운영체제의 수에 따라, 상기 물리적 자원 풀에 있으면서 상기 자원 풀 내의 이용 가능한 물리적 자원의 목록에서의 물리적 자원의 식별자에 대응하는 이용 가능한 물리적 자원에 대해 1차 분할을 수행하여 복수의 물리적 자원 집합을 획득하고 - 상기 물리적 자원 집합의 수는 상기 부하 운영체제의 수와 같고, 상기 관리 운영체제는 각각의 부하 운영체제와 각각의 물리적 자원 집합 간의 대응관계를 결정함 - ; 그리고
각각의 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원 집합을 상기 대응관계에 따라 각각의 부하 운영체제에 할당하도록 구성되어 있다.
선택적으로, 각각의 물리적 자원 집합은 상기 호스트 머신의 일부의 외부 장치를 더 포함한다.
상기 스타트업 파라미터는 제1 부하 운영체제에 할당된 외부 장치의 식별자 및 상기 외부 장치에 대응하는 장치 설명 정보 테이블을 더 포함한다.
도 12 및 도 13에서의 실시예에 기초하여, 관리 운영체제가 제1 부하 운영체제의 실행을 모니터링할 때, 관리 운영체제의 구조는 2가지의 가능한 실시 방식을 포함한다.
하나의 가능한 실시 방식은 상기 관리 운영체제가:
상기 명령 모듈이 상기 제1 부하 운영체제에 대해 사전에 구축된 부트 이미지를 실행하도록 상기 스타트업 프로세서 코어에 명령한 후에, 제1 부하 운영체제의 실행을 모니터링하도록 구성되어 있는 제1 모니터링 모듈; 및
상기 제1 모니터링 모듈의 모니터링 결과가 상기 제1 부하 운영체제에 할당된 물리적 자원의 이용률이 제1 사전설정된 임계값보다 낮다는 것이면, 물리적 자원은 제1 부하 운영체제에 대해 감소되어야 하는 것으로 결정하고, 감소되어야 하는 물리적 자원의 유형 식별자를 결정하도록 구성되어 있는 제1 자원 관리 모듈
을 포함하는 것이고, 여기서 상기 물리적 자원의 유형 식별자는 상기 물리적 자원이 프로세서 코어 자원, 물리적 메모리 자원, 또는 외부 장치 자원인지를 구별하는 데 사용된다.
상기 자원 할당 모듈은, 상기 감소되어야 하는 물리적 자원의 유형 식별자에 따라, 상기 물리적 자원 풀에 있으면서 상기 자원 풀 내의 이용 가능한 물리적 자원의 목록에서의 물리적 자원의 식별자에 대응하는 상기 이용 가능한 물리적 자원에 대해 2차 분할을 수행하고, 제1 부하 운영체제의 물리적 자원을 감소시키도록 추가로 구성되어 있으며, 여기서 상기 감소된 물리적 자원은 상기 감소되어야 하는 물리적 자원의 유형 식별자에 대응하는 물리적 자원이다.
다른 가능한 실시 방식은 상기 관리 운영체제가:
상기 명령 모듈이 상기 제1 부하 운영체제에 대해 사전에 구축된 부트 이미지를 실행하도록 상기 스타트업 프로세서 코어에 명령한 후에, 상기 제1 부하 운영체제의 실행을 모니터링하도록 구성되어 있는 제2 모니터링 모듈; 및
상기 제2 모니터링 모듈의 모니터링 결과가 상기 제1 부하 운영체제에 할당된 물리적 자원의 이용률이 제2 사전설정된 임계값보다 낮다는 것이면, 물리적 자원은 제1 부하 운영체제에 대해 부가되어야 하는 것으로 결정하고, 부가되어야 하는 물리적 자원의 유형 식별자를 결정하도록 구성되어 있는 제2 자원 관리 모듈
을 더 포함하는 것이며, 여기서 상기 물리적 자원의 유형 식별자는 상기 부가되어야 하는 물리적 자원이 프로세서 코어 자원, 물리적 메모리 자원, 또는 외부 장치 자원인지를 구별하는 데 사용된다.
상기 자원 할당 모듈은, 상기 부가되어야 하는 물리적 자원의 유형 식별자에 따라, 상기 물리적 자원 풀에 있으면서 상기 자원 풀 내의 이용 가능한 물리적 자원의 목록에서의 물리적 자원의 식별자에 대응하는 상기 이용 가능한 물리적 자원에 대해 2차 분할을 수행하고, 제1 부하 운영체제의 물리적 자원을 부가하도록 추가로 구성되어 있으며, 여기서 상기 부가된 물리적 자원은 상기 부가되어야 하는 물리적 자원의 유형 식별자에 대응하는 물리적 자원이다.
도 12 및 도 13에서의 실시예에 기초하여, 관리 운영체제가 제1 부하 운영체제의 실행을 모니터링할 때, 관리 운영체제의 구조는 2가지의 가능한 실시 방식을 포함한다.
하나의 가능한 실시 방식은 상기 관리 운영체제가:
상기 명령 모듈이 상기 제1 부하 운영체제에 대해 사전에 구축된 부트 이미지를 실행하도록 상기 스타트업 프로세서 코어에 명령한 후에, 제1 부하 운영체제에 의해 송신된 자원 감소 요구 메시지를 수신하도록 구성되어 있는 제1 수신 모듈
을 더 포함하는 것이며, 여기서 상기 자원 감소 요구 메시지는 감소되어야 하는 물리적 자원의 유형 식별자를 포함하고, 상기 물리적 자원의 유형 식별자는 상기 물리적 자원이 프로세서 코어 자원, 물리적 메모리 자원, 또는 외부 장치 자원인지를 구별하는 데 사용된다.
상기 자원 할당 모듈은, 상기 자원 감소 요구 메시지에서, 상기 감소되어야 하는 물리적 자원의 유형 식별자에 따라, 상기 물리적 자원 풀에 있으면서 상기 자원 풀 내의 이용 가능한 물리적 자원의 목록에서의 물리적 자원의 식별자에 대응하는 상기 이용 가능한 물리적 자원에 대해 2차 분할을 수행하고, 제1 부하 운영체제의 물리적 자원을 감소시키도록 추가로 구성되어 있으며, 상기 감소된 물리적 자원은 상기 감소되어야 하는 물리적 자원의 유형 식별자에 대응하는 물리적 자원이다.
다른 가능한 실시 방식은 상기 관리 운영체제가:
상기 명령 모듈이 상기 제1 부하 운영체제에 대해 사전에 구축된 부트 이미지를 실행하도록 상기 스타트업 프로세서 코어에 명령한 후에, 제1 부하 운영체제에 의해 송신된 자원 부가 요구 메시지를 수신하도록 구성되어 있는 제2 수신 모듈
을 더 포함하는 것이며, 여기서 상기 자원 부가 요구 메시지는 부가되어야 하는 물리적 자원의 유형 식별자를 포함하고, 상기 물리적 자원의 유형 식별자는 상기 물리적 자원이 프로세서 코어 자원, 물리적 메모리 자원, 또는 외부 장치 자원인지를 구별하는 데 사용된다.
상기 자원 할당 모듈은, 상기 자원 부가 요구 메시지에서의 상기 부가되어야 하는 물리적 자원의 유형 식별자에 따라, 상기 물리적 자원 풀에 있으면서 상기 자원 풀 내의 이용 가능한 물리적 자원의 목록에서의 물리적 자원의 식별자에 대응하는 상기 이용 가능한 물리적 자원에 대해 2차 분할을 수행하고, 제1 부하 운영체제의 물리적 자원을 부가하도록 추가로 구성되어 있으며, 여기서 상기 부가된 물리적 자원은 상기 부가되어야 하는 물리적 자원의 유형 식별자에 대응하는 물리적 자원이다.
전술한 실시예에 기초하여, 상기 부가되어야 하는 물리적 자원이 프로세서 코어이면, 상기 자원 할당 모듈은 구체적으로:
상기 제1 부하 운영체제에 대해 부가되어야 하는 프로세서 코어를 제1 부하 운영체제에 속하는 물리적 자원으로서 마킹하고, 제1 부하 운영체제에 자원 부가 메시지를 송신하며 - 상기 자원 부가 메시지는 상기 부가되어야 하는 프로세서 코어의 식별자를 포함함 - ; 그리고
상기 부가된 프로세서 코어에 점프 명령을 송신하도록 구성되어 있으며, 여기서 상기 점프 명령은 제1 부하 운영체제의 커널 프로그램을 실행하도록 상기 부가된 프로세서 코어에 명령하고, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제를 실행하는 데 필요한 모든 맵핑 관계를 상기 커널 프로그램으로부터 판독하도록 상기 부가된 프로세서 코어에 명령하는 데 사용된다.
전술한 실시예에 기초하여, 상기 감소되어야 하는 물리적 자원이 프로세서 코어 자원이면, 상기 자원 할당 모듈은 구체적으로:
상기 제1 부하 운영체제에 자원 감소 메시지를 송신하고 - 상기 자원 감소 메시지는 해제되어야 하는 프로세서 코어의 식별자를 포함함 - ; 그리고
상기 제1 부하 운영체제에 의해 해제된 프로세서 코어의 식별자를 획득하고, 상기 해제된 프로세서 코어의 식별자를 상기 자원 풀 내의 이용 가능한 물리적 자원의 목록에 부가하도록 추가로 구성되어 있으며, 여기서 상기 해제된 프로세서 코어는 상기 감소되어야 하는 프로세서 코어의 식별자에 대응하는 프로세서 코어이다.
전술한 실시예에 기초하여, 상기 부가되어야 하는 물리적 자원이 물리적 메모리 자원이면, 상기 자원 할당 모듈은 구체적으로, 상기 제1 부하 운영체제에 대해 부가되어야 하는 물리적 메모리 어드레스를 제1 부하 운영체제에 속하는 물리적 자원으로서 마킹하고, 제1 부하 운영체제에 자원 부가 메시지를 송신하도록 추가로 구성되어 있으며, 여기서 상기 자원 부가 메시지는 상기 부가되어야 하는 물리적 메모리 어드레스의 식별자를 포함한다.
전술한 실시예에 기초하여, 상기 부가되어야 하는 물리적 자원이 물리적 메모리 자원이면, 상기 구성 자원 모듈은 구체적으로:
상기 제1 부하 운영체제에 자원 감소 메시지를 송신하고 - 상기 자원 감소 메시지는 해제되어야 하는 물리적 메모리 어드레스의 식별자를 포함함 - ; 그리고
상기 제1 부하 운영체제에 의해 해제된 물리적 메모리 어드레스의 식별자를 획득하고, 상기 해제된 물리적 메모리 어드레스의 식별자를 상기 자원 풀 내의 이용 가능한 물리적 자원의 목록에 부가하도록 추가로 구성되어 있으며, 여기서 상기 해제된 물리적 메모리 어드레스는 상기 해제되어야 하는 물리적 메모리 어드레스의 식별자에 대응하는 물리적 메모리 어드레스이다.
전술한 실시예에 기초하여, 상기 부가되어야 하는 물리적 자원이 외부 장치 자원이면, 상기 자원 구성모듈은 구체적으로, 상기 제1 부하 운영체제에 대해 부가되어야 하는 외부 장치를 제1 부하 운영체제에 속하는 물리적 자원으로서 마킹하고, 제1 부하 운영체제에 강렬한 삽입 메시지를 송신하도록 추가로 구성되어 있으며, 여기서 상기 강렬한 삽입 메시지는 상기 부가되어야 하는 외부 장치의 식별자 및 상기 부가된 외부 장치에 대응하는 장치 설명 정보 테이블을 획득하도록 제1 부하 운영체제에 명령하는 데 사용된다.
전술한 실시예에 기초하여, 상기 감소되어야 하는 물리적 자원이 외부 장치 자원이면, 상기 자원 할당 모듈은 구체적으로,
상기 제1 부하 운영체제에 강렬한 제거 메시지를 송신하고 - 상기 강렬한 제거 메시지는 감소되어야 하는 외부 장치의 식별자를 포함함 - ; 그리고
상기 제1 부하 운영체제에 대해 감소된 외부 장치의 식별자를 획득하고, 상기 감소된 외부 장치의 식별자를 상기 자원 풀 내의 이용 가능한 물리적 자원의 목록에 부가하도록 추가로 구성되어 있으며, 여기서 상기 감소된 외부 장치는 상기 감소되어야 하는 외부 장치의 식별자에 대응하는 외부 장치이다.
본 발명의 실시예에서 제공하는 관리 운영체제는 전술한 자원 프로세싱 방법 실시예의 기술적 솔루션을 실행할 수 있으며, 유사한 실시 원리 및 기술적 효과를 가지며, 이에 대해서는 본 실시예에서 반복적으로 설명하지 않는다.
도 11 내지 도 13에서의 실시예에 기초하여, 부하 운영체제는 실행에 필요한 다른 모듈을 더 포함할 수 있으며, 예를 들어:
관리 운영체제와 다른 부하 운영체제 간의 최하위 계층 통신을 실행하도록 구성되어 있는 인터-인스턴스 통신 모듈 - 여기서 통지 및 응답은 네트워크를 사용하여 수행되지 않고 인터-프로세서 차단 방식으로 수행됨 - ;
자원 런타임 보조 모듈 - 하드웨어 기능의 제한으로 인해, 외부 장치의 차단이 부하 운영체제에 직접적으로 루팅될 수 없을 때, 관리 운영체제의 런타임 보조 모듈이 상기 차단을 포워딩할 수 있으며, 상기 차단에 대한 정상적인 응답을 실행하도록 일조하거나; 또는 하드웨어 기능이 차단의 자동적인 루팅 및 다이렉트 메모리 액세스(Direct memory Access, DMA로 약칭)의 자유로운 구성을 지원할 때, 즉 외부 장치의 차단이 부하 운영체제에 직접적으로 루팅될 때, 자원 런타임 보조 모듈은 취소될 수 있음 - ;
단말(키보드, 마우스, 또는 그래픽 카드)을 필요로 하는 가벼운 OS를 위한 가상 단말 장치를 준비하고, 메모리 공유와 같은 메커니즘을 사용함으로써 통신 효율을 보장하며, 실행 시의 지원을 제공하도록 구성되어 있는 단말 서비스 모듈; 및
시스템의 사용자-지향 관리 인터페이스를 가상화하고, 사용자가 복잡한 애플리케이션을 쉽게 관리할 수 있게 하며, 적절한 애플리케이션 스케줄링 정책을 개발하도록 구성되어 있는 애플리케이션 관리 모듈
을 더 포함할 수 있다.
도 14는 본 발명에 따른 부하 운영체제의 실시예 1에 대한 개략적인 구조도이다. 본 발명의 실시예에서 부하 운영체제는 도 1에 도시된 멀티-커널 운영체제에 적용되며, 상기 멀티-커널 운영체제는 관리 운영체제 및 호스트 머신 상에서 실행되는 복수의 부하 운영체제를 포함하고 물리적 자원 풀을 포함하며, 상기 물리적 자원 풀은 호스트 머신의 프로세서 코어 및 물리적 메모리를 포함하며, 각각의 부하 운영체제는 상기 관리 운영체제에 의해 할당되는 물리적 자원 집합을 배타적으로 사용하고, 각각의 물리적 자원 집합은 상기 호스트 머신의 프로세서 코어 중 일부와 상기 호스트 머신의 물리적 메모리 중 한 부분을 포함하며; 상기 관리 운영체제는 각각의 부하 운영체제에 대해 부트 이미지를 사전에 구축하고, 각각의 부하 운영체제에 대해, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정하며, 상기 부하 운영체제는(140)는 맵핑 관계 획득 모듈(1401), 명령 실행 모듈(1402), 스타트업 파라미터 획득 모듈(1403), 및 물리적 자원 집합 획득 모듈(1404)을 포함한다.
맵핑 관계 획득 모듈(1401)은 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요한 맵핑 관계를 판독하도록 구성되어 있으며, 여기서 상기 맵핑 관계는 제1 부하 운영체제의 스타트업 프로세서 코어가 상기 물리적 메모리 어드레스에 액세스할 수 있게 하는 데 사용되며, 제1 부하 운영체제는 상기 멀티-커널 운영체제 중 임의의 부하 운영체제이다.
명령 실행 모듈(1402)은 관리 운영체제에 의해 설정되고 부트 이미지 점프를 실행하기 위한 명령에 따라, 제1 부하 운영체제에 대응하는 부트 이미지의, 물리적 메모리 어드레스에 있는 위치로 점프하고, 상기 맵핑 관계에 따라 제1 부하 운영체제에 대응하는 부트 이미지를 실행하도록 구성되어 있다.
스타트업 파라미터 획득 모듈(1403)은 상기 명령 실행 모듈에 의해 상기 제1 부하 운영체제의 부트 이미지를 실행하는 프로세스에서, 제1 부하 운영체제의 부트 이미지로부터 제1 부하 운영체제의 스타트업 파라미터를 획득하도록 구성되어 있으며, 여기서 상기 스타트업 파라미터는 제1 부하 운영체제에 할당된 프로세서 코어의 식별자 및 제1 부하 운영체제에 할당된 물리적 메모리 어드레스의 식별자를 포함한다.
물리적 자원 집합 획득 모듈(1404)은 상기 프로세서 코어의 식별자 및 상기 제1 부하 운영체제의 물리적 메모리 어드레스에 따라, 상기 관리 운영체제에 의해 제1 부하 운영체제에 할당되고 제1 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원을 결정하도록 구성되어 있다.
본 발명의 실시예에서 제공하는 관리 운영체제는 전술한 자원 프로세싱 방법 실시예의 기술적 솔루션을 실행할 수 있으며, 유사한 실시 원리 및 기술적 효과를 가지며, 이에 대해서는 본 실시예에서 반복적으로 설명하지 않는다.
도 15는 본 발명에 따른 부하 운영체제의 실시예 2에 대한 개략적인 구조도이다. 본 실시예는 도 14에서의 실시예에 기초하여 실시되며, 구체적으로 다음과 같다:
선택적으로, 상기 맵핑 관계 획득 모듈(1401)은 구체적으로:
관리 운영체제에 의해 송신된 인터-코어 차단 메시지를 수신하고 - 상기 스타트업 프로세서 코어는 상기 인터-코어 차단 메시지의 명령에 따라, 상기 스타트업 프로세서 코어를 초기화하도록 구성되어 있고 제1 부하 운영체제에 대응하는 초기화 프로그램을 실행함 - ; 그리고
상기 초기화 프로그램을 실행하고, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 부트 이미지를 실행하는 데 필요하고 상기 관리 운영체제에 의해 제1 부하 운영체제에 대해 사전에 구축되어 있는 맵핑 관계를 상기 초기화 프로그램으로부터 판독하도록 구성되어 있다.
명령 실행 모듈(1402)은 구체적으로: 상기 초기화 프로그램을 실행하고, 상기 관리 운영체제에 의해 상기 초기화 프로그램에 사전에 설정되어 있는 점프 명령을 상기 초기화 프로그램으로부터 판독하며, 제1 부하 운영체제에 대응하는 부트 이미지의, 물리적 메모리 어드레스에 있는 위치로 점프하도록 구성되어 있다.
선택적으로, 상기 제1 부하 운영체제의 스타트업 프로세서 코어는, 기동되어 있고 상기 관리 부하 운영체제에 의해 결정되는 프로세서 코어이며, 제1 부하 운영체제의 스타트업 프로세서 코어 상에서 데몬이 실행되며, 상기 데몬은 제1 부하 운영체제에 대해 관리 운영체제에 의해 사전에 설정되며, 제1 부하 운영체제에 대응하는 부트 이미지의, 물리적 메모리 어드레스에 있는 위치 및 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 상기 부트 이미지를 실행하는 데 필요한 맵핑 관계가 상기 데몬에 설정되어 있다
맵핑 관계 획득 모듈(1401)은 구체적으로, 상기 제1 부하 운영체제의 스타트업 프로세서 코어 상에서 실행되고 있는 데몬이, 상기 관리 운영체제에 의해 송신된 인터-코어 차단 메시지를 수신한 후, 상기 인코-코어 차단 메시지의 명령에 따라 상기 데몬으로부터, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 부트 이미지를 실행하는 데 필요하고 상기 관리 운영체제에 의해 제1 부하 운영체제에 대해 사전에 구축되어 있는 맵핑 관계를 판독하도록 구성되어 있다.
명령 실행 모듈(1402)은 구체적으로: 상기 관리 운영체제에 의해 데몬에 사전에 설정되어 있는 점프 명령을 판독하고, 제1 부하 운영체제에 대응하는 부트 이미지의, 물리적 메모리 어드레스에 있는 위치로 점프하도록 구성되어 있다.
선택적으로, 각각의 물리적 자원 집합은 상기 호스트 머신의 일부의 외부 장치를 더 포함하며; 그리고
상기 스타트업 파라미터는 상기 관리 운영체제에 의해 제1 부하 운영체제에 할당된 외부 장치의 식별자 및 상기 외부 장치에 대응하는 장치 설명 정보 테이블을 더 포함한다.
선택적으로, 상기 물리적 자원 집합 획득 모듈이 상기 관리 운영체제에 의해 제1 부하 운영체제에 할당되고 제1 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원을 결정한 후에, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제를 실행하는 데 필요한 모든 맵핑 관계를 구축하고; 그리고
가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제를 실행하는 데 필요한 모든 맵핑 관계에 따라, 상기 물리적 메모리 어드레스에 액세스하도록 구성되어 있는 맵핑 관계 구축 모듈(1405)
을 더 포함한다.
선택적으로, 상기 명령 실행 모듈(1402)은: 상기 물리적 자원 집합 획득 모듈이 상기 관리 운영체제에 의해 제1 부하 운영체제에 할당되고 제1 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원을 결정한 후에, 제1 부하 운영체제에 할당된 프로세서 코어를 사용함으로써 상기 관리 운영체제에 의해 전달된 특권 명령을 실행하도록 추가로 구성되어 있다.
본 발명의 실시예에서 제공하는 관리 운영체제는 전술한 자원 프로세싱 방법 실시예의 기술적 솔루션을 실행할 수 있으며, 유사한 실시 원리 및 기술적 효과를 가지며, 이에 대해서는 본 실시예에서 반복적으로 설명하지 않는다.
도 15에서의 실시예에 기초하여, 제1 부하 운영체제는 자신의 물리적 자원을 모니터링하며, 동적 자원 조정을 수행하며, 선택적으로, 부하 운영체제는:
상기 물리적 자원 집합 획득 모듈이, 상기 관리 운영체제에 의해 제1 부하 운영체제에 할당되고 제1 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원을 결정한 후에, 제1 부하 운영체제의 물리적 자원을 모니터링하도록 구성되어 있는 제1 모니터링 모듈; 및
상기 제1 모니터링 모듈의 모니터링 결과가, 상기 관리 운영체제에 의해 제1 부하 운영체제에 할당되는 물리적 자원의 이용률이 제1 사전설정된 임계값보다 낮다는 것이면, 상기 관리 운영체제에 자원 감소 요구 메시지를 송신하도록 구성되어 있는 제1 송신 모듈
을 더 포함하고,
상기 자원 감소 요구 메시지는 감소되어야 하는 물리적 자원의 유형 식별자를 포함하고, 상기 물리적 자원의 유형 식별자는 상기 감소되어야 하는 물리적 자원이 프로세서 코어 자원, 물리적 메모리 자원, 또는 외부 장치 자원인지를 구별하는 데 사용된다.
선택적으로, 상기 부하 운영체제는:
상기 물리적 자원 집합 획득 모듈이, 상기 관리 운영체제에 의해 제1 부하 운영체제에 할당되고 제1 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원을 결정한 후에, 제1 부하 운영체제의 물리적 자원을 모니터링하도록 구성되어 있는 제2 모니터링 모듈; 및
상기 제1 모니터링 모듈의 모니터링 결과가 상기 관리 운영체제에 의해 제1 부하 운영체제에 할당되는 물리적 자원의 이용률이 제2 사전설정된 임계값보다 높다는 것이면, 상기 관리 운영체제에 자원 부가 요구 메시지를 송신하도록 구성되어 있는 제2 송신 모듈
을 더 포함하고,
상기 자원 부가 요구 메시지는 부가되어야 하는 물리적 자원의 유형 식별자를 포함하고, 상기 물리적 자원의 유형 식별자는 상기 부가되어야 하는 물리적 자원이 프로세서 코어 자원 또는 물리적 메모리 자원인지를 구별하는 데 사용된다.
선택적으로, 상기 부가되어야 하는 물리적 자원이 프로세서 코어이면, 상기 물리적 자원 집합 획득 모듈은 구체적으로, 상기 제2 송신 모듈이 상기 관리 운영체제에 자원 부가 요구 메시지를 송신한 후에,
상기 관리 운영체제에 의해 송신된 자원 부가 메시지를 수신하고 - 상기 자원 부가 메시지는 부가되어야 하는 프로세서 코어의 식별자를 포함함 - ;
상기 부가되어야 하는 프로세서 코어의 식별자에 따라, 상기 관리 운영체제에 의해 제1 부하 운영체제에 대해 부가되는 프로세서 코어를 결정하며; 그리고
상기 제1 부하 운영체제의 부가된 프로세서 코어가 상기 관리 운영체제에 의해 송신된 점프 명령을 수신할 때, 상기 점프 명령에 따라 제1 부하 운영체제의 커널 프로그램을 실행하며, 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제를 실행하는 데 필요한 모든 맵핑 관계를 상기 커널 프로그램으로부터 판독하도록 추가로 구성되어 있으며, 여기서 상기 제1 부하 운영체제는 가상 메모리 어드레스에서 물리적 메모리 어드레스까지의, 제1 부하 운영체제를 실행하는 데 필요한 모든 맵핑 관계를 상기 커널 프로그램에 사전에 설정한다.
선택적으로, 상기 감소되어야 하는 물리적 자원이 프로세서 코어이면, 상기 물리적 자원 집합 획득 모듈은 구체적으로, 상기 제1 송신 모듈이 상기 관리 운영체제에 자원 감소 요구 메시지를 송신한 후에,
상기 관리 운영체제에 의해 송신된 자원 감소 메시지를 수신하고 - 상기 자원 감소 메시지는 해제되어야 하는 프로세서 코어의 식별자를 포함함 - ;
상기 해제되어야 하는 프로세서 코어의 식별자에 따라, 제1 부하 운영체제에 의해 해제되어야 하는 프로세서 코어를 결정하며; 그리고
상기 프로세서 코어를 해제하도록 추가로 구성되어 있으며,
상기 해제된 프로세서 코어는 상기 감소되어야 하는 프로세서 코어의 식별자에 대응하는 프로세서 코어이다.
선택적으로, 상기 부가되어야 하는 물리적 자원이 물리적 메모리 자원이면, 상기 물리적 자원 집합 획득 모듈은 구체적으로, 상기 제2 송신 모듈이 상기 관리 운영체제에 자원 부가 요구 메시지를 송신한 후에,
상기 관리 운영체제에 의해 송신된 자원 부가 메시지를 수신하고 - 상기 자원 부가 메시지는 부가되어야 하는 물리적 메모리 어드레스를 포함함 - ; 그리고
상기 부가되어야 하는 물리적 메모리 어드레스의 식별자에 따라, 상기 관리 운영체제에 의해 제1 부하 운영체제에 대해 부가되어야 하는 물리적 메모리 어드레스를 결정하도록 추가로 구성되어 있다.
선택적으로, 상기 감소되어야 하는 물리적 자원이 물리적 메모리 자원이면, 상기 물리적 자원 집합 획득 모듈은 구체적으로, 상기 제1 송신 모듈이 상기 관리 운영체제에 자원 감소 요구 메시지를 송신한 후에,
상기 관리 운영체제에 의해 송신된 자원 감소 메시지를 수신하고 - 상기 자원 감소 메시지는 해제되어야 하는 물리적 메모리 어드레스를 포함함 - ;
상기 해제되어야 하는 물리적 메모리 어드레스의 식별자에 따라, 제1 부하 운영체제에 의해 해제되어야 하는 물리적 메모리 어드레스를 결정하며; 그리고
상기 물리적 메모리 어드레스를 해제하도록 추가로 구성되어 있으며, 여기서 상기 해제된 물리적 메모리 어드레스는 상기 해제되어야 하는 물리적 메모리 어드레스의 식별자에 대응하는 물리적 메모리 어드레스이다.
선택적으로, 상기 부가되어야 하는 물리적 자원이 외부 장치 자원이면, 상기 물리적 자원 집합 획득 모듈은 구체적으로, 상기 제2 송신 모듈이 상기 관리 운영체제에 자원 부가 요구 메시지를 송신한 후에,
상기 관리 운영체제에 의해 송신된 강렬한 삽입 메시지를 수신하고 - 상기 강렬한 삽입 메시지는 상기 부가되어야 하는 외부 장치의 식별자 및 상기 부가된 외부 장치에 대응하는 장치 설명 정보 테이블을 획득하도록 제1 부하 운영체제에 명령하는 데 사용됨 - ; 그리고
상기 부가되어야 하는 외부 장치의 식별자 및 상기 부가된 외부 장치에 대응하는 장치 설명 정보 테이블에 따라, 상기 부가되어야 하는 외부 장치의 식별자에 대응하는 외부 장치 상에서 강렬한 삽입 동작을 실행하도록 추가로 구성되어 있다.
선택적으로, 상기 감소되어야 하는 물리적 자원이 물리적 메모리 자원이면, 상기 물리적 자원 집합 획득 모듈은 구체적으로, 상기 제1 송신 모듈이 상기 관리 운영체제에 자원 감소 요구 메시지를 송신한 후에,
상기 관리 운영체제에 의해 송신된 강렬한 제거 메시지를 수신하고 - 상기 강렬한 제거 메시지는 감소되어야 하는 외부 장치의 식별자를 포함함 - ; 및
상기 감소되어야 하는 외부 장치의 식별자에 따라, 상기 감소되어야 하는 외부 장치의 식별자에 대응하는 외부 장치의 강렬한 제거 동작을 수행하도록 추가로 구성되어 있다.
본 발명의 실시예에서 제공하는 관리 운영체제는 전술한 자원 프로세싱 방법 실시예의 기술적 솔루션을 실행할 수 있으며, 유사한 실시 원리 및 기술적 효과를 가지며, 이에 대해서는 본 실시예에서 반복적으로 설명하지 않는다.
도 14 및 도 15에서의 실시예에 기초하여, 부하 운영체제는 실행에 필요한 다른 모듈을 더 포함할 수 있으며, 예를 들어:
호스트 머신 내에서 그리고 관리 운영체제와 부하 운영체제 또는 다른 부하 운영체제 사이에서 고속 통신을 실행하도록 구성되어 있는 인터-인스턴스 통신 모듈;
관리 운영체제이 제공하는 단말 가상화 서비스를 사용함으로써, 사용자가 단말 방식으로 직접적으로 부하 운영체제를 동작할 수 있는 가상 단말; 및
관리 운영체제에 의해 또는 다른 애플리케이션에 의해 개발된 애플리케이션을 수신하고, 그 애플리케이션을 실행 및 관리하도록 구성되어 있는 애플리케이션 관리 모듈
을 더 포함할 수 있다.
도 16은 이종 플랫폼 상의 멀티-커널 시스템의 아키텍처에 대한 개략도이다. 도 16에 도시된 바와 같이, 본 발명에 따른 가상화 시스템의 본 실시예에서는, 이종 노드 상에, 데이터 프로세싱 유닛(Data Processing Unit, DPU), 크세논(Xeon) 프로세서, 및 범용 그래픽 프로세싱 유닛(General Purpose Graphic Processing Unit, GPGPU로 약칭)과 같은 프로세서가 있다. 각각의 프로세서는 복수의 프로세서 코어를 포함하고, 이종 프로세서는 PCI-E 버스를 사용하여 상호접속되며 논-유니폼 메모리 액세스(Non-uniform Memory Access, NUMA로 약칭) 방식으로 결합된다. 이종 플랫폼 상에서는, 물리적 메모리, 디스크 어레이, 및 네트워크 어댑터 어레이와 같은 자원도 있으며, 이것들은 프론트 사이드 버스, 입출력 제어 센터, 및 PCI 버스와 같은 장치를 사용하여 접속된다.
본 실시예에서, 관리 운영체제 및 일부의 부하 운영체제는 Xeon 프로세서에 대응하는 프로세서 코어를 실행하고, 다른 주문형 부하 운영체제는 다른 프로세서에 대응하는 프로세서 코어를 실행하는데, 예를 들어, GPGPU는 고도의 병행성으로 컴퓨팅 작업을 실행하는 데 적절하며, DPU는 데이터 프로세싱 서비스를 실행하는 데 적절하다. 그러므로 부하 운영체제는 각각의 프로세서의 서비스 유형에 따라 PGGPU 및 DPU에 개별적으로 맞춰져 있고, 예를 들어, GPGPU에 맞춰진 부하 운영체제는 기본 행렬 연산을 위한 런타임 라이브러리 지원만을 포함하며, 컴퓨터 통일 장치 아키텍처(Computer Unified Device Architecture, CUDA로 약칭)와 같은 언어를 주로 지원하며; DPU에 맞춰진 부하 운영체제는 데이터 처리를 위한 패키지 지원만을 포함하며, 분산 시스템 인프라스트럭쳐(예를 들어, Hadoop)와 같은 애플리케이션을 주로 지원하며, 다른 컴퓨팅 구성요소는 배제한다.
관리 운영체제는 PCI-E 스위치에 의해 접속된 메모리(예를 들어, DRAM)를 추가로 관리하고, 관리자에 의해 지정된 구성 파일에 따라, DPU 상에 있는 복수의 부하 운영체제를 기동하며, 애플리케이션 관리 프로그램을 사용하여 부하 운영체제에 작업을 송신한다. 선택적으로, 데이터 프로세싱 애플리케이션에 있어서, 프로세스 및 스레드의 수량에 대한 애플리케이션의 조건이 높지 않기 때문에, 복수의 코어가 데이터 채널 처리 능력을 최적화할 때, 동시성의 스레드 및 프로세스와 같은 데이터 구조에 대한 지원은 감소될 수 있으며, 이에 의해 공간 또는 성능 오버헤드를 감소하고 성능을 향상시킨다.
도 17은 본 발명에 따른 호스트 머신의 실시예 1에 대한 개략적인 구조도이다. 도 17에 도시된 바와 같이, 본 실시예에서 제공하는 호스트 머신(170)은 프로세서(1701) 및 메모리(1702)를 포함하며, 여기서 메모리(1702)는 실행 명령을 저장하며, 호스트 머신(170)이 실행되면, 프로세서(1701)는 메모리(1702)와 통신하고, 프로세서(1701)는 메모리(1702)에 있는 실행 명령을 실행하여, 호스트 머신(170)이 전술한 자원 프로세싱 방법의 기술적 솔루션의 동작을 실행할 수 있게 한다.
본 실시예에서의 호스트 머신은 본 발명에 따라 전술한 가상 머신 시스템 관리 방법 실시예의 기술적 솔루션을 실해하도록 구성될 수 있으며, 유사한 실시 원리 및 기술적 효과를 가지며, 이에 대해서는 본 실시예에서 반복적으로 설명하지 않는다.
본 발명에서 제공하는 수 개의 실시예에서, 개시된 시스템 및 방법은 다른 방식으로 실현될 수 있다는 것에 유의해야 한다. 예를 들어, 설명된 시스템 실시예는 단지 예시에 불과하다. 예를 들어, 모듈 분할은 단지 논리적 기능 분할일 뿐이며, 실제의 실시에서는 다른 분할이 될 수도 있다. 예를 들어, 복수의 모듈 또는 구성요소는 다른 시스템에 결합되거나 통합될 수도 있으며, 일부의 특징이 무시될 수도 있고 수행되지 않을 수도 있다. 또한, 표시되거나 논의된 상호 커플링 또는 다이렉트 커플링 또는 통신 접속은 일부의 인터페이스를 통해 실현될 수 있다. 모듈 간의 간접 커플링 또는 통신 접속은 전기적, 기계적, 또는 다른 형태로 실현될 수 있다.
당업자라면 본 발명의 방법의 단계 중 일부 또는 전부는 관련 하드웨어에 명령을 내리는 컴퓨터 프로그램에 의해 구현될 수 있다는 것을 이해할 수 있을 것이다. 프로그램은 컴퓨터가 판독 가능한 저장 매체에 저장될 수 있다. 프로그램이 실행되면, 방법 실시예의 단계들이 수행된다. 전술한 저장 매체는 ROM, RAM, 자기디스크, 또는 광디스크가 될 수 있다.
마지막으로, 전술한 실시예는 본 발명의 기술적 솔루션을 설명하기 위한 것에 지나지 않으며, 본 발명을 제한하려는 것이 아님에 유의해야 한다. 본 발명을 전술한 실시예를 참조하여 설명하였으나, 당업자라면 전술한 실시예에 설명된 기술적 솔루션에 대한 수정, 또는 기술적 특징 중 일부 또는 전부에 대한 등가의 대체는 대응하는 기술적 솔루션의 본질이 본 발명의 실시예의 기술적 솔루션의 범위를 벗어나지 않는 한, 이러한 변형 또는 대체를 수행할 수 있다는 것을 이해할 수 있을 것이다.

Claims (66)

  1. 자원 프로세싱 방법으로서,
    상기 자원 프로세싱 방법은 멀티-커널 운영체제(multi-kernel operating system)에 적용되며, 상기 멀티-커널 운영체제는 복수의 프로세서를 포함하는 호스트 머신 상에서 실행되는 관리 운영체제 및 복수의 부하 운영체제를 포함하고, 상기 관리 운영체제는 상기 복수의 프로세서 중 제1 프로세서 상에서 실행되며, 제1 부하 운영체제는 상기 복수의 프로세서 중 제2 프로세서 상에서 실행되고, 상기 호스트 머신은 물리적 자원 풀(pool)을 포함하고, 상기 물리적 자원 풀은 호스트 머신의 프로세서 코어들 및 물리적 메모리를 포함하며,
    상기 자원 프로세싱 방법은,
    상기 관리 운영체제가 상기 제1 부하 운영체제에 할당된 프로세서 코어들에서, 상기 제1 부하 운영체제를 기동하는 스타트업 프로세서 코어를 결정하는 단계 - 상기 제1 부하 운영체제는 상기 다수의 부하 운영체제 중 임의의 부하 운영체제이고, 상기 관리 운영체제는 상기 제1 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원 집합을 상기 제1 부하 운영체제에 사전에 할당하며, 상기 물리적 자원 집합은 상기 호스트 머신의 프로세서 코어들 중 일부와 물리적 메모리 중 한 부분을 포함함 - ;
    상기 관리 운영체제가, 가상 메모리 어드레스로부터 물리적 메모리 어드레스로의, 상기 제1 부하 운영체제의 부트 이미지(boot image)를 실행하는 데 필요하고 상기 관리 운영체제에 의해 사전에 구축되어 있는 맵핑 관계를 판독하도록 상기 스타트업 프로세서 코어에 명령하는 단계 - 상기 물리적 메모리 어드레스는 상기 제1 부하 운영체제에 대응하는 부트 이미지의 위치를 포함함 - ;
    상기 관리 운영체제가, 제1 부하 운영체제를 기동하기 위해, 제1 부하 운영체제에 대해 사전에 구축된 부트 이미지를 실행하도록 스타트업 프로세서 코어에 명령하는 단계 - 상기 부트 이미지는 제1 부하 운영체제의 스타트업 파라미터를 포함하고, 상기 스타트업 파라미터는 제1 부하 운영체제에 할당된 프로세서 코어들의 식별자 및 제1 부하 운영체제에 할당된 물리적 메모리 어드레스의 식별자를 포함함 - ; 및
    상기 제1 부하 운영체제가 기동된 후, 상기 제1 부하 운영체제가 상기 관리 운영체제의 관여 없이, 상기 제1 부하 운영체제에 할당된 물리적 자원 집합의 물리적 자원에 액세스하는 단계 - 상기 액세스는, 상기 제1 부하 운영체제의 프로세서 코어들이 가상 메모리 어드레스로부터 물리적 메모리 어드레스로의 맵핑 관계에 따라서 가상 메모리 어드레스를 물리적 메모리 어드레스로 변환하고 그리고 물리적 메모리 어드레스에 액세스하는 것을 포함하고, 상기 맵핑 관계는 상기 제1 부하 운영체제에 의해 구성됨 -
    를 포함하는,
    자원 프로세싱 방법.
  2. 제1항에 있어서,
    상기 관리 운영체제가 제1 부하 운영체제에 대해 부트 이미지를 구축하는 단계; 및
    상기 관리 운영체제가 제1 부하 운영체제에 대해, 가상 메모리 어드레스로부터 물리적 메모리 어드레스로의, 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정하는 단계
    를 더 포함하는 자원 프로세싱 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 관리 운영체제가, 가상 메모리 어드레스로부터 물리적 메모리 어드레스로의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요하고 상기 관리 운영체제에 의해 사전에 구축되어 있는 맵핑 관계를 판독하도록 상기 스타트업 프로세서 코어에 명령하는 단계는,
    상기 관리 운영체제가 상기 스타트업 프로세서 코어에 인터-코어 차단 메시지를 송신하는 단계 - 상기 인터-코어 차단 메시지는 상기 스타트업 프로세서 코어를 초기화하도록 구성되어 있고 제1 부하 운영체제에 대응하는 초기화 프로그램을 실행하도록 상기 스타트업 프로세서 코어에 명령함 - ; 및
    상기 관리 운영체제가 제1 부하 운영체제에 대응하는 초기화 프로그램을 실행하도록 상기 스타트업 프로세서 코어에 명령함으로써, 가상 메모리 어드레스로부터 물리적 메모리 어드레스로의, 상기 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요한 맵핑 관계를 상기 초기화 프로그램으로부터 판독하도록 상기 스타트업 프로세서 코어에 명령하는 단계
    를 포함하며,
    상기 관리 운영체제가, 제1 부하 운영체제에 대해 사전에 구축된 부트 이미지를 실행하도록 스타트업 프로세서 코어에 명령하는 단계는,
    상기 관리 운영체제가, 상기 초기화 프로그램의 실행이 종료된 후, 제1 부하 운영체제의 부트 이미지를 실행하기 위해, 상기 물리적 메모리에 있는 상기 부트 이미지의 위치로 점프하도록 상기 스타트업 프로세서 코어에 명령하는 단계
    를 포함하는, 자원 프로세싱 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 관리 운영체제가 제1 부하 운영체제에 할당된 프로세서 코어들에서, 제1 부하 운영체제를 기동하는 스타트업 프로세서 코어를 결정하는 단계 이전에, 상기 자원 프로세싱 방법은,
    상기 관리 운영체제가, 제2 부하 운영체제의 이용 가능한 프로세서 코어들을 획득하는 단계
    를 더 포함하며, 여기서 상기 제2 부하 운영체제는 복수의 부하 운영체제에서 제1 부하 운영체제가 아닌 로그아웃된 부하 운영체제이고, 상기 이용 가능한 프로세서 코어들은 기동된 프로세서 코어를 포함하며,
    상기 관리 운영체제가 제1 부하 운영체제에 할당된 프로세서 코어에서, 제1 부하 운영체제를 기동하는 스타트업 프로세서 코어를 결정하는 단계는,
    상기 제1 부하 운영체제의 물리적 자원 집합이 상기 이용 가능한 프로세서 코어들을 포함할 때, 상기 관리 운영체제가 상기 이용 가능한 프로세서 코어들에서, 제1 부하 운영체제를 기동하는 스타트업 프로세서 코어를 결정하는 단계
    를 포함하는, 자원 프로세싱 방법.
  5. 제1항에 있어서,
    상기 관리 운영체제가 상기 제1 부하 운영체제에 대해 사전에 구축된 부트 이미지를 실행하도록 상기 스타트업 프로세서 코어에 명령하는 단계 이후에, 상기 자원 프로세싱 방법은,
    상기 관리 운영체제가 제1 부하 운영체제의 실행을 모니터링하는 단계; 및
    상기 제1 부하 운영체제에 할당된 물리적 자원의 이용률이 제1 사전설정된 임계값보다 낮을 때, 상기 관리 운영체제가, 제1 부하 운영체제에 대해 감소되어야 하는 물리적 자원의 유형 식별자를 결정하고, 상기 감소되어야 하는 물리적 자원의 유형 식별자에 따라 제1 부하 운영체제의 물리적 자원을 감소시키는 단계; 또는
    상기 제1 부하 운영체제가 상기 관리 운영체제에 의해 제1 부하 운영체제에 할당되는 물리적 자원의 이용률이 제1 사전설정된 임계값보다 높을 때, 상기 관리 운영체제가 상기 제1 부하 운영체제에 대해 부가되어야 하는 물리적 자원의 유형 식별자를 결정하고, 상기 부가되어야 하는 물리적 자원의 유형 식별자에 따라 제1 부하 운영체제의 물리적 자원을 부가하는 단계
    를 더 포함하며,
    상기 물리적 자원의 유형 식별자는 상기 물리적 자원이 프로세서 코어 자원 또는 물리적 메모리 자원인지를 구별하는 데 사용되는, 자원 프로세싱 방법.
  6. 제1항에 있어서,
    상기 물리적 자원 집합은 상기 호스트 머신의 일부의 외부 장치를 더 포함하며, 상기 스타트업 파라미터는 제1 부하 운영체제에 할당된 외부 장치의 식별자 및 상기 외부 장치에 대응하는 장치 설명 정보 테이블을 더 포함하며,
    상기 관리 운영체제가 상기 제1 부하 운영체제에 대해 사전에 구축된 부트 이미지를 실행하도록 상기 스타트업 프로세서 코어에 명령하는 단계 이후에, 상기 자원 프로세싱 방법은,
    상기 관리 운영체제가 제1 부하 운영체제에 의해 송신된 자원 감소 요구 메시지를 수신하는 단계 - 상기 자원 감소 요구 메시지는 감소되어야 하는 물리적 자원의 유형 식별자를 포함하고, 상기 물리적 자원의 유형 식별자는 상기 물리적 자원이 프로세서 코어 자원, 물리적 메모리 자원, 또는 외부 장치 자원인지를 구별하는 데 사용됨 - ; 및
    상기 관리 운영체제가 상기 감소되어야 하는 물리적 자원의 유형 식별자에 따라 제1 부하 운영체제의 물리적 자원을 감소시키는 단계
    를 더 포함하는 자원 프로세싱 방법.
  7. 제1항에 있어서,
    상기 물리적 자원 집합은 상기 호스트 머신의 일부의 외부 장치를 더 포함하며, 상기 스타트업 파라미터는 제1 부하 운영체제에 할당된 외부 장치의 식별자 및 상기 외부 장치에 대응하는 장치 설명 정보 테이블을 더 포함하며,
    상기 관리 운영체제가 상기 제1 부하 운영체제에 대해 사전에 구축된 부트 이미지를 실행하도록 상기 스타트업 프로세서 코어에 명령하는 단계 이후에, 상기 자원 프로세싱 방법은,
    상기 관리 운영체제가 제1 부하 운영체제에 의해 송신된 자원 부가 요구 메시지를 수신하는 단계 - 상기 자원 부가 요구 메시지는 부가되어야 하는 물리적 자원의 유형 식별자를 포함하고, 상기 물리적 자원의 유형 식별자는 상기 물리적 자원이 프로세서 코어 자원, 물리적 메모리 자원, 또는 외부 장치 자원인지를 구별하는 데 사용됨 - ; 및
    상기 관리 운영체제가 상기 부가되어야 하는 물리적 자원의 유형 식별자에 따라 제1 부하 운영체제의 물리적 자원을 부가하는 단계
    를 더 포함하는 자원 프로세싱 방법.
  8. 제5항 또는 제7항에 있어서,
    상기 부가되어야 하는 물리적 자원이 프로세서 코어이면, 상기 관리 운영체제가 제1 부하 운영체제의 물리적 자원을 부가하는 단계는,
    상기 관리 운영체제가 제1 부하 운영체제에 대해 부가되어야 하는 프로세서 코어를 제1 부하 운영체제에 속하는 물리적 자원으로서 마킹하고, 제1 부하 운영체제에 자원 부가 메시지를 송신하는 단계 - 상기 자원 부가 메시지는 상기 부가되어야 하는 프로세서 코어의 식별자를 포함함 - ; 및
    상기 관리 운영체제가 상기 부가된 프로세서 코어에 점프 명령을 송신하는 단계
    를 포함하며,
    여기서 상기 점프 명령은 제1 부하 운영체제의 커널 프로그램을 실행하도록 상기 부가된 프로세서 코어에 명령하는 데 사용되고, 상기 커널 프로그램은 가상 메모리 어드레스로부터 물리적 메모리 어드레스로의, 제1 부하 운영체제를 실행하는 데 필요한 모든 맵핑 관계를 포함하는, 자원 프로세싱 방법.
  9. 제5항 또는 제6항에 있어서,
    상기 감소되어야 하는 물리적 자원이 프로세서 코어 또는 물리적 메모리 자원이면, 상기 관리 운영체제가 상기 감소되어야 하는 물리적 자원의 유형 식별자에 따라 제1 부하 운영체제의 물리적 자원을 감소시키는 단계는,
    상기 관리 운영체제가 제1 부하 운영체제에 자원 감소 메시지를 송신하는 단계 - 상기 자원 감소 메시지는 해제되어야 하는 물리적 자원의 식별자를 포함함 - ; 및
    상기 관리 운영체제가 제1 부하 운영체제에 의해 해제된 물리적 자원의 식별자를 획득하고, 상기 해제된 물리적 자원의 식별자를 상기 자원 풀 내의 이용 가능한 물리적 자원의 목록에 부가하는 단계
    를 포함하는, 자원 프로세싱 방법.
  10. 제5항 또는 제7항에 있어서,
    상기 부가되어야 하는 물리적 자원이 물리적 메모리 자원이면, 상기 관리 운영체제가 제1 부하 운영체제의 물리적 자원을 부가하는 단계는,
    상기 관리 운영체제가 제1 부하 운영체제에 대해 부가되어야 하는 물리적 메모리 어드레스를 제1 부하 운영체제에 속하는 물리적 자원으로서 마킹하고, 제1 부하 운영체제에 자원 부가 메시지를 송신하는 단계
    를 포함하며,
    상기 자원 부가 메시지는 상기 부가되어야 하는 물리적 메모리 어드레스의 식별자를 포함하는, 자원 프로세싱 방법.
  11. 자원 프로세싱 방법으로서,
    상기 자원 프로세싱 방법은 멀티-커널 운영체제에 적용되며, 상기 멀티-커널 운영체제는 복수의 프로세서를 포함하는 호스트 머신 상에서 실행되는 관리 운영체제 및 복수의 부하 운영체제를 포함하고, 상기 관리 운영체제는 상기 복수의 프로세서 중 제1 프로세서 상에서 실행되며, 제1 부하 운영체제는 상기 복수의 프로세서 중 제2 프로세서 상에서 실행되고, 상기 호스트 머신은 물리적 자원 풀을 포함하며, 상기 물리적 자원 풀은 호스트 머신의 프로세서 코어들 및 물리적 메모리를 포함하며, 각각의 부하 운영체제는 상기 관리 운영체제에 의해 할당되는 물리적 자원 집합을 배타적으로 사용하고, 각각의 물리적 자원 집합은 상기 호스트 머신의 프로세서 코어들 중 일부와 상기 호스트 머신의 물리적 메모리 중 한 부분을 포함하며; 상기 관리 운영체제는 각각의 부하 운영체제에 대해 부트 이미지를 사전에 구축하고, 각각의 부하 운영체제에 대해, 가상 메모리 어드레스로부터 물리적 메모리 어드레스로의, 상기 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정하며, 상기 자원 프로세싱 방법은,
    상기 제1 부하 운영체제의 스타트업 프로세서 코어가, 가상 메모리 어드레스로부터 물리적 메모리 어드레스로의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요한 맵핑 관계를 판독하는 단계 - 상기 맵핑 관계는 제1 부하 운영체제의 스타트업 프로세서 코어가 상기 물리적 메모리 어드레스에 액세스할 수 있게 하는 데 사용되며, 제1 부하 운영체제는 상기 복수의 운영체제 중 임의의 부하 운영체제임 - ;
    상기 제1 부하 운영체제의 스타트업 프로세서 코어가, 상기 관리 운영체제에 의해 설정되고 부트 이미지 점프를 실행하기 위한 명령에 따라, 상기 제1 부하 운영체제에 대응하는 부트 이미지의, 물리적 메모리 어드레스에 있는 위치로 점프하고, 상기 맵핑 관계에 따라 상기 제1 부하 운영체제에 대응하는 부트 이미지를 실행하는 단계;
    상기 제1 부하 운영체제의 스타트업 프로세스 코어가 제1 부하 운영체제의 부트 이미지를 실행하는 프로세스에서, 상기 제1 부하 운영체제의 부트 이미지로부터 상기 제1 부하 운영체제의 스타트업 파라미터를 획득하는 단계 - 상기 스타트업 파라미터는 제1 부하 운영체제에 할당된 프로세서 코어들의 식별자 및 제1 부하 운영체제에 할당된 물리적 메모리 어드레스의 식별자를 포함함 - ;
    상기 제1 부하 운영체제가 프로세서 코어들의 식별자 및 제1 부하 운영체제의 물리적 메모리 어드레스의 식별자에 따라, 상기 관리 운영체제에 의해 상기 제1 부하 운영체제에 할당되고 상기 제1 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원을 결정하는 단계; 및
    상기 제1 부하 운영체제가 기동된 후, 상기 제1 부하 운영체제가 상기 관리 운영체제의 관여 없이, 상기 제1 부하 운영체제에 할당된 물리적 자원 집합의 물리적 자원에 액세스하는 단계 - 상기 액세스는, 상기 제1 부하 운영체제의 프로세서 코어들이 가상 메모리 어드레스로부터 물리적 메모리 어드레스로의 맵핑 관계에 따라서 가상 메모리 어드레스를 물리적 메모리 어드레스로 변환하고 그리고 물리적 메모리 어드레스에 액세스하는 것을 포함하고, 상기 맵핑 관계는 상기 제1 부하 운영체제에 의해 구성됨 -
    를 포함하는 자원 프로세싱 방법.
  12. 제11항에 있어서,
    상기 제1 부하 운영체제의 스타트업 프로세서 코어가, 가상 메모리 어드레스로부터 물리적 메모리 어드레스로의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요한 맵핑 관계를 판독하는 단계는,
    상기 제1 부하 운영체제의 스타트업 프로세서 코어가, 상기 관리 운영체제에 의해 송신된 인터-코어 차단 메시지를 수신하는 단계 - 상기 스타트업 프로세서 코어는, 상기 스타트업 프로세서 코어를 초기화하도록 구성되고 제1 부하 운영체제에 대응하는 초기화 프로그램을 실행하도록 상기 스타트업 프로세서 코어에 명령하는 데 사용됨 - ; 및
    상기 제1 부하 운영체제의 스타트업 프로세서 코어가, 상기 초기화 프로그램을 실행하고, 가상 메모리 어드레스로부터 물리적 메모리 어드레스로의, 부트 이미지를 실행하는 데 필요하고 상기 관리 운영체제에 의해 제1 부하 운영체제에 대해 사전에 구축되어 있는 맵핑 관계를 상기 초기화 프로그램으로부터 판독하는 단계
    를 포함하며,
    상기 제1 부하 운영체제의 스타트업 프로세서 코어가, 상기 관리 운영체제에 의해 설정되고 부트 이미지 점프를 실행하기 위한 명령에 따라, 제1 부하 운영체제에 대응하는 부트 이미지의, 물리적 메모리 어드레스에 있는 위치로 점프하는 단계는,
    상기 제1 부하 운영체제의 스타트업 프로세서 코어가, 상기 초기화 프로그램을 실행하고, 상기 관리 운영체제에 의해 상기 초기화 프로그램에 사전에 설정되어 있는 점프 명령을 상기 초기화 프로그램으로부터 판독하며, 제1 부하 운영체제에 대응하는 부트 이미지의, 물리적 메모리 어드레스에 있는 위치로 점프하는 단계
    를 포함하는, 자원 프로세싱 방법.
  13. 제11항에 있어서,
    상기 제1 부하 운영체제가, 상기 관리 운영체제에 의해 제1 부하 운영체제에 할당되고 제1 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원을 결정하는 단계 이후에, 상기 자원 프로세싱 방법은,
    상기 제1 부하 운영체제가, 가상 메모리 어드레스로부터 물리적 메모리 어드레스로의, 제1 부하 운영체제를 실행하는 데 필요한 모든 맵핑 관계를 구축하는 단계; 및
    상기 제1 부하 운영체제의 프로세서 코어들이, 가상 메모리 어드레스로부터 물리적 메모리 어드레스로의, 제1 부하 운영체제를 실행하는 데 필요한 모든 맵핑 관계에 따라, 물리적 메모리 어드레스에 액세스하는 단계
    를 더 포함하는 자원 프로세싱 방법.
  14. 제11항에 있어서,
    상기 제1 부하 운영체제가, 상기 관리 운영체제에 의해 제1 부하 운영체제에 할당되고 제1 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원을 결정하는 단계 이후에, 상기 자원 프로세싱 방법은,
    상기 제1 부하 운영체제가 제1 부하 운영체제에 할당된 프로세서 코어들을 사용함으로써 상기 관리 운영체제에 의해 전달된 특권 명령(privileged instruction)을 실행하는 단계
    를 더 포함하는 자원 프로세싱 방법.
  15. 제11항에 있어서,
    상기 제1 부하 운영체제가, 상기 관리 운영체제에 의해 제1 부하 운영체제에 할당되고 제1 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원을 결정하는 단계 이후에, 상기 자원 프로세싱 방법은,
    상기 제1 부하 운영체제가 제1 부하 운영체제의 물리적 자원을 모니터링하는 단계; 및
    상기 제1 부하 운영체제가 상기 관리 운영체제에 의해 제1 부하 운영체제에 할당되는 물리적 자원의 이용률이 제1 사전설정된 임계값보다 낮은 것으로 결정하면, 상기 제1 부하 운영체제가 상기 관리 운영체제에 자원 감소 요구 메시지를 송신하는 단계 - 상기 자원 감소 요구 메시지는 감소되어야 하는 물리적 자원의 유형 식별자를 포함함 - ; 또는
    상기 제1 부하 운영체제가 상기 관리 운영체제에 의해 제1 부하 운영체제에 할당되는 물리적 자원의 이용률이 제2 사전설정된 임계값보다 높은 것으로 결정하면, 상기 제1 부하 운영체제가 상기 관리 운영체제에 자원 부가 요구 메시지를 송신하는 단계 - 상기 자원 부가 요구 메시지는 부가되어야 하는 물리적 자원의 유형 식별자를 포함함 -
    를 더 포함하고,
    상기 물리적 자원의 유형 식별자는 상기 부가되어야 하는 물리적 자원이 프로세서 코어 자원 또는 물리적 메모리 자원인지를 구별하는 데 사용되는, 자원 프로세싱 방법.
  16. 제15항에 있어서,
    상기 부가되어야 하는 물리적 자원이 프로세서 코어이면, 상기 제1 부하 운영체제가 상기 관리 운영체제에 자원 부가 요구 메시지를 송신하는 단계 이후에, 상기 자원 프로세싱 방법은,
    상기 제1 부하 운영체제가 상기 관리 운영체제에 의해 송신된 자원 부가 메시지를 수신하는 단계 - 상기 자원 부가 메시지는 부가되어야 하는 프로세서 코어의 식별자를 포함함 - ;
    상기 제1 부하 운영체제가 상기 부가되어야 하는 프로세서 코어의 식별자에 따라, 상기 관리 운영체제에 의해 제1 부하 운영체제에 대해 부가되는 프로세서 코어를 결정하는 단계; 및
    상기 제1 부하 운영체제의 부가된 프로세서 코어가 상기 관리 운영체제에 의해 송신된 점프 명령을 수신하고, 상기 점프 명령에 따라 제1 부하 운영체제의 커널 프로그램을 실행하며, 가상 메모리 어드레스로부터 물리적 메모리 어드레스로의, 제1 부하 운영체제를 실행하는 데 필요한 모든 맵핑 관계를 상기 커널 프로그램으로부터 판독하는 단계
    를 더 포함하며,
    여기서 상기 제1 부하 운영체제는 가상 메모리 어드레스로부터 물리적 메모리 어드레스로의, 제1 부하 운영체제를 실행하는 데 필요한 모든 맵핑 관계를 상기 커널 프로그램에 사전에 설정하는, 자원 프로세싱 방법.
  17. 제15항에 있어서,
    상기 감소되어야 하는 물리적 자원이 프로세서 코어 또는 물리적 메모리 자원이면, 상기 제1 부하 운영체제가 상기 관리 운영체제에 자원 감소 요구 메시지를 송신하는 단계 이후에, 상기 자원 프로세싱 방법은,
    상기 제1 부하 운영체제가 상기 관리 운영체제에 의해 송신된 자원 감소 메시지를 수신하는 단계 - 상기 자원 감소 메시지는 해제되어야 하는 물리적 자원의 식별자를 포함함 - ; 및
    상기 제1 부하 운영체제가 상기 해제되어야 하는 물리적 자원의 식별자에 따라 물리적 자원을 해제하는 단계
    를 더 포함하는 자원 프로세싱 방법.
  18. 제15항에 있어서,
    상기 부가되어야 하는 물리적 자원이 물리적 메모리 자원이면, 상기 제1 부하 운영체제가 상기 관리 운영체제에 자원 부가 요구 메시지를 송신하는 단계 이후에,
    상기 제1 부하 운영체제가 상기 관리 운영체제에 의해 송신된 자원 부가 메시지를 수신하는 단계 - 상기 자원 부가 메시지는 부가되어야 하는 물리적 메모리 어드레스의 식별자를 포함함 - ; 및
    상기 제1 부하 운영체제가 상기 부가되어야 하는 물리적 메모리 어드레스의 식별자에 따라, 상기 관리 운영체제에 의해 제1 부하 운영체제에 대해 부가되어야 하는 물리적 메모리 어드레스를 결정하는 단계
    를 더 포함하는 자원 프로세싱 방법.
  19. 호스트 머신으로서,
    상기 호스트 머신은 관리 운영체제 및 복수의 부하 운영체제를 실행하도록 구성되어 있으며, 상기 복수의 부하 운영체제는 제1 부하 운영체제를 포함하고, 상기 호스트 머신은 복수의 프로세서를 포함하며, 상기 관리 운영체제는 상기 복수의 프로세서 중 제1 프로세서 상에서 실행되고, 제1 부하 운영체제는 상기 복수의 프로세서 중 제2 프로세서 상에서 실행되며, 상기 호스트 머신은 물리적 자원 풀을 포함하며, 상기 물리적 자원 풀은 호스트 머신의 프로세서 코어들 및 물리적 메모리를 포함하며, 상기 호스트 머신이 실행될 때, 상기 관리 운영체제는,
    상기 제1 부하 운영체제에 할당된 프로세서 코어들에서, 상기 제1 부하 운영체제를 기동하는 스타트업 프로세서 코어를 결정하고 - 상기 제1 부하 운영체제는 상기 부하 운영체제 중 임의의 부하 운영체제이고, 상기 관리 운영체제는 제1 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원 집합을 제1 부하 운영체제에 사전에 할당하며, 상기 물리적 자원 집합은 상기 호스트 머신의 프로세서 코어들 중 일부와 물리적 메모리 중 한 부분을 포함함 - ;
    가상 메모리 어드레스로부터 물리적 메모리 어드레스로의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요하고 상기 관리 운영체제에 의해 사전에 구축되어 있는 맵핑 관계를 판독하도록 상기 스타트업 프로세서 코어에 명령하며 - 상기 물리적 메모리 어드레스는 제1 부하 운영체제에 대응하는 부트 이미지의 위치를 포함함 - ; 그리고
    상기 제1 부하 운영체제를 기동하기 위해, 제1 부하 운영체제에 대해 사전에 구축된 부트 이미지를 실행하도록 스타트업 프로세서 코어에 명령하도록 구성되어 있으며,
    상기 부트 이미지는 상기 제1 부하 운영체제의 스타트업 파라미터를 포함하고, 상기 스타트업 파라미터는 제1 부하 운영체제에 할당된 프로세서 코어들의 식별자 및 제1 부하 운영체제에 할당된 물리적 메모리 어드레스의 식별자를 포함하며,
    상기 제1 부하 운영체제는,
    가상 메모리 어드레스로부터 물리적 메모리 어드레스로의, 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요한 맵핑 관계를 판독하고 - 상기 맵핑 관계는 제1 부하 운영체제의 스타트업 프로세서 코어가 상기 물리적 메모리 어드레스에 액세스할 수 있게 하는 데 사용됨 - ;
    상기 관리 운영체제에 의해 설정되고 부트 이미지 점프를 실행하기 위한 명령에 따라, 제1 부하 운영체제에 대응하는 부트 이미지의, 물리적 메모리 어드레스에 있는 위치로 점프하고, 상기 맵핑 관계에 따라 제1 부하 운영체제에 대응하는 부트 이미지를 실행하며;
    상기 제1 부하 운영체제의 부트 이미지를 실행하는 프로세스에서, 제1 부하 운영체제의 부트 이미지로부터 제1 부하 운영체제의 스타트업 파라미터를 획득하며; 그리고
    상기 제1 부하 운영체제의 프로세서 코어들의 식별자 및 물리적 메모리 어드레스에 따라, 상기 관리 운영체제에 의해 제1 부하 운영체제에 할당되고 제1 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원을 결정하며,
    상기 제1 부하 운영체제가 기동된 후, 상기 제1 부하 운영체제는 상기 관리 운영체제의 관여 없이, 상기 제1 부하 운영체제에 할당된 물리적 자원 집합의 물리적 자원에 액세스하며, 상기 액세스하는 것은, 상기 제1 부하 운영체제의 프로세서 코어들이 가상 메모리 어드레스로부터 물리적 메모리 어드레스로의 맵핑 관계에 따라서 가상 메모리 어드레스를 물리적 메모리 어드레스로 변환하고 그리고 물리적 메모리 어드레스에 액세스하는 것을 포함하고, 상기 맵핑 관계는 상기 제1 부하 운영체제에 의해 구성되는,
    호스트 머신.
  20. 제19항에 있어서,
    상기 관리 운영체제는,
    상기 제1 부하 운영체제에 대해 부트 이미지를 구축하며; 그리고
    상기 제1 부하 운영체제에 대해, 가상 메모리 어드레스로부터 물리적 메모리 어드레스로의, 부트 이미지를 실행하는 데 필요한 맵핑 관계를 설정하도록 추가로 구성되어 있는, 호스트 머신.
  21. 제19항 또는 제20항에 있어서,
    상기 관리 운영체제는 구체적으로,
    상기 스타트업 프로세서 코어에 인터-코어 차단 메시지를 송신하고 - 상기 인터-코어 차단 메시지는 상기 스타트업 프로세서 코어를 초기화하도록 구성되어 있고 제1 부하 운영체제에 대응하는 초기화 프로그램을 실행하도록 상기 스타트업 프로세서 코어에 명령함 - ;
    상기 제1 부하 운영체제에 대응하는 초기화 프로그램을 실행하도록 상기 스타트업 프로세서 코어에 명령함으로써, 가상 메모리 어드레스로부터 물리적 메모리 어드레스로의, 상기 제1 부하 운영체제의 부트 이미지를 실행하는 데 필요한 맵핑 관계를 상기 초기화 프로그램으로부터 판독하도록 상기 스타트업 프로세서 코어에 명령하며; 그리고
    상기 초기화 프로그램의 실행이 종료된 후, 상기 물리적 메모리에 있는 상기 부트 이미지의 위치로 점프하도록 상기 스타트업 프로세서 코어에 명령하여, 제1 부하 운영체제의 부트 이미지를 실행하도록 구성되어 있으며,
    상기 제1 부하 운영체제는 구체적으로,
    상기 관리 운영체제에 의해 송신된 인터-코어 차단 메시지를 수신하고 - 상기 인터-코어 차단 메시지는, 상기 스타트업 프로세서 코어를 초기화하도록 구성되어 있고 제1 부하 운영체제에 대응하는 초기화 프로그램을 실행하도록 상기 스타트업 프로세서 코어에 명령하는 데 사용됨 - ;
    상기 초기화 프로그램을 실행하고, 가상 메모리 어드레스로부터 물리적 메모리 어드레스로의, 부트 이미지를 실행하는 데 필요하고 상기 관리 운영체제에 의해 제1 부하 운영체제에 대해 사전에 구축되어 있는 맵핑 관계를 상기 초기화 프로그램으로부터 판독하며; 그리고
    상기 초기화 프로그램을 실행하고, 상기 관리 운영체제에 의해 상기 초기화 프로그램에 사전에 설정되어 있는 점프 명령을 상기 초기화 프로그램으로부터 판독하며, 제1 부하 운영체제에 대응하는 부트 이미지의, 물리적 메모리 어드레스에 있는 위치로 점프하도록 구성되어 있는, 호스트 머신.
  22. 제19항 또는 제20항에 있어서,
    상기 관리 운영체제는,
    상기 제1 부하 운영체제에 할당된 프로세서 코어들에서, 제1 부하 운영체제를 기동하는 스타트업 프로세서 코어를 결정하는 단계 이전에, 제2 부하 운영체제의 이용 가능한 프로세서 코어들을 획득하고 - 여기서 상기 제2 부하 운영체제는 복수의 부하 운영체제에서 제1 부하 운영체제가 아닌 로그아웃된 부하 운영체제이고, 상기 이용 가능한 프로세서 코어들은 기동된 프로세서 코어를 포함함 - ; 그리고
    상기 제1 부하 운영체제의 물리적 자원 집합이 상기 이용 가능한 프로세서 코어들을 포함할 때, 상기 이용 가능한 프로세서 코어들에서, 제1 부하 운영체제를 기동하는 스타트업 프로세서 코어를 결정하도록 추가로 구성되어 있는, 호스트 머신.
  23. 제19항 또는 제20항에 있어서,
    상기 제1 부하 운영체제는,
    상기 관리 운영체제에 의해 제1 부하 운영체제에 할당되고 제1 부하 운영체제에 의해 배타적으로 사용되는 물리적 자원을 결정한 후에, 가상 메모리 어드레스로부터 물리적 메모리 어드레스로의, 제1 부하 운영체제를 실행하는 데 필요한 모든 맵핑 관계를 구축하고; 그리고
    가상 메모리 어드레스로부터 물리적 메모리 어드레스로의, 제1 부하 운영체제를 실행하는 데 필요한 모든 맵핑 관계에 따라, 물리적 메모리 어드레스에 액세스하도록 추가로 구성되어 있는, 호스트 머신.
  24. 제19항 또는 제20항에 있어서,
    상기 제1 부하 운영체제는,
    제1 부하 운영체제에 할당된 프로세서 코어들을 사용함으로써 상기 관리 운영체제에 의해 전달된 특권 명령을 실행하도록 추가로 구성되어 있는, 호스트 머신.
  25. 제19항에 있어서,
    상기 관리 운영체제는,
    상기 제1 부하 운영체제에 대해 사전에 구축된 부트 이미지를 실행하도록 스타트업 프로세서 코어에 명령한 후에, 제1 부하 운영체제의 실행을 모니터링하고;
    상기 제1 부하 운영체제에 할당된 물리적 자원의 이용률이 제1 사전설정된 임계값보다 낮을 때, 제1 부하 운영체제에 대해 감소되어야 하는 물리적 자원의 유형 식별자를 결정하고, 상기 감소되어야 하는 물리적 자원의 유형 식별자에 따라 제1 부하 운영체제의 물리적 자원을 감소시키거나; 또는
    상기 제1 부하 운영체제에 할당된 물리적 자원의 이용률이 제2 사전설정된 임계값보다 높을 때, 제1 부하 운영체제에 대해 부가되어야 하는 물리적 자원의 유형 식별자를 결정하고, 상기 부가되어야 하는 물리적 자원의 유형 식별자에 따라 제1 부하 운영체제의 물리적 자원을 부가하도록 추가로 구성되어 있으며,
    상기 물리적 자원의 유형 식별자는 상기 물리적 자원인 프로세서 코어 자원 또는 물리적 메모리 자원인지를 구별하는 데 사용되는, 호스트 머신.
  26. 제19항에 있어서,
    상기 제1 부하 운영체제는,
    상기 제1 부하 운영체제의 물리적 자원을 모니터링하고; 그리고
    상기 제1 부하 운영체제가 상기 관리 운영체제에 의해 제1 부하 운영체제에 할당되는 물리적 자원의 이용률이 제1 사전설정된 임계값보다 낮은 것으로 결정하면, 상기 관리 운영체제에 자원 감소 요구 메시지를 송신하도록 추가로 구성되어 있으며,
    여기서 상기 자원 감소 요구 메시지는 감소되어야 하는 물리적 자원의 유형 식별자를 포함하고, 상기 물리적 자원의 유형 식별자는 상기 물리적 자원이 프로세서 코어 자원 또는 물리적 메모리 자원인지를 구별하는 데 사용되며,
    상기 관리 운영체제는,
    상기 제1 부하 운영체제에 의해 송신된 자원 감소 요구 메시지를 수신하고, 그리고
    상기 감소되어야 하는 물리적 자원의 유형 식별자에 따라 제1 부하 운영체제의 물리적 자원을 감소시키도록 추가로 구성되어 있는, 호스트 머신.
  27. 제19항에 있어서,
    상기 제1 부하 운영체제는,
    상기 제1 부하 운영체제의 물리적 자원을 모니터링하고; 그리고
    상기 제1 부하 운영체제가 상기 관리 운영체제에 의해 제1 부하 운영체제에 할당되는 물리적 자원의 이용률이 제1 사전설정된 임계값보다 높은 것으로 결정하면, 상기 관리 운영체제에 자원 부가 요구 메시지를 송신하도록 추가로 구성되어 있으며,
    여기서 상기 자원 부가 요구 메시지는 부가되어야 하는 물리적 자원의 유형 식별자를 포함하고, 상기 물리적 자원의 유형 식별자는 상기 물리적 자원이 프로세서 코어 자원 또는 물리적 메모리 자원인지를 구별하는 데 사용되며,
    상기 관리 운영체제는,
    상기 제1 부하 운영체제에 의해 송신된 자원 부가 요구 메시지를 수신하고, 그리고
    상기 부가되어야 하는 물리적 자원의 유형 식별자에 따라 제1 부하 운영체제의 물리적 자원을 부가하도록 추가로 구성되어 있는, 호스트 머신.
  28. 제25항 또는 제27항에 있어서,
    상기 부가되어야 하는 물리적 자원이 프로세서 코어이면, 상기 관리 운영체제는 구체적으로,
    상기 제1 부하 운영체제에 대해 부가되어야 하는 프로세서 코어를 제1 부하 운영체제에 속하는 물리적 자원으로서 마킹하고, 제1 부하 운영체제에 자원 부가 메시지를 송신하고 - 상기 자원 부가 메시지는 상기 부가되어야 하는 프로세서 코어의 식별자를 포함함 - ; 그리고
    상기 부가된 프로세서 코어에 점프 명령을 송신하도록 추가로 구성되어 있으며,
    여기서 상기 점프 명령은 제1 부하 운영체제의 커널 프로그램을 실행하도록 상기 부가된 프로세서 코어에 명령하는 데 사용되고, 상기 커널 프로그램은 가상 메모리 어드레스로부터 물리적 메모리 어드레스로의, 제1 부하 운영체제를 실행하는 데 필요한 모든 맵핑 관계를 포함하며,
    상기 제1 부하 운영체제는 구체적으로,
    상기 관리 운영체제에 의해 송신된 자원 부가 메시지를 수신하고;
    상기 부가되어야 하는 프로세서 코어의 식별자에 따라, 상기 관리 운영체제에 의해 제1 부하 운영체제에 대해 부가되는 프로세서 코어를 결정하며; 그리고
    상기 제1 부하 운영체제의 부가된 프로세서 코어를 사용함으로써, 상기 관리 운영체제에 의해 송신된 점프 명령을 수신하고, 상기 점프 명령에 따라 제1 부하 운영체제의 커널 프로그램을 실행하며, 가상 메모리 어드레스로부터 물리적 메모리 어드레스로의, 제1 부하 운영체제를 실행하는 데 필요한 모든 맵핑 관계를 상기 커널 프로그램으로부터 판독하도록 구성되어 있는, 호스트 머신.
  29. 제25항 또는 제27항에 있어서,
    상기 부가되어야 하는 물리적 자원이 물리적 메모리 자원이면, 상기 관리 운영체제는 구체적으로,
    상기 제1 부하 운영체제에 대해 부가되어야 하는 물리적 메모리 어드레스를 제1 부하 운영체제에 속하는 물리적 자원으로서 마킹하고, 제1 부하 운영체제에 자원 부가 메시지를 송신하도록 구성되어 있으며,
    여기서 상기 자원 부가 메시지는 상기 부가되어야 하는 물리적 메모리 어드레스의 식별자를 포함하며,
    상기 제1 부하 운영체제는 구체적으로,
    상기 관리 운영체제에 의해 송신된 자원 부가 메시지를 수신하며; 그리고
    상기 부가되어야 하는 물리적 메모리 어드레스의 식별자에 따라, 상기 관리 운영체제에 의해 제1 부하 운영체제에 대해 부가되는 물리적 메모리 어드레스를 결정하도록 구성되어 있는, 호스트 머신.
  30. 제25항 또는 제26항에 있어서,
    상기 감소되어야 하는 물리적 자원이 프로세서 코어 또는 물리적 메모리 자원이면,
    상기 관리 운영체제는 구체적으로, 상기 제1 부하 운영체제에 자원 감소 메시지를 송신하도록 구성되어 있으며, 여기서 상기 자원 감소 메시지는 해제되어야 하는 물리적 자원의 식별자를 포함하며,
    상기 제1 부하 운영체제는 구체적으로, 상기 관리 운영체제에 의해 송신된 자원 감소 메시지를 수신하고, 상기 해제되어야 하는 물리적 자원의 식별자에 따라 물리적 자원을 해제하도록 구성되어 있으며, 그리고
    상기 관리 운영체제는 상기 제1 부하 운영체제에 의해 해제된 물리적 자원의 식별자를 획득하고, 상기 해제된 물리적 자원의 식별자를 상기 자원 풀 내의 이용 가능한 물리적 자원의 목록에 부가하는, 호스트 머신.
  31. 하나 이상의 컴퓨터 실행가능한 명령을 포함하는 컴퓨터 판독가능 매체로서,
    상기 하나 이상의 컴퓨터 실행가능한 명령은 컴퓨터 시스템의 하나 이상의 프로세서 상에서 실행될 때, 상기 컴퓨터 시스템으로 하여금 제1항 또는 제2항에 따른 방법을 실행하게 하는, 컴퓨터 판독가능 매체.
  32. 하나 이상의 컴퓨터 실행가능한 명령을 포함하는 컴퓨터 판독가능 매체로서,
    상기 하나 이상의 컴퓨터 실행가능한 명령은 컴퓨터 시스템의 하나 이상의 프로세서 상에서 실행될 때, 상기 컴퓨터 시스템으로 하여금 제11항 내지 제18항 중 어느 한 항에 따른 방법을 실행하게 하는, 컴퓨터 판독가능 매체.
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
  58. 삭제
  59. 삭제
  60. 삭제
  61. 삭제
  62. 삭제
  63. 삭제
  64. 삭제
  65. 삭제
  66. 삭제
KR1020167018877A 2013-12-17 2014-12-17 자원 프로세싱 방법, 운영체제, 및 장치 KR101952795B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201310695461.0A CN104714846B (zh) 2013-12-17 2013-12-17 资源处理方法、操作系统及设备
CN201310695461.0 2013-12-17
PCT/CN2014/094053 WO2015090197A1 (zh) 2013-12-17 2014-12-17 资源处理方法、操作系统及设备

Publications (2)

Publication Number Publication Date
KR20160097363A KR20160097363A (ko) 2016-08-17
KR101952795B1 true KR101952795B1 (ko) 2019-05-17

Family

ID=53402110

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167018877A KR101952795B1 (ko) 2013-12-17 2014-12-17 자원 프로세싱 방법, 운영체제, 및 장치

Country Status (13)

Country Link
US (1) US10180843B2 (ko)
EP (1) EP3086228B1 (ko)
JP (1) JP6355114B2 (ko)
KR (1) KR101952795B1 (ko)
CN (1) CN104714846B (ko)
AU (1) AU2014366097B2 (ko)
BR (1) BR112016014367B1 (ko)
CA (1) CA2933712C (ko)
MX (1) MX2016007844A (ko)
RU (1) RU2639693C1 (ko)
SG (1) SG11201604827PA (ko)
WO (1) WO2015090197A1 (ko)
ZA (1) ZA201604030B (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378560B2 (en) * 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
CN106445650B (zh) * 2015-08-05 2019-10-25 华为技术有限公司 一种中断处理方法、ioapic及计算机系统
CN106528287B (zh) 2015-09-09 2019-10-29 阿里巴巴集团控股有限公司 计算机系统资源分配方法和装置
KR101936461B1 (ko) 2016-07-29 2019-01-08 현대자동차주식회사 합판 유리용 수지 필름, 이를 포함하는 합판 유리 및 이를 포함하는 자동차
CN106789298A (zh) * 2016-12-29 2017-05-31 中国建设银行股份有限公司 一种动态扩展Web层服务器的方法的装置
US10521273B2 (en) * 2017-06-08 2019-12-31 Cisco Technology, Inc. Physical partitioning of computing resources for server virtualization
CN107748677A (zh) * 2017-10-17 2018-03-02 岳西县天鹅电子科技有限公司 一种计算机快速启动及执行程序的方法
CN110389812B (zh) * 2018-04-20 2023-05-12 伊姆西Ip控股有限责任公司 用于管理虚拟机的方法、设备和计算机可读存储介质
CN108958884B (zh) * 2018-06-22 2022-02-18 郑州云海信息技术有限公司 一种虚拟机管理的方法及相关装置
RU2690415C1 (ru) * 2018-08-20 2019-06-03 Акционерное Общество "Нппкт" Технология автоматического запуска операционной системы на аппаратной платформе с элементами, не поддерживаемыми модулями операционной системы, при включении компьютера
CN109324838B (zh) * 2018-08-31 2022-05-10 深圳市元征科技股份有限公司 单片机程序的执行方法、执行装置及终端
US10884845B2 (en) 2018-11-08 2021-01-05 International Business Machines Corporation Increasing processing capacity of processor cores during initial program load processing
US10944581B2 (en) * 2018-11-08 2021-03-09 International Business Machines Corporation Increasing processing capacity of processor cores during initial program load processing
US10884818B2 (en) 2018-11-08 2021-01-05 International Business Machines Corporation Increasing processing capacity of virtual machines
US11327767B2 (en) 2019-04-05 2022-05-10 International Business Machines Corporation Increasing resources for partition to compensate for input/output (I/O) recovery event
CN110162389B (zh) * 2019-05-15 2022-05-13 广州视源电子科技股份有限公司 应用程序的启动方法、装置和智能交互设备
CN110245019B (zh) * 2019-06-17 2021-07-06 广东金赋科技股份有限公司 一种自适应系统资源的线程并发方法及装置
CN112395071A (zh) * 2019-08-12 2021-02-23 北京百度网讯科技有限公司 用于资源管理的方法、装置、电子设备和存储介质
CN114090097A (zh) * 2020-06-30 2022-02-25 中国航发商用航空发动机有限责任公司 发动机控制系统和控制软件启动方法
CN112527205A (zh) * 2020-12-16 2021-03-19 江苏国科微电子有限公司 一种数据安全防护方法、装置、设备及介质
CN113419993B (zh) * 2021-05-19 2024-06-04 北京达佳互联信息技术有限公司 读写请求处理方法、装置、电子设备及存储介质
CN115437717A (zh) * 2021-06-01 2022-12-06 北京小米移动软件有限公司 跨操作系统的调用方法、装置及电子设备
CN114138346A (zh) * 2021-11-02 2022-03-04 北京安天网络安全技术有限公司 一种终端取证方法、装置、电子设备及存储介质
CN117093508B (zh) * 2023-10-17 2024-01-23 苏州元脑智能科技有限公司 一种内存资源管理方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007200346A (ja) * 2007-03-26 2007-08-09 Hitachi Ltd 仮想計算機システム及びプログラム
US20080086729A1 (en) * 2006-10-10 2008-04-10 Yuki Kondoh Data processor
JP2012145993A (ja) * 2011-01-07 2012-08-02 Mitsubishi Electric Corp 計算機システム及び割込み制御方法及びプログラム
US20120227040A1 (en) 2012-05-01 2012-09-06 Concurix Corporation Hybrid Operating System
US20130318334A1 (en) 2012-04-24 2013-11-28 Peter P. Waskiewicz, JR. Dynamic interrupt reconfiguration for effective power management

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132741A (ja) 2000-10-20 2002-05-10 Hitachi Ltd プロセッサ追加方法、計算機及び記録媒体
US20070271560A1 (en) 2006-05-18 2007-11-22 Microsoft Corporation Deploying virtual machine to host based on workload characterizations
US8214828B2 (en) * 2006-06-30 2012-07-03 Microsoft Corporation Module state management in a virtual machine environment
US8225315B1 (en) * 2007-07-23 2012-07-17 Oracle America, Inc. Virtual core management
CN100511151C (zh) * 2007-12-05 2009-07-08 华为技术有限公司 多路多核服务器及其cpu的虚拟化处理方法
CN101246431B (zh) * 2008-03-10 2010-08-18 中兴通讯股份有限公司 加载多核不同操作系统映像的管理方法
JP5146174B2 (ja) 2008-07-28 2013-02-20 富士通株式会社 仮想マシンモニタ装置およびプログラム,ならびに仮想マシン間メモリ共有管理方法
CN101561769B (zh) * 2009-05-25 2013-02-13 北京航空航天大学 一种基于多核平台虚拟机的进程迁移跟踪方法
CN102053869B (zh) 2009-10-29 2013-11-06 杭州华三通信技术有限公司 一种多操作系统的资源分配方法和装置
WO2012060148A1 (ja) * 2010-11-02 2012-05-10 インターナショナル・ビジネス・マシーンズ・コーポレーション メモリ・アクセスを制御する装置およびコンピュータ
CN102929719B (zh) * 2012-09-18 2015-09-02 中标软件有限公司 一种多核计算机上多操作系统的控制方法及多核计算机

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080086729A1 (en) * 2006-10-10 2008-04-10 Yuki Kondoh Data processor
JP2007200346A (ja) * 2007-03-26 2007-08-09 Hitachi Ltd 仮想計算機システム及びプログラム
JP2012145993A (ja) * 2011-01-07 2012-08-02 Mitsubishi Electric Corp 計算機システム及び割込み制御方法及びプログラム
US20130318334A1 (en) 2012-04-24 2013-11-28 Peter P. Waskiewicz, JR. Dynamic interrupt reconfiguration for effective power management
US20120227040A1 (en) 2012-05-01 2012-09-06 Concurix Corporation Hybrid Operating System

Also Published As

Publication number Publication date
CA2933712C (en) 2019-04-23
WO2015090197A1 (zh) 2015-06-25
BR112016014367A2 (ko) 2017-08-08
CN104714846A (zh) 2015-06-17
KR20160097363A (ko) 2016-08-17
JP2016541072A (ja) 2016-12-28
US10180843B2 (en) 2019-01-15
AU2014366097A1 (en) 2016-07-07
RU2639693C1 (ru) 2017-12-21
US20160291984A1 (en) 2016-10-06
SG11201604827PA (en) 2016-10-28
AU2014366097B2 (en) 2017-01-12
ZA201604030B (en) 2017-09-27
EP3086228B1 (en) 2024-03-20
CN104714846B (zh) 2018-06-05
CA2933712A1 (en) 2015-06-25
EP3086228A1 (en) 2016-10-26
MX2016007844A (es) 2016-10-07
JP6355114B2 (ja) 2018-07-11
EP3086228A4 (en) 2017-03-15
BR112016014367B1 (pt) 2022-10-11

Similar Documents

Publication Publication Date Title
KR101952795B1 (ko) 자원 프로세싱 방법, 운영체제, 및 장치
JP2016541072A5 (ko)
US10275288B2 (en) Virtualization manager for reconfigurable hardware accelerators
US9798565B2 (en) Data processing system and method having an operating system that communicates with an accelerator independently of a hypervisor
US9697024B2 (en) Interrupt management method, and computer implementing the interrupt management method
JP6564838B2 (ja) インダストリアル・インターネットオペレーティングシステムに基づくマルチオペレーティングシステム運行方法および装置
KR101401523B1 (ko) 복수의 가상 머신들 간 조립 공유 gpu 스케줄링 방법 및 장치
US9639486B2 (en) Method of controlling virtualization software on a multicore processor
CN113778612A (zh) 基于微内核机制的嵌入式虚拟化系统实现方法
US10318460B2 (en) UMA-aware root bus selection
WO2019028682A1 (zh) 一种多系统共享内存的管理方法及装置
WO2018076882A1 (zh) 存储设备的操作方法及物理服务器
US20160253200A1 (en) Server virtualization method of multi node system and apparatus thereof
KR101765723B1 (ko) 과립형 gpu 자원 스케줄러와 gpu 인지형 스케줄러 간의 상호작용 장치 및 방법
WO2017012339A1 (zh) 资源管理方法及装置
WO2015090195A1 (zh) 操作系统实例创建方法及装置
JP2011221634A (ja) 計算機システム、論理区画管理方法及び論理分割処理プログラム
US11853798B2 (en) Disaggregated memory pool assignment
CN117453352B (zh) 一种Xen下的设备直通方法
EP2645245B1 (en) Information processing apparatus, apparatus mangement method, and apparatus management program
KR20230034195A (ko) 하이브리드 가상 머신 관리자의 시스템 및 동작 방법
CN117742890A (zh) 一种虚拟机的创建方法、装置、设备及存储介质

Legal Events

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