KR20140145748A - 다중 코어 환경에서 프로세스의 할당 방법 및 장치 - Google Patents

다중 코어 환경에서 프로세스의 할당 방법 및 장치 Download PDF

Info

Publication number
KR20140145748A
KR20140145748A KR20130068258A KR20130068258A KR20140145748A KR 20140145748 A KR20140145748 A KR 20140145748A KR 20130068258 A KR20130068258 A KR 20130068258A KR 20130068258 A KR20130068258 A KR 20130068258A KR 20140145748 A KR20140145748 A KR 20140145748A
Authority
KR
South Korea
Prior art keywords
core
performance
processing
cores
requested
Prior art date
Application number
KR20130068258A
Other languages
English (en)
Inventor
김상필
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR20130068258A priority Critical patent/KR20140145748A/ko
Priority to US14/303,964 priority patent/US20140373025A1/en
Publication of KR20140145748A publication Critical patent/KR20140145748A/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]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)

Abstract

프로세스의 할당 방법 및 장치가 개시된다. 프로세스의 할당 방법은, 다중 코어에 대한 모니터링을 통해 프로세스를 처리하기 위해 사용된 각 코어의 수행 성능 정보를 획득하는 단계, 획득된 각 코어의 수행 성능 정보를 기반으로, 요청된 프로세스를 처리하기 위한 코어를 결정하는 단계 및 결정된 코어에 요청된 프로세스를 제공하는 단계를 포함한다. 따라서, 프로세스의 처리 속도를 향상시킬 수 있고 코어의 전력 소모를 감소시킬 수 있다.

Description

다중 코어 환경에서 프로세스의 할당 방법 및 장치{METHOD FOR ALLOCATING PROCESS IN MULTI CORE ENVIRONMENT AND APPARATUS THEREFOR}
본 발명은 프로세스의 할당 기술에 관한 것으로, 더욱 상세하게는 서로 다른 성능을 가지는 코어에 프로세스를 할당하기 위한 프로세스의 할당 방법 및 장치에 관한 것이다.
다중 코어(multi core) 환경은 크게 동일한 성능을 가지는 복수의 코어를 사용하는 동종 다중 코어 환경, 서로 다른 성능을 가지는 복수의 코어를 사용하는 이종 다중 코어 환경으로 분류된다. 여기서, 서로 다른 성능을 가지는 복수의 코어는 서로 다른 클럭(clock) 주파수로 동작하는 코어를 의미한다.
다중 코어 환경에서는, 단일 코어 대신 다중 코어를 사용함으로써 전력의 사용을 줄일 수 있으나, 프로세스(process) 별로 요구되는 자원에 따라 프로세스를 코어에 적절히 할당하지 못하는 문제점이 있다. 즉, 프로세스 중에는 상대적으로 많은 자원을 요구하는 프로세스와 상대적으로 적은 자원을 요구하는 프로세스가 존재하며, 프로세스를 코어에 할당하는 경우 이를 고려하지 않으므로, 다중 코어가 제공할 수 있는 장점을 충분히 활용하지 못하는 문제점이 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 프로세스 별로 요구되는 자원에 따라 프로세스를 코어에 할당하기 위한 다중 코어 환경에서 프로세스의 할당 방법을 제공하는 데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 프로세스 별로 요구되는 자원에 따라 프로세스를 코어에 할당하기 위한 다중 코어 환경에서 프로세스의 할당 장치를 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 프로세스의 할당 방법은, 다중 코어에 대한 모니터링을 통해 프로세스를 처리하기 위해 사용된 각 코어의 수행 성능 정보를 획득하는 단계, 획득된 각 코어의 수행 성능 정보를 기반으로, 요청된 프로세스를 처리하기 위한 코어를 결정하는 단계 및 결정된 코어에 상기 요청된 프로세스를 제공하는 단계를 포함한다.
여기서, 상기 각 코어의 수행 성능 정보를 획득하는 단계는, 각 코어의 클럭 주파수를 기반으로 다중 코어를 복수의 그룹으로 분류하는 단계 및 분류된 코어 그룹에 대한 모니터링을 통해 프로세스를 처리하기 위해 사용된 각 코어 그룹의 수행 성능 정보를 획득하는 단계를 포함할 수 있다.
여기서, 상기 요청된 프로세스를 처리하기 위한 코어를 결정하는 단계는, 상기 각 코어의 수행 성능 정보로부터, 상기 요청된 프로세스와 동일한 프로세스를 처리하는데 사용된 각 코어의 수행 성능을 획득하는 단계 및 상기 각 코어의 수행 성능 중 미리 정의된 기준을 만족하는 수행 성능에 대응된 코어를 상기 요청된 프로세스를 처리하기 위한 코어로 결정하는 단계를 포함할 수 있다.
여기서, 상기 수행 성능에 대응된 코어를 상기 요청된 프로세스를 처리하기 위한 코어로 결정하는 단계는, 상기 각 코어의 수행 성능 중 미리 설정된 사용률보다 작은 수행 성능에 대응된 적어도 하나의 코어를 선택하는 단계 및 선택된 적어도 하나의 코어 중 미리 설정된 사용률에 가장 근접한 코어를 상기 요청된 프로세스를 처리하기 위한 코어로 결정하는 단계를 더 포함할 수 있다.
여기서, 상기 프로세스의 할당 방법은, 상기 요청된 프로세스가 처리되는 경우 상기 결정된 코어의 수행 성능을 획득하는 단계 및 상기 결정된 코어의 수행 성능을 기반으로 상기 각 코어의 수행 성능 정보를 갱신하는 단계를 더 포함할 수 있다.
여기서, 상기 다중 코어는 서로 다른 클럭 주파수를 가지는 코어들을 포함할 수 있다.
여기서, 상기 다중 코어는 동일한 명령어를 기반으로 동작하는 코어들을 포함할 수 있다.
상기 다른 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 프로세스의 할당 장치는, 다중 코어에 대한 모니터링을 통해 프로세스를 처리하기 위해 사용된 각 코어의 수행 성능 정보를 획득하고, 획득된 각 코어의 수행 성능 정보를 기반으로, 요청된 프로세스를 처리하기 위한 코어를 결정하고, 결정된 코어에 상기 요청된 프로세스를 제공하는 처리부 및 상기 처리부에서 처리되는 정보 및 처리된 정보를 저장하는 저장부를 포함한다.
여기서, 상기 처리부는, 상기 각 코어의 수행 성능 정보를 획득하는 경우, 각 코어의 클럭 주파수를 기반으로 다중 코어를 복수의 그룹으로 분류하고, 분류된 코어 그룹에 대한 모니터링을 통해 프로세스를 처리하기 위해 사용된 각 코어 그룹의 수행 성능 정보를 획득할 수 있다.
여기서, 상기 처리부는, 상기 요청된 프로세스를 처리하기 위한 코어를 결정하는 경우, 상기 각 코어의 수행 성능 정보로부터 상기 요청된 프로세스와 동일한 프로세스를 처리하는데 사용된 각 코어의 수행 성능을 획득하고, 상기 각 코어의 수행 성능 중 미리 정의된 기준을 만족하는 수행 성능에 대응된 코어를 상기 요청된 프로세스를 처리하기 위한 코어로 결정할 수 있다.
여기서, 상기 처리부는, 상기 수행 성능에 대응된 코어를 상기 요청된 프로세스를 처리하기 위한 코어로 결정하는 경우, 상기 각 코어의 수행 성능 중 미리 설정된 사용률보다 작은 수행 성능에 대응된 적어도 하나의 코어를 선택하고, 선택된 적어도 하나의 코어 중 미리 설정된 사용률에 가장 근접한 코어를 상기 요청된 프로세스를 처리하기 위한 코어로 결정할 수 있다.
여기서, 상기 처리부는, 상기 요청된 프로세스가 처리되는 경우 상기 결정된 코어의 수행 성능을 획득하고, 상기 결정된 코어의 수행 성능을 기반으로 상기 각 코어의 수행 성능 정보를 갱신할 수 있다.
여기서, 상기 다중 코어는 서로 다른 클럭 주파수를 가지는 코어들을 포함할 수 있다.
여기서, 상기 다중 코어는 동일한 명령어를 기반으로 동작하는 코어들을 포함할 수 있다.
본 발명에 의하면, 프로세스별로 요구되는 자원에 따라 프로세스를 코어에 할당함으로써, 프로세스의 처리 속도를 향상시킬 수 있고 코어의 전력 소모를 감소시킬 수 있다.
도 1은 프로세스를 코어에 할당하는 일 실시예를 도시한 개념도이다.
도 2는 본 발명의 일 실시 예에 따른 프로세스의 할당 방법을 도시한 개념도이다.
도 3은 본 발명의 일 실시 예에 따른 프로세스의 할당 방법을 도시한 흐름도이다.
도 4는 본 발명의 일 실시 예에 따른 프로세스의 할당 방법에 있어서 코어의 수행 성능 정보 획득 단계를 도시한 흐름도이다.
도 5는 본 발명의 일 실시 예에 따른 프로세스의 할당 방법에 있어서 코어를 결정하는 단계를 도시한 흐름도이다.
도 6은 본 발명의 일 실시 예에 따른 프로세스의 할당 장치를 도시한 블록도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
명세서 전체에서 다중 코어(multi core) 환경은 동일한 성능을 가지는 복수의 코어를 사용하는 동종 다중 코어 환경 또는 서로 다른 성능을 가지는 복수의 코어를 사용하는 이종 다중 코어 환경을 의미한다. 여기서, 서로 다른 성능을 가지는 복수의 코어는 서로 다른 클럭(clock) 주파수로 동작하는 코어를 의미한다.
프로세스(process)는 응용 프로그램(program)의 일부 또는 응용 프로그램의 전체를 의미한다.
코어의 수행 성능은 프로세스를 처리하는 능력을 의미한다. 즉, 하나의 동일한 프로세스를 처리하는데 요구되는 코어의 자원이 적을수록 높은 수행 성능을 가지는 코어를 의미하고, 하나의 동일한 프로세스를 처리하는데 요구되는 코어의 자원이 많을수록 낮은 수행 성능을 가지는 코어를 의미한다. 예를 들어, 프로세스 0을 처리하는데 코어 A의 자원은 78%, 코어 B의 자원은 91%, 코어 C의 자원은 100%가 요구되는 경우, 코어 A는 상대적으로 가장 높은 수행 성능을 가지는 코어이고, 코어 B는 코어 A보다 낮은 수행 성능을 가지는 코어이고, 코어 C는 상대적으로 가장 낮은 수행 성능을 가지는 코어이다.
도 1은 프로세스를 코어에 할당하는 일 실시예를 도시한 개념도이다.
도 1을 참조하면, 사용자 인터페이스(10)를 통해 복수의 프로세스(프로세스 0, 프로세스 1, 프로세스 2, …, 프로세스 N-1)가 생성되며, 스케줄러(30)는 복수의 프로세스(프로세스 0, 프로세스 1, 프로세스 2, …, 프로세스 N-1)를 다중 코어(코어 A0, 코어 B0, …, 코어 M0)에 할당하고, 코어 바인더(20)는 스케줄러가 할당한 결과에 기초하여 복수의 프로세스(프로세스 0, 프로세스 1, 프로세스 2, …, 프로세스 N-1)를 다중 코어(코어 A0, 코어 B0, …, 코어 M0)에 제공한다.
여기서, 다중 코어(코어 A0, 코어 B0, …, 코어 M0)는 동일한 성능(즉, 동일한 클럭 주파수)을 가지는 코어를 의미하며, 스케줄러(30)는 순차적 방식으로 복수의 프로세스(프로세스 0, 프로세스 1, 프로세스 2, …, 프로세스 N-1)를 다중 코어(코어 A0, 코어 B0, …, 코어 M0)에 할당한다. 즉, 사용자 인터페이스(10)를 통해 새로운 프로세스가 생성된 경우, 스케줄러(30)는 새로운 프로세스를 사용 가능한 코어에 순차적으로 할당한다. 예를 들어, 스케줄러(30)는 프로세스 0이 생성된 경우 프로세스 0을 코어 A0에 할당할 수 있고, 프로세스 1이 생성된 경우 프로세스 1을 코어 B0에 할당할 수 있다.
이와 같은 방법은, 프로세스 별로 요구되는 자원이 서로 다른 경우에도, 프로세스가 생성된 순서에 따라 프로세스를 순차적으로 코어에 할당하기 때문에 다중 코어를 효율적으로 사용하지 못하는 문제가 있다. 즉, 프로세스는 상대적으로 많은 자원을 요구하는 프로세스와 상대적으로 적은 자원을 요구하는 프로세스로 분류되는데, 동일한 성능을 가지는 코어들로 구성된 다중 코어 환경에서는 프로세스의 특성에 맞도록 프로세스를 코어에 할당할 수 없다. 예를 들어, 많은 자원을 요구하는 프로세스의 경우 상대적으로 저성능 코어에 할당되기 때문에 프로세스의 처리 속도가 느려지고, 적은 자원을 요구하는 프로세스의 경우 상대적으로 고성능 코어에 할당되기 때문에 불필요한 전력이 소모된다.
도 2는 프로세스를 코어에 할당하는 다른 실시예를 도시한 개념도이다.
도 2를 참조하면, 사용자 인터페이스(10)를 통해 복수의 프로세스(프로세스 0, 프로세스 1, 프로세스 2, …, 프로세스 N-1)가 생성된다. 모니터링부(40)는 모니터링 툴(41)을 사용하여 프로세스를 처리하기 위해 사용된 각 코어(또는, 코어 그룹)의 수행 성능 정보를 획득할 수 있고, 획득된 각 코어의 수행 성능 정보를 스케줄러(30)에 제공할 수 있다.
스케줄러(30)는 각 코어의 수행 성능 정보를 기반으로 복수의 프로세스(프로세스 0, 프로세스 1, 프로세스 2, …, 프로세스 N-1)를 다중 코어(코어 A0, 코어 B0, …, 코어 M0)에 할당할 수 있고, 코어 바인더(20)는 스케줄러(30)가 할당한 결과에 기초하여 복수의 프로세스(프로세스 0, 프로세스 1, 프로세스 2, …, 프로세스 N-1)를 다중 코어(코어 A0, 코어 B0, …, 코어 M0)에 제공할 수 있다.
여기서, 다중 코어(코어 A0, 코어 B0, …, 코어 M0)는 서로 다른 성능(즉, 서로 다른 클럭 주파수)을 가지는 코어를 의미하며, 스케줄러(30)는 순차적 방식이 아닌 각 코어의 수행 성능 정보를 기반으로 복수의 프로세스(프로세스 0, 프로세스 1, 프로세스 2, …, 프로세스 N-1)를 다중 코어(코어 A0, 코어 B0, …, 코어 M0)에 할당할 수 있다.
예를 들어, 프로세스 0이 코어 B0에서 처리되는 경우에 코어 B0의 수행 성능이 최적인 경우(예를 들어, 프로세스 0의 처리를 위해 요구된 코어 B0 자원이 80%인 경우) 스케줄러(30)는 프로세스 0을 코어 B0에 할당할 수 있다. 프로세스 1이 코어 A0에서 처리되는 경우에 코어 A0의 수행 성능이 최적인 경우(예를 들어, 프로세스 1의 처리를 위해 요구된 코어 A0 자원이 80%인 경우) 스케줄러(30)는 프로세스 1을 코어 A0에 할당할 수 있다.
도 3은 본 발명의 일 실시예에 따른 프로세스의 할당 방법을 도시한 흐름도이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 프로세스의 할당 방법은, 다중 코어에 대한 모니터링(monitoring)을 통해 프로세스를 처리하기 위해 사용된 각 코어의 수행 성능 정보를 획득하는 단계(S100), 획득된 각 코어의 수행 성능 정보를 기반으로, 요청된 프로세스를 처리하기 위한 코어를 결정하는 단계(S200) 및 결정된 코어에 요청된 프로세스를 제공하는 단계(S300)를 포함한다.
추가적으로, 프로세스의 할당 방법은 요청된 프로세스가 처리되는 경우 결정된 코어의 수행 성능을 획득하는 단계(S400) 및 결정된 코어의 수행 성능을 기반으로 각 코어의 수행 성능 정보를 갱신하는 단계(S500)를 더 포함할 수 있다.
다중 코어는 서로 다른 성능을 가지는 코어들로 구성될 수 있다. 즉, 다중 코어는 서로 다른 클럭 주파수를 가지는 코어들로 구성될 수 있고, 이러한 코어들은 동일한 명령어를 기반으로 동작할 수 있다.
수행 성능 정보는 복수의 프로세스에 대한 코어의 수행 성능을 포함하는 개념이고, 수행 성능은 하나의 프로세스에 대한 코어의 수행 성능을 포함하는 개념이다. 즉, 수행 성능 정보는 수행 성능보다 넓은 개념으로, 수행 성능 정보는 복수의 수행 성능을 포함한다. 예를 들어, 코어 A의 수행 성능은 프로세스 0에 대한 코어 A의 수행 성능을 의미하거나, 또는 프로세스 1에 대한 코어 A의 수행 성능을 의미하거나, 또는 프로세스 2에 대한 코어 A의 수행 성능을 의미한다. 한편, 코어 A의 수행 성능 정보는 프로세스 0에 대한 코어 A의 수행 성능, 프로세스 1에 대한 코어 A의 수행 성능, 프로세스 2에 대한 코어 A의 수행 성능 등을 포함한다.
여기서, 프로세스의 할당 방법의 각 단계는 도 6에 도시된 프로세스의 할당 장치에서 수행될 수 있으며, 프로세스의 할당 장치는 특정 단말의 일부 또는 전체를 의미할 수 있다.
여기서, 단말은 데스크탑 컴퓨터(Desktop Computer), 랩탑 컴퓨터(Laptop Computer), 태블릿(Tablet) PC, 무선전화기(Wireless Phone), 모바일폰(Mobile Phone), 스마트폰(Smart Phone), e-book 리더기, PMP(Portable Multimedia Player), 휴대용 게임기, 네비게이션(Navigation) 장치, 디지털 카메라(Digital Camera), DMB (Digital Multimedia Broadcasting) 재생기, 디지털 음성 녹음기(Digital Audio Recorder), 디지털 음성 재생기(Digital Audio Player), 디지털 영상 녹화기(Digital Picture Recorder), 디지털 영상 재생기(Digital Picture Player), 디지털 동영상 녹화기(Digital Video Recorder), 디지털 동영상 재생기(Digital Video Player) 등을 의미할 수 있다.
프로세스의 할당 장치는 다중 코어에 대한 모니터링을 통해, 프로세스를 처리하기 위해 사용된 각 코어의 수행 성능 정보를 획득할 수 있다(S100). 또한, 프로세스의 할당 장치는 각 코어의 수행 성능 정보를 데이터베이스(database)화할 수 있으며, 추후에 요청되는 프로세스를 처리하기 위해 데이터베이스화된 각 코어의 수행 성능 정보를 사용할 수 있다.
예를 들어, 다중 코어가 서로 다른 성능을 가지는 코어 A, 코어 B 및 코어 C로 구성되고, 프로세스 0, 프로세스 1, 프로세스 2 및 프로세스 3이 다중 코어에서 처리되는 경우, 프로세스 할당 장치는 아래 표 1과 같이 프로세스를 처리하기 위해 사용된 각 코어의 수행 성능 정보를 획득할 수 있다.
Figure pat00001
여기서, 코어 A는 다중 코어 중에서 성능이 가장 좋은(즉, 클럭 주파수가 가장 높은) 코어를 의미하고, 코어 B는 코어 A보다 성능이 낮은 코어를 의미하고, 코어 C는 다중 코어 중에서 성능이 가장 나쁜(즉, 클럭 주파수가 가장 낮은) 코어를 의미한다.
코어 A를 살펴보면, 프로세스 0을 처리하는데 요구된 코어 A 자원은 78%이고, 프로세스 1을 처리하는데 요구된 코어 A 자원은 24%이고, 프로세스 2를 처리하는데 요구된 코어 A 자원은 10%이고, 프로세스 3을 처리하는데 요구된 코어 A 자원은 50%이다.
코어 B를 살펴보면, 프로세스 0을 처리하는데 요구된 코어 B 자원은 91%이고, 프로세스 1을 처리하는데 요구된 코어 B 자원은 52%이고, 프로세스 2를 처리하는데 요구된 코어 B 자원은 30%이고, 프로세스 3을 처리하는데 요구된 코어 B 자원은 70%이다.
코어 C를 살펴보면, 프로세스 0을 처리하는데 요구된 코어 C 자원은 100%이고, 프로세스 1을 처리하는데 요구된 코어 C 자원은 83%이고, 프로세스 2를 처리하는데 요구된 코어 C 자원은 50%이고, 프로세스 3을 처리하는데 요구된 코어 C 자원은 90%이다.
여기서, 프로세스 0을 처리하는데 요구된 코어 C 자원은 100%인데, 이는 프로세스 0을 처리하는데 사용된 코어 C의 수행 성능이 상대적으로 낮아 프로세스 0을 처리하는데 시간이 지연될 수 있음을 의미한다.
도 4는 본 발명의 일 실시예에 따른 프로세스의 할당 방법에 있어서 코어의 수행 성능 정보 획득 단계를 도시한 흐름도이다.
도 4를 참조하면, 각 코어의 수행 성능 정보를 획득하는 경우, 프로세스의 할당 장치는 각 코어의 클럭 주파수를 기반으로 다중 코어를 복수의 그룹으로 분류할 수 있고(S110), 분류된 코어 그룹에 대한 모니터링을 통해 프로세스를 처리하기 위해 사용된 각 코어 그룹의 수행 성능 정보를 획득할 수 있다(S120).
예를 들어, 다중 코어가 2.5GHz를 가지는 코어들, 2GHz를 가지는 코어들 및 1.5GHz를 가지는 코어들로 구성되는 경우, 프로세스의 할당 장치는 2.5GHz를 가지는 코어들을 코어 A 그룹으로 분류할 수 있고, 2GHz를 가지는 코어들을 코어 B 그룹으로 분류할 수 있고, 1.5GHz를 가지는 코어들을 코어 C 그룹으로 분류할 수 있다.
프로세스를 처리하기 위해 사용된 각 코어 그룹의 수행 성능 정보를 획득하는 경우, 프로세스의 할당 장치는 각 코어 그룹에 포함된 하나의 코어의 수행 성능 정보를 코어 그룹의 수행 성능 정보로 획득할 수 있고, 또는 각 코어 그룹에 포함된 복수의 코어의 수행 성능 정보에 대한 평균값을 코어 그룹의 수행 성능 정보로 획득할 수 있고, 또는 각 코어 그룹에 포함된 모든 코어의 수행 성능 정보에 대한 평균값을 코어 그룹의 수행 성능 정보로 획득할 수 있다.
도 5는 본 발명의 일 실시예에 따른 프로세스의 할당 방법에 있어서 코어를 결정하는 단계를 도시한 흐름도이다.
도 5를 참조하면, 요청된 프로세스를 처리하기 위한 코어를 결정하는 경우, 프로세스의 할당 장치는 각 코어의 수행 성능 정보로부터, 요청된 프로세스와 동일한 프로세스를 처리하는데 사용된 각 코어의 수행 성능을 획득할 수 있고(S210), 각 코어의 수행 성능 중 미리 정의된 기준을 만족하는 수행 성능에 대응된 코어를 요청된 프로세스를 처리하기 위한 코어로 결정할 수 있다(S220).
예를 들어, 각 코어의 수행 성능 정보가 상기 표 1과 동일한 경우에 있어서, 프로세스 0의 처리 요청을 받은 경우 프로세스의 할당 장치는 프로세스 0을 처리하는데 사용된 각 코어의 수행 성능(즉, 코어 A: 78%, 코어 B: 91%, 코어 C:100%)을 획득할 수 있고, 프로세스 1의 처리 요청을 받은 경우 프로세스의 할당 장치는 프로세스 1을 처리하는데 사용된 각 코어의 수행 성능(즉, 코어 A: 24%, 코어 B: 52%, 코어 C: 83%)을 획득할 수 있다. 이와 같은 방법을 통해, 프로세스의 할당 장치는 프로세스 2와 프로세스 3을 처리하는데 사용된 각 코어의 수행 성능을 획득할 수 있다.
또한, 프로세스의 처리 장치는 각 코어 그룹의 수행 성능 정보로부터, 요청된 프로세스와 동일한 프로세스를 처리하는데 사용된 각 코어 그룹의 수행 성능을 획득할 수 있다.
단계 S220에서, 프로세스의 처리 장치는 각 코어의 수행 성능 중 미리 설정된 사용률보다 작은 수행 성능에 대응된 적어도 하나의 코어를 선택할 수 있고(S221), 선택된 적어도 하나의 코어 중 미리 설정된 사용률에 가장 근접한 코어를 요청된 프로세스를 처리하기 위한 코어로 결정할 수 있다(S222).
예를 들어, 각 코어의 수행 성능 정보가 상기 표 1과 동일한 경우에 있어서, 미리 설정된 사용률(즉, 프로세스를 처리하는데 요구된 자원)이 80%인 경우 프로세스의 처리 장치는 프로세스 0을 처리하기 위한 코어로 코어 A를 선택할 수 있고, 미리 설정된 사용률에 가장 근접한 코어 A를 프로세스 0을 처리하기 위한 코어로 결정할 수 있다.
프로세스 1의 경우, 프로세스 처리 장치는 프로세스 1을 처리하기 위한 코어로 코어 A 및 코어 B(즉, 미리 설정된 사용률(80%)보다 낮은 코어)를 선택할 수 있고, 미리 설정된 사용률에 가장 근접한 코어 B를 프로세스 1을 처리하기 위한 코어로 결정할 수 있다.
프로세스 2의 경우, 프로세스 처리 장치는 프로세스 2를 처리하기 위한 코어로 코어 A, 코어 B 및 코어 C(즉, 미리 설정된 사용률(80%)보다 낮은 코어)를 선택할 수 있고, 미리 설정된 사용률에 가장 근접한 코어 C를 프로세스 2를 처리하기 위한 코어로 결정할 수 있다.
프로세스 3의 경우, 프로세스 처리 장치는 프로세스 3을 처리하기 위한 코어로 코어 A 및 코어 B(즉, 미리 설정된 사용률(80%)보다 낮은 코어)를 선택할 수 있고, 미리 설정된 사용률에 가장 근접한 코어 B를 프로세스를 3을 처리하기 위한 코어로 결정할 수 있다.
이와 같은 과정을 통해 결정된 코어는 아래 표 2와 같다.
Figure pat00002
또한, 프로세스의 처리 장치는 각 코어 그룹의 수행 성능 중 미리 설정된 사용률보다 작은 수행 성능에 대응된 적어도 하나의 코어 그룹을 선택할 수 있고, 선택된 적어도 하나의 코어 그룹 중 미리 설정된 사용률에 가장 근접한 코어 그룹을 요청된 프로세스를 처리하기 위한 코어 그룹으로 결정할 수 있다
다시 도 3을 참조하면, 프로세스의 처리 장치는 단계 S200을 통해 결정된 코어(또는, 코어 그룹)에 요청된 프로세스를 제공할 수 있다(S300).
예를 들어, 프로세스 별 코어의 할당 정보가 상기 표 2와 동일한 경우에 있어서, 프로세스의 처리 장치는 프로세스 0을 코어 A에 제공할 수 있고, 프로세스 1을 코어 B에 제공할 수 있고, 프로세스 2를 코어 C에 제공할 수 있고, 프로세스 3을 코어 B에 제공할 수 있다. 이때, 프로세스의 처리 장치는 프로세스를 해당 코어에 제공하도록 코어 바인더(20, 도 2참조)에 지시할 수 있고, 코어 바인더는 지시를 기반으로 프로세스를 해당 코어에 제공할 수 있다.
추가적으로, 프로세스의 할당 장치는 요청된 프로세스가 처리되는 경우 결정된 코어(또는, 코어 그룹)의 수행 성능을 획득할 수 있고(S400), 결정된 코어(또는, 코어 그룹)의 수행 성능을 기반으로 각 코어(또는, 코어 그룹)의 수행 성능 정보를 갱신할 수 있다(S500).
예를 들어, 프로세스별 코어의 할당 정보가 상기 표 2와 동일한 경우에 있어서, 프로세스의 처리 장치는 프로세스 0이 처리되는 경우 코어 A의 수행 성능을 획득할 수 있고, 이를 기반으로 코어 A의 수행 성능 정보(즉, 프로세스 0에 대한 코어 A의 수행 성능)를 갱신할 수 있다. 프로세스 1이 처리되는 경우 프로세스의 처리 장치는 코어 B의 수행 성능을 획득할 수 있고, 이를 기반으로 코어 B의 수행 성능 정보(즉, 프로세스 1에 대한 코어 B의 수행 성능)를 갱신할 수 있다.
프로세스 2가 처리되는 경우 프로세스의 처리 장치는 코어 C의 수행 성능을 획득할 수 있고, 이를 기반으로 코어 C의 수행 성능 정보(즉, 프로세스 2에 대한 코어 C의 수행 성능)를 갱신할 수 있다. 프로세스 3이 처리되는 경우 프로세스의 처리 장치는 코어 B의 수행 성능을 획득할 수 있고, 이를 기반으로 코어 B의 수행 성능 정보(즉, 프로세스 3에 대한 코어 B의 수행 성능)를 갱신할 수 있다.
아래 표 3은 본 발명에 따른 프로세스의 할당 방법에 의한 결과이고, 표 4는 종래 프로세스의 할당 방법(즉, 순차적 방식에 따른 할당 방법)에 의한 결과이다.
Figure pat00003
Figure pat00004
표 3 및 표 4를 살펴보면, 프로세스 0의 경우 종래 프로세스의 할당 방법에 의하면 코어 C에 할당될 수 있으므로, 이 경우 본 발명에 따른 프로세스의 할당 방법에 비해 프로세스 0의 처리가 지연되는 문제가 있다. 프로세스 1의 경우 종래 프로세스의 할당 방법에 의하면 코어 A에 할당될 수 있으므로, 이 경우 본 발명에 따른 프로세스의 할당 방법에 비해 코어의 전력 소모가 증가하는 문제가 있다.
프로세스 2의 경우 종래 프로세스의 할당 방법에 의하면 코어 B에 할당될 수 있으므로, 이 경우 본 발명에 따른 프로세스의 할당 방법에 비해 코어의 전력 소모가 증가하는 문제가 있다. 프로세스 3의 경우 종래 프로세스의 할당 방법에 의하면 코어 C에 할당될 수 있으므로, 이 경우 본 발명에 따른 프로세스의 할당 방법에 비해 코어의 수행 성능이 낮아 프로세스 3의 처리 지연이 발생할 가능성이 존재한다.
본 발명에 따른 프로세스의 할당 방법은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
도 6은 본 발명의 일 실시예에 따른 프로세스의 할당 장치를 도시한 블록도이다.
도 6을 참조하면, 프로세스의 할당 장치(50)는 처리부(51) 및 저장부(52)를 포함한다. 처리부(51)는 다중 코어에 대한 모니터링을 통해 프로세스를 처리하기 위해 사용된 각 코어의 수행 성능 정보를 획득할 수 있고, 획득된 각 코어의 수행 성능 정보를 기반으로, 요청된 프로세스를 처리하기 위한 코어를 결정할 수 있고, 결정된 코어에 요청된 프로세스를 제공할 수 있다.
여기서, 다중 코어는 서로 다른 성능을 가지는 코어들로 구성될 수 있다. 즉, 다중 코어는 서로 다른 클럭 주파수를 가지는 코어들로 구성될 수 있고, 이러한 코어들은 동일한 명령어를 기반으로 동작할 수 있다.
처리부(51)는 다중 코어에 대한 모니터링을 수행할 수 있으며, 모니터링 결과 상기 표 1과 같이 프로세스를 처리하기 위해 사용된 각 코어의 수행 성능 정보를 획득할 수 있다. 또한, 처리부(51)는 각 코어의 수행 성능 정보를 데이터베이스화할 수 있으며, 추후에 요청되는 프로세스를 처리하기 위해 데이터베이스화된 각 코어의 수행 성능 정보를 사용할 수 있다.
각 코어의 수행 성능 정보를 획득하는 경우, 처리부(51)는 각 코어의 클럭 주파수를 기반으로 다중 코어를 복수의 그룹으로 분류할 수 있고, 분류된 코어 그룹에 대한 모니터링을 통해 프로세스를 처리하기 위해 사용된 각 코어 그룹의 수행 성능 정보를 획득할 수 있다.
예를 들어, 다중 코어가 2.5GHz를 가지는 코어들, 2GHz를 가지는 코어들 및 1.5GHz를 가지는 코어들로 구성되는 경우, 처리부(51)는 2.5GHz를 가지는 코어들을 코어 A 그룹으로 분류할 수 있고, 2GHz를 가지는 코어들을 코어 B 그룹으로 분류할 수 있고, 1.5GHz를 가지는 코어들을 코어 C 그룹으로 분류할 수 있다.
프로세스를 처리하기 위해 사용된 각 코어 그룹의 수행 성능 정보(즉, 사용률)를 획득하는 경우, 처리부(51)는 각 코어 그룹에 포함된 하나의 코어의 수행 성능 정보를 코어 그룹의 수행 성능 정보로 획득할 수 있고, 또는 각 코어 그룹에 포함된 복수의 코어의 수행 성능 정보에 대한 평균값을 코어 그룹의 수행 성능 정보로 획득할 수 있고, 또는 각 코어 그룹에 포함된 모든 코어의 수행 성능 정보에 대한 평균값을 코어 그룹의 수행 성능 정보로 획득할 수 있다.
요청된 프로세스를 처리하기 위한 코어를 결정하는 경우, 처리부(51)는 각 코어의 수행 성능 정보로부터, 요청된 프로세스와 동일한 프로세스를 처리하는데 사용된 각 코어의 수행 성능을 획득할 수 있고, 각 코어의 수행 성능 중 미리 정의된 기준을 만족하는 수행 성능에 대응된 코어를 요청된 프로세스를 처리하기 위한 코어로 결정할 수 있다.
예를 들어, 각 코어의 수행 성능 정보가 상기 표 1과 동일한 경우에 있어서, 프로세스 0의 처리 요청을 받은 경우 처리부(51)는 프로세스 0을 처리하는데 사용된 각 코어의 수행 성능(즉, 코어 A: 78%, 코어 B: 91%, 코어 C:100%)을 획득할 수 있고, 프로세스 1의 처리 요청을 받은 경우 처리부(51)는 프로세스 1을 처리하는데 사용된 각 코어의 수행 성능(즉, 코어 A: 24%, 코어 B: 52%, 코어 C: 83%)을 획득할 수 있다. 이러한 방법을 통해, 처리부(51)는 프로세스 2와 프로세스 3을 처리하는데 사용된 각 코어의 수행 성능을 획득할 수 있다.
또한, 처리부(51)는 각 코어 그룹의 수행 성능 정보로부터, 요청된 프로세스와 동일한 프로세스를 처리하는데 사용된 각 코어 그룹의 수행 성능을 획득할 수 있다.
미리 정의된 기준을 만족하는 수행 성능에 대응된 코어를 요청된 프로세스를 처리하기 위한 코어로 결정하는 경우, 처리부(51)는 각 코어의 수행 성능 중 미리 설정된 사용률보다 작은 수행 성능에 대응된 적어도 하나의 코어를 선택할 수 있고, 선택된 적어도 하나의 코어 중 미리 설정된 사용률에 가장 근접한 코어를 요청된 프로세스를 처리하기 위한 코어로 결정할 수 있다.
예를 들어, 각 코어의 수행 성능 정보가 상기 표 1과 동일한 경우에 있어서, 미리 설정된 사용률(즉, 프로세스를 처리하기 위해 요구된 코어 자원)이 80%인 경우 처리부(51)는 프로세스 0을 처리하기 위한 코어로 코어 A를 선택할 수 있고, 미리 설정된 사용률(80%)에 가장 근접한 코어 A를 프로세스 0을 처리하기 위한 코어로 결정할 수 있다. 이러한 방법을 통해, 처리부(51)는 코어 B를 프로세스 1을 처리하기 위한 코어로 결정할 수 있고, 코어 C를 프로세스 2를 처리하기 위한 코어로 결정할 수 있고, 코어 B를 프로세스를 3을 처리하기 위한 코어로 결정할 수 있다.
처리부(51)는 결정된 코어(또는, 코어 그룹)에 요청된 프로세스를 제공할 수 있다.
예를 들어, 프로세스별 코어의 할당 정보가 상기 표 2와 동일한 경우에 있어서, 처리부(51)는 프로세스 0을 코어 A에 제공할 수 있고, 프로세스 1을 코어 B에 제공할 수 있고, 프로세스 2를 코어 C에 제공할 수 있고, 프로세스 3을 코어 B에 제공할 수 있다. 이때, 처리부(51)는 프로세스를 해당 코어에 제공하도록 코어 바인더(20, 도 2참조)에 지시할 수 있고, 코어 바인더는 지시를 기반으로 프로세스를 해당 코어에 제공할 수 있다.
추가적으로, 처리부(51)는 요청된 프로세스가 처리되는 경우 결정된 코어(또는, 코어 그룹)의 수행 성능을 획득할 수 있고, 결정된 코어(또는, 코어 그룹)의 수행 성능을 기반으로 각 코어(또는, 코어 그룹)의 수행 성능 정보를 갱신할 수 있다.
예를 들어, 프로세스 별 코어의 할당 정보가 상기 표 2와 동일한 경우에 있어서, 처리부(51)는 프로세스 0이 처리되는 경우 코어 A의 수행 성능을 획득할 수 있고, 이를 기반으로 코어 A의 수행 성능 정보(즉, 프로세스 0에 대한 코어 A의 수행 성능)를 갱신할 수 있다. 이러한 방법을 통해, 처리부(51)는 프로세스 1에 대한 코어 B의 수행 성능, 프로세스 2에 대한 코어 C의 수행 성능 및 프로세스 3에 대한 코어 B의 수행 성능을 갱신할 수 있다.
저장부(52)는 처리부(51)에서 처리되는 정보 및 처리된 정보를 저장할 수 있다. 즉, 저장부(52)는 각 코어(또는, 코어 그룹)의 성능 정보, 각 코어(또는, 코어 그룹)의 수행 성능 정보, 프로세스의 할당 정보, 미리 정의된 기준, 미리 설정된 사용률 등을 저장할 수 있다.
여기서, 처리부(51)는 프로세서(processor) 및 메모리(memory)를 포함할 수 있다. 프로세서는 범용의 프로세서(예를 들어, CPU(Central Processing Unit) 및/또는 GPU(Graphics Processing Unit) 등) 또는 프로세스의 할당 방법의 수행을 위한 전용의 프로세서를 의미할 수 있다. 메모리에는 프로세스의 할당 방법의 수행을 위한 프로그램 코드(program code)가 저장될 수 있다. 즉, 프로세서는 메모리에 저장된 프로그램 코드를 독출할 수 있고, 독출된 프로그램 코드를 기반으로 가상 분장 방법의 각 단계를 수행할 수 있다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
50: 프로세스의 할당 장치
51: 처리부
52: 저장부

Claims (14)

  1. 다중 코어(core)에 대한 모니터링(monitoring)을 통해 프로세스(process)를 처리하기 위해 사용된 각 코어의 수행 성능 정보를 획득하는 단계;
    획득된 각 코어의 수행 성능 정보를 기반으로, 요청된 프로세스를 처리하기 위한 코어를 결정하는 단계; 및
    결정된 코어에 상기 요청된 프로세스를 제공하는 단계를 포함하는 것을 특징으로 하는 프로세스의 할당 방법.
  2. 청구항 1에 있어서,
    상기 각 코어의 수행 성능 정보를 획득하는 단계는,
    각 코어의 클럭(clock) 주파수를 기반으로 다중 코어를 복수의 그룹으로 분류하는 단계; 및
    분류된 코어 그룹에 대한 모니터링을 통해 프로세스를 처리하기 위해 사용된 각 코어 그룹의 수행 성능 정보를 획득하는 단계를 포함하는 것을 특징으로 하는 프로세스의 할당 방법.
  3. 청구항 1에 있어서,
    상기 요청된 프로세스를 처리하기 위한 코어를 결정하는 단계는,
    상기 각 코어의 수행 성능 정보로부터, 상기 요청된 프로세스와 동일한 프로세스를 처리하는데 사용된 각 코어의 수행 성능을 획득하는 단계; 및
    상기 각 코어의 수행 성능 중 미리 정의된 기준을 만족하는 수행 성능에 대응된 코어를 상기 요청된 프로세스를 처리하기 위한 코어로 결정하는 단계를 포함하는 것을 특징으로 하는 프로세스의 할당 방법.
  4. 청구항 3에 있어서,
    상기 수행 성능에 대응된 코어를 상기 요청된 프로세스를 처리하기 위한 코어로 결정하는 단계는,
    상기 각 코어의 수행 성능 중 미리 설정된 사용률보다 작은 수행 성능에 대응된 적어도 하나의 코어를 선택하는 단계; 및
    선택된 적어도 하나의 코어 중 미리 설정된 사용률에 가장 근접한 코어를 상기 요청된 프로세스를 처리하기 위한 코어로 결정하는 단계를 더 포함하는 것을 특징으로 하는 프로세스의 할당 방법.
  5. 청구항 1에 있어서,
    상기 프로세스의 할당 방법은,
    상기 요청된 프로세스가 처리되는 경우 상기 결정된 코어의 수행 성능을 획득하는 단계; 및
    상기 결정된 코어의 수행 성능을 기반으로 상기 각 코어의 수행 성능 정보를 갱신하는 단계를 더 포함하는 것을 특징으로 하는 프로세스의 할당 방법.
  6. 청구항 1에 있어서,
    상기 다중 코어는 서로 다른 클럭 주파수를 가지는 코어들을 포함하는 것을 특징으로 하는 프로세스의 할당 방법.
  7. 청구항 1에 있어서,
    상기 다중 코어는 동일한 명령어를 기반으로 동작하는 코어들을 포함하는 것을 특징으로 하는 프로세스의 할당 방법.
  8. 다중 코어(core)에 대한 모니터링(monitoring)을 통해 프로세스(process)를 처리하기 위해 사용된 각 코어의 수행 성능 정보를 획득하고, 획득된 각 코어의 수행 성능 정보를 기반으로, 요청된 프로세스를 처리하기 위한 코어를 결정하고, 결정된 코어에 상기 요청된 프로세스를 제공하는 처리부; 및
    상기 처리부에서 처리되는 정보 및 처리된 정보를 저장하는 저장부를 포함하는 것을 특징으로 하는 프로세스의 할당 장치.
  9. 청구항 8에 있어서,
    상기 처리부는,
    상기 각 코어의 수행 성능 정보를 획득하는 경우, 각 코어의 클럭(clock) 주파수를 기반으로 다중 코어를 복수의 그룹으로 분류하고, 분류된 코어 그룹에 대한 모니터링을 통해 프로세스를 처리하기 위해 사용된 각 코어 그룹의 수행 성능 정보를 획득하는 것을 특징으로 하는 프로세스의 할당 장치.
  10. 청구항 8에 있어서,
    상기 처리부는,
    상기 요청된 프로세스를 처리하기 위한 코어를 결정하는 경우, 상기 각 코어의 수행 성능 정보로부터 상기 요청된 프로세스와 동일한 프로세스를 처리하는데 사용된 각 코어의 수행 성능을 획득하고, 상기 각 코어의 수행 성능 중 미리 정의된 기준을 만족하는 수행 성능에 대응된 코어를 상기 요청된 프로세스를 처리하기 위한 코어로 결정하는 것을 특징으로 하는 프로세스의 할당 장치.
  11. 청구항 10에 있어서,
    상기 처리부는,
    상기 수행 성능에 대응된 코어를 상기 요청된 프로세스를 처리하기 위한 코어로 결정하는 경우, 상기 각 코어의 수행 성능 중 미리 설정된 사용률보다 작은 수행 성능에 대응된 적어도 하나의 코어를 선택하고, 선택된 적어도 하나의 코어 중 미리 설정된 사용률에 가장 근접한 코어를 상기 요청된 프로세스를 처리하기 위한 코어로 결정하는 것을 특징으로 하는 프로세스의 할당 장치.
  12. 청구항 8에 있어서,
    상기 처리부는,
    상기 요청된 프로세스가 처리되는 경우 상기 결정된 코어의 수행 성능을 획득하고, 상기 결정된 코어의 수행 성능을 기반으로 상기 각 코어의 수행 성능 정보를 갱신하는 것을 특징으로 하는 프로세스의 할당 장치.
  13. 청구항 8에 있어서,
    상기 다중 코어는 서로 다른 클럭 주파수를 가지는 코어들을 포함하는 것을 특징으로 하는 프로세스의 할당 장치.
  14. 청구항 8에 있어서,
    상기 다중 코어는 동일한 명령어를 기반으로 동작하는 코어들을 포함하는 것을 특징으로 하는 프로세스의 할당 장치.
KR20130068258A 2013-06-14 2013-06-14 다중 코어 환경에서 프로세스의 할당 방법 및 장치 KR20140145748A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR20130068258A KR20140145748A (ko) 2013-06-14 2013-06-14 다중 코어 환경에서 프로세스의 할당 방법 및 장치
US14/303,964 US20140373025A1 (en) 2013-06-14 2014-06-13 Method for allocating process in multi-core environment and apparatus therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130068258A KR20140145748A (ko) 2013-06-14 2013-06-14 다중 코어 환경에서 프로세스의 할당 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20140145748A true KR20140145748A (ko) 2014-12-24

Family

ID=52020451

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130068258A KR20140145748A (ko) 2013-06-14 2013-06-14 다중 코어 환경에서 프로세스의 할당 방법 및 장치

Country Status (2)

Country Link
US (1) US20140373025A1 (ko)
KR (1) KR20140145748A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021066347A1 (ko) * 2019-10-04 2021-04-08 삼성전자 주식회사 전자 장치에서 네트워크 데이터 속도 가속 방법 및 장치

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101927233B1 (ko) 2015-03-16 2018-12-12 한국전자통신연구원 이기종 멀티-코어 시스템의 gpu 전력 측정 방법
KR102352756B1 (ko) 2015-04-29 2022-01-17 삼성전자주식회사 애플리케이션 프로세서, 시스템 온 칩, 및 이를 포함하는 컴퓨팅 장치
US10372493B2 (en) * 2015-12-22 2019-08-06 Intel Corporation Thread and/or virtual machine scheduling for cores with diverse capabilities
US10073718B2 (en) 2016-01-15 2018-09-11 Intel Corporation Systems, methods and devices for determining work placement on processor cores
CN107590057B (zh) * 2017-09-28 2021-06-15 努比亚技术有限公司 冻屏监测与解决方法、移动终端及计算机可读存储介质
GB2584935A (en) * 2019-04-16 2020-12-23 Fujitsu Client Computing Ltd Information processing device, information processing system, and computer program product

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7996839B2 (en) * 2003-07-16 2011-08-09 Hewlett-Packard Development Company, L.P. Heterogeneous processor core systems for improved throughput
US7996346B2 (en) * 2007-12-19 2011-08-09 International Business Machines Corporation Method for autonomic workload distribution on a multicore processor
US8276142B2 (en) * 2009-10-09 2012-09-25 Intel Corporation Hardware support for thread scheduling on multi-core processors
US8381004B2 (en) * 2010-05-26 2013-02-19 International Business Machines Corporation Optimizing energy consumption and application performance in a multi-core multi-threaded processor system
US8874941B2 (en) * 2011-06-14 2014-10-28 Utah State University Apparatus and method for designing an architecturally homogeneous power-performance heterogeneous multicore processor using simulated annealing optimization
US8996902B2 (en) * 2012-10-23 2015-03-31 Qualcomm Incorporated Modal workload scheduling in a heterogeneous multi-processor system on a chip

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021066347A1 (ko) * 2019-10-04 2021-04-08 삼성전자 주식회사 전자 장치에서 네트워크 데이터 속도 가속 방법 및 장치

Also Published As

Publication number Publication date
US20140373025A1 (en) 2014-12-18

Similar Documents

Publication Publication Date Title
KR20140145748A (ko) 다중 코어 환경에서 프로세스의 할당 방법 및 장치
KR101799253B1 (ko) 다중 클러스터 이종 프로세서 아키텍처에서 동적 캐시 확장을 제공하기 위한 시스템 및 방법
EP3155521B1 (en) Systems and methods of managing processor device power consumption
US9612648B2 (en) System and method for memory channel interleaving with selective power or performance optimization
US9898338B2 (en) Network computer system and method for dynamically changing execution sequence of application programs
US9645855B2 (en) Job scheduling optimization based on ratio of stall to active cycles
US9483319B2 (en) Job scheduling apparatus and method therefor
RU2425412C2 (ru) Мультимедиа-процессор, многопоточный по требованию
EP3631628A1 (en) Method and apparatus for implementing virtual gpu and system
US20110161637A1 (en) Apparatus and method for parallel processing
US20140331235A1 (en) Resource allocation apparatus and method
CN109906421B (zh) 基于线程重要性的处理器核划分
US20110161978A1 (en) Job allocation method and apparatus for a multi-core system
US11347563B2 (en) Computing system and method for operating computing system
CN113419846B (zh) 资源配置方法和装置、电子设备及计算机可读存储介质
KR20180089273A (ko) 비순차적 리소스 할당을 구현하는 방법 및 장치
CN111104219A (zh) 虚拟核心与物理核心的绑定方法、装置、设备及存储介质
KR102452205B1 (ko) 멀티 코어 제어 시스템
US20140129811A1 (en) Multi-core processor system and control method
WO2016182683A1 (en) System and method for dynamic granularity control of parallelized work in a portable computing device (pcd)
US8484642B2 (en) Processor core selection based at least in part upon at least one inter-dependency
CN110795323A (zh) 负载统计方法、装置、存储介质及电子设备
US9740530B2 (en) Decreasing the priority of a user based on an allocation ratio
US9405470B2 (en) Data processing system and data processing method
US9690619B2 (en) Thread processing method and thread processing system for setting for each thread priority level of access right to access shared memory

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application