KR20130074401A - 계층적 스케줄러를 갖는 멀티코어 기반의 컴퓨팅 장치 및 계층적 스케줄 방법 - Google Patents

계층적 스케줄러를 갖는 멀티코어 기반의 컴퓨팅 장치 및 계층적 스케줄 방법 Download PDF

Info

Publication number
KR20130074401A
KR20130074401A KR1020110142457A KR20110142457A KR20130074401A KR 20130074401 A KR20130074401 A KR 20130074401A KR 1020110142457 A KR1020110142457 A KR 1020110142457A KR 20110142457 A KR20110142457 A KR 20110142457A KR 20130074401 A KR20130074401 A KR 20130074401A
Authority
KR
South Korea
Prior art keywords
scheduler
guide
virtual
scheduling
local
Prior art date
Application number
KR1020110142457A
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 KR1020110142457A priority Critical patent/KR20130074401A/ko
Priority to US13/726,300 priority patent/US20130167152A1/en
Publication of KR20130074401A publication Critical patent/KR20130074401A/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/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
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/504Resource capping
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Debugging And Monitoring (AREA)

Abstract

일 양상에 따른 컴퓨팅 장치는, 제 1 계층에서 작업 그룹을 스케줄하는 글로벌 스케줄러(global scheduler), 제 1 계층 위의 제 2 계층에서 작업 그룹 내의 작업을 스케줄하되, 설정된 가이드(guide)에 따라 작업을 스케줄하는 로컬 스케줄러(local scheduler), 및 물리 자원의 상태와 관련된 자원 상태 정보를 수집하고, 수집된 자원 상태 정보 및 설정된 정책(policy)을 참조하여 가이드를 설정하는 부하 모니터를 포함할 수 있다.

Description

계층적 스케줄러를 갖는 멀티코어 기반의 컴퓨팅 장치 및 계층적 스케줄 방법{Computing apparatus having multi-level scheduler based on multi-core and Scheduling method thereof}
멀티코어 시스템 및 계층적 스케줄링 시스템과 관련된다.
가상화 기술이 적용된 멀티코어 시스템은 가상 계층과 물리 계층으로 구분될 수 있다. 가상 계층은 작업을 실행한다. 가상 계층은 여러 개가 될 수 있다. 물리 계층은 각각의 가상 계층을 관리한다. 가상 계층은 어떠한 작업을 실행할지를 결정하기 위해 로컬 스케줄러(local scheduler)를 이용할 수 있다. 물리 계층은 어떠한 가상 계층을 실행할지를 결정하기 위해 글로벌 스케줄러(global schdeuler)를 이용할 수 있다. 이와 같이 글로벌 스케줄러가 실행될 가상 계층을 선택하면, 선택된 가상 계층이 로컬 스케줄러를 이용하여 실행될 작업을 선택하는 것을 계층적 스케줄링이라고 한다.
만약 각 스케줄러에 로드 밸런싱(load balancing) 기능이 없다고 가정하면, 다수의 물리 프로세서를 갖는 멀티코어 시스템에서 성능 향상을 기대하기가 어렵기 때문에, 각 스케줄러에 로드 밸런싱 기능이 적용된다. 그런데 계층적 스케줄러를 갖는 멀티코어 시스템에 적용된 로드 밸런싱 기능은, 어느 하나의 스케줄러만 적용되거나, 또는 각 스케줄러에 독립적으로 적용되는 것이 일반적이다.
따라서 가상 계층만이 로드 밸런싱이 수행하거나, 또는 가상 계층과 물리 계층이 서로 독립적으로 로드 밸런싱을 수행함에 따라 실제의 시스템 상황에 적합하지 않은 부하의 이동(load migration)이 발생될 수도 있다. 또한 가상 계층과 물리 계층이 서로 긴밀하게 협조하지 않기 때문에 불필요하게 캐시 미스(cache miss)가 발생되어 시스템의 성능 감소를 야기할 수 있다.
불필요한 캐시 미스를 줄이고 멀티코어 시스템에 최적화된 계층적 스케줄 기법을 제공하기 위함이다.
일 양상에 따른 컴퓨팅 장치는, 제 1 계층에서 작업 그룹을 스케줄하는 글로벌 스케줄러(global scheduler), 제 2 계층에서 작업 그룹 내의 작업을 스케줄하되, 설정된 가이드(guide)에 따라 작업을 스케줄하는 로컬 스케줄러(local scheduler), 및 물리 자원의 상태와 관련된 자원 상태 정보를 수집하고, 수집된 자원 상태 정보 및 설정된 정책(policy)을 참조하여 가이드를 설정하는 부하 모니터를 포함할 수 있다.
일 양상에 따라, 제 1 계층은 물리 코어 기반의 물리 플랫폼(physical platform)을 포함할 수 있고, 제 2 계층은 물리 플랫폼에 의해 관리되는 가상 코어 기반의 다수의 가상 플랫폼(virtual platform)을 포함할 수 있다.
일 양상에 따라, 가이드는 가상 코어들간의 부하 분산 비율, 가상 코어의 목표 자원량, 및 물리 코어의 목표 자원량 중 적어도 하나에 기초하여 표현될 수 있으며, 이 가이드는 로컬 스케줄러의 구체적인 스케줄 방법을 정의할 수 있다.
일 양상에 따라, 부하 모니터가 참조하는 정책은 사용될 가이드의 종류 및 정의된 스케줄 의도를 포함할 수 있다. 스케줄 의도는 각 물리 코어에 할당된 부하, 각 물리 코어의 소비 전력, 각 물리 코어의 온도 중 적어도 하나를 고려한 글로벌 스케줄러와 로컬 스케줄러간의 우선 순위, 글로벌 스케줄러의 스케줄 방법, 로컬 스케줄러의 스케줄 방법 중 적어도 하나를 포함할 수 있다.
다른 양상에 따른 컴퓨팅 장치는, 글로벌 스케줄러를 통해 작업 그룹 단위의 로드 밸런싱(load balancing)을 수행하는 물리 코어 기반의 제 1 계층 및 로컬 스케줄러를 통해 작업 그룹 내의 작업 단위의 로드 밸런싱을 수행하는 가상 코어 기반의 제 2 계층을 포함하고, 제 1 계층은 물리 자원의 상태 및 설정된 정책에 따라 로컬 스케줄러의 동작과 관련된 가이드를 설정할 수 있다.
일 양상에 따른 스케줄링 방법은, 제 1 계층에서 작업 그룹을 스케줄하는 글로벌 스케줄러와 제 2 계층에서 작업 그룹 내의 작업을 스케줄하는 로컬 스케줄러를 포함하는 멀티코어 컴퓨팅 장치의 계층적 스케줄링 방법에 있어서, 물리 자원의 상태와 관련된 자원 상태 정보를 수집하는 단계, 및 수집된 자원 상태 정보 및 설정된 정책(policy)을 참조하여 로컬 스케줄러를 위한 가이드(guide)를 설정하는 단계를 포함할 수 있다.
계층적 스케줄러가 적용된 시스템에서 작업 단위의 L2 L/B이 작업 그룹 단위에서 설정된 가이드에 따라 이루어지므로, 캐시 미스를 줄이고 정해진 의도에 따라 효율적으로 로드 밸런싱을 하는 것이 가능하다. 또한 경우에 따라 코어스 레벨의 L1 L/B가 파인 레벨의 L2 L/B보다 우선적으로 이루어지므로, 빠르게 필요한 자원을 확보하는 것도 가능하다.
도 1은 일 실시예에 따른 컴퓨팅 장치의 구성을 도시한다.
도 2는 다른 실시예에 따른 컴퓨팅 장치(200)를 도시한다.
도 3은 일 실시예에 컴퓨팅 장치의 스케줄 동작을 도시한다.
도 4는 다른 실시예에 따른 컴퓨팅 장치의 스케줄 동작을 도시한다.
도 6은 글로벌 스케줄러를 통한 로드 밸런싱 방법을 도시한다.
도 7은 일 실시예에 따른 계층적 스케줄링 방법을 도시한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 예를 상세히 설명한다.
도 1은 일 실시예에 따른 컴퓨팅 장치의 구성을 도시한다.
도 1을 참조하면, 본 실시예에 따른 컴퓨팅 장치(100)는 계층적 구조의 멀티코어 시스템(multi-core system)이 될 수 있다. 예를 들어, 컴퓨팅 장치(100)는 제 1 계층(110)과 제 2 계층(120)을 포함할 수 있다. 제 1 계층(110)은 다수의 물리 코어(physical core)(101a, 101b, 101c, 101d)에 기초한 물리 플랫폼(physical platform)(102)과 이 물리 플랫폼(102) 상에서 실행되는 가상 머신 모니터(virtual machine monitor, VMM)(또는 하이퍼바이저, hypervisor)(103)를 포함할 수 있다. 제 2 계층(120)은 가상 머신 모니터(103)에 의해 관리되는 다수의 가상 플랫폼(virtual platform)(104a, 104b)과 이 가상 플랫폼(104a, 104b) 상에서 실행되는 오퍼레이션 시스템(operation system, OS)(105a, 105b)을 포함할 수 있다. 이 때, 각각의 가상 플랫폼(104a, 104b)은 다수의 가상 코어(virtual core)(106a, 106b, 106c, 106d, 106e)를 포함할 수 있다.
또한 컴퓨팅 장치(100)는 계층적 스케줄러를 포함할 수 있다. 예컨대, 제 1 계층(110)에 작업 그룹을 스케줄하는 글로벌 스케줄러(global scheduler)(131)가 형성되고, 제 2 계층(120)에 글로벌 스케줄러(131)에 의해 스케줄된 작업 그룹내의 각 작업을 스케줄하는 로컬 스케줄러(local scheduler)(132a, 132b)가 형성될 수 있다.
글로벌 스케줄러(131)와 로컬 스케줄러(132a, 132b)는 계층적으로 동작한다. 예를 들어, 물리 플랫폼(102)이 글로벌 스케줄러(131)를 사용하여 가상 플랫폼(104a, 104b) 및 그 가상 플랫폼(104a, 104b)에서 실행될 작업 그룹(140a, 140b)을 스케줄하면, 스케줄된 가상 플랫폼(예컨대, 104a)이 로컬 스케줄러(132a)를 사용하여 작업 그룹(140a) 내의 작업 j1 내지 j3을 스케줄하는 것이 가능하다. 본 실시예에 따라, 제 1 계층(110)에서 글로벌 스케줄러(131)를 통해 수행되는 로드 밸런싱을 'L1 L/B'이라고 하고, 제 2 계층(120)에서 로컬 스케줄러(132a, 132b)를 통해 수행되는 로드 밸런싱을 'L2 L/B'라 부를 수 있다.
또한 컴퓨팅 장치(100)는 글로벌 스케줄러(131), 로컬 스케줄러(132a, 132b)외에도 부하 모니터(133), 정책 설정부(134), 가이드부(135a, 135b)를 더 포함할 수 있다.
전술하였듯이, 글로벌 스케줄러(131)와 로컬 스케줄러(132a, 132b)는 계층적으로 동작한다. 다시 말해, 글로벌 스케줄러(131)는 작업 그룹(140a, 140b)을 스케줄하고, 로컬 스케줄러(132a, 132b)는 작업 그룹(140a, 140b)내의 작업을 스케줄한다.
로컬 스케줄러(132a, 132b)는 소정의 가이드(guide)에 따라 작업을 스케줄한다. 본 실시예에서, 가이드란 제 1 계층(110)이 제 2 계층(120)에게 알려주는 물리 코어(101a, 101b, 101c, 101d)의 유틸리제이션(utilization)에 관한 추상화된 정보를 의미할 수 있다. 가이드의 표현 형식 및 구체적인 예에 대하여는 후술한다. 이러한 가이드는 부하 모니터(133)에 의해 설정될 수 있다.
부하 모니터(133)는 물리 자원의 상태와 관련된 자원 상태 정보를 수집하고, 수집된 자원 상태 정보 및 설정된 정책(policy)을 참조하여 가이드를 설정할 수 있다. 예컨대, 부하 모니터(133)는 물리 코어(101a, 101b, 101c, 101d)와 가상 코어(106a, 106b, 106c, 106d, 106e)간의 매핑 관계, 및 각 물리 코어(101a, 101b, 101c, 101d)의 사용율(utilization, usage), 작업 큐의 작업량, 온도, 주파수, 소비전력 등을 포함하는 자원 상태 정보를 수집할 수 있다. 또한 부하 모니터(133)는 정책 설정부(134)에 의해 미리 설정된 정책과 수집된 자원 상태 정보를 이용해서 가이드를 생성하고, 생성된 가이드를 가이드부(135a, 135b)로 전달할 수 있다. 가이드부(135a, 135b)는 수신된 가이드를 로컬 스케줄러(132a, 132b)로 전달하여 각 로컬 스케줄러(132a, 132b)가 수신된 가이드에 따라 스케줄을 수행하도록 할 수 있다.
일 양상에 따라, 부하 모니터(133)는 로컬 스케줄러#1(132a)과 로컬 스케줄러 #2(132b)에 각각 독립적인 가이드를 설정할 수 있다. 다시 말해, 부하 모니터(133)는 각 로컬 스케줄러(132a, 132b)에게 물리 플랫폼(102)의 실제적인 모습을 함께 보여줄 수도 있고, 정해진 정책에 따라 서로 다른 가상적인 모습을 보여줄 수도 있다. 예컨대, 로컬 스케줄러#1(132a)을 위한 가이드와 로컬 스케줄러 #2(132b)를 위한 가이드는 서로 상이하게 설정될 수도 있다.
추가적 양상에 따라, 부하 모니터(133)는 제 1 계층에 형성되고 가이드부(135a, 135b)는 제 2 계층에 형성될 수 있다. 그러나 이러한 형성 위치는 이해를 돕기 위한 하나의 예시에 불과한 것으로, 부하 모니터(133)가 계층 구조와 별개로 형성될 수도 있고, 글로벌 스케줄러(131)가 부하 모니터(133)의 역할을 수행할 수도 있다.
또 다른 추가적 양상에 따라, 가이드부(135a, 135b)는 메시지, 소프트웨어 또는 하드웨어 모듈, 공유 메모리 영역 등에 기초하여 형성될 수도 있다. 나아가 이러한 가이드부(135a, 135b) 없이 글로벌 스케줄러(131) 또는 부하 모니터(133)가 직접 로컬 스케줄러(132a, 132b)로 가이드를 전송하는 것도 가능하다.
부하 모니터(133)에 의해 설정되는 가이드는 가상 코어들(106a, 106b, 106c, 106d, 106e)간의 부하 분산 비율, 각 가상 코어(106a, 106b, 106c, 106d, 106e)의 목표 자원량, 및 각 물리 코어(101a, 101b, 101c, 101d)의 목표 자원량 중 적어도 하나에 기초하여 정의될 수 있다.
정책 설정부(134)는 가이드 중에서 어떠한 가이드를 사용할지 여부, 즉 가이드의 종류와 소정의 스케줄 의도를 결정할 수 있다. 스케줄 의도란 "특정 물리 코어에 지금 부하가 많이 걸려 있으니 그 물리 코어의 작업을 이동(migration) 시키고, 그 물리 코어로 다른 작업을 이동시키지 말아라", "특정 물리 코어의 전력 소비가 많으니 다른 물리 코어로 그 작업을 이동시켜라", "특정 물리 코어의 발열이 심하니 다른 물리 코어로 그 작업을 이동시켜라", 또는 "정해진 상황에서는 글로벌 스케줄러를 우선적으로 동작시켜라" 등과 같이 표현될 수 있다. 다시 말해, 스케줄 의도란 각 스케줄러간의 우선 순위 및 각 스케줄러의 구체적인 스케줄 방법 등을 포함할 수 있다.
이와 같이, 부하 모니터(133)가 자원 상태 정보 및 설정된 정책을 참조하여 각 로컬 스케줄러(132a, 132b) 별로 독립적인 가이드를 설정하고, 각 로컬 스케줄러(132a, 132b)가 설정된 가이드에 따라 스케줄을 수행하기 때문에, 정해진 의도에 맞게 로드 밸런싱(load balancing, L/B)을 수행함으로써 시스템의 성능을 향상시킬 수가 있다.
도 2는 다른 실시예에 따른 컴퓨팅 장치(200)를 도시한다.
도 2를 참조하면, 컴퓨팅 장치(200)는 글로벌 스케줄러(131), 로컬 스케줄러(132a, 132b), 부하 모니터(133), 정책 설정부(134), 및 가이드부(135a, 135b)를 포함할 수 있다. 각 엘리먼트(element)에 대한 구체적인 설명은 도 1과 동일하므로 생략한다.
도 1과 달리, 도 2의 컴퓨팅 장치(200)는 가상 플랫폼(104a, 104b)이 없이 물리 플랫폼(102)만으로 시스템이 구성될 수 있다. 다시 말해, 글로벌 스케줄러(131)와 로컬 스케줄러(132a, 132b)는 오퍼레이션 시스템(230)의 가상적인 제 1 계층(210)과 제 2 계층(220)에 각각 존재할 수 있다. 여기서의 제 1 계층(210) 및 제 2 계층(220)은 단순히 논리적인 또는 개념적인 구분에 불과한 것으로, 가상 머신(virtual machine, VM) 및 가상 머신 모니터(virtual machine monitor, VMM)와는 상이하다. 예를 들어, 도 1의 로컬 스케줄러(132a, 132b)는 사용자 계층(user level)에 존재하지만, 도 2의 로컬 스케줄러(132a, 132b)는 커널 계층(kernel level)에 존재할 수가 있다.
또한 도 2에서, 각각의 작업 j1 내지 j7은 물리 플랫폼(102)에서 실행될 수 있다. 이때, 작업 j1 내지 j3은 로컬 스케줄러#1(132a)에 의해 스케줄되고, 작업 j4 내지 j7은 로컬 스케줄러#2(132b)에 의해 스케줄되도록 구성될 수 있다. 각 로컬 스케줄러(132a, 132b)는 물리 코어(101a, 101b, 101c, 101d)를 모두 사용할 수도 있고 그 중 일부만 사용할 수도 있다. 글로벌 스케줄러(131)는 로컬 스케줄러(132a, 132b)로 분배되는 자원을 스케줄할 수 있다.
도 3은 일 실시예에 따른 컴퓨팅 장치의 스케줄 동작을 도시한다. 이것은 도 1의 컴퓨팅 장치(100) 또는 도 2의 컴퓨팅 장치(200)에 적용될 수 있으며, 가이드 정보로서 '가상 코어들간의 부하 분산 비율'이 사용된 경우에 대한 일 예가 될 수 있다.
도 3을 참조하면, 'CPU1' 및 'CPU2'는 물리 코어(또는 물리 프로세서)를 각각 나타낸다. 또한 'v11'과 'v21'은 CPU1에 할당되어 있는 가상 코어(또는 가상 프로세서)를 나타낸다. 마찬가지로 'v12'와 'v22'는 CPU2에 할당되어 있는 가상 코어를 나타낸다. 'j1~j6'은 실행될 작업을 나타낸다. 그리고 'CPU Info'는 부하 모니터(133)에 의해 수집된 자원 상태 정보를, 'Guide 1' 및 'Guide 2'는 각각 로컬 스케줄러#1(132a) 및 로컬 스케줄러#2(132b)의 가이드 정보가 될 수 있다.
도 1 및 도 3에서, 부하 모니터(133)는 자원 상태 정보를 수집한다. 예컨대, 도 3의 왼쪽 부분과 같이, 부하 모니터(133)는 CPU1이 100%, CPU2가 0% 사용되고 있음을 알아낸다. 부하 모니터(133)는 수집된 자원 상태 정보와 설정된 정책을 참조하여 가이드 정보를 설정한다. 예컨대, 부하 모니터(133)는 가상 코어들간의 부하 분산 비율을 토대로, Guide 1을 [0.5:0.5]로 설정하고 Guide 2를 [1:0.5]로 설정할 수 있다. 이것은 가상 플랫폼#1(104a)에서는 v11과 v12에 작업이 균등하게 할당되고, 가상 플랫폼#2(104b)에서는 v21에 모든 작업이 할당됨을 의미할 수 있다. 이렇게 설정된 가이드 정보에 따라 각 로컬 스케줄러(132a, 132b)는 작업을 스케줄한다. 예를 들어, 로컬 스케줄러#1(132a)는 v11에 할당된 j3과 j4를 v12로 옮길 수 있다. 한편 로컬 스케줄러#2(132b)는 현재 가이드 정보를 만족하고 있으므로 스케줄을 실행하지 아니할 수 있다.
이와 같이 로컬 스케줄러(132a, 132b)를 통한 로드 밸런싱이 수행되면, 도3의 가운데 부분과 같이, CPU1과 CPU2가 각각 100%와 40%의 사용율을 보일 수 있다. 부하 모니터(133)는 CPU2에 여유가 더 있으므로, 가이드 정보를 갱신할 수 있다. 예컨대, 부하 모니터(133)는 Guide 2를 [0.5:0.5]로 변경할 수 있다.
그러면 도 3의 오른쪽 부분과 같이, v21에 할당되었던 j6이 v22로 이동하고 CPU1과 CPU2의 사용량이 각각 80%가 될 수 있다.
한가지 주목할 점은 VP Guide가 반드시 CPU 사용율(utilization) 의 실제적 상황을 보여 줄 필요가 없다는 것이다. 예를 들어 Guide 2는 현재 v22가 할당된 CPU가 매우 바쁘니 v21을 주로 활용하라고 힌트를 준 것이지만, 도 3의 왼쪽에서 보듯이 v22가 할당된 CPU2는 현재 idle하다. 또한 모든 Guide가 서로 같은 상황을 보여 줄 필요가 없다. 위 예에서도 Guide 1과 Guide 2는 서로 다른 정보를 나타낸다. 이렇게 Guide를 통해 물리 플랫폼(102)은 정해진 의도 또는 정책에 따라 계층적 스케줄링을 수행할 수가 있다.
도 4는 다른 실시예에 따른 컴퓨팅 장치의 스케줄 동작을 도시한다. 이것은 도 1의 컴퓨팅 장치(100) 또는 도 2의 컴퓨팅 장치(200)에 적용될 수 있으며, 가이드 정보로서 '가상 코어의 목표 자원량'이 사용된 경우에 대한 일 예가 될 수 있다.
도 4를 참조하면, 'CPU1' 및 'CPU2'는 물리 코어(또는 물리 프로세서)를 각각 나타낸다. 또한 'v11'과 'v21'은 CPU1에 할당되어 있는 가상 코어(또는 가상 프로세서)를 나타낸다. 마찬가지로 'v12'와 'v22'는 CPU2에 할당되어 있는 가상 코어를 나타낸다. 'j1~j12'는 실행될 작업을 나타낸다. 그리고 'CPU Info'는 부하 모니터(133)에 의해 수집된 자원 상태 정보를, 'Guide 1' 및 'Guide 2'는 각각 로컬 스케줄러#1(132a) 및 로컬 스케줄러#2(132b)의 가이드 정보가 될 수 있다.
이하에서, 어떤 하나의 물리 코어가 제공하는 최대 자원량을 '1c'로, 어떤 하나의 가상 코어가 제공하는 최대 자원량을 '1vc'로 나타내기로 한다. 예컨대, 어떤 하나의 가상 코어가 하나의 물리 코어를 최대 50%까지 사용할 수 있도록 설정되었다면, '1vc=0.5c'와 같은 관계가 성립할 수 있다.
도 1 및 도 4에서, 부하 모니터(133)는 CPU1에 부하가 집중된 것을 보고, 가상 코어의 목표 자원량을 토대로, Guide 1, 2를 각각 [1vc, 0.6vc] 및 [0.6vc, 1vc]로 설정할 수 있다. 만약, 가상 플랫폼(104a, 104b)이 동등하게 자원을 공유하고 있는 경우, v11, v12, v21, v22는 평균적으로 CPU를 0.5c씩 사용할 수 있다. 이와 같이 가이드 정보가 설정되면, 가상 플랫폼#1(104a)은 설정된 Guide 1을 만족하므로 로드 밸런싱을 수행하지 아니한다. 그러나 가상 플랫폼#2(104b)는 Guide 2를 만족시키기 위해 v21에 할당되어 있는 j9 및 j10을 v22로 이동시킬 수 있다.
도 5는 또 다른 실시예에 따른 컴퓨팅 장치의 스케줄 동작을 도시한다. 이것은 도 1의 컴퓨팅 장치(100) 또는 도 2의 컴퓨팅 장치(200)에 적용될 수 있으며, 가이드 정보로서 '물리 코어의 목표 자원량'이 사용된 경우에 대한 일 예가 될 수 있다.
도 4와 마찬가지로, 'CPU1' 및 'CPU2'는 물리 코어(또는 물리 프로세서)를 각각 나타낸다. 또한 'v11'과 'v21'은 CPU1에 할당되어 있는 가상 코어(또는 가상 프로세서)를 나타낸다. 마찬가지로 'v12'와 'v22'는 CPU2에 할당되어 있는 가상 코어를 나타낸다. 'j1~j11'은 실행될 작업을 나타낸다. 그리고 'CPU Info'는 부하 모니터(133)에 의해 수집된 자원 상태 정보를, 'Guide 1' 및 'Guide 2'는 각각 로컬 스케줄러#1(132a) 및 로컬 스케줄러#2(132b)의 가이드 정보가 될 수 있다.
또한 v31은 새롭게 추가된 가상 플랫폼을 나타낸다.
도 1 및 도 5에서, v31이 새로 추가될 때, 이 v31의 실시간 특성을 만족시키기 위해 0.7c의 자원이 v31에 고정적으로 할당되는 정책을 사용한다고 가정하자. 이러한 경우, 부하 모니터(133)는 물리 코어의 목표 자원량을 토대로, 로컬 스케줄러#1(132a)의 Guide 1을 [0.15c, 0.5c]로 설정하고, 로컬 스케줄러#2(132b)의 Guide 2를 [0.15c, 0.5c]로 설정할 수 있다. 그러면 가상 플랫폼#1(104a)은 로컬 스케줄러#1(132a)를 통해 v11에 할당되었던 j1 및 j2를 v12로 옮기고, v12에 할당되었던 j3을 v11로 옮길 수 있다. 마찬가지로 가상 플랫폼#2(104b)는 로컬 스케줄러#2(132b)를 통해 v21에 할당되었던 j5 및 j6을 v22로 옮기고, v22에 할당되었던 j7을 v21로 옮길 수 있다. 이러한 로드 밸런싱이 수행되면, CPU1에는 0.2c의 여유 자원이 있지만, 가상 플랫폼(104a, 104b)은 Guide를 보고 CPU1이 비지(busy)한 상황이라고 판단할 수 있다. 따라서 0.15c 이상 쓰지 않도록 v11 또는 v21에 걸리는 부하를 조절하고, v31에게 필요한 0.7c의 자원을 확보하는 것이 가능하다.
도 6은 글로벌 스케줄러를 통한 로드 밸런싱 방법을 도시한다.
도 3 내지 도 5에서 예시된 방법은 L1 L/B로 인해 발생하는 캐시 미스 패널티(cache miss penalty)를 줄이기 위해 L2 L/B를 주로 사용한 방법이다. 그러나 경우에 따라 도 6과 같이 L1 L/B가 수행되는 것도 가능하다.
만일, 도 5와 같이, 실시간성이 요구되는 v31이 새로 추가되는 경우, v31에게 1.0c를 할당한다고 하면, CPU1의 v11과 v21을 CPU2로 이동시키는 것이 필요 자원을 빠르게 획득하는 방법일 수 있다. 따라서 글로벌 스케줄러(131)와 로컬 스케줄러(132a, 132b)간의 우선순위를 적절히 설정함으로써, 경우에 따라 글로벌 스케줄러(131)를 통한 L1 L/B가 수행되도록 하는 것도 가능하다. 또한 추가적인 양상에 따라, Guide를 따르지 않는 가상 플랫폼에게 일정한 패널티를 부여하는 용도로 L1 L/B가 사용될 수도 있다.
도 7은 일 실시예에 따른 계층적 스케줄링 방법을 도시한다. 본 실시예에 따른 계층적 스케줄링 방법은 계층적 스케줄러를 포함하는 멀티코어 시스템에 적용될 수 있다.
도 7을 참조하면, 본 실시예에 따른 계층적 스케줄러의 스케줄 방법에 따라, 자원 상태 정보가 수집된다(701). 예컨대, 부하 모니터(133)가 각 멀티코어(101a, 101b, 101c, 101d)의 사용율 또는 유틸리제이션을 수집하는 것이 가능하다.
그리고, 로컬 스케줄러를 위한 가이드가 설정된다(702). 예컨대, 부하 모니터(133)가 수집된 자원 상태 정보와 설정된 정책을 참조하여 로컬 스케줄러(132a, 132b)의 스케줄 동작과 관련된 가이드를 설정할 수 있다. 이때, 가이드는 도 3 내지 도 5와 같이, 가상 코어들(106a, 106b, 106c, 106d, 106e)간의 부하 분산 비율, 가상 코어(106a, 106b, 106c, 106d, 106e)의 목표 자원량, 및 물리 코어(101a, 101b, 101c, 101d)의 목표 자원량 중 적어도 하나에 기초하여 표현될 수 있다. 또한 설정된 정책은 사용될 가이드의 종류 및 정의된 스케줄 의도를 포함하며, 스케줄 의도는 각 물리 코어(101a, 101b, 101c, 101d)에 할당된 부하, 각 물리 코어(101a, 101b, 101c, 101d)의 소비 전력, 각 물리 코어(101a, 101b, 101c, 101d)의 온도 중 적어도 하나를 고려하여 글로벌 스케줄러(131)와 로컬 스케줄러(132a, 132b)간의 우선 순위, 글로벌 스케줄러(131)의 스케줄 방법, 로컬 스케줄러(132a, 132b)의 스케줄 방법 중 적어도 하나를 포함할 수 있다. 예를 들어, 도 6과 같이, 스케줄 의도가 반영된 정책에 따라 L1 L/B가 수행되는 것도 가능하다.
이상에서 살펴본 것과 같이, 개시된 실시예에 의하면, 계층적 스케줄러가 적용된 시스템에서 작업 단위의 L2 L/B이 작업 그룹 단위에서 설정된 가이드에 따라 이루어지므로, 캐시 미스를 줄이고 정해진 의도에 따라 효율적으로 로드 밸런싱을 하는 것이 가능하다. 또한 경우에 따라 작업 그룹 단위의 L1 L/B가 작업 단위의 L2 L/B보다 우선적으로 이루어지므로, 빠르게 필요한 자원을 확보하는 것도 가능하다.
한편, 본 발명의 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
나아가 전술한 실시 예들은 본 발명을 예시적으로 설명하기 위한 것으로 본 발명의 권리범위가 특정 실시 예에 한정되지 아니할 것이다.
101: 물리 코어
102: 물리 플랫폼
103: 가상 머신 모니터
104: 가상 플랫폼
105: 오퍼레이션 시스템
106: 가상 코어
110: 제 1 계층
120: 제 2 계층
131: 글로벌 스케줄러
132: 로컬 스케줄러
133: 부하 모니터
134: 정책 설정부
135: 가이드부

Claims (24)

  1. 제 1 계층에서, 적어도 하나의 작업을 포함하는 작업 그룹을 스케줄하는 글로벌 스케줄러;
    제 2 계층에서, 상기 작업 그룹 내의 상기 작업을 스케줄하되, 설정된 가이드(guide)에 따라 상기 작업을 스케줄하는 로컬 스케줄러; 및
    물리 자원의 상태와 관련된 자원 상태 정보를 수집하고, 수집된 자원 상태 정보 및 설정된 정책(policy)을 참조하여 상기 가이드를 설정하는 부하 모니터; 를 포함하는 컴퓨팅 장치.
  2. 제 1 항에 있어서, 상기 로컬 스케줄러는
    제 1 작업 그룹 내의 작업을 스케줄하는 제 1 로컬 스케줄러; 및
    제 2 작업 그룹 내의 작업을 스케줄하는 제 2 로컬 스케줄러; 를 포함하는 컴퓨팅 장치.
  3. 제 2 항에 있어서, 상기 부하 모니터는
    상기 제 1 로컬 스케줄러의 가이드와 상기 제 2 스케줄러의 가이드를 각각 독립적으로 설정하는 것을 특징으로 하는 컴퓨팅 장치.
  4. 제 1 항에 있어서,
    상기 제 1 계층은, 적어도 하나의 물리 코어(physical core)에 기초한 물리 플랫폼을 포함하고,
    상기 제 2 계층은, 적어도 하나의 가상 코어(virtual core)에 기초한 가상 플랫폼을 포함하는 컴퓨팅 장치.
  5. 제 4 항에 있어서, 상기 글로벌 스케줄러는
    실행될 가상 플랫폼을 스케줄하는 것을 특징으로 하는 컴퓨팅 장치.
  6. 제 5 항에 있어서, 상기 로컬 스케줄러는
    스케줄된 가상 플랫폼 내의 작업을 스케줄하는 것을 특징으로 하는 컴퓨팅 장치.
  7. 제 4 항에 있어서, 상기 가이드는
    상기 가상 코어들간의 부하 분산 비율, 상기 가상 코어의 목표 자원량, 및 상기 물리 코어의 목표 자원량 중 적어도 하나에 기초하여 표현되는 컴퓨팅 장치.
  8. 제 7 항에 있어서, 상기 정책은
    사용될 가이드의 종류 및 정의된 스케줄 의도를 포함하는 컴퓨팅 장치.
  9. 제 8 항에 있어서, 상기 정의된 스케줄 의도는
    상기 각 물리 코어에 할당된 부하, 각 물리 코어의 소비 전력, 각 물리 코어의 온도 중 적어도 하나를 고려한 상기 글로벌 스케줄러와 상기 로컬 스케줄러간의 우선 순위, 상기 글로벌 스케줄러의 스케줄 방법, 상기 로컬 스케줄러의 스케줄 방법 중 적어도 하나를 포함하는 컴퓨팅 장치.
  10. 제 1 항에 있어서,
    상기 설정된 가이드를 상기 로컬 스케줄러로 전달하는 가이드부; 를 더 포함하는 컴퓨팅 장치.
  11. 제 10 항에 있어서, 상기 가이드부는
    상기 제 2 계층에 형성되는 것을 특징으로 하는 컴퓨팅 장치.
  12. 제 1 항에 있어서, 상기 부하 모니터는
    상기 제 1 계층에 형성되는 것을 특징으로 하는 컴퓨팅 장치.
  13. 제 1 항에 있어서, 상기 제 2 계층은
    상기 제 1 계층 위에 형성되는 것을 특징으로 하는 컴퓨팅 장치.
  14. 글로벌 스케줄러를 통해 작업 그룹 단위의 로드 밸런싱(load balancing)을 수행하는 물리 코어 기반의 제 1 계층; 및
    로컬 스케줄러를 통해 상기 작업 그룹 내의 작업 단위의 로드 밸런싱을 수행하는 가상 코어 기반의 제 2 계층; 을 포함하고,
    상기 제 1 계층은 물리 자원의 상태 및 설정된 정책에 따라 상기 로컬 스케줄러의 동작과 관련된 가이드를 설정하는 것을 특징으로 하는 컴퓨팅 장치.
  15. 제 14 항에 있어서, 상기 로컬 스케줄러는
    제 1 작업 그룹 내의 작업을 스케줄하는 제 1 로컬 스케줄러; 및
    제 2 작업 그룹 내의 작업을 스케줄하는 제 2 로컬 스케줄러;를 포함하는 컴퓨팅 장치.
  16. 제 14 항에 있어서, 상기 제 1 계층은
    상기 제 1 로컬 스케줄러의 가이드와 상기 제 2 스케줄러의 가이드를 각각 독립적으로 설정하는 것을 특징으로 하는 컴퓨팅 장치.
  17. 제 14 항에 있어서, 상기 가이드는
    상기 가상 코어들간의 부하 분산 비율, 상기 가상 코어의 목표 자원량, 및 상기 물리 코어의 목표 자원량 중 적어도 하나에 기초하여 표현되는 것을 특징으로 하는 컴퓨팅 장치.
  18. 제 17 항에 있어서, 상기 정책은
    사용될 가이드의 종류 및 정의된 스케줄 의도를 포함하는 컴퓨팅 장치.
  19. 제 18 항에 있어서, 상기 정의된 스케줄 의도는
    상기 각 물리 코어에 할당된 부하, 각 물리 코어의 소비 전력, 각 물리 코어의 온도 중 적어도 하나를 고려한 상기 글로벌 스케줄러와 상기 로컬 스케줄러간의 우선 순위, 상기 글로벌 스케줄러의 스케줄 방법, 상기 로컬 스케줄러의 스케줄 방법 중 적어도 하나를 포함하는 컴퓨팅 장치.
  20. 제 1 계층에서 적어도 하나의 작업을 포함하는 작업 그룹을 스케줄하는 글로벌 스케줄러와 제 2 계층에서 작업 그룹 내의 작업을 스케줄하는 로컬 스케줄러를 포함하는 멀티코어 컴퓨팅 장치의 계층적 스케줄링 방법에 있어서,
    물리 자원의 상태와 관련된 자원 상태 정보를 수집하는 단계; 및
    수집된 자원 상태 정보 및 설정된 정책(policy)을 참조하여 상기 로컬 스케줄러를 위한 가이드(guide)를 설정하는 단계; 를 포함하는 계층적 스케줄링 방법.
  21. 제 20 항에 있어서, 상기 가이드를 설정하는 단계는
    상기 로컬 스케줄러가 제 1 작업 그룹 내의 작업을 스케줄하는 제 1 로컬 스케줄러 및 제 2 작업 그룹 내의 작업을 스케줄하는 제 2 로컬 스케줄러를 포함하는 경우, 상기 제 1 로컬 스케줄러의 가이드와 상기 제 2 스케줄러의 가이드를 각각 독립적으로 설정하는 과정을 포함하는 계층적 스케줄링 방법.
  22. 제 20 항에 있어서, 상기 가이드는
    상기 가상 코어들간의 부하 분산 비율, 상기 가상 코어의 목표 자원량, 및 상기 물리 코어의 목표 자원량 중 적어도 하나에 기초하여 표현되는 계층적 스케줄링 방법.
  23. 제 22 항에 있어서, 상기 정책은
    사용될 가이드의 종류 및 정의된 스케줄 의도를 포함하는 계층적 스케줄링 방법.
  24. 제 23 항에 있어서, 상기 정의된 스케줄 의도는
    상기 각 물리 코어에 할당된 부하, 각 물리 코어의 소비 전력, 각 물리 코어의 온도 중 적어도 하나를 고려한 상기 글로벌 스케줄러와 상기 로컬 스케줄러간의 우선 순위, 상기 글로벌 스케줄러의 스케줄 방법, 상기 로컬 스케줄러의 스케줄 방법 중 적어도 하나를 포함하는 계층적 스케줄링 방법.
KR1020110142457A 2011-12-26 2011-12-26 계층적 스케줄러를 갖는 멀티코어 기반의 컴퓨팅 장치 및 계층적 스케줄 방법 KR20130074401A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110142457A KR20130074401A (ko) 2011-12-26 2011-12-26 계층적 스케줄러를 갖는 멀티코어 기반의 컴퓨팅 장치 및 계층적 스케줄 방법
US13/726,300 US20130167152A1 (en) 2011-12-26 2012-12-24 Multi-core-based computing apparatus having hierarchical scheduler and hierarchical scheduling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110142457A KR20130074401A (ko) 2011-12-26 2011-12-26 계층적 스케줄러를 갖는 멀티코어 기반의 컴퓨팅 장치 및 계층적 스케줄 방법

Publications (1)

Publication Number Publication Date
KR20130074401A true KR20130074401A (ko) 2013-07-04

Family

ID=48655874

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110142457A KR20130074401A (ko) 2011-12-26 2011-12-26 계층적 스케줄러를 갖는 멀티코어 기반의 컴퓨팅 장치 및 계층적 스케줄 방법

Country Status (2)

Country Link
US (1) US20130167152A1 (ko)
KR (1) KR20130074401A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150043066A (ko) * 2013-10-14 2015-04-22 한국전자통신연구원 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법
WO2021127387A1 (en) * 2019-12-19 2021-06-24 Commscope Technologies Llc Adaptable hierarchical scheduling

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150169373A1 (en) * 2012-12-17 2015-06-18 Unisys Corporation System and method for managing computing resources
EP3152859A1 (en) * 2014-06-04 2017-04-12 Giesecke & Devrient GmbH Method for enhanced security of computational device with multiple cores
US9977699B2 (en) * 2014-11-17 2018-05-22 Mediatek, Inc. Energy efficient multi-cluster system and its operations
US9658893B2 (en) * 2015-05-06 2017-05-23 Runtime Design Automation Multilayered resource scheduling
US10185593B2 (en) 2016-06-03 2019-01-22 International Business Machines Corporation Balancing categorized task queues in a plurality of processing entities of a computational device
US10691502B2 (en) 2016-06-03 2020-06-23 International Business Machines Corporation Task queuing and dispatching mechanisms in a computational device
US11029998B2 (en) 2016-06-03 2021-06-08 International Business Machines Corporation Grouping of tasks for distribution among processing entities
CN108228309B (zh) * 2016-12-21 2021-11-23 腾讯科技(深圳)有限公司 基于虚拟机的数据包发送和接收方法及装置
CN107171870A (zh) * 2017-07-17 2017-09-15 郑州云海信息技术有限公司 一种双机热备份方法及装置
US11150944B2 (en) 2017-08-18 2021-10-19 International Business Machines Corporation Balancing mechanisms in ordered lists of dispatch queues in a computational device
CN107678860A (zh) * 2017-10-13 2018-02-09 郑州云海信息技术有限公司 一种kvm虚拟机cpu调度策略的优化方法及系统
CN110659119B (zh) * 2019-09-12 2022-08-02 浪潮电子信息产业股份有限公司 一种图片处理方法、装置及系统
US20240111578A1 (en) * 2022-09-30 2024-04-04 Advanced Micro Devices, Inc. Hierarchical work scheduling

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6829764B1 (en) * 1997-06-23 2004-12-07 International Business Machines Corporation System and method for maximizing usage of computer resources in scheduling of application tasks
US7451332B2 (en) * 2003-08-15 2008-11-11 Apple Inc. Methods and apparatuses for controlling the temperature of a data processing system
US7559062B2 (en) * 2003-10-30 2009-07-07 Alcatel Lucent Intelligent scheduler for multi-level exhaustive scheduling
US7810093B2 (en) * 2003-11-14 2010-10-05 Lawrence Livermore National Security, Llc Parallel-aware, dedicated job co-scheduling within/across symmetric multiprocessing nodes
US7788670B2 (en) * 2004-10-26 2010-08-31 Intel Corporation Performance-based workload scheduling in multi-core architectures
JP4715758B2 (ja) * 2007-01-30 2011-07-06 株式会社日立製作所 仮想計算機システムのプロセッサキャッピング方法
KR101389680B1 (ko) * 2007-02-06 2014-05-27 엘지전자 주식회사 무선 통신 시스템 및 이를 구성하는 단말장치와 베이스스테이션 그리고 이들의 채널 스케줄링 방법
US8284205B2 (en) * 2007-10-24 2012-10-09 Apple Inc. Methods and apparatuses for load balancing between multiple processing units
JP4577384B2 (ja) * 2008-03-14 2010-11-10 日本電気株式会社 管理マシン、管理システム、管理プログラム、および、管理方法
US8489995B2 (en) * 2008-03-18 2013-07-16 Rightscale, Inc. Systems and methods for efficiently managing and configuring virtual servers
US8103388B2 (en) * 2009-01-29 2012-01-24 International Business Machines Corporation System for prediction and communication of environmentally induced power useage limitation
US8924975B2 (en) * 2009-07-23 2014-12-30 Empire Technology Development Llc Core selection for applications running on multiprocessor systems based on core and application characteristics
US20110087783A1 (en) * 2009-10-09 2011-04-14 Siddhartha Annapureddy Allocating resources of a node in a server farm
US9098335B2 (en) * 2009-12-23 2015-08-04 Citrix Systems, Inc. Systems and methods for managing spillover limits in a multi-core system
US9268389B2 (en) * 2010-03-23 2016-02-23 Sony Corporation Reducing power consumption on a processor system by masking actual processor load with insertion of dummy instructions
JP5544967B2 (ja) * 2010-03-24 2014-07-09 富士通株式会社 仮想マシン管理プログラム及び仮想マシン管理装置
US20110265090A1 (en) * 2010-04-22 2011-10-27 Moyer William C Multiple core data processor with usage monitoring

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150043066A (ko) * 2013-10-14 2015-04-22 한국전자통신연구원 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법
US9256471B2 (en) 2013-10-14 2016-02-09 Electronics And Telecommunications Research Institute Task scheduling method for priority-based real-time operating system in multicore environment
WO2021127387A1 (en) * 2019-12-19 2021-06-24 Commscope Technologies Llc Adaptable hierarchical scheduling

Also Published As

Publication number Publication date
US20130167152A1 (en) 2013-06-27

Similar Documents

Publication Publication Date Title
KR20130074401A (ko) 계층적 스케줄러를 갖는 멀티코어 기반의 컴퓨팅 장치 및 계층적 스케줄 방법
Liu et al. A new container scheduling algorithm based on multi-objective optimization
US9104494B2 (en) Virtual computer system and its optimization method
US7694158B2 (en) Parallel processing method and system, for instance for supporting embedded cluster platforms, computer program product therefor
EP2430538B1 (en) Allocating computing system power levels responsive to service level agreements
EP2430541B1 (en) Power management in a multi-processor computer system
US9286127B2 (en) Method for allocating processor resources precisely by means of predictive scheduling based on current credits
Kao et al. Data-locality-aware mapreduce real-time scheduling framework
US10768684B2 (en) Reducing power by vacating subsets of CPUs and memory
Rapp et al. Prediction-based task migration on S-NUCA many-cores
Supreeth et al. Virtual machine scheduling strategies in cloud computing-A review
Bibal Benifa et al. Performance improvement of Mapreduce for heterogeneous clusters based on efficient locality and replica aware scheduling (ELRAS) strategy
Sfakianakis et al. Quman: Profile-based improvement of cluster utilization
Fan Job scheduling in high performance computing
Yu et al. Colab: a collaborative multi-factor scheduler for asymmetric multicore processors
Wang et al. Retracted on May 10, 2023: TPShare: a time-space sharing scheduling abstraction for shared cloud via vertical labels
Liu et al. Understanding the impact of vcpu scheduling on dvfs-based power management in virtualized cloud environment
JP2009163527A (ja) Os間で負荷分散する情報処理システム
Tsoutsouras et al. Job-arrival aware distributed run-time resource management on intel scc manycore platform
Gaur et al. A study of factors affecting MapReduce scheduling
Tao et al. Resource scheduling and data locality for virtualized Hadoop on IaaS cloud platform
Shao et al. Virtual machine resource management for high performance computing applications
Yu et al. Terms: Task management policies to achieve high performance for mixed workloads using surplus resources
Trinitis et al. Co-scheduling: prospects and challenges
Jiang et al. vChecker: an application-level demand-based co-scheduler for improving the performance of parallel jobs in Xen

Legal Events

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