KR20110095052A - 로드 밸런싱 장치 - Google Patents

로드 밸런싱 장치 Download PDF

Info

Publication number
KR20110095052A
KR20110095052A KR1020100014854A KR20100014854A KR20110095052A KR 20110095052 A KR20110095052 A KR 20110095052A KR 1020100014854 A KR1020100014854 A KR 1020100014854A KR 20100014854 A KR20100014854 A KR 20100014854A KR 20110095052 A KR20110095052 A KR 20110095052A
Authority
KR
South Korea
Prior art keywords
processor
load balancing
task
determination unit
state
Prior art date
Application number
KR1020100014854A
Other languages
English (en)
Other versions
KR101651114B1 (ko
Inventor
임근식
이주평
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020100014854A priority Critical patent/KR101651114B1/ko
Publication of KR20110095052A publication Critical patent/KR20110095052A/ko
Application granted granted Critical
Publication of KR101651114B1 publication Critical patent/KR101651114B1/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/5083Techniques for rebalancing the load in a distributed 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/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

Landscapes

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

Abstract

불필요한 로드 밸런싱이 실행되지 않도록 할 수 있는 로드 밸런싱 장치가 개시된다. 본 발명의 일실시예에 따르면, 로드 밸런싱 장치는 대상 태스크를 검출하고, 검출된 대상 태스크의 상태에 따라 로드 밸런싱 실행 여부를 결정하고, 결정에 따라 로드 밸런싱을 실행한다.

Description

로드 밸런싱 장치{APPARATUS FOR BALANCING LOAD}
복수의 프로세서에 할당된 태스크 중 일부를 다른 프로세서로 이동시키는 로드 밸런싱 기술과 관련된다.
최근 데이터의 양이 커짐에 따라, 하나의 프로세서가 대용량 데이터를 처리하지 못하는 경우가 발생하고 있다. 이를 해결하기 위해, 하나의 칩에 복수의 프로세서를 탑재하여 대용량 데이터를 처리하는 기술이 개발되었다.
그러나, 프로세서의 개수가 증가하는 만큼 시스템의 성능이 비례하여 향상되지 못하고 있다. 이는, 모든 프로세서들에 태스크(task)들이 균등하게 분배되어 실행되는 것이 아니라 다른 프로세서에 비해 특정 프로세서에 더 많은 태스크가 할당되어 실행되는 로드 불균형(load imbalance)이 발생하기 때문이다.
따라서, 이러한 로드 불균형을 해결하기 위해, 할당된 태스크를 균등하게 분배하는 로드 밸런싱에 대한 연구가 활발히 진행되고 있다.
불필요한 로드 밸런싱이 실행되지 않도록 할 수 있는 로드 밸런싱 장치가 개시된다.
본 발명의 일 실시예에 따른 로드 밸런싱 장치는 복수의 프로세서에 할당된 태스크 중 로드 밸런싱의 대상 태스크의 상태(status)에 따라 상기 로드 밸런싱의 실행 여부를 결정하는 결정부 및 결정에 따라 상기 로드 밸런싱을 실행하는 실행부를 포함한다.
여기서, 결정부는 대상 태스크의 상태가, 프로세서의 사용률을 임계값 미만으로 증가시키는 제 1 태스크 상태인 경우, 로드 밸런싱을 실행하도록 결정할 수 있다.
여기서, 결정부는 대상 태스크의 상태가, 프로세서의 사용률을 임계값 이상으로 증가시키는 제 2 태스크 상태인 경우, 로드 밸런싱을 실행하지 않도록 결정할 수 있다.
본 발명의 다른 실시예에 따른 로드 밸런싱 장치는 프로세서별 할당된 태스크 개수 및 프로세서별 사용률 중 적어도 하나를 이용하여 로드 밸런싱 여부를 결정하는 결정부 및 결정에 따라 상기 로드 밸런싱을 실행하는 실행부를 포함할 수 있다.
여기서, 결정부는 프로세서별 할당된 태스크 개수 중 적어도 하나가 기준 태스크 개수보다 큰 경우, 로드 밸런싱을 실행하지 않도록 결정할 수 있다.
여기서, 기준 태스크 개수는 태스크 실제 처리 시간, 태스크 한계 처리 시간 및 프로세서의 개수를 이용하여 계산될 수 있다.
여기서, 결정부는 프로세서별 사용률이 기준 사용률보다 작은 경우, 로드 밸런싱을 실행하지 않도록 결정할 수 있다.
여기서, 결정부는 사용률이 유지되는 시간에 기초하여 상기 프로세서별 사용률을 변경할 수 있다.
여기서, 결정부는 프로세서의 사용률이 기준 사용률보다 작은 경우, 사용률이 유지되는 시간에 기초하여 해당하는 프로세서의 사용률을 변경할 수 있다.
여기서, 결정부는 프로세서별 할당된 태스크 개수가 기준 태스크 개수보다 작고, 프로세서별 사용률 중 적어도 하나가 기준 사용률보다 큰 경우, 로드 밸런싱을 실행하도록 결정할 수 있다.
개시된 내용에 따르면, 대상 태스크의 상태에 따라 로드 밸런싱을 실행함으로써, 불필요한 로드 밸런싱이 실행되지 않는다.
도 1은 본 발명의 일 실시예와 관련된 로드 밸런싱 장치의 블록 구성도(block diagram)이다.
도 2는 본 발명의 일 실시예와 관련된 대상 태스크를 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 태스크의 상태를 설명하기 위한 도면이다.
도 4는 본 발명의 다른 실시예에 따른 로드 밸런싱 장치를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 기준 사용률을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 로드 밸런싱 방법을 설명하기 위한 흐름도이다.
도 7은 본 발명의 다른 일 실시예에 따른 로드 밸런싱 방법을 설명하기 위한 흐름도이다.
이하, 첨부된 도면을 참조하여 발명을 실시하기 위한 구체적인 내용에 대하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예와 관련된 로드 밸런싱 장치의 블록 구성도(block diagram)이다.
로드 밸런싱 장치(100)는 결정부(101) 및 실행부(102)를 포함한다. 또는, 로드 밸런싱을 실행할 태스크들이 할당된 적어도 하나의 프로세서(110, 120)를 더 포함할 수 있다.
결정부(101)는 복수의 프로세서들(110, 120)에 할당된 태스크 중 로드 밸런싱을 실행할 대상 태스크의 상태(status)를 검출한다. 여기서, 대상 태스크란 로드 밸런싱에 의해 다른 프로세서의 큐로 옮겨질 후보 태스크를 의미한다. 그 다음, 결정부(101)는 대상 태스크의 상태에 따라 로드 밸런싱의 실행 여부를 결정한다.
도 2는 본 발명의 일 실시예와 관련된 대상 태스크를 설명하기 위한 도면이다. 도 2를 참조하면, 제 1 프로세서(110)의 큐(queue)에는 태스크 1 및 태스크 2가 할당되어 있고, 제 2 프로세서(120)의 큐에는 태스크 3, 태스크 4, 태스크 5 및 태스크 6이 할당되어 있다. 현재, 제 2 프로세서(120)의 큐에 할당된 태스크가 제 1 프로세서(110)의 큐에 할당된 태스크보다 많기 때문에, 로드 밸런싱을 실행할 필요가 있다. 이때, 결정부(101)는 제 2 프로세서(120)에 할당된 태스크 중 제 1 프로세서(110)의 큐로 옮길 태스크('대상 태스크')를 선정할 수 있다. 예를 들면, 결정부(101)는 제 2 프로세서(120)의 큐에 할당된 태스크 중 태스크 6(200)을 대상 태스크로 선정할 수 있다.
결정부(101)는 도 3에 도시된 태스크의 상태를 기준으로 대상 태스크의 상태를 판단할 수 있다.
도 3은 본 발명의 일 실시예에 따른 태스크의 상태를 설명하기 위한 도면이다. 본 발명의 일 실시예에 따른 태스크의 상태는 새로운 태스크(new task) 상태, 아이들 태스크(idle task) 상태, 새로운 아이들 태스크(new idle task) 상태, 실행 태스크(running task) 상태 및 기타 태스크 상태로 구분될 수 있다. 새로운 태스크(new task) 상태는 태스크가 새롭게 생성된 상태를 의미한다. 아이들 태스크(idle task) 상태는 프로세서에 할당되기를 기다리는 상태를 의미하고, 아이들 태스크 중 우선 순위가 높은 순서대로 프로세서에 할당되게 된다. 새로운 아이들 태스크(new idle task) 상태는 입력/출력 인터럽트가 발생된 후, 입력/출력 완료 신호가 입력될 때까지 기다리는 상태를 의미한다. 예를 들면, 입력/출력 완료 신호가 입력되면, 새로운 아이들 태스크는 아이들 태스크로 천이 된다. 실행 태스크(running task) 상태는 태스크가 프로세서에 할당되어 프로세서에서 태스크가 처리되고 있는 상태를 의미한다. 기타 태스크 상태는 태스크의 실행이 종료되는 태스크가 포함될 수 있다. 본 실시예에서는 도 3을 기준으로 태스크의 상태를 설명하겠지만, 태스크의 상태는 사용자 등의 설정에 의해서 더 많은 태스크의 상태로 구분되거나 더 적은 태스크의 상태로 구분될 수 있다.
결정부(101)는 대상 태스크의 상태에 따라, 로드 밸런싱을 실행할지 여부를 결정한다. 예를 들면, 대상 태스크의 상태가 제 1 태스크 상태인 경우, 결정부(101)는 로드 밸런싱을 실행하도록 결정한다. 여기서, 제 1 태스크 상태란 프로세서의 사용률을 0%부터 임계값 미만으로 증가시키는 상태를 의미한다. 태스크가 프로세서에 할당되어 실행되는 경우, 프로세서의 사용률이 증가하게 된다. 예를 들면, 프로세서의 사용률을 0%부터 20% 까지 증가시키는 태스크의 상태는 제 1 태스크 상태가 된다. 여기서, 임계값은 20%이다. 도 3을 참조하여 설명하면, 제 1 태스크 상태는 기타 태스크가 될 수 있다. 즉, 기타 태스크의 상태인 경우, 프로세서의 사용률이 20% 미만으로 증가하게 된다. 여기서, 태스크의 상태에 따라 프로세서의 사용률이 변화되는 범위는 실험을 통해 결정될 수 있다.
반면에, 결정부(101)는 대상 태스크의 상태가 제 2 태스크 상태인 경우, 결정부(101)는 로드 밸런싱을 실행하지 않도록 결정한다. 여기서, 제 2 태스크 상태란 프로세서의 사용률을 임계값 이상으로 증가시키는 상태를 의미한다. 예를 들면, 프로세서의 사용률을 20% 이상으로 증가시키는 태스크의 상태는 제 2 태스크 상태가 된다. 여기서, 임계값은 20%이다. 도 3을 참조하여 설명하면, 제 1 태스크 상태는 새로운 태스크(new task) 상태, 아이들 태스크(idle task) 상태, 새로운 아이들 태스크(new idle task) 상태, 실행 태스크(running task) 상태가 될 수 있다. 즉, 새로운 태스크(new task) 상태, 아이들 태스크(idle task) 상태, 새로운 아이들 태스크(new idle task) 상태, 실행 태스크(running task) 상태인 경우, 프로세서의 사용률이 20%이상으로 증가하게 된다.
실행부(102)는 결정부(101)의 결정에 따라 로드 밸런싱을 실행한다. 예를 들면, 결정부(101)가 로드 밸런싱을 하지 않도록 결정한 경우, 실행부(102)는 대상 태스크를 다른 프로세서로 이동시키지 않는다. 반면에, 결정부(101)가 로드 밸런싱을 하도록 결정한 경우, 실행부(102)는 대상 태스크를 다른 프로세서로 이동시킨다.
로드 밸런싱 장치는 대상 태스크의 상태에 따라 로드 밸런싱을 실행함으로써, 불필요한 로드 밸런싱을 줄여 시스템의 성능을 향상시킬 수 있다.
도 4는 본 발명의 다른 실시예에 따른 로드 밸런싱 장치를 설명하기 위한 도면이다.
로드 밸런싱 장치(400)는 결정부(401) 및 실행부(402)를 포함한다. 또는, 로드 밸런싱을 실행할 태스크들이 할당된 적어도 하나의 프로세서(410, 420)를 더 포함할 수 있다.
결정부(401)는 프로세서별(410, 420) 할당된 태스크 개수 및 프로세서별 사용률 중 적어도 하나를 이용하여 로드 밸런싱 여부를 결정한다.
이하에서는, 결정부(401)가 프로세서별 할당된 태스크 개수를 이용하여 로드 밸런싱 여부를 결정하는 경우를 설명한다.
결정부(401)는 프로세서별 할당된 태스크 개수 중 적어도 하나가 기준 태스크 개수보다 큰 경우, 로드 밸런싱을 실행하지 않도록 결정한다. 다시 말하면, 기준 태스크 개수보다 큰 태스크 개수가 할당된 프로세서가 하나라도 있으며, 결정부(401)는 로드 밸런싱을 실행하지 않도록 결정한다.
여기서, 기준 태스크 개수는 이하의 수학식 1을 통해서 계산된다.
Figure pat00001
여기서, n : 기준 태스크 개수
C : 태스크 실제 처리 시간
T : 태스크 한계 처리 시간
m : 프로세서의 개수
태스크 실제 처리 시간은 프로세서에서 태스크를 처리하는데 걸리는 시간을 의미한다. 태스크 한계 처리 시간은 프로세서에서 태스크를 처리하는데 할당된 시간을 의미한다. 즉, 태스크 처리 시간이 태스크 한계 처리 시간을 넘는 경우, 프로세서는 태스크의 처리를 일시 중지하고 다른 태스크를 우선 처리하게 된다.
예를 들면, 태스크 실제 처리 시간(C)이 300㎲이고, 태스크 한계 처리 시간이 10000㎲이고, 프로세서의 개수(m)은 4개인 경우, 수학식 1에 따라 기준 태스크 개수는 76개가 된다. 또는, 사용자의 설정에 따라, 기준 태스크 개수를 75개 또는 74개 등으로 설정할 수도 있다. 즉, 수학식 1에서 얻어진 태스크 개수에서 1개 또는 2개를 뺀 태스크 개수를 기준 태스크 개수로 설정할 수도 있다.
결정부(401)는 프로세서별 할당된 태스크 개수 중 적어도 하나가 계산된 기준 태스크 개수보다 큰 경우, 로드 밸런싱을 실행하지 않도록 결정한다. 이하에서는, 기준 태스크 개수가 75개인 경우를 기준으로 설명한다. 예를 들면, 제 1 프로세서(410)에 할당된 태스크 개수가 80개이고, 제 2 프로세서(420)에 할당된 태스크 개수가 70개인 경우, 결정부(401)는 제 1 프로세서(410)에 할당된 태스크 개수가 기준 태스크 개수보다 크므로, 로드 밸런싱을 실행하지 않도록 결정한다.
또 다른 예를 들면, 제 1 프로세서(410)에 할당된 태스크 개수가 72개이고, 제 2 프로세서(420)에 할당된 태스크 개수가 70개인 경우, 결정부(410)는 제 1 프로세서(410) 및 제 2 프로세서(420)에 할당된 태스크가 기준 태스크 개수보다 작으므로, 로드 밸런싱을 실행하도록 결정한다.
이하에서는, 결정부(401)가 프로세서별 사용률을 이용하여 로드 밸런싱 여부를 결정하는 경우를 설명한다.
예를 들면, 결정부(401)는 프로세서별 사용률 중 적어도 하나가 기준 사용률보다 큰 경우, 로드 밸런싱을 실행하도록 결정한다. 여기서, 기준 사용률이란 로드 밸런싱을 실행할지 여부의 기준이 되는 사용률로써, 사용자 등에 의해서 설정될 수 있다. 기준 사용률이 80%이고, 제 1 프로세서(410)의 사용률이 85%이고, 제 2 프로세서(420)의 사용률이 70%인 경우, 결정부(410)는 제 1 프로세서(410)의 사용률이 기준 사용률보다 크므로, 로드 밸런싱을 실행하도록 결정한다.
도 5는 본 발명의 일 실시예에 따른 기준 사용률을 설명하기 위한 도면이다.
도 5를 참조하면, 프로세서의 사용률을 제 1 영역, 제 2 영역 및 제 3 영역으로 구분할 수 있다.
프로세서의 사용률이 제 1 영역에 해당하는 경우, 결정부(401)는 로드 밸런싱이 실행되도록 결정한다. 제 1 영역과 제 2 영역은 기준 사용률(500)을 기준으로 구분된다.
프로세서의 사용률이 제 2 영역에 해당하는 경우, 결정부(401)는 로드 밸런싱이 실행되지 않도록 결정한다. 다만, 제 2 영역을 2-1 영역, 2-2 영역, 2-3 영역 및 2-4 영역으로 구분한 후, 결정부(401)는 사용률이 유지되는 시간에 기초하여 프로세서의 사용률을 변경할 수 있다. 예를 들면, 프로세서의 사용률이 2-4 영역에서 3초 이상 유지되는 경우, 결정부(401)는 프로세서의 사용률을 2-4 영역에서 제 3 영역으로 변경할 수 있다. 본 실시예에서는 제 2 영역을 기준으로 설명하였지만, 다른 영역에서도 사용률을 가중치에 따라 변경하는 방법이 적용될 수 있다. 프로세서 사용률이 제 3 영역에 해당 되기 전에 로드 밸런싱을 미리 실행함으로써, 태스크가 프로세서들에 균등하게 분배될 수 있다.
프로세서의 사용률이 제 3 영역에 해당하는 경우, 결정부(401)는 로드 밸런싱이 실행되지 않도록 결정한다. 즉, 제 3 영역은 로드 밸런싱을 실행할 필요가 없는 영역이다.
이하에서는, 결정부(401)가 프로세서별 할당된 태스크 개수 및 프로세서별 사용률을 이용하여 로드 밸런싱 여부를 결정하는 경우를 설명한다.
예를 들면, 결정부(401)는 프로세서별 할당된 태스크 개수가 기준 태스크 개수보다 작고, 프로세서별 사용률 중 적어도 하나가 기준 사용률보다 큰 경우, 로드 밸런싱을 실행하도록 결정한다. 이하에서는, 기준 사용률이 80%이고, 제 1 프로세서(410)의 사용률이 85%이고, 제 2 프로세서(420)의 사용률이 70%이고, 기준 태스크 개수가 75이고, 제 1 프로세서(410)에 할당된 태스크 개수가 73개이고, 제 2 프로세서(420)에 할당된 태스크 개수가 70개인 경우를 기준으로 설명하겠다. 결정부(401)는 제 1 프로세서(410) 및 제 2 프로세서(420)의 태스크 개수가 기준 태그 개수보다 작고, 제 1 프로세서(410)의 사용률이 기준 사용률보다 크기 때문에, 로드 밸런싱을 실행하도록 결정한다. 이 경우 외에는, 결정부(401)는 로드 밸런싱을 실행하지 않도록 결정한다.
로드 밸런싱 장치는 프로세서의 사용률 및 프로세서의 태스크 개수를 이용하여 로드 밸런싱 실행 여부를 결정함으로써, 불필요한 로드 밸런싱을 줄여 시스템의 성능을 향상시킬 수 있다.
또 따른 실시예로, 도 1 및 도 4에 기재된 로드 밸런싱 장치는 하나의 장치로 구현될 수도 있다. 예를 들면 도 1에 기재된 로드 밸런싱 장치(100)를 이용하여, 로드 밸런싱을 실행할지 여부를 예비적으로 판단한 후, 도 4에 기재된 로드 밸런싱 장치(100)를 이용하여, 최종적으로 로드 밸런싱을 실행할지 여부를 판단할 수 있다. 다만, 로드 밸런싱 장치(100)에서 로드 밸런싱을 실행하도록 결정한 경우에만, 로드 밸런싱 장치(400)를 이용하여 최종적으로 판단한다. 즉, 로드 밸런싱 장치(100)에서 로드 밸런싱을 실행하지 않도록 결정한 경우, 로드 밸런싱 장치(400)는 실행되지 않는다.
구체적인 예를 들면, 도 1에 기재된 로드 밸런싱 장치(100)에서 로드 밸런싱을 실행하도록 예비적으로 판단한 후, 도 4에 기재된 로드 밸런싱 장치(400)에서 로드 밸런싱을 실행하지 않도록 판단한 경우, 최종적으로 로드 밸런싱을 실행하지 않는다. 이 경우에는, 로드 밸런싱 장치(400)에서 결정된 로드 밸런싱 실행 여부에 대한 판단이 우선된다.
도 6은 본 발명의 일 실시예에 따른 로드 밸런싱 방법을 설명하기 위한 흐름도이다.
도 6을 참조하면, 결정부는 정해진 시간마다, 로드 불균형(load imbalance)이 발생하였는지 여부를 판단한다(600). 로드 불균형이 발생한 경우, 결정부는 복수의 프로세서에 할당된 태스크 중 다른 프로세서로 이동(migration)시킬 대상 태스크를 선택한다(610). 결정부는 대상 태스크의 상태를 검출한다(620). 결정부는 검출된 대상 태스크의 상태(status)에 따라, 로드 밸런싱의 실행 여부를 결정한다(630). 대상 태스크의 상태가 제 1 태스크 상태인 경우, 결정부는 로드 밸런싱을 실행하도록 결정한다(640). 반면에, 대상 태스크의 상태가 제 2 태스크 상태인 경우, 결정부는 로드 밸런싱을 실행하지 않도록 결정한다(650). 실행부는 결정부의 결정 결과에 따라 로드 밸런싱을 실행한다. 제 1 태스크 상태란 프로세서의 사용률을 임계값 이하로 증가시키는 상태를 의미한다. 제 2 태스크 상태란 프로세서의 사용률을 임계값 이상으로 증가시키는 상태를 의미한다.
도 7은 본 발명의 또 다른 일 실시예에 따른 로드 밸런싱 방법을 설명하기 위한 흐름도이다.
결정부는 프로세서별 할당된 태스크 개수를 검출한다(700). 또한, 결정부는 프로세서별 사용률을 검출한다(710). 결정부는 프로세서별 할당된 태스크 개수 및 프로세서별 사용률 중 적어도 하나를 이용하여 로드 밸런싱을 실행할지 여부를 결정한다(720). 예를 들면, 결정부(401)는 프로세서별 사용률 중 적어도 하나가 기준 사용률보다 큰 경우('제 1 조건'), 로드 밸런싱을 실행하도록 결정한다(730). 또 다른 예를 들면, 결정부(401)는 프로세서별 할당된 태스크 개수가 기준 태스크 개수보다 작고, 프로세서별 사용률 중 적어도 하나가 기준 사용률보다 큰 경우('제 1 조건), 로드 밸런싱을 실행하도록 결정한다(730). 또 다른 예를 들면, 결정부(401)는 프로세서별 할당된 태스크 개수 중 적어도 하나가 기준 태스크 개수보다 큰 경우('제 2 조건'), 로드 밸런싱을 실행하지 않도록 결정한다(740).
설명된 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
또한, 실시예는 그 설명을 위한 것이며, 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술분야의 통상의 전문가라면 본 발명의 기술사상의 범위에서 다양한 실시예가 가능함을 이해할 수 있을 것이다.
또한, 본 발명의 일실시예에 의하면, 전술한 방법은, 프로그램이 기록된 매체에 프로세서가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 프로세서가 읽을 수 있는 매체의 예로는, ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다.

Claims (10)

  1. 복수의 프로세서에 할당된 태스크 중 로드 밸런싱의 대상 태스크의 상태(status)에 따라 상기 로드 밸런싱의 실행 여부를 결정하는 결정부; 및
    상기 결정에 따라 상기 로드 밸런싱을 실행하는 실행부를 포함하는 로드 밸런싱 장치.
  2. 제 1 항에 있어서,
    상기 결정부는,
    상기 대상 태스크의 상태가, 프로세서의 사용률을 임계값 미만으로 증가시키는 제 1 태스크 상태인 경우, 로드 밸런싱을 실행하도록 결정하는 로드 밸런싱 장치.
  3. 제 1 항에 있어서,
    상기 결정부는,
    상기 대상 태스크의 상태가, 프로세서의 사용률을 임계값 이상으로 증가시키는 제 2 태스크 상태인 경우, 로드 밸런싱을 실행하지 않도록 결정하는 로드 밸런싱 장치.
  4. 프로세서별 할당된 태스크 개수 및 프로세서별 사용률 중 적어도 하나를 이용하여 로드 밸런싱 여부를 결정하는 결정부; 및
    상기 결정에 따라 상기 로드 밸런싱을 실행하는 실행부를 포함하는 로드 밸런싱 장치.
  5. 제 4 항에 있어서,
    상기 결정부는,
    상기 프로세서별 할당된 태스크 개수 중 적어도 하나가 기준 태스크 개수보다 큰 경우, 로드 밸런싱을 실행하지 않도록 결정하는 로드 밸런싱 장치.
  6. 제 5 항에 있어서,
    상기 기준 태스크 개수는,
    태스크 실제 처리 시간, 태스크 한계 처리 시간 및 프로세서의 개수를 이용하여 계산된 로드 밸런싱 장치.
  7. 제 4 항에 있어서,
    상기 결정부는,
    상기 프로세서별 사용률이 기준 사용률보다 작은 경우, 로드 밸런싱을 실행하지 않도록 결정하는 로드 밸런싱 장치.
  8. 제 4 항에 있어서,
    상기 결정부는,
    사용률이 유지되는 시간에 기초하여 상기 프로세서별 사용률을 변경하는 로드 밸런싱 장치.
  9. 제 8 항에 있어서,
    상기 결정부는,
    프로세서의 사용률이 기준 사용률보다 작은 경우, 사용률이 유지되는 시간에 기초하여 해당하는 프로세서의 사용률을 변경하는 로드 밸런싱 장치.
  10. 제 4 항에 있어서,
    상기 결정부는,
    상기 프로세서별 할당된 태스크 개수가 기준 태스크 개수보다 작고,
    상기 프로세서별 사용률 중 적어도 하나가 기준 사용률보다 큰 경우, 로드 밸런싱을 실행하도록 결정하는 로드 밸런싱 장치.
KR1020100014854A 2010-02-18 2010-02-18 로드 밸런싱 장치 KR101651114B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100014854A KR101651114B1 (ko) 2010-02-18 2010-02-18 로드 밸런싱 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100014854A KR101651114B1 (ko) 2010-02-18 2010-02-18 로드 밸런싱 장치

Publications (2)

Publication Number Publication Date
KR20110095052A true KR20110095052A (ko) 2011-08-24
KR101651114B1 KR101651114B1 (ko) 2016-09-05

Family

ID=44930961

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100014854A KR101651114B1 (ko) 2010-02-18 2010-02-18 로드 밸런싱 장치

Country Status (1)

Country Link
KR (1) KR101651114B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050155032A1 (en) * 2004-01-12 2005-07-14 Schantz John L. Dynamic load balancing
US20060095909A1 (en) * 2004-11-01 2006-05-04 Norton Scott J Adaptive cooperative scheduling
KR20060132852A (ko) * 2004-02-20 2006-12-22 가부시키가이샤 소니 컴퓨터 엔터테인먼트 멀티 프로세서 시스템에서 프로세서 태스크 이동 방법 및장치
KR20080041047A (ko) * 2006-11-06 2008-05-09 삼성전자주식회사 멀티 코어 프로세서 시스템에서 로드 밸런싱을 위한 장치및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050155032A1 (en) * 2004-01-12 2005-07-14 Schantz John L. Dynamic load balancing
KR20060132852A (ko) * 2004-02-20 2006-12-22 가부시키가이샤 소니 컴퓨터 엔터테인먼트 멀티 프로세서 시스템에서 프로세서 태스크 이동 방법 및장치
US20060095909A1 (en) * 2004-11-01 2006-05-04 Norton Scott J Adaptive cooperative scheduling
KR20080041047A (ko) * 2006-11-06 2008-05-09 삼성전자주식회사 멀티 코어 프로세서 시스템에서 로드 밸런싱을 위한 장치및 방법

Also Published As

Publication number Publication date
KR101651114B1 (ko) 2016-09-05

Similar Documents

Publication Publication Date Title
US11797327B2 (en) Dynamic virtual machine sizing
US20210211492A1 (en) Pairwise comparison for load balancing
EP2698711B1 (en) Method for dispatching central processing unit of hotspot domain virtual machine and virtual machine system
US9727372B2 (en) Scheduling computer jobs for execution
US20200153751A1 (en) Monitoring data streams and scaling computing resources based on the data streams
US9026630B2 (en) Managing resources in a distributed system using dynamic clusters
US9785481B2 (en) Power aware task scheduling on multi-processor systems
US20140082202A1 (en) Method and Apparatus for Integration of Virtual Cluster and Virtual Cluster System
CN107797853B (zh) 一种任务调度方法、装置及多核处理器
JP2009116380A (ja) 仮想サーバ移動制御装置、仮想サーバ移動制御方法およびプログラム
US10089155B2 (en) Power aware work stealing
CN112162835A (zh) 一种异构云环境下实时任务的调度优化方法
US20120054762A1 (en) Scheduling apparatus and method for a multicore device
KR20100074920A (ko) 멀티코어 시스템에서의 로드 밸런싱 장치 및 방법
KR20130049110A (ko) 인터럽트 할당 방법 및 장치
CN110837415B (zh) 一种基于risc-v多核处理器的线程调度方法和装置
US9983911B2 (en) Analysis controller, analysis control method and computer-readable medium
CN107423114B (zh) 一种基于服务分类的虚拟机动态迁移方法
KR101330609B1 (ko) 모바일 멀티코어 가상화 시스템에서 실시간 처리를 보장하기 위한 스케쥴링 방법
WO2015150979A1 (en) Register-type-aware scheduling of virtual central processing units
US11934890B2 (en) Opportunistic exclusive affinity for threads in a virtualized computing system
KR101651114B1 (ko) 로드 밸런싱 장치
CN107408061B (zh) 并行处理系统
CN114327767B (zh) 任务处理的方法、装置、电子设备及计算机可读存储介质
CN115373862B (zh) 基于数据中心的动态资源调度方法、系统及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant