KR20150041406A - 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치 및 방법 - Google Patents

스케줄링 정책 기반 코어 간 태스크 이주 관리 장치 및 방법 Download PDF

Info

Publication number
KR20150041406A
KR20150041406A KR20130119891A KR20130119891A KR20150041406A KR 20150041406 A KR20150041406 A KR 20150041406A KR 20130119891 A KR20130119891 A KR 20130119891A KR 20130119891 A KR20130119891 A KR 20130119891A KR 20150041406 A KR20150041406 A KR 20150041406A
Authority
KR
South Korea
Prior art keywords
task
core
scheduling policy
specific
tasks
Prior art date
Application number
KR20130119891A
Other languages
English (en)
Other versions
KR101697647B1 (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 KR1020130119891A priority Critical patent/KR101697647B1/ko
Priority to US14/296,783 priority patent/US20150100964A1/en
Publication of KR20150041406A publication Critical patent/KR20150041406A/ko
Application granted granted Critical
Publication of KR101697647B1 publication Critical patent/KR101697647B1/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
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/5038Allocation 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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치 및 방법에 관한 것으로서, 본 발명에 따른 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치는 다양한 특성을 지닌 태스크들에게 멀티코어를 활용한 최적 환경을 제공하는 것을 특징으로 한다. 본 발명에 따르면, 서로 다른 특성을 고려하여 태스크들을 스케줄링할 수 있고, 특히 다수의 응용프로그램이 동작하는 환경에서 지속적으로 멀티 코어 시스템의 성능을 보장할 수 있으며, 멀티 코어 시스템의 모든 코어를 최적으로 활용할 수 있고, 동적인 태스크의 특성 변화에 대해 유연하게 대처할 수 있다.

Description

스케줄링 정책 기반 코어 간 태스크 이주 관리 장치 및 방법{Apparatus and Method Managing Migration of Tasks among Cores Based On Scheduling Policy}
본 발명은 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치 및 방법에 관한 것으로서, 보다 구체적으로는 멀티 코어 시스템에서 코어별로 설정된 태스크 스케줄링 정책에 따라 태스크들을 이주시키는 장치 및 방법에 관한 것이다.
종래의 멀티 코어 시스템은 스케줄러의 코어별 스케줄링 성능과 더불어 태스크 이주 정책에 따른 태스크별 스케줄링 성능에 따라 그 성능이 좌우된다.
즉, 종래의 멀티 코어 시스템에서 수행되는 태스크들은 시스템의 스케줄링 정책에 따라 CPU 자원을 할당받고, 추가로 특정 태스크가 어떤 코어에서 수행되어야 할지, 수행 중인 코어에서 다른 코어로 언제 이주해야 할지 등이 설정된 태스크 이주 정책에 따라 스케줄링 되므로, 멀티 코어 시스템의 성능은 이러한 태스크 이주 정책에 의해 좌우된다.
한편, 멀티 코어 시스템의 태스크 관리 정책에 따라 태스크 전체를 스케줄링할 경우, 태스크 수 증가에 따른 스케줄링 오버헤드 및 태스크 정보의 저장을 위해 태스크 스케줄러는 큰 저장 공간이 필요하므로, 태스크 스케줄러가 사용할 저장 공간 확보를 위해서는 메모리 사이즈를 늘릴 수밖에 없으며, 여기서 사용되는 메모리는 고가이므로, 메모리 사이즈를 늘리는데 비용이 많이 든다는 단점이 있다.
따라서, 도 1에 도시된 바와 같이 종래의 멀티 코어 시스템의 스케줄러는 코어 별로 태스크를 관리하는 실행 큐를 설정하고, 설정된 실행 큐 별로 스케줄링 정책을 부여하여 태스크를 관리한다.
이때 종래의 멀티 코어 시스템의 스케줄러는 각 실행 큐 별로 스케줄링 정책을 동일하게 설정하고, 각 실행 큐 내의 태스크 개수 및 태스크 우선 순위 등이 고려된 큐의 로드 정보를 토대로 태스크의 이주를 관리하며, 이러한 이주 정책을 로드 밸런싱이라 한다.
한편, 종래의 멀티 코어 시스템에서 사용되는 프로그램 및 입출력 데이터 집합에 따른 태스크들의 특징은 매우 다양하다.
즉, CPU 자원의 빠른 할당과 짧은 수행시간을 요구하는 태스크가 있는가 하면, 한번에 오랜 시간 동안 CPU 자원의 할당을 요구하는 태스크가 있는 등 다양한 특징을 지닌 태스크들이 동시에 CPU 자원의 할당을 요구한다.
예컨대, 도 2에 도시된 바와 같이, 종래의 멀티 코어 시스템은 4개의 CPU코어(CPU core 0, CPU core 1, CPU core 2, CPU core 3)를 포함하고, 각 CPU 코어(CPU core 0, CPU core 1, CPU core 2, CPU core 3)는 대응되는 실행 큐(Run-queue 0, Run-queue 1, Run-queue 2, Run-queue3)를 포함한다.
각 실행 큐(Run-queue 0, Run-queue 1, Run-queue 2, Run-queue3) 내의 서로 다른 도형들은 특성이 다른 태스크들이다.
종래의 멀티코어 스케줄러는 태스크들의 특성을 고려하지 않고 각 실행 큐(Run-queue 0, Run-queue 1, Run-queue 2, Run-queue3)의 로드에 대한 태스크 이주 정책을 활용하였다.
특히 종래의 멀티코어 스케줄러는 스케줄링 정책의 핵심 요소인 최소 보장 수행 시간과 스케줄링 단위 시간을 모든 코어에 동일하게 설정하였기 때문에 서로 다른 특성을 지닌 태스크들의 요구 사항을 만족시킬 수 없다.
즉, 종래의 멀티코어 스케줄러가 최소 보장 수행 시간을 짧게 설정할 경우, 빠른 응답성을 요구하는 태스크들은 성능이 향상될 수 있지만, 많은 계산을 요구하는 태스크들은 빈번한 스케줄링으로 인해 성능이 저하될 수 있기 때문이다.
전술한 바와 같이, 종래의 멀티 코어 시스템의 스케줄러는 각 실행 큐 내의 태스크들을 각 실행 큐에 동일하게 부여된 스케줄링 정책에 따라 관리하므로, 다양한 요구 사항을 갖는 태스크들을 효과적으로 스케줄링할 수가 없다.
따라서, 종래의 멀티 코어 시스템은 멀티 코어를 효과적으로 활용하지 못하여 결국 시스템의 성능을 최적화시키지 못한다는 문제점이 있다.
본 발명은 상기와 같은 문제점을 감안하여 창출한 것으로서, 다양한 특성을 지닌 태스크들에게 멀티코어를 활용한 최적 환경을 제공하는 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치 및 방법을 제공하는 데 그 목적이 있다.
전술한 목적을 달성하기 위하여, 본 발명의 일면에 따른 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치는 멀티 코어 시스템에서 각 태스크의 자원할당 이력을 기반으로 상기 각 태스크의 특성을 분석하여 구분하는 태스크 특성 분석부; 구분된 상기 각 태스크의 특성 정보를 토대로 상기 멀티 코어 시스템의 코어마다 특화된 스케줄링 정책을 설정하는 코어별 스케줄링 정책 설정부; 및 설정된 코어별 스케줄링 정책을 토대로 분석된 상기 각 태스크의 특성 정보를 반영하여 상기 각 태스크의 이주 정책을 관리하는 스케줄링 정책 기반 태스크 이주 관리부를 포함한다.
본 발명의 다른 면에 따른 스케줄링 정책 기반 코어 간 태스크 이주 관리 방법은 멀티 코어 시스템에서 각 태스크의 자원할당 이력을 기반으로 상기 각 태스크의 특성을 분석하여 구분하는 단계; 구분된 상기 각 태스크의 특성 정보를 토대로 상기 멀티 코어 시스템의 코어마다 특화된 스케줄링 정책을 설정하는 단계; 및 설정된 코어별 스케줄링 정책을 토대로 분석된 상기 각 태스크의 특성 정보를 반영하여 상기 각 태스크의 이주 정책을 관리하는 단계를 포함한다.
본 발명에 따르면, 서로 다른 특성을 고려하여 태스크들을 스케줄링할 수 있다.
특히 다수의 응용프로그램이 동작하는 환경에서 지속적으로 멀티 코어 시스템의 성능을 보장할 수 있다.
또한, 멀티 코어 시스템의 모든 코어를 최적으로 활용할 수 있다.
동적인 태스크의 특성 변화에 대해 유연하게 대처할 수 있다.
도 1은 종래의 멀티코어 기반의 스케줄러를 설명하기 위한 도면.
도 2는 종래의 멀티코어 기반의 스케줄러의 스케줄링을 설명하기 위한 도면.
도 3은 본 발명의 일 실시예에 따른 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치를 설명하기 위한 블럭도.
도 4는 본 발명의 코어 간 태스크 이주 관리 장치의 스케줄링을 설명하기 위한 도면.
도 5는 본 발명의 일 실시예에 따른 스케줄링 정책 기반 코어 간 태스크 이주 관리 방법을 설명하기 위한 흐름도.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 용이하게 이해할 수 있도록 제공되는 것이며, 본 발명은 청구항의 기재에 의해 정의된다. 한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자 이외의 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하, 도 3 내지 도 4를 참조하여 본 발명의 일 실시예에 따른 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치를 설명한다. 도 3은 본 발명의 일 실시예에 따른 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치를 설명하기 위한 블럭도이고, 도 4는 본 발명의 코어 간 태스크 이주 관리 장치의 스케줄링을 설명하기 위한 도면이다.
도 3에 도시된 바와 같이, 멀티코어 시스템은 멀티코어 태스크 스케줄러(100), 복수 개의 코어(Core 0, Core 1, ..., Core N) 및 각 코어(Core 0, Core 1, ..., Core N)에 대응되어 설정된 복수 개의 실행 큐(Run-queue 0, Run-queue 1 , ..., Run-queue N)를 포함한다.
멀티코어 태스크 스케줄러(100)는 본 발명의 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치일 수 있고, 또는 본 발명의 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치를 포함할 수 있다.
본 발명의 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치는 개별 코어 당 임의의 스케줄링 정책을 부여할 수 있는 장치로서, 태스크 특성 분석부(110), 스케줄링 정책 기반 태스크 이주 관리부(120) 및 코어별 스케줄링 정책 설정부(130)를 포함한다.
태스크 특성 분석부(110)는 멀티코어 시스템에서 각 태스크의 자원할당(스케줄링) 이력을 기반으로 각 태스크의 특성을 분석하여 각 태스크의 특성을 구분하고, 구분된 각 태스크의 특성 정보를 스케줄링 정책 기반 태스크 이주 관리부(120)에 전달한다.
또한, 멀티 코어 시스템에서 실행되는 응용프로그램은 그 복잡도가 계속 증가하고, 이러한 응용프로그램의 복잡도 증가에 따라 태스크의 특성이 빠르게 변화하기 때문에, 태스크 특성 분석부(110)는 각 태스크의 특성이 변경될 경우 변경된 각 태스크의 특성을 다시 분석하고, 각 태스크의 특성 변경에 따라 빠른 대응을 할 수 있도록 분석된 각 태스크의 특성 변경 정보를 스케줄링 정책 기반 태스크 이주 관리부(120)에 전달한다.
예컨대, 멀티 코어 시스템의 특정 상황에 따라 사용자의 입출력을 요구하던 입출력 중심의 태스크가 복잡한 산술 연산 처리를 수행하는 컴퓨팅 중심의 태스크로 그 특성이 변화될 경우, 태스크 특성 분석부(110)는 이러한 태스크의 특성 변화를 분석하고, 지속적으로 각 태스크의 성능이 유지되는 관리를 할 수 있도록 분석된 특성 변화 정보를 스케줄링 정책 기반 태스크 이주 관리부(120)에 전달한다.
코어별 스케줄링 정책 설정부(130)는 각 코어(Core 0, Core 1, ... Core N)가 태스크의 특성에 따른 특화된 스케줄링 정책을 수행할 수 있도록 각 코어(Core 0, Core 1, ... Core N)마다 특화된 스케줄링 정책을 설정한다.
예컨대, 코어별 스케줄링 정책 설정부(130)는 빠른 사용자 응답성이 요구되는 태스크가 Core 0에서 수행될 수 있도록, 빠른 사용자 응답성을 요구하는 태스크를 위한 스케줄링 정책을 Core 0에 설정할 수 있다.
전술한 바를 조금 더 상세히 설명하면, 코어별 스케줄링 정책 설정부(130)는 스케줄링 정책 기반 태스크 이주 관리부(120)로부터 구분된 각 태스크의 특성 정보를 전달받을 수 있고, 각 코어(Core 0, Core 1, ... Core N)가 서로 다른 특성을 지닌 각 태스크에게 최적의 동작 환경을 보장할 수 있도록, 즉 각 태스크가 자신에게 가장 최적의 스케줄링 정책을 지닌 코어에서 동작할 수 있도록 전달된 각 태스크의 특성 정보를 토대로 스케줄링 정책의 핵심 요소인 최소 보장 수행 시간과 스케줄링 단위 시간을 코어별로 다르게 설정한다.
또한, 코어별 스케줄링 정책 설정부(130)는 스케줄링 정책 기반 태스크 이주 관리부(120)의 요청에 따라 각 코어(Core 0, Core 1, ... Core N)의 스케줄링 정책을 설정할 수 있다.
예컨대, 코어별 스케줄링 정책 설정부(130)는 동일한 특성을 지닌 태스크들이 Core 0, Core1 및 Core N에서 수행될 수 있도록 스케줄링 정책 기반 태스크 이주 관리부(120)로부터 Core 0, Core1 및 Core N에 동일한 특정 스케줄링 정책을 설정해줄 것을 요청받으면, 동일한 특정 스케줄링 정책을 Core 0, Core1 및 Core N에 설정한다.
스케줄링 정책 기반 태스크 이주 관리부(120)는 각 코어(Core 0, Core 1, ... Core N)에 설정된 스케줄링 정책에 따라 실제 수행중인 태스크의 이주를 수행한다.
예컨대, 스케줄링 정책 기반 태스크 이주 관리부(120)는 태스크 특성 분석부(110)로부터 전달된 각 태스크의 특성 정보를 토대로 특정 태스크의 이주를 결정하는 등 각 태스크의 특성 정보를 반영하여 각 태스크의 이주 정책을 관리한다.
즉, 스케줄링 정책 기반 태스크 이주 관리부(120)는 전달된 각 태스크의 특성 정보를 토대로 각 태스크의 특성에 적합한 코어에 각 태스크를 이주시킨다.
또한, 스케줄링 정책 기반 태스크 이주 관리부(120)는 각 태스크의 특성이 변경될 경우 각 태스크의 특성 변경에 따라 빠른 대응을 하기 위해, 태스크 특성 분석부(110)로부터 전달된 각 태스크의 특성 변경 정보를 토대로 각 코어(Core 0, Core 1, ... Core N)에 설정된 스케줄링 정책에 따라 실제 수행중인 태스크의 이주를 수행한다.
따라서, 멀티 코어 시스템의 각 코어(Core 0, Core 1, ... Core N)는 각 태스크의 요구사항이 변경될 경우, 변경된 각 태스크의 특성 정보 및 설정된 스케줄링 정책을 토대로 각 태스크를 이주시킬 수 있고, 이로 인해 지속적으로 각 태스크가 최적 환경에서의 동작하도록 할 수 있다.
또한, 멀티 코어 시스템의 특정 상황에서 동일한 특성을 지닌 태스크가 기설정된 개수 이상으로 대량 발생할 경우, 스케줄링 정책 기반 태스크 이주 관리부(120)는 대량으로 발생한 태스크들이 자신들의 특성에 적합한 특정 코어에만 집중되는 현상을 방지하기 위해, 특정 코어에 설정된 스케줄링 정책과 동일한 스케줄링 정책을 특정 개수의 코어에 설정할 것을 코어별 스케줄링 정책 설정부(130)에 요청한다.
이와 같이, 본 발명에 따르면, 각 코어(Core 0, Core 1, ... Core N)는 멀티 코어 시스템에서 요구된 태스크들의 특성에 따라 각 태스크를 분류한 후 각 태스크가 최적의 환경에서 동작할 수 있도록 코어별 스케줄링 정책을 설정할 수 있고, 각 태스크의 요구사항이 변경될 경우 동적인 스케줄링 정책을 부여하여 각 태스크를 이주시킴으로써 지속적으로 각 태스크가 최적 환경에서의 동작하도록 할 수 있다.
전술한 바를 좀더 상세하게 설명하면, 도 4에 도시된 바와 같이, 멀티 코어 시스템이 4개의 코어(Core 0, Core 1, Core 2, Core 3), 각 코어(Core 0, Core 1, Core 2, Core 3)에 대응되어 설정된 4개의 실행 큐(Run-queue 0, Run-queue 1, Run-queue 2, Run-queue3) 및 복수 개의 태스크(3개의 회색 원, 3개의 빨간색 원, 5개의 하늘색 원, 3개의 분홍색 직사각형, 2개의 남색 직사각형)를 포함할 경우, 태스크 특성 분석부(110)는 각 태스크(3개의 회색 원, 3개의 빨간색 원, 5개의 하늘색 원, 3개의 분홍색 직사각형, 2개의 남색 직사각형)의 자원할당(스케줄링) 이력을 기반으로 각 태스크(3개의 회색 원, 3개의 빨간색 원, 5개의 하늘색 원, 3개의 분홍색 직사각형, 2개의 남색 직사각형)의 특성을 분석하여 각 태스크(3개의 회색 원, 3개의 빨간색 원, 5개의 하늘색 원, 3개의 분홍색 직사각형, 2개의 남색 직사각형)의 특성을 구분하고, 구분된 각 태스크(3개의 회색 원, 3개의 빨간색 원, 5개의 하늘색 원, 3개의 분홍색 직사각형, 2개의 남색 직사각형)의 특성 정보를 스케줄링 정책 기반 태스크 이주 관리부(120)에 전달한다.
스케줄링 정책 기반 태스크 이주 관리부(120)는 태스크 특성 분석부(110)로부터 전달된 각 태스크(3개의 회색 원, 3개의 빨간색 원, 5개의 하늘색 원, 3개의 분홍색 직사각형, 2개의 남색 직사각형)의 특성 정보를 코어별 스케줄링 정책 설정부(130)에 전달한다.
코어별 스케줄링 정책 설정부(130)는 스케줄링 정책 기반 태스크 이주 관리부(120)로부터 전달된 각 태스크(3개의 회색 원, 3개의 빨간색 원, 5개의 하늘색 원, 3개의 분홍색 직사각형, 2개의 남색 직사각형)의 특성 정보를 토대로 코어(Core 0)에 태스크(회색 원)의 특성에 적합한 스케줄링 정책 0을 설정하고, 코어(Core 1)에 태스크(빨간색 원)의 특성에 적합한 스케줄링 정책 1을 설정하며, 코어(Core 2)에 태스크(하늘색 원)의 특성에 적합한 스케줄링 정책 2를 설정하고, 코어(Core 3)에 태스크(분홍색 직사각형, 남색 직사각형)의 특성에 적합한 스케줄링 정책 3을 설정한다.
예컨대, 코어별 스케줄링 정책 설정부(130)는 스케줄링 정책 0의 최소 보장 수행 시간과 스케줄링 단위 시간을 (a,T)로 설정하고, 스케줄링 정책 1의 최소 보장 수행 시간과 스케줄링 단위 시간을 (b,T)로 설정하며, 스케줄링 정책 2의 최소 보장 수행 시간과 스케줄링 단위 시간을 (c,T)로 설정하고, 스케줄링 정책 3의 최소 보장 수행 시간과 스케줄링 단위 시간을 (d,T)로 설정한다.
스케줄링 정책 기반 태스크 이주 관리부(120)는 특성 분석부(110)로부터 전달된 각 태스크(3개의 회색 원, 3개의 빨간색 원, 5개의 하늘색 원, 3개의 분홍색 직사각형, 2개의 남색 직사각형)의 특성 정보를 토대로 코어(Core 0)에 태스크(회색 원)를 이주시키고, 코어(Core 1)에 태스크(빨간색 원)를 이주시키며, 코어(Core 2)에 태스크(하늘색 원)를 이주시키고, 코어(Core 3)에 태스크(분홍색 직사각형, 남색 직사각형)를 이주시킨다.
이렇게 함으로써, 본 발명은 종래의 멀티코어 스케줄러가 스케줄링 정책의 핵심 요소인 최소 보장 수행 시간과 스케줄링 단위 시간을 모든 코어에 동일하게 설정하여 서로 다른 특성을 지닌 태스크들의 요구 사항을 만족시킬 수 없었던 문제, 즉 종래의 멀티코어 스케줄러가 최소 보장 수행 시간을 짧게 설정할 경우, 빠른 응답성을 요구하는 태스크들의 성능은 향상될 수 있지만, 많은 계산을 요구하는 태스크들은 빈번한 스케줄링으로 인해 성능이 저하되는 문제를 해결할 수 있다.
이상, 도 3 내지 도 4를 참조하여 본 발명의 일 실시예에 따른 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치를 설명하였고, 이하에서는 도 5를 참조하여 본 발명의 일 실시예에 따른 스케줄링 정책 기반 코어 간 태스크 이주 관리 방법을 설명한다. 도 5는 본 발명의 일 실시예에 따른 스케줄링 정책 기반 코어 간 태스크 이주 관리 방법을 설명하기 위한 흐름도이다.
도 5에 도시된 바와 같이, 본 발명의 스케줄링 정책 기반 코어 간 태스크 이주 관리 방법은 멀티코어 시스템에서 각 태스크의 자원할당(스케줄링) 이력을 기반으로 각 태스크의 특성을 분석하여 각 태스크의 특성을 구분한다(S500).
또한, 각 태스크의 특성이 변경될 경우 각 태스크의 특성 변경에 따라 빠른 대응을 할 수 있도록 변경된 각 태스크의 특성을 다시 분석한다.
예컨대, 멀티 코어 시스템의 특정 상황에 따라 사용자의 입출력을 요구하던 입출력 중심의 태스크가 복잡한 산술 연산 처리를 수행하는 컴퓨팅 중심의 태스크로 그 특성이 변화될 경우, 지속적으로 각 태스크의 성능이 유지되는 관리를 할 수 있도록 이러한 태스크의 특성 변화를 분석하여 구분한다.
각 코어(Core 0, Core 1, ... Core N)가 태스크의 특성에 따른 특화된 스케줄링 정책을 수행할 수 있도록 각 코어(Core 0, Core 1, ... Core N)마다 특화된 스케줄링 정책을 설정한다(S501).
예컨대, 빠른 사용자 응답성이 요구되는 태스크가 Core 0에서 수행될 수 있도록, 빠른 사용자 응답성을 요구하는 태스크를 위한 스케줄링 정책을 Core 0에 설정할 수 있다.
전술한 바를 조금 더 상세히 설명하면, 각 코어(Core 0, Core 1, ... Core N)가 서로 다른 특성을 지닌 각 태스크에 최적의 동작 환경을 보장할 수 있도록, 즉 각 태스크가 자신에게 가장 최적의 스케줄링 정책을 지닌 코어에서 동작할 수 있도록 각 태스크의 특성 정보를 토대로 스케줄링 정책의 핵심 요소인 최소 보장 수행 시간과 스케줄링 단위 시간을 코어별로 다르게 설정한다.
또한, 동일한 특성을 지닌 태스크들이 Core 0, Core1 및 Core N에서 수행될 수 있도록 Core 0, Core1 및 Core N에 동일한 특정 스케줄링 정책을 설정해줄 것을 요청받으면, 동일한 특정 스케줄링 정책을 Core 0, Core1 및 Core N에 설정한다.
각 코어(Core 0, Core 1, ... Core N)에 설정된 스케줄링 정책에 따라 실제 수행중인 태스크의 이주를 수행한다(S502).
예컨대, 각 태스크의 특성 정보를 토대로 특정 태스크의 이주를 결정하는 등 각 태스크의 특성 정보를 반영하여 각 태스크의 이주 정책을 관리한다.
즉, 각 태스크의 특성 정보를 토대로 각 태스크의 특성에 적합한 코어에 각 태스크를 이주시킨다.
또한, 각 태스크의 특성이 변경될 경우 각 태스크의 특성 변경에 따라 빠른 대응을 하기 위해, 각 태스크의 특성 변경 정보를 토대로 각 코어(Core 0, Core 1, ... Core N)에 설정된 스케줄링 정책에 따라 실제 수행중인 태스크의 이주를 수행한다.
따라서, 멀티 코어 시스템의 각 코어(Core 0, Core 1, ... Core N)는 각 태스크의 요구사항이 변경될 경우, 변경된 각 태스크의 특성 정보 및 설정된 스케줄링 정책을 토대로 각 태스크를 이주시킬 수 있고, 이로 인해 지속적으로 각 태스크가 최적 환경에서의 동작하도록 할 수 있다.
또한, 멀티 코어 시스템의 특정 상황에서 동일한 특성을 지닌 태스크가 기설정된 개수 이상으로 대량 발생할 경우, 대량으로 발생한 태스크들이 자신들의 특성에 적합한 특정 코어에만 집중되는 현상을 방지하기 위해, 대량 발생한 태스크들의 특성에 적합한 특정 코어에 설정된 스케줄링 정책과 동일한 스케줄링 정책을 특정 개수의 코어에 설정할 것을 요청한다.
이상 바람직한 실시예와 첨부도면을 참조하여 본 발명의 구성에 관해 구체적으로 설명하였으나, 이는 예시에 불과한 것으로 본 발명의 기술적 사상을 벗어나지 않는 범주내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
100 : 멀티코어 태스크 스케줄러 110 : 태스크 특성 분석부
120 : 스케줄링 정책 기반 태스크 이주 관리부
130 : 코어별 스케줄링 정책 설정부

Claims (20)

  1. 멀티 코어 시스템에서 각 태스크의 자원할당 이력을 기반으로 상기 각 태스크의 특성을 분석하여 구분하는 태스크 특성 분석부;
    구분된 상기 각 태스크의 특성 정보를 토대로 상기 멀티 코어 시스템의 코어마다 특화된 스케줄링 정책을 설정하는 코어별 스케줄링 정책 설정부; 및
    설정된 코어별 스케줄링 정책을 토대로 분석된 상기 각 태스크의 특성 정보를 반영하여 상기 각 태스크의 이주 정책을 관리하는 스케줄링 정책 기반 태스크 이주 관리부
    를 포함하는 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치.
  2. 제1항에 있어서,
    상기 태스크 특성 분석부는 상기 멀티 코어 시스템의 특정 상황에 따라 상기 각 태스크의 특성이 변경될 경우, 변경된 상기 각 태스크의 특성을 분석하고, 변경된 상기 각 태스크의 특성에 따라 각 태스크를 이주시키도록 분석된 상기 각 태스크의 특성 변경 정보를 상기 스케줄링 정책 기반 태스크 이주 관리부에 전달하는 것
    인 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치.
  3. 제1항에 있어서,
    상기 코어별 스케줄링 정책 설정부는 상기 멀티 코어 시스템의 각 코어가 서로 다른 특성을 지닌 상기 각 태스크에 최적의 동작 환경을 제공할 수 있도록 상기 코어마다 특화된 스케줄링 정책을 설정하는 것
    인 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치.
  4. 제3항에 있어서,
    상기 코어별 스케줄링 정책 설정부는 구분된 상기 각 태스크의 특성 정보를 토대로 스케줄링 정책의 최소 보장 수행 시간 및 스케줄링 단위 시간을 설정하여 코어별로 특화된 스케줄링 정책을 형성하고, 형성된 스케줄링 정책을 각 코어에 설정하는 것
    인 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치.
  5. 제1항에 있어서,
    상기 코어별 스케줄링 정책 설정부는 기설정된 각 코어의 스케줄링 정책을 상기 스케줄링 정책 기반 태스크 이주 관리부의 요청에 따른 스케줄링 정책으로 변경설정하는 것
    인 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치.
  6. 제1항에 있어서,
    상기 스케줄링 정책 기반 태스크 이주 관리부는 분석된 상기 각 태스크의 특성 정보 및 설정된 코어별 스케줄링 정책을 토대로 특정 태스크의 이주를 결정하고, 이주가 결정된 상기 특정 태스크를 상기 특정 태스크의 특성에 적합한 코어로 이주시키는 것
    인 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치.
  7. 제6항에 있어서,
    상기 스케줄링 정책 기반 태스크 이주 관리부는 상기 특정 태스크가 자신에게 가장 최적의 스케줄링 정책을 지닌 코어에서 동작하지 않는다고 판단되면, 상기 특정 태스크를 이주시킬 것을 결정하고, 상기 특정 태스크를 최적의 스케줄링 정책을 지닌 코어로 이주시키는 것
    인 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치.
  8. 제1항에 있어서,
    상기 스케줄링 정책 기반 태스크 이주 관리부는 상기 태스크 특성 분석부로부터 상기 각 태스크의 특성 변경 정보가 전달되면, 전달된 상기 각 태스크의 특성 변경 정보 및 설정된 코어별 스케줄링 정책을 토대로 상기 각 태스크를 변경된 상기 각 태스크의 특성에 적합한 코어로 이주시키는 것
    인 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치.
  9. 제8항에 있어서,
    상기 스케줄링 정책 기반 태스크 이주 관리부는 특정 태스크의 특성 변경 정보가 전달되면, 상기 특정 태스크가 최적의 스케줄링 정책을 지닌 코어에서 동작하지 않는다고 판단하여 상기 특정 태스크의 이주를 결정하고, 상기 특정 태스크를 전달된 상기 특성 변경 정보를 토대로 최적의 스케줄링 정책을 지닌 코어로 이주시키는 것
    인 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치.
  10. 제1항에 있어서,
    상기 스케줄링 정책 기반 태스크 이주 관리부는 상기 멀티 코어 시스템의 특정 상황에서 동일 특성을 지닌 태스크가 기설정된 개수 이상으로 대량 발생할 경우, 대량 발생한 태스크들이 자신의 특성에 접합한 특정 코어에 집중되는 현상을 방지하기 위해 상기 특정 코어에 설정된 스케줄링 정책과 동일한 스케줄링 정책을 특정 개수의 코어에 설정할 것을 상기 코어별 스케줄링 정책 설정부에 요청하는 것
    인 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치.
  11. 멀티 코어 시스템에서 각 태스크의 자원할당 이력을 기반으로 상기 각 태스크의 특성을 분석하여 구분하는 단계;
    구분된 상기 각 태스크의 특성 정보를 토대로 상기 멀티 코어 시스템의 코어마다 특화된 스케줄링 정책을 설정하는 단계; 및
    설정된 코어별 스케줄링 정책을 토대로 분석된 상기 각 태스크의 특성 정보를 반영하여 상기 각 태스크의 이주 정책을 관리하는 단계
    를 포함하는 스케줄링 정책 기반 코어 간 태스크 이주 관리 방법.
  12. 제11항에 있어서, 상기 분석하여 구분하는 단계는,
    상기 멀티 코어 시스템의 특정 상황에 따라 상기 각 태스크의 특성이 변경될 경우, 변경된 상기 각 태스크의 특성을 분석하는 단계를 포함하는 것
    인 스케줄링 정책 기반 코어 간 태스크 이주 관리 방법.
  13. 제11항에 있어서, 상기 스케줄링 정책을 설정하는 단계는,
    상기 멀티 코어 시스템의 각 코어가 서로 다른 특성을 지닌 상기 각 태스크에 최적의 동작 환경을 제공할 수 있도록 상기 코어마다 특화된 스케줄링 정책을 설정하는 단계를 포함하는 것
    인 스케줄링 정책 기반 코어 간 태스크 이주 관리 방법.
  14. 제13항에 있어서, 상기 스케줄링 정책을 설정하는 단계는,
    구분된 상기 각 태스크의 특성 정보를 토대로 스케줄링 정책의 최소 보장 수행 시간 및 스케줄링 단위 시간을 설정하여 코어별로 특화된 스케줄링 정책을 형성하는 단계; 및
    형성된 스케줄링 정책을 각 코어에 설정하는 단계를 포함하는 것
    인 스케줄링 정책 기반 코어 간 태스크 이주 관리 방법.
  15. 제11항에 있어서, 상기 스케줄링 정책을 설정하는 단계는,
    기설정된 각 코어의 스케줄링 정책을 태스크 이주 관리 요청에 따른 스케줄링 정책으로 변경설정하는 단계를 포함하는 것
    인 스케줄링 정책 기반 코어 간 태스크 이주 관리 방법.
  16. 제11항에 있어서, 상기 이주 정책을 관리하는 단계는,
    분석된 상기 각 태스크의 특성 정보 및 설정된 코어별 스케줄링 정책을 토대로 특정 태스크의 이주를 결정하는 단계; 및
    이주가 결정된 상기 특정 태스크를 상기 특정 태스크의 특성에 적합한 코어로 이주시키는 단계를 포함하는 것
    인 스케줄링 정책 기반 코어 간 태스크 이주 관리 방법.
  17. 제16항에 있어서,
    상기 이주 정책을 관리하는 단계는 상기 특정 태스크가 자신에게 가장 최적의 스케줄링 정책을 지닌 코어에서 동작하지 않는다고 판단되면, 상기 특정 태스크를 이주시킬 것을 결정하여 상기 특정 태스크를 최적의 스케줄링 정책을 지닌 코어로 이주시키는 단계인 것
    인 스케줄링 정책 기반 코어 간 태스크 이주 관리 방법.
  18. 제11항에 있어서, 상기 이주 정책을 관리하는 단계는,
    상기 태스크 특성 분석부로부터 상기 각 태스크의 특성 변경 정보가 전달되면, 전달된 상기 각 태스크의 특성 변경 정보 및 설정된 코어별 스케줄링 정책을 토대로 상기 각 태스크를 변경된 상기 각 태스크의 특성에 적합한 코어로 이주시키는 단계를 포함하는 것
    인 스케줄링 정책 기반 코어 간 태스크 이주 관리 방법.
  19. 제18항에 있어서, 상기 이주시키는 단계는,
    특정 태스크의 특성 변경 정보가 전달되면, 상기 특정 태스크가 최적의 스케줄링 정책을 지닌 코어에서 동작하지 않는다고 판단하여 상기 특정 태스크의 이주를 결정하는 단계; 및
    상기 특정 태스크를 전달된 상기 특성 변경 정보를 토대로 최적의 스케줄링 정책을 지닌 코어로 이주시키는 단계를 포함하는 것
    인 스케줄링 정책 기반 코어 간 태스크 이주 관리 방법.
  20. 제11항에 있어서, 상기 이주 정책을 관리하는 단계는,
    상기 멀티 코어 시스템의 특정 상황에서 동일 특성을 지닌 태스크가 기설정된 개수 이상으로 대량 발생할 경우, 대량 발생한 태스크들이 자신의 특성에 접합한 특정 코어에 집중되는 현상을 방지하기 위해 상기 특정 코어에 설정된 스케줄링 정책과 동일한 스케줄링 정책을 특정 개수의 코어에 설정할 것을 요청하는 단계를 포함하는 것
    인 스케줄링 정책 기반 코어 간 태스크 이주 관리 방법.
KR1020130119891A 2013-10-08 2013-10-08 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치 및 방법 KR101697647B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130119891A KR101697647B1 (ko) 2013-10-08 2013-10-08 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치 및 방법
US14/296,783 US20150100964A1 (en) 2013-10-08 2014-06-05 Apparatus and method for managing migration of tasks between cores based on scheduling policy

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130119891A KR101697647B1 (ko) 2013-10-08 2013-10-08 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20150041406A true KR20150041406A (ko) 2015-04-16
KR101697647B1 KR101697647B1 (ko) 2017-02-01

Family

ID=52778031

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130119891A KR101697647B1 (ko) 2013-10-08 2013-10-08 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치 및 방법

Country Status (2)

Country Link
US (1) US20150100964A1 (ko)
KR (1) KR101697647B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102116858B1 (ko) * 2019-09-06 2020-05-29 한국과학기술정보연구원 스케줄링장치 및 그 동작 방법
US10725828B2 (en) 2016-03-18 2020-07-28 Samsung Electronics Co., Ltd. Task scheduling method and electronic device for implementing same

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111258744A (zh) * 2018-11-30 2020-06-09 中兴通讯股份有限公司 一种基于异构计算的任务处理方法及软硬件框架系统
CN111381945B (zh) * 2018-12-29 2024-02-09 华为技术有限公司 任务迁移方法及电子设备
KR20210017054A (ko) 2019-08-06 2021-02-17 삼성전자주식회사 멀티-코어 시스템 및 그 동작 제어 방법
US11972267B2 (en) * 2022-10-04 2024-04-30 International Business Machines Corporation Hibernation of computing device with faulty batteries

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08212084A (ja) * 1995-02-02 1996-08-20 Hitachi Ltd 情報処理装置
US20070074011A1 (en) * 2005-09-28 2007-03-29 Shekhar Borkar Reliable computing with a many-core processor
KR20100018289A (ko) * 2008-08-06 2010-02-17 삼성전자주식회사 멀티 태스킹 성능 예측 방법 및 시스템
US20100169968A1 (en) * 2008-12-31 2010-07-01 Vedvyas Shanbhogue Processor extensions for execution of secure embedded containers

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6784924B2 (en) * 1997-02-20 2004-08-31 Eastman Kodak Company Network configuration file for automatically transmitting images from an electronic still camera
US8028286B2 (en) * 2006-11-30 2011-09-27 Oracle America, Inc. Methods and apparatus for scheduling threads on multicore processors under fair distribution of cache and other shared resources of the processors
US9507640B2 (en) * 2008-12-16 2016-11-29 International Business Machines Corporation Multicore processor and method of use that configures core functions based on executing instructions

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08212084A (ja) * 1995-02-02 1996-08-20 Hitachi Ltd 情報処理装置
US20070074011A1 (en) * 2005-09-28 2007-03-29 Shekhar Borkar Reliable computing with a many-core processor
KR20100018289A (ko) * 2008-08-06 2010-02-17 삼성전자주식회사 멀티 태스킹 성능 예측 방법 및 시스템
US20100169968A1 (en) * 2008-12-31 2010-07-01 Vedvyas Shanbhogue Processor extensions for execution of secure embedded containers

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10725828B2 (en) 2016-03-18 2020-07-28 Samsung Electronics Co., Ltd. Task scheduling method and electronic device for implementing same
US11385935B2 (en) 2016-03-18 2022-07-12 Samsung Electronics Co., Ltd. Task scheduling method and electronic device for implementing same
KR102116858B1 (ko) * 2019-09-06 2020-05-29 한국과학기술정보연구원 스케줄링장치 및 그 동작 방법

Also Published As

Publication number Publication date
US20150100964A1 (en) 2015-04-09
KR101697647B1 (ko) 2017-02-01

Similar Documents

Publication Publication Date Title
KR101697647B1 (ko) 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치 및 방법
US11113782B2 (en) Dynamic kernel slicing for VGPU sharing in serverless computing systems
KR101893982B1 (ko) 분산 처리 시스템, 분산 처리 시스템의 스케줄러 노드 및 스케줄 방법, 및 이를 위한 프로그램 생성 장치
US9396028B2 (en) Scheduling workloads and making provision decisions of computer resources in a computing environment
US20100043009A1 (en) Resource Allocation in Multi-Core Environment
US11467874B2 (en) System and method for resource management
WO2012028214A1 (en) High-throughput computing in a hybrid computing environment
Medel et al. Client-side scheduling based on application characterization on kubernetes
KR20140117905A (ko) 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법
Rani et al. Study on fundamental usage of CloudSim simulator and algorithms of resource allocation in cloud computing
WO2016092856A1 (ja) 情報処理装置、情報処理システム、タスク処理方法、及び、プログラムを記憶する記憶媒体
KR102052964B1 (ko) 컴퓨팅 스케줄링 방법 및 시스템
US8935699B1 (en) CPU sharing techniques
Maruf et al. Extending resources for avoiding overloads of mixed‐criticality tasks in cyber‐physical systems
Mollamotalebi et al. Multi-objective dynamic management of virtual machines in cloud environments
Joshi et al. Evaluating the performance of load balancing algorithm for heterogeneous cloudlets using HDDB algorithm
Vaidehi et al. Multicore applications in real time systems
López-Huguet et al. A self-managed Mesos cluster for data analytics with QoS guarantees
Harichane et al. KubeSC‐RTP: Smart scheduler for Kubernetes platform on CPU‐GPU heterogeneous systems
Tarandeep et al. Load balancing in cloud through task scheduling
KR20130051076A (ko) 응용프로그램 스케줄링 방법 및 장치
Nzanywayingoma et al. Task scheduling and virtual resource optimising in Hadoop YARN-based cloud computing environment
Nikulchev et al. QoS-based computing resources partitioning between virtual machines in the cloud architecture
Hadeed et al. Load balancing mechanism for edge-cloud-based priorities containers
Thakor et al. P2s_dlb: Pluggable to scheduler dynamic load balancing algorithm for distributed computing environment

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
FPAY Annual fee payment

Payment date: 20191223

Year of fee payment: 4