KR101557995B1 - 다중 운영체제를 지원하는 단말기 및 그 단말기에 대한시스템 자원 할당 방법 - Google Patents
다중 운영체제를 지원하는 단말기 및 그 단말기에 대한시스템 자원 할당 방법 Download PDFInfo
- Publication number
- KR101557995B1 KR101557995B1 KR1020080098733A KR20080098733A KR101557995B1 KR 101557995 B1 KR101557995 B1 KR 101557995B1 KR 1020080098733 A KR1020080098733 A KR 1020080098733A KR 20080098733 A KR20080098733 A KR 20080098733A KR 101557995 B1 KR101557995 B1 KR 101557995B1
- Authority
- KR
- South Korea
- Prior art keywords
- cores
- operating systems
- core
- executing
- usage amount
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
- G06F9/441—Multiboot arrangements, i.e. selecting an operating system to be loaded
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
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)
- Multi Processors (AREA)
- Bus Control (AREA)
Abstract
본 발명은 다중 운영체제를 지원하는 멀티 프로세서 단말기 및 그 단말기에 대한 시스템 자원 할당 방법에 관한 것이다. 본 발명은 복수의 코어(110)를 포함하는 프로세서(100)와, 사용자의 선택에 따라 하나 이상의 운영체제를 상기 복수의 코어(110)에 분배하여 실행되도록 하는 관리부(700)를 포함한다. 이때 상기 관리부(700)는 각 코어(110)의 사용량을 감지하여 상기 복수의 운영체제(610, 620) 각각을 실행하는 코어(110)들의 평균 사용량에 따라 상기 운영체제(610, 620)를 상기 코어(110)에 재분배하여 실행되도록 한다. 이와 같은 본 발명에 의하면 멀티 코어 프로세서를 비롯한 단일 플랫폼 상의 시스템 자원을 이용하여 복수의 운영체제를 실행함으로써 하드웨어의 구성이 간단해지고 단말기 제조 비용이 절감되며, 복수의 운영체제에 대하여 효율적으로 시스템 자원을 관리함으로써 시스템 성능이 향상되고, 시스템 전원 소비도 줄일 수 있다는 장점이 있다.
멀티 코어, 운영체제, 프로세서, 시스템 자원
Description
본 발명은 다중 운영체제를 지원하는 멀티 프로세서 단말기 및 그 단말기에 대한 시스템 자원 할당 방법에 관한 것이다.
최근 각종 전자기기의 기능이 하나의 단말기에 집적되는 디지털 컨버전스(Digital Convergence) 경향이 뚜렷해지고 있다. 따라서 하나의 단말기 내에서 휴대용 PC, 휴대용 멀티미디어 플레이어(PMP), 이동통신 단말기, 내비게이션 단말기, 게임기, 전자사전 등의 기능이 융합되고 있다.
이러한 경향에 따라, 위와 같은 각각의 전자기기로서의 기능의 구현을 위한 각각의 운영체제와 그를 기반으로한 어플리케이션들을 중앙 처리 장치(CPU), 기억 장치, 입출력 등 단일 플랫폼상의 단말기 자원에서 효율적으로 운영할 수 있는 기술이 요구된다.
따라서 본 발명은 상기와 같은 종래의 요구에 부응하기 위하여 안출된 것으로, 본 발명의 목적은 멀티 코어 프로세서를 비롯한 시스템 자원을 복수의 운영체제에 효율적으로 할당함으로써 단일 하드웨어 구성을 이용하여 복수의 운영체제를 지원할 수 있는 단말기 및 그 단말기에 대한 시스템 자원 할당 방법을 제공하는 것이다.
본 발명의 다른 목적은, 복수의 운영체제에 대하여 효율적으로 시스템 자원을 관리함으로써 시스템 성능을 향상시킬 수 있는 다중 운영체제를 지원하는 단말기 및 그 단말기에 대한 시스템 자원 할당 방법을 제공하는 것이다.
본 발명의 또 다른 목적은, 복수의 운영체제에 대하여 시스템 자원을 효율적으로 할당함으로써 시스템 전원 소비를 줄일 수 있는 다중 운영체제를 지원하는 단말기 및 그 단말기에 대한 시스템 자원 할당 방법을 제공하는 것이다.
상기한 바와 같은 목적을 달성하기 위한 본 발명의 특징에 따르면, 본 발명은 복수의 코어를 포함하는 프로세서와; 사용자의 선택에 따라 하나 이상의 운영체제를 상기 복수의 코어에 분배하여 실행되도록 하는 관리부를 포함하고: 상기 관리부는 각 코어의 사용량을 감지하여 상기 복수의 운영체제 각각을 실행하는 코어들의 평균 사용량에 따라 상기 운영체제를 상기 코어에 재분배하여 실행되도록 한다.
여기서 상기 관리부는, 상기 프로세서 내에 포함된 복수의 코어 중 어느 하 나가 될 수 있다. 또는 다른 별도의 하드웨어로 구비될 수도 있다.
그리고 상기 단말기에는, 둘 이상의 운영체제가 동시에 실행될 때 각각의 운영체제를 최초 실행할 코어 또는 코어의 수가 미리 지정될 수 있다.
또한 상기 관리부는, 상기 복수의 운영체제 각각을 실행하는 코어들의 평균 사용량을 서로 비교하여 서로 다른 운영체제를 실행하는 코어들의 평균 사용량 사이의 차가 기 설정된 값 이상인 경우, 각각의 운영체제를 실행하는 코어의 수를 변경할 수 있다.
그리고 상기 관리부는, 상기 복수의 운영체제 각각을 실행하는 코어들의 평균 사용량 중 어느 하나의 운영체제에 대한 코어의 평균 사용량이 기준값 이상인 경우, 해당 운영체제를 실행하는 코어의 수를 증가시킬 수 있다. 또한 상기 복수의 운영체제 각각을 실행하는 코어들의 평균 사용량 중 어느 하나의 운영체제에 대한 코어의 평균 사용량이 일정값 이하인 경우, 해당 운영체제를 실행하는 코어의 수를 감소시킬 수도 있다.
여기서 상기 단말기는, 상기 프로세서 내에 포함된 복수의 코어가 시스템 자원으로 액세스 하는 통로가 되는 버스와; 상기 버스를 통한 시스템 자원으로의 액세스 권한을 할당하는 버스 중재유닛을 더 포함하여 구성될 수도 있다.
이와 같은 경우, 상기 버스 중재유닛은, 상기 관리부로부터 복수의 코어 각각에 대한 코어 사용량을 수신받아, 각각의 코어의 사용량의 비율과 각각의 코어의 버스 점유율이 서로 비례하도록 시스템 자원으로의 액세스 권한을 각각의 코어에 할당할 수 있다.
또한 상기 관리부는, 상기 프로세서가 상기 복수의 운영체제 중 일부만을 실행 중인 경우, 상기 복수의 코어 중 일부는 동작하지 않도록 운영체제를 분배할 수 있다.
한편 본 발명은, 복수의 코어를 포함하는 프로세서를 구비한 단말기에서, (A) 둘 이상의 운영체제에 대한 실행 명령이 입력되는 단계와; (B) 각각의 운영체제를 설정된 바에 따라 복수의 코어들에 할당하여 실행하는 단계와; (C) 상기 복수의 코어들의 사용량을 감지하는 단계; 그리고 (D) 상기 복수의 코어들의 사용량에 따라 운영체제를 복수의 코어에 재할당하여 실행하는 단계를 포함하여 수행될 수 있다.
이때 상기 (D)단계는, (D1) 동일한 운영체제를 실행하는 코어들의 평균 사용량을 연산하는 단계와; (D2) 각각의 운영체제에 대하여 연산된 코어의 평균 사용량 사이의 차이를 설정값과 비교하는 단계; 그리고 (D3) 각각의 운영체제에 대한 코어의 평균 사용량 사이의 차이가 설정값 이상이면 코어의 평균 사용량이 높은 운영체제에 할당되는 코어의 수를 증가시키는 단계를 포함하여 수행될 수 있다.
여기서 상기 시스템 자원 할당 방법은, (G) 복수의 운영체제가 복수의 코어에 할당되어 실행되던 중 복수의 운영체제 중 일부의 실행이 종료되는 단계와; (H1) 상기 (G) 단계에서 복수의 운영체제 중 일부의 실행이 종료되면 상기 복수의 코어 중 일부의 동작을 중단시키는 단계를 더 포함하여 수행될 수도 있으며, 또는 상기 (H1) 단계 대신에, (H2) 상기 (G) 단계에서 복수의 운영체제 중 일부의 실행이 종료되면, 나머지 운영체제를 상기 프로세서에 구비된 모든 코어에 할당하여 실행하는 단계를 포함할 수도 있다.
그리고 상기 시스템 자원 할당 방법은, (E) 상기 복수의 운영체제를 실행하는 상기 복수의 코어들로부터 시스템 자원 요청이 발생하는 단계와; (F) 각각의 코어의 버스 점유율이 각각의 코어들의 사용량 사이의 비율에 대응하도록 시스템 자원에 대한 액세스 권한을 할당하는 단계를 더 포함하여 수행될 수도 있다.
이상에서 상세히 설명한 바와 같이 본 발명에 의한 다중 운영체제를 지원하는 단말기 및 그 단말기에 대한 시스템 자원 할당 방법에 의하면 다음과 같은 효과를 기대할 수 있다.
즉, 멀티 코어 프로세서를 비롯한 단일 플랫폼 상의 시스템 자원을 이용하여 복수의 운영체제를 실행함으로써 하드웨어의 구성이 간단해지고 단말기 제조 비용이 절감되는 장점이 있다.
또한 본 발명에 의한 다중 운영체제를 지원하는 단말기 및 그 단말기에 대한 시스템 자원 할당 방법은 복수의 운영체제에 대하여 효율적으로 시스템 자원을 관리함으로써 시스템 성능을 향상시킬 수 있다는 장점이 있다.
그리고 본 발명에 의한 다중 운영체제를 지원하는 단말기 및 그 단말기에 대한 시스템 자원 할당 방법은 실행되는 운영체제에 따라 필요한 시스템 자원만을 동작시켜 시스템 전원 소비를 줄일 수 있다는 장점이 있다.
이하에서는 상기한 바와 같은 본 발명에 의한 다중 운영체제를 지원하는 단 말기의 구체적인 실시예를 첨부된 도면을 참고하여 상세하게 설명한다.
도 1a는 본 발명의 제1실시예에 의한 다중 운영체제를 지원하는 단말기의 개략적인 구성을 도시한 블럭도이고, 도 1b는 본 발명의 제2실시예에 의한 다중 운영체제를 지원하는 단말기의 개략적인 구성을 도시한 블럭도이다.
도 1a과 도 1b에 도시된 바와 같이, 본 발명의 제1실시예와 제2실시예에 의한 다중 운영체제를 지원하는 단말기는 멀티 코어 프로세서(100)를 포함하여 구성된다. 상기 프로세서(100)는 상기 단말기의 중앙 처리 장치로서 상기 단말기 시스템의 전체를 제어하고, 명령어의 해석 및 자료의 연산, 비교, 입출력 등을 담당한다.
상기 프로세서(100)에는 복수의 코어(110)가 구비되는데, 상기 코어(110)는 실행 유닛, 명령어 유닛, 어드레싱 유닛, 버스 인터페이스 유닛 등의 집합체로서 상기 프로세서(100)의 주요 처리회로이다. 상기 프로세서(100)의 캐시(cache) 메모리는 상기 코어(110)에 함께 구비되거나 별도로 구비될 수 있다.
상기 코어(110)는 상기 프로세서(100) 내에 복수로 구비되는데, 도면에 예시한 것처럼 두 개가 구비될 수도 있고, 그 이상이 될 수도 있다.
그리고 상기 프로세서(100) 내에는 버스 인터페이스(130)가 구비된다. 상기 버스 인터페이스(130)는 상기 코어(110)와 후술할 버스(200)의 데이터 교환을 제어하는 역할을 하는 구성요소로서, 상기 코어(110) 내에 각각 구비될 수도 있다.
상기 버스 인터페이스(130)는 버스(200)의 통신방식을 이해하여 상기 코어(110)의 요청에 따라 필요한 데이터를 송수신하도록 한다.
한편 상기 단말기에는 상기 프로세서(100)와 상기 단말기 시스템 내의 각종 구성요소와의 데이터 통신을 위한 버스(200)가 구비된다. 상기 버스(200)는 상기 코어(110)가 상기 단말기 시스템 내의 각종 구성요소와 데이터를 주고받기 위한 매개체이며, 상기 버스(200)는 일정한 통신방식에 따라 데이터를 전송한다.
한편 본 발명의 제1실시예에서는 브릿지 회로(300)가 구비된다. 상기 브릿지 회로(300)는 상기 단말기 시스템의 메인보드에 구비되는 집적회로로서, 상기 프로세서(100)와 다른 구성요소들의 원활한 데이터 교환을 수행한다. 상기 브릿지 회로(300)는 일반적으로 노스 브릿지(north bridge)와 사우스 브릿지(south bridge)로 나뉠 수 있으며, 노스 브릿지의 경우, 상기 버스(200)를 통해 상기 프로세서(100)에 직접 연결되며, 후술할 메모리(400)를 제어하기 위한 메모리 인터페이스를 구비하여 상기 프로세서(100)와 메모리(400) 사이의 데이터 연결 통로로서의 역할을 수행할 뿐 아니라, 그래픽 처리 유닛과 연결되는 AGP 인터페이스를 구비하여 그래픽 처리 및 디스플레이 기능을 수행할 수 있다. 또한 상기 사우스 브릿지의 경우, 상기 노스 브릿지에 의하여 상기 프로세서(100)에 간접적으로 연결되고, 각종 입력장치나 I/O 디바이스 등이 연결될 수 있다. 그러나 이와 같은 구조는 예시에 불과하고 이와는 다른 구조의 브릿지 회로가 상기 단말기에 구비될 수도 있다.
상기 브릿지 회로(300)는 상술한 바와 같이 상기 버스(200)에 의하여 상기 프로세서(100)에 연결됨으로써, 상기 코어(110)의 요청에 따라 상기 브릿지 회로(300)에 연결된 각종 구성요소를 상기 코어(110)가 사용할 수 있도록 한다.
한편 본 발명의 제1실시예에서 상기 버스(200)가 상기 프로세서(100)와 상기 브릿지회로(300) 사이의 데이터 통신의 통로인 반면, 본 발명의 제2실시예에서 상기 버스(200)는 상기 단말기 시스템의 각 구성요소를 모두 연결한다. 이를 위하여 상기 버스(200)에는 각각의 시스템 구성요소들 사이에 교환되는 데이터 통신을 중재하기 위한 중재유닛이 구비된다.
한편 도 1a와 도 1b에 도시된 바와 같이 본 발명의 제1실시예와 제2실시예에는 메모리(400)가 구비된다. 상기 메모리(400)는 상기 코어(110)에서 처리되는 데이터 또는 처리된 후의 데이터가 일시적으로 저장되는 공간으로서 상기 단말기의 주기억장치로서 구비된다. 이때 상기 메모리(400)의 데이터 입출력을 제어하기 위하여 메모리 인터페이스가 구비될 수 있다. 본 발명의 제1실시예에서는 상기 브릿지회로(300)에 의해 상기 메모리(400)의 데이터 입출력을 제어할 수 있다.
그리고 본 발명의 제1실시예 및 제2실시예에서는 I/O 인터페이스(500)가 구비된다. 상기 I/O 인터페이스(500)는 상기 I/O 인터페이스(500)에 연결되는 I/O 디바이스(510)로의 데이터 입출력을 제어한다.
이와 같은 구성의 본 발명에 있어서, 상기 프로세서(100)에서는 복수의 운영체제가 실행될 수 있다. 복수의 운영체제는 도 2에 도시된 바와 같이 복수의 코어(110)에 할당되어 실행된다. 이때 복수의 운영체제가 복수의 코어(110)에 할당되어 실행됨에 있어서, 각각의 운영체제와 관련된 어플리케이션의 실행도 해당 운영체제가 할당된 동일한 코어(110)에서 수행된다.
여기서 도 2는 본 발명의 구체적인 실시예에 의한 다중 운영체제를 지원하는 단말기에서 멀티 코어에 할당되어 실행되는 복수의 운영체제를 나타낸 개념도이다.
예를 들어, 상기 단말기에서 두 개의 운영체제가 동시에 실행되는 경우, 상기 단말기에 구비된 n개의 코어(110)에는 두 개의 운영체제가 분배되어 실행된다. 여기서 상기 코어(110) 각각에서 각각 하나의 운영체제에 의한 동작이 수행되도록 물리적으로 분배될 수도 있고, 하나의 코어(110) 내에서도 두 개의 운영체제에 의한 동작이 각각 분리 독립적으로 수행될 수 있도록 논리적 분할(Logical Partitioning)에 의하여 분배될 수도 있다. 여기서 상기 논리적 분할은 복수의 독립된 자원인 것처럼 하나의 하드웨어 자원을 가상적으로 분할하는 것이다.
즉, 예를 들어 4개의 코어(110)가 구비된 프로세서(100)에서 두 개의 운영체제를 실행하는 경우, 단순히 물리적으로 코어(110)를 할당하면, 제1운영체제(610)를 제1코어(110a) 내지 제3코어에서 실행되도록 하고, 제2운영체제(620)를 마지막 코어(110c)에서 실행되도록 할 수 있다.
이와 더불어 코어(110)의 논리적 분할 기술을 함께 사용하여 제1코어(110a)와 제2코어(110b)에서는 제1운영체제(610)를 실행하고, 제4코어(110c)에서는 제2운영체제(620)를 실행하며, 제3코어에서는 이를 가상적으로 두 개의 코어로 구분하여 상기 제1운영체제(610)와 상기 제2운영체제(620)가 수행되도록 할 수도 있다.
상술한 바와 같이 상기 복수의 코어(110)에서 복수의 운영체제(610, 620)를 실행하기 위하여 상기 복수의 코어(110)를 물리적 및/또는 가상적으로 복수의 운영체제(610, 620)에 할당함에 있어서, 이와 같은 복수의 운영체제(610, 620)를 각각의 코어(110)에 적절히 분배하여 실행하기 위하여 하이퍼바이저(700)라는 프로그램이 사용된다.
상기 하이퍼바이저(700)는 상기 프로세서(100)나 상기 메모리(400) 등 다양한 시스템 자원에 각각 다른 운영체제(610, 620)의 접근을 통제하는 프로그램으로서 다수의 운영체제(610, 620)가 상기 단말기 시스템에서 가동될 수 있도록 하는 상기 코어(110)와 상기 운영체제(610, 620) 사이의 중간 웨어로서 작용한다. 상기 하이퍼바이저(700)는 상기 코어(110)들 중에서 어느 하나에서 실행되거나, 상기 하이퍼바이저(700)가 실행될 별도의 처리유닛이 상기 단말기에 더 포함될 수 있다.
상기 하이퍼바이저(700)는 상술한 바와 같이 복수의 운영체제(610, 620)를 복수의 코어(110)에 적절히 분배하여 실행되도록 하고, 또한 동일한 운영체제를 실행하는 코어(110)들 사이에서도 각각의 코어(110)의 작업량의 차이가 크지 않도록 태스크나 쓰레드를 적절히 분배한다.
이하에서는 상술한 바와 같은 본 발명의 실시예에 의한 단말기에서 상기 하이퍼바이저(700)가 복수의 운영체제를 복수의 코어에 분배하여 실행하고, 각각의 운영체제에 대하여 자원 분배를 하는 방법을 도 3 및 도 4를 참조하여 상세하게 설명한다.
도 3은 본 발명의 구체적인 실시예에 의한 다중 운영체제를 지원하는 단말기의 멀티 코어 할당방법을 단계적으로 도시한 흐름도이고, 도 4는 본 발명의 구체적인 실시예에 의한 다중 운영체제를 지원하는 단말기의 버스 할당 방법을 단계적으로 도시한 흐름도이다.
도 3에 도시된 바와 같이, 본 발명의 구체적인 실시예에 의한 시스템 자원 할당 방법은 우선 단말기가 지원하는 각각의 기능의 온/오프 여부를 확인하는 단계 로부터 시작된다.
여기서 단말기가 지원하는 기능은 예를 들어, 휴대용 PC로서의 기능과 휴대용 멀티미디어 플레이어로의 기능을 모두 지원하는 휴대 단말기나, 휴대용 PC와 차량용 내비게이션 장치로의 기능을 겸용하는 휴대 단말기와 같이 둘 이상의 전자기기로서의 기능을 복합적으로 갖고 있는 단말기에서 각각의 기능을 의미한다.
그리고 이때 단말기가 지원하는 기능 각각은, 이를 구현하기 위해서는 별도의 운영체제가 요구되는 경우를 전제한다. 그리고 상기 단말기는 각각의 기능에 대한 사용자의 선택에 따라서 각각의 운영체제로 부팅할 수 있고, 하나의 운영체제로 부팅된 상태에서 다른 기능을 선택하면 두 개의 운영체제가 함께 실행될 수 있다.
휴대용 PC와 차량용 내비게이션 장치로의 기능을 겸하는 단말기를 예로 들어, 휴대용 PC 기능을 제1기능, 차량용 내비게이션 장치로서의 기능을 제2기능으로 하여 본 발명의 구체적인 실시예를 설명하면, 우선 단말기의 제1기능이 온 상태인지 여부를 감지하는 제100단계(S100)가 수행된다.
그리고 상기 제100단계에서의 판단 결과, 상기 단말기의 제1기능이 온 된 상태이면, 다시 제2기능의 온/오프 여부도 판단한다(S110). 상기 제110단계(S110)에서 단말기의 제2기능도 온 되었다고 판단되는 경우, 상기 단말기의 제1기능과 제2기능이 모두 온 상태이므로, 상기 하이퍼바이저(700)는 상기 단말기의 제1기능을 구현하기 위한 제1운영체제(610)와, 상기 단말기의 제2기능의 구현을 위한 제2운영체제(620)를 복수의 코어(110)에 분배하여 실행한다(S120).
여기서 상기 하이퍼바이저(700)가 상기 복수의 운영체제(610, 620)를 복수의 코어(110)에 분배함에 있어서, 상기 하이퍼바이저(700)는 우선 상기 복수의 운영체제(610, 620)가 모두 실행되기 시작한 때에는 미리 설정된 바에 따라 각 운영체제(610, 620)를 실행할 코어(110)를 결정한다. 여기서 복수의 운영체제(610, 620)가 실행되기 시작한 때에 각각의 운영체제(610, 620)를 실행하는 코어(110)의 수는 각각의 운영체제(610, 620)의 데이터 크기와 각각의 운영체제(610, 620)를 기반으로 일반적으로 실행되는 어플리케이션들의 종류 등을 고려하여 미리 설정된다.
예를 들어, 상기 코어(110)가 4개 구비되는 경우, 제1코어 내지 제3코어에서는 제1운영체제(610)가 실행되도록 미리 설정되고, 제4코어에서는 제2운영체제(620)가 실행되도록 미리 설정될 수 있다.
그리고 상기 하이퍼바이저(700)는 운영체제를 실행하는 각각의 코어(110)의 사용량을 지속적으로 감시한다(S130). 여기서 상기 코어(110)들의 사용량은 각각의 운영체제(610, 620)를 실행하는 코어(110)별로 연산될 수 있다.
즉, 상기 제1운영체제(610)를 실행하는 제1코어 내지 제3코어의 사용량은 각각 연산될 수도 있으나, 평균적으로 연산될 수 있다. 또한 상기 제2운영체제(620)를 실행하는 제4코어의 사용량이 연산되어, 상기 제1코어 내지 상기 제3코어의 사용량과 상기 제4코어의 사용량이 서로 비교된다.
즉, 제1운영체제(610)를 실행하는 코어들과 제2운영체제(620)를 실행하는 코어들 사이의 사용량을 감시하여 서로 비교한다.
그리고 상기 제130단계(S130)의 수행 결과에 따른 각각의 운영체제(610, 620)가 실행되는 코어(110)들의 사용량에 따라 각각의 운영체제(610, 620)를 실행 하는 코어(110)들의 수를 조절한다(S140).
이때 상기 제140단계(S140)에서는 상기 제1운영체제(610)를 실행하는 코어들의 평균적인 사용량과 상기 제2운영체제(620)를 실행하는 코어의 사용량을 서로 비교한다. 즉, 상기 제140단계에서는 각각의 운영체제(610, 620)를 실행하는 코어(110)별로 사용량을 비교한다.
각각의 운영체제(610, 620)를 실행하는 코어(110)들의 사용량을 비교한 결과, 각각의 운영체제(610, 620)를 실행하는 코어(110)들의 사용량 사이의 차이가 설정값 이상인 경우, 상기 하이퍼바이저(700)는 각 운영체제(610, 620)를 실행하는 코어(110)의 수를 변경한다.
예를 들어, 상기 설정값이 40%인 경우, 상기 제1운영체제(610)를 실행하는 코어들의 사용량이 20%이고, 상기 제2운영체제(620)를 실행하는 코어의 사용량이 60% 이상인 경우, 상기 하이퍼바이저(700)는 상기 제3코어에서 실행되는 운영체제를 상기 제2운영체제(620)로 변경할 수 있다. 따라서 상기 제1운영체제(610)는 상기 제1코어 및 제2코어에서만 실행되고, 상기 제2운영체제(620)는 상기 제3코어와 상기 제4코어에서 실행되도록 할 수 있다.
즉, 상기 하이퍼바이저(700)는 각각의 운영체제를 실행하는 코어(110)들의 사용량을 운영체제별로 비교하여 각각의 운영체제가 실행되는 코어(110)의 수를 능동적으로 조절할 수 있다.
또는 특정 운영체제를 실행하는 코어들의 평균 사용량이 미리 설정된 기준값을 넘어서는 경우, 코어의 평균 사용량이 가장 적은 운영체제를 실행하는 코어 중 하나에서 코어의 평균 사용량이 기준값을 초과하는 운영체제가 실행되도록 코어를 재할당할 수 있다.
또한 특정 운영체제를 실행하는 코어들의 평균 사용량이 미리 설정된 일정값 이하인 경우, 해당 운영체제를 실행하는 코어가 복수개이면 그 중 하나에서, 코어의 평균 사용량이 가장 큰 운영체제가 실행될 수 있도록 코어를 재분배할 수도 있다.
또한 상기 하이퍼바이저(700)는 각각의 코어(110) 내에서도 논리적 분할에 의하여 복수의 운영체제를 실행할 수 있으며, 이 경우에도 가상적으로 분할된 코어(110)의 각 영역의 사용량을 각 운영체제 별로 감지하여 비교함으로써 각각의 운영체제를 실행하는 코어(110)의 수나 분할된 코어(110)의 영역의 크기를 조절할 수 있다.
그리고 상기 제110단계에서 상기 단말기의 제2기능이 오프 상태인 것으로 판단되는 경우, 즉 상기 단말기의 제1기능만이 온 상태인 경우, 상기 하이퍼바이저(700)는 상기 프로세서(100) 내에 포함된 모든 코어(110)에서 상기 제1운영체제(610)를 실행하도록 할 수 있다(S150).
한편 상기 제100단계에서 상기 단말기의 제1기능이 오프 상태인 것으로 판단된 경우, 상기 단말기의 제2기능이 온 상태이면(S160), 상기 프로세서(100)에 포함된 복수의 코어(110)들 중에서 미리 지정된 코어(110)에서만 상기 제2운영체제(620)가 실행될 수 있다(S170).
예를 들어, 상기 프로세서(100)에 코어가 n개 구비된 경우, 상기 제2운영체 제(620)는 n번째 코어에서만 실행되도록 상기 단말기를 미리 설정할 수 있다.
이때 n번째 코어를 제외한 나머지 코어들의 동작은 이루어지지 않도록 함으로써(S180) 상기 단말기에서 소모되는 전력을 최소화 할 수 있다.
한편 본 발명의 구체적인 실시예에서는 각각의 운영체제를 실행하는 코어(110)의 사용량에 따라 각각의 운영체제를 실행하는 코어(110)의 수나 코어(110)의 논리적 분할 영역을 능동적으로 조절할 뿐 아니라 버스(200)의 점유율도 각 운영체제의 사용량에 대응하여 능동적으로 조절한다.
도 4에 도시된 바와 같이, 본 발명의 구체적인 실시예에서는 상기 단말기의 제1기능과 제2기능이 모두 온 상태인 경우, 각각의 기능의 수행을 위하여 실행되는 제1운영체제(610)와 제2운영체제(620)가 복수의 코어(110)에 분배되어 실행된다(S200). 실행 초기에는 기설정된 바에 따라 코어(110)가 분배되지만, 그 이후에는 각각의 운영체제를 실행하는 코어(110)들의 사용량을 비교하여 각각의 운영체제를 실행하는 코어(110)가 능동적으로 바뀔 수 있음은 도 3을 참조하여 이미 살펴본 바와 같다.
상기 제200단계(S200)에서 복수의 코어(110)에 분배되어 실행되는 운영체제 각각에 대하여, 각각의 운영체제를 실행하는 코어(110)들의 사용량을 감시하는 단계가 수행된다(S210).
그리고 상기 제210단계(S210)에서 각각의 운영체제에 대한 코어(110) 사용량을 감시한 결과에 따라 상기 버스(200)를 이용하여 상기 메모리(400)나 상기 I/O 디바이스(510)로 액세스 할 수 있는 버스(200) 점유가 분배된다(S220). 즉, 각각의 운영체제에 대한 코어(110) 사용량을 감지하여 양자를 비교한 후, 비교 결과에 따라 상기 메모리(400)나 상기 I/O 디바이스(510) 등 상기 단말기 내에 구비되거나 연결된 시스템 자원으로의 액세스할 권리를 할당하게 된다.
예를 들어, 상기 프로세서(100) 내에 두개의 코어가 존재하고, 제1코어(110a)에서 제1운영체제(610)가 실행되고, 제2코어(110b)에서 제2운영체제(620)가 실행되는 경우, 상기 제1운영체제(610)가 실행되는 상기 제1코어(110a)의 사용량이 상기 제2운영체제(620)가 실행되는 상기 제2코어(110b)의 사용량의 두 배인 경우, 상기 버스(200)를 통한 시스템 자원으로의 액세스 권한을 할당하는 버스 중재유닛이 상기 제1코어(110a)의 상기 버스(200)에 대한 점유율이 2배가 되도록 시스템 자원으로의 액세스 권한을 할당할 수 있다.
또 다른 예로, 상기 프로세서(100) 내에 네개의 코어가 존재하고, 제1코어 내지 제3코어에서 제1운영체제(610)가 실행되고, 제4코어에서 제2운영체제(620)가 실행되는 경우, 상기 제1운영체제(610)가 실행되는 상기 제1코어 내지 상기 제3코어의 사용량이 상기 제2운영체제(620)가 실행되는 제4코어의 사용량의 2배인 경우, 상기 버스(200)를 통한 시스템 자원으로의 액세스 권한을 할당하는 버스 중재유닛은 상기 제1코어 내지 상기 제3코어의 상기 버스(200)에 대한 점유율이 상기 제4코어의 상기 버스(200)에 대한 점유율의 6배가 되도록 시스템 자원으로의 액세스 권한을 할당할 수 있다.
즉, 각각의 코어(110)의 사용량을 감시하여 각각의 코어(110) 사용량의 비에 따라 상기 버스(200)의 점유율도 조절되도록 상기 버스 중재유닛이 버스(200)를 통 한 시스템 자원으로의 액세스 권한을 할당할 수 있다.
이 경우 상기 버스 중재유닛은 상기 하이퍼바이저(700)와 통신하여 각각의 코어(110)의 사용량, 또는 각각의 운영체제를 실행하는 전체 코어(110)들의 사용량 평균 등의 정보를 상기 하이퍼바이저(700)로부터 수신할 수 있다.
본 발명의 권리는 위에서 설명된 실시예에 한정되지 않고 청구범위에 기재된 바에 의해 정의되며, 본 발명의 분야에서 통상의 지식을 가진 자가 청구범위에 기재된 권리범위 내에서 다양한 변형과 개작을 할 수 있다는 것은 자명하다.
도 1a는 본 발명의 제1실시예에 의한 다중 운영체제를 지원하는 단말기의 개략적인 구성을 도시한 블럭도.
도 1b는 본 발명의 제2실시예에 의한 다중 운영체제를 지원하는 단말기의 개략적인 구성을 도시한 블럭도.
도 2는 본 발명의 구체적인 실시예에 의한 다중 운영체제를 지원하는 단말기에서 멀티 코어에 할당되어 실행되는 복수의 운영체제를 나타낸 개념도.
도 3은 본 발명의 구체적인 실시예에 의한 다중 운영체제를 지원하는 단말기의 멀티 코어 할당방법을 단계적으로 도시한 흐름도.
도 4는 본 발명의 구체적인 실시예에 의한 다중 운영체제를 지원하는 단말기의 버스 할당 방법을 단계적으로 도시한 흐름도.
**도면의 주요 부분에 대한 부호의 설명**
100: 프로세서 110: 코어
120: 버스 인터페이스 200: 버스
300: 브릿지회로 400: 메모리
500: I/O 인터페이스 510: I/O 디바이스
610: 제1운영체제 620: 제2운영체제
700: 하이퍼바이저
Claims (14)
- 복수의 코어를 포함하는 프로세서;사용자의 선택에 따라 하나 이상의 운영체제를 상기 복수의 코어에 분배하여 실행되도록 하는 관리부;상기 프로세서 내에 포함된 복수의 코어가 시스템 자원으로 액세스하는 통로가 되는 버스와;상기 버스를 통한 시스템 자원으로의 액세스 권한을 할당하는 버스 중재유닛를 포함하고;상기 관리부는 각 코어의 사용량을 감지하여 상기 복수의 운영체제 각각을 실행하는 코어들의 평균 사용량에 따라 상기 운영체제를 상기 코어에 재분배하여 실행되는 것을 특징으로 하는 다중 운영체제를 지원하는 단말기.
- 제1항에 있어서,상기 관리부는,상기 프로세서 내에 포함된 복수의 코어 중 어느 하나임을 특징으로 하는 다중 운영체제를 지원하는 단말기.
- 제1항에 있어서,상기 단말기에는,둘 이상의 운영체제가 동시에 실행될 때 각각의 운영체제를 최초 실행할 코어 또는 코어의 수가 미리 지정됨을 특징으로 하는 다중 운영체제를 지원하는 단말 기.
- 제1항에 있어서,상기 관리부는,상기 복수의 운영체제 각각을 실행하는 코어들의 평균 사용량을 서로 비교하여 서로 다른 운영체제를 실행하는 코어들의 평균 사용량 사이의 차가 기 설정된 값 이상인 경우, 각각의 운영체제를 실행하는 코어의 수를 변경함을 특징으로 하는 다중 운영체제를 지원하는 단말기.
- 제1항에 있어서,상기 관리부는,상기 복수의 운영체제 각각을 실행하는 코어들의 평균 사용량 중 어느 하나의 운영체제에 대한 코어의 평균 사용량이 기준값 이상인 경우, 해당 운영체제를 실행하는 코어의 수를 증가시킴을 특징으로 하는 다중 운영체제를 지원하는 단말기.
- 제1항에 있어서,상기 관리부는,상기 복수의 운영체제 각각을 실행하는 코어들의 평균 사용량 중 어느 하나의 운영체제에 대한 코어의 평균 사용량이 일정값 이하인 경우, 해당 운영체제를 실행하는 코어의 수를 감소시킴을 특징으로 하는 다중 운영체제를 지원하는 단말기.
- 삭제
- 제1항에 있어서,상기 버스 중재유닛은,상기 관리부로부터 복수의 코어 각각에 대한 코어 사용량을 수신받아, 각각의 코어의 사용량의 비율과 각각의 코어의 버스 점유율이 서로 비례하도록 시스템 자원으로의 액세스 권한을 각각의 코어에 할당함을 특징으로 하는 다중 운영체제를 지원하는 단말기.
- 제1항에 있어서,상기 관리부는,상기 프로세서가 상기 복수의 운영체제 중 일부만을 실행 중인 경우, 상기 복수의 코어 중 일부는 동작하지 않도록 운영체제를 분배함을 특징으로 하는 다중 운영체제를 지원하는 단말기.
- 복수의 코어를 포함하는 프로세서를 구비한 단말기에서,(A) 사용자에 의해 선택되는 둘 이상의 운영체제에 대한 실행 명령이 프로세서에 입력되는 단계와;(B) 각각의 운영체제는 미리 설정된 바에 따라 상기 코어와 상기 운영체제 사이에 구비되는 관리부에 의해 복수의 코어들에 할당되어 실행되는 단계와;(C) 상기 복수의 코어들의 사용량이 감지되는 단계; 그리고(D) 상기 복수의 코어들의 사용량에 따라 운영체제가 상기 관리부에 의해 복수의 코어에 재할당되어 실행되는 단계;(E) 상기 복수의 운영체제를 실행하는 상기 복수의 코어들로부터 시스템 자원 요청이 발생하는 단계;(F) 각각의 코어의 버스 점유율이 각각의 코어들의 사용량 사이의 비율에 대응하도록 시스템 자원에 대한 액세스 권한을 할당하는 단계를 포함하여 수행됨을 특징으로 하는 다중 운영체제를 지원하는 단말기에 대한 시스템 자원 할당 방법.
- 제10항에 있어서,상기 (D)단계는,(D1) 동일한 운영체제를 실행하는 코어들의 평균 사용량이 상기 관리부에 의해 연산되는 단계와;(D2) 각각의 운영체제에 대하여 연산된 코어의 평균 사용량 사이의 차이가 상기 관리부에 의해 설정값과 비교되는 단계; 그리고(D3) 각각의 운영체제에 대한 코어의 평균 사용량 사이의 차이가 설정값 이상이면 상기 관리부가 코어의 평균 사용량이 높은 운영체제에 할당되는 코어의 수를 증가시키는 단계를 포함하여 수행됨을 특징으로 하는 다중 운영체제를 지원하는 단말기에 대한 시스템 자원 할당 방법.
- 제10항에 있어서,상기 시스템 자원 할당 방법은,(G) 복수의 운영체제가 복수의 코어에 할당되어 실행되던 중 복수의 운영체제 중 일부의 실행이 상기 관리부에 의해 종료되는 단계와;(H1) 상기 (G) 단계에서 복수의 운영체제 중 일부의 실행이 종료되면 상기 복수의 코어 중 일부의 상기 관리부가 동작을 중단시키는 단계를 더 포함하여 수행됨을 특징으로 하는 다중 운영체제를 지원하는 단말기에 대한 시스템 자원 할당 방법.
- 제10항에 있어서,상기 시스템 자원 할당 방법은,(G) 복수의 운영체제가 복수의 코어에 할당되어 실행되던 중 복수의 운영체제 중 일부의 실행이 상기 관리부에 의해 종료되는 단계와;(H2) 상기 (G) 단계에서 복수의 운영체제 중 일부의 실행이 종료되면, 상기 관리부가 나머지 운영체제를 상기 프로세서에 구비된 모든 코어에 할당하여 실행하는 단계를 더 포함하여 수행됨을 특징으로 하는 다중 운영체제를 지원하는 단말기에 대한 시스템 자원 할당 방법.
- 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080098733A KR101557995B1 (ko) | 2008-10-08 | 2008-10-08 | 다중 운영체제를 지원하는 단말기 및 그 단말기에 대한시스템 자원 할당 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080098733A KR101557995B1 (ko) | 2008-10-08 | 2008-10-08 | 다중 운영체제를 지원하는 단말기 및 그 단말기에 대한시스템 자원 할당 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100039674A KR20100039674A (ko) | 2010-04-16 |
KR101557995B1 true KR101557995B1 (ko) | 2015-10-19 |
Family
ID=42216030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080098733A KR101557995B1 (ko) | 2008-10-08 | 2008-10-08 | 다중 운영체제를 지원하는 단말기 및 그 단말기에 대한시스템 자원 할당 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101557995B1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101699770B1 (ko) * | 2010-09-06 | 2017-02-13 | 삼성전자주식회사 | 가상화 시스템 및 그 가상화 시스템에서 자원 할당 방법 |
KR101867960B1 (ko) | 2012-01-05 | 2018-06-18 | 삼성전자주식회사 | 매니 코어 시스템을 위한 운영체제 동적 재구성 장치 및 방법 |
KR101899811B1 (ko) * | 2012-04-04 | 2018-09-20 | 엘지전자 주식회사 | 이동 단말기 및 그 제어 방법, 이를 위한 기록 매체 |
KR101907441B1 (ko) * | 2016-11-29 | 2018-10-12 | (주) 구름네트웍스 | 복수의 운영체제에서 주변 장치를 구동시키는 방법 및 장치 |
WO2022204873A1 (zh) * | 2021-03-29 | 2022-10-06 | 华为技术有限公司 | 电子装置、系统级芯片和物理核分配方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100615787B1 (ko) * | 2003-02-20 | 2006-08-25 | 인터내셔널 비지네스 머신즈 코포레이션 | 공유 프로세싱 자원의 동적 재할당을 수행하는 방법, 장치 및 컴퓨터 판독 가능 저장 매체 |
-
2008
- 2008-10-08 KR KR1020080098733A patent/KR101557995B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100615787B1 (ko) * | 2003-02-20 | 2006-08-25 | 인터내셔널 비지네스 머신즈 코포레이션 | 공유 프로세싱 자원의 동적 재할당을 수행하는 방법, 장치 및 컴퓨터 판독 가능 저장 매체 |
Also Published As
Publication number | Publication date |
---|---|
KR20100039674A (ko) | 2010-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9152200B2 (en) | Resource and power management using nested heterogeneous hypervisors | |
EP3483730B1 (en) | Resource allocation method and resource manager | |
US8261281B2 (en) | Optimizing allocation of resources on partitions of a data processing system | |
CA2918091C (en) | System and method for memory channel interleaving with selective power or performance optimization | |
US20090217280A1 (en) | Shared-Resource Time Partitioning in a Multi-Core System | |
JP4705051B2 (ja) | 計算機システム | |
KR101680109B1 (ko) | 복수 코어 장치 및 그의 로드 조정 방법 | |
KR20160005367A (ko) | 전력-인식 스레드 스케줄링 및 프로세서들의 동적 사용 | |
US8782646B2 (en) | Non-uniform memory access (NUMA) enhancements for shared logical partitions | |
JPH03144847A (ja) | マルチプロセッサ・システムおよびそのプロセス同期方法 | |
US20080250219A1 (en) | Storage system in which resources are dynamically allocated to logical partition, and logical division method for storage system | |
KR101557995B1 (ko) | 다중 운영체제를 지원하는 단말기 및 그 단말기에 대한시스템 자원 할당 방법 | |
KR20110075295A (ko) | 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치 | |
CN104714846A (zh) | 资源处理方法、操作系统及设备 | |
KR101553650B1 (ko) | 멀티코어 시스템에서의 로드 밸런싱 장치 및 방법 | |
CN107003713B (zh) | 用于电力管理的逻辑分区的事件驱动的方法和系统 | |
CN111858056B (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
CN112395071A (zh) | 用于资源管理的方法、装置、电子设备和存储介质 | |
KR20140044596A (ko) | 멀티 코어 프로세서를 구비한 컴퓨팅 시스템 및 그것의 로드 밸런싱 방법 | |
CN103049328A (zh) | 计算机系统中内存资源分配方法 | |
KR20100062958A (ko) | 컴퓨팅 자원들을 제어하는 기술 | |
JP2003316752A (ja) | マルチプロセッサシステムおよびリソース割り当て方法 | |
JP2011253334A (ja) | 仮想計算機およびcpu割り当て方法 | |
CN115705247A (zh) | 一种运行进程的方法及相关设备 | |
CN116483536B (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 |