KR101666395B1 - 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법 - Google Patents

멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법 Download PDF

Info

Publication number
KR101666395B1
KR101666395B1 KR1020130122057A KR20130122057A KR101666395B1 KR 101666395 B1 KR101666395 B1 KR 101666395B1 KR 1020130122057 A KR1020130122057 A KR 1020130122057A KR 20130122057 A KR20130122057 A KR 20130122057A KR 101666395 B1 KR101666395 B1 KR 101666395B1
Authority
KR
South Korea
Prior art keywords
task
task scheduling
ntwp
mnt
max
Prior art date
Application number
KR1020130122057A
Other languages
English (en)
Other versions
KR20150043066A (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 KR1020130122057A priority Critical patent/KR101666395B1/ko
Priority to US14/461,791 priority patent/US9256471B2/en
Publication of KR20150043066A publication Critical patent/KR20150043066A/ko
Application granted granted Critical
Publication of KR101666395B1 publication Critical patent/KR101666395B1/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/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
    • 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
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)

Abstract

기존 분산형 방식을 채용하는 실시간 멀티코어 태스크 스케줄링에서의 문제점을 해결하기 위한 방법을 제시한다. 제시된 방법은 하나 이상의 순차 태스크 스케줄링 알고리즘의 후보와 하나 이상의 병렬 태스크 스케줄링 알고리즘의 후보를 조합하는 단계, 조합하는 단계에 의해 생성된 태스크 스케줄링 알고리즘 후보 각각을 시뮬레이션하여 성능 평가 기준에 따라 성능 평가하는 단계, 및 성능 평가하는 단계의 결과에서 가장 우수한 성능을 내는 태스크 스케줄링 알고리즘을 선택하는 단계를 포함한다.

Description

멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법{Priority based RTOS task scheduling method in multicore environment}
본 발명은 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법에 관한 것으로, 보다 상세하게는 멀티코어 시스템에 탑재되는 우선순위 기반 실시간 운영체제(RTOS)에서 태스크를 효율적으로 스케줄링하는 방법에 관한 것이다.
최근 임베디드 산업에서도 전력대비 성능 향상의 목적으로 멀티코어를 채택하는 경우가 많아졌다. 임베디드 시스템에서 멀티코어를 사용하게 되면 칩의 크기도 감소할 뿐만 아니라 무게와 성능 대비 전력 소모가 줄어들게 되고 응용의 성능이 크게 향상될 수 있다.
그러나, 멀티코어를 사용한다고 하여 성능이 항상 향상되는 것이 아니다. 어떤 경우에는 응용 프로그램의 낮은 병렬성 때문에 오히려 단일 코어를 사용하는 것보다 성능이 더 떨어질 수도 있다. 멀티코어를 제대로 사용하려면 개발자는 응용의 구조와 태스크 분할, 태스크 스케줄링 등을 고려해야 하는데 그 중에 태스크 스케줄링 방법은 성능 향상에 가장 크게 기여를 하는 수단이다.
기존 실시간 멀티코어 태스크 스케줄링 방식은 글로벌(global) 방식과 파티셔닝(partitioned) 방식이 존재하였다. 글로벌 방식은 도 1의 (a)와 같이 오직 하나의 스케줄러가 존재하며 모든 코어 프로세서의 스케줄링 이벤트를 관할하는 방식이다. 반면, 파티셔닝 방식은 도 1의 (b)와 같이 태스크들이 어떤 코어에 실행될지 미리 정해진 뒤에 분할되어 각 코어의 로컬 스케줄러에 실행되는 방식이다.
그런데, 실시간 운영체제(RTOS)에서는 태스크가 동적인 형태로 실행되는 경우가 많으므로 상술한 기존 실시간 멀티코어 태스크 스케줄링 방식(글로벌 방식, 파티셔닝 방식)은 효율성이 떨어진다.
그에 따라, 효율성을 위해서는 도 2의 (a)의 분산형(decentralized) 방식 또는 도 2의 (b)의 완전 분산형(fully decentralized) 방식이 더 적합하다. 이 방식은 파티셔닝 방식과 형태가 유사하나 스케줄링 큐가 하나가 더 있다. 분산형 또는 완전 분산형 방식은 L1, L2의 계층적인 구조로 되어 있으며, L1은 태스크를 분배하는 역할을 하고, L2는 각 코어에 존재하는 단일 코어 전용 로컬 스케줄러이다.
글로벌 방식의 장점은 간단하고 직관적이라는 점이지만, 모든 스케줄링 이벤트가 하나의 스케줄러에 집중되기 때문에 코어 수가 많아질수록 스케줄링 오버헤드가 커진다는 단점이 있다. 그래서, 글로벌 방식에서는 일단 태스크를 코어에 할당을 하게 되면 선점이 불가능하도록 하는 경우가 있는데 이 경우에는 실시간성이 떨어지게 되므로 문제가 된다.
분산형 방식은 코어 수가 많아지더라도 확장이 가능한 구조이며, 스케줄링 오버헤드가 분산되게 되는 방식이다. 하지만, 이 경우에는 대부분의 상용 RTOS가 고정 우선순위 정책을 사용하는 것을 고려해 볼 때 태스크가 코어에 할당될 때 태스크의 우선순위가 역전될 수 있는 문제(Priority Inversion)가 발생한다. 우선순위 역전현상(Priority Inversion)은 다른 코어에 있는 더 높은 우선순위의 태스크가 존재함에도 불구하고 태스크가 실행되는 경우를 의미한다. 물론, 멀티코어 시스템에서는 몇몇의 태스크가 우연히 우선 순위가 역전되어 실행되었다고 해서 단지 성능만 약간 감소될 뿐 크게 문제가 되지 않는 경우가 많다. 하지만, 우선순위 역전현상이 많이 발생하는 것은 그다지 바람직하지는 않다.
관련 선행기술로는, 멀티코어 구조들내에서 스레드들을 할당하기 위하여 사용되는 스케줄링에서 유발될 수 있는 문제점을 제거하는 내용이, 대한민국공개특허 제 10-2007-0037427호(멀티코어 구조에서의 스케줄링)에 개시되었다.
다른 관련 선행기술로는, 멀티코어 시스템에서 서비스 품질(QoS: Quality of Service) 요구뿐 아니라 실시간성을 지원하기 위한 내용이, 대한민국공개특허 제 10-2013-0059300호(멀티코어 시스템에서 실시간 및 서비스 품질 지원을 위한 스케줄링)에 개시되었다.
또다른 관련 선행기술로는, 불필요한 캐시 미스를 줄이고 멀티코어 시스템에 최적화된 계층적 스케줄 기법을 제공하는 내용이, 대한민국공개특허 제 10-2013-0074401호(계층적 스케줄러를 갖는 멀티코어 기반의 컴퓨팅 장치 및 계층적 스케줄 방법)에 개시되었다.
또다른 관련 선행기술로는, 실시간 태스크의 특성을 시스템에 반영하여 실시간 태스크와 비 실시간 태스크를 시스템의 코어에 분배하고 태스크의 수행 중에 생기는 불균형을 동적으로 해결할 수 있도록 하는 내용이, 대한민국공개특허 제 10-2013-0088513호(멀티코어 시스템의 태스크 분배 방법 및 장치)에 개시되었다.
본 발명은 상기한 종래의 문제점을 해결하기 위해 제안된 것으로, 기존 분산형 방식을 채용하는 실시간 멀티코어 태스크 스케줄링에서의 문제점을 해결하기 위한 방법을 제공함에 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여 본 발명의 바람직한 실시양태에 따른 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법은, 하나 이상의 순차 태스크 스케줄링 알고리즘의 후보와 하나 이상의 병렬 태스크 스케줄링 알고리즘의 후보를 조합하는 단계; 상기 조합하는 단계에 의해 생성된 태스크 스케줄링 알고리즘 후보 각각을 시뮬레이션하여 성능 평가 기준에 따라 성능 평가하는 단계; 및 상기 성능 평가하는 단계의 결과에서 가장 우수한 성능을 내는 태스크 스케줄링 알고리즘을 선택하는 단계;를 포함한다.
바람직하게는, 상기 성능 평가 기준은, 응용의 마지막 하위 태스크가 끝날 때까지 걸리는 수행시간, 및 더 높은 우선순위의 태스크가 다른 코어에 대기하고 있음에도 낮은 우선순위의 태스크가 실행되는 경우의 수를 포함할 수 있다.
바람직하게는, 상기 태스크 스케줄링 알고리즘을 선택하는 단계는, 상기 태스크 스케줄링 알고리즘 후보 각각에 대한 시뮬레이션 결과 상기 응용의 마지막 하위 태스크가 끝날 때까지 걸리는 수행시간의 비율 및 상기 더 높은 우선순위의 태스크가 다른 코어에 대기하고 있음에도 낮은 우선순위의 태스크가 실행되는 경우의 수의 비율을 서로 합산하여 평균한 값이 가장 높은 태스크 스케줄링 알고리즘 후보를 상기 가장 우수한 성능을 내는 태스크 스케줄링 알고리즘으로 선택할 수 있다.
바람직하게는, 상기 성능 평가하는 단계에서의 상기 시뮬레이션은 상기 조합하는 단계에 의해 생성된 태스크 스케줄링 알고리즘 후보 각각에 대해 멀티코어 실시간 운영체제 응용 프로그램을 대상으로 시뮬레이션하는 것이고,
상기 멀티코어 실시간 운영체제 응용 프로그램의 요구조건은 순차 태스크와 병렬 태스크가 응용에 존재할 것, 순차 태스크는 주기성을 갖고 반복적으로 실행되는 태스크가 존재할 것, 순차 태스크와 병렬 태스크에는 의존성을 갖고 있을 것, 및 모든 태스크들은 우선순위와 크기를 갖고 있을 것을 포함할 수 있다.
바람직하게는, 상기 멀티코어 실시간 운영체제 응용 프로그램은 계층적 구조를 갖는 분산형 방식을 취하는 응용 프로그램일 수 있다.
바람직하게는, 상기 하나 이상의 순차 태스크 스케줄링 알고리즘의 후보는, RR(Round Robin), MNT(Minimum Number of Tasks), LB(Load Balance), 및 NTWP(Number of Tasks, Waiting Time and Priority)를 포함할 수 있다.
바람직하게는, 상기 하나 이상의 병렬 태스크 스케줄링 알고리즘의 후보는, MIN-RR, MIN-MNT, MIN-LB, MIN-NTWP, MAX-RR, MAX-MNT, MAX-LB, 및 MAX-NTWP를 포함할 수 있다.
바람직하게는, 상기 조합하는 단계에 의해 생성된 태스크 스케줄링 알고리즘 후보는, RR/MIN-RR, RR/MIN-MNT, RR/MIN-LB, RR/MIN-NTWP, RR/MAX-RR, RR/MAX-MNT, RR/MAX-LB, RR/MAX-NTWP, MNT/MIN-RR, MNT/MIN-MNT, MNT/MIN-LB, MNT/MIN-NTWP, MNT/MAX-RR, MNT/MAX-MNT, MNT/MAX-LB, MNT/MAX-NTWP, LB/MIN-RR, LB/MIN-MNT, LB/MIN-LB, LB/MIN-NTWP, LB/MAX-RR, LB/MAX-MNT, LB/MAX-LB, LB/MAX-NTWP, NTWP/MIN-RR, NTWP/MIN-MNT, NTWP/MIN-LB, NTWP/MIN-NTWP, NTWP/MAX-RR, NTWP/MAX-MNT, NTWP/MAX-LB, 및 NTWP/MAX-NTWP를 포함할 수 있다.
이러한 구성의 본 발명에 따르면, 멀티코어 RTOS에서 고성능 실시간의 효율적인 태스크 스케줄링을 할 수 있는 스케줄링 알고리즘을 선택하거나 제작할 수 있으며, 그 결과 멀티코어를 잘 활용함으로서 임베디드 응용의 성능을 더욱 향상 시킬 수 있다.
도 1은 기존 글로벌 방식과 파티셔닝 방식에서의 태스크 스케줄링을 설명하는 도면이다.
도 2는 분산형 방식에서의 태스크 스케줄링을 설명하는 도면이다.
도 3은 본 발명의 실시예에 따른 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법을 설명하기 위한 플로우차트이다.
도 4는 순차 태스크 스케줄링 알고리즘을 적용하기 위한 예제이다.
도 5는 순차 태스크 스케줄링 알고리즘의 적용 결과를 나타낸 도면이다.
도 6은 RTOS 멀티코어 응용의 예이다.
도 7은 도 6에 제시된 각 태스크에 대한 세부 사항을 기술한 예시이다.
도 8은 전체 멀티코어 태스크 스케줄링 알고리즘의 예시이다.
도 9는 전체 멀티코어 태스크 스케줄링 알고리즘 순서도이다.
도 10은 평가 시뮬레이션 결과의 예시이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명의 설명에 앞서, 본 발명에서의 기본 가정과 사전에 숙지해야 할 사항을 정리하여 설명한다.
태스크 스케줄링 방법은 시스템 환경과 기본 가정에 따라서 매우 다르다. 따라서, 먼저 기존의 멀티 코어(또는 멀티프로세서)에서 사용하는 스케줄링 방법과 본 발명의 차이점을 간단하게 기술하여 보면 하기의 표 1과 같다.
실시간 태스크
스케줄링
병렬 태스크
스케줄링
RTOS 태스크
스케줄링
대표적 알고리즘 G-FP, P-FP, G-EDF, P-EDF, RMNF, EDF-NF, Pfair MIN-MIN, MAX-MIN, Sufferage, XSufferage 본 발명
목적 마감시한 만족 최종 실행시간 단축 우선순위 유지 및 최종 실행시간 단축
태스크 형태 주기적 태스크 병렬 태스크 순차적, 병렬 태스크
필요한 입력 마감시간, 주기, 실행 시간 실행 시간 우선순위, 실행 시간
적용 응용 분야 연성, 경성 실시간 컴퓨팅 고성능 컴퓨팅 실시간 및 고성능 컴퓨팅
본 발명에서 해결하고자 하는 문제는 상술한 표 1에서 보는 바와 같이 RTOS 태스크 스케줄링 문제에 속한다. 이 문제에서 RTOS의 태스크들은 기존의 상용 RTOS가 채택하는 바와 같이 고정 우선순위를 갖는다. 그리고, 태스크는 해당 태스크의 크기(실행 시간)를 가지고 있으며, 순차적 태스크와 병렬 태스크가 존재한다.
한편, 본 발명이 적용되는 멀티코어 시스템 S는 m개의 코어 프로세서로 이루어지며, S={Ci|i=1,…,m}로 정의된다. Ci는 S에서 i번째 코어를 나타낸다.
멀티코어 응용 A는 n개의 태스크로 이루어져 있으며, A={Ti|i=1,…,n}로 정의된다. Ti는 A에서 i번째 태스크를 나타낸다. 각 태스크는 고정 우선순위 prio(Ti)를 가진다.
여기서, 태스크 Ti는 순차적 태스크(Sequential Task, SEQ Task) 및 병렬 태스크(High Performance Computing Task, HPC Task)로 분류될 수 있다.
순차적 태스크는 주어진 우선순위에 따라 가능한 빠르게 실행하는 것이 목적인 태스크이다.
병렬 태스크는 다시 여러 개의 하위 태스크(서브 태스크)로 이루어져 있으며, 병렬 태스크 Tk는 다음과 같이 정의된다. Tk=∪{ti k|i=1,…,r}, ti k는 Tk 에서 i번째 하위 태스크를 나타낸다. 이때 하위 태스크들은 디폴트로 병렬 태스크 자체의 우선순위를 그대로 상속한다.
그리고, 태스크 Ti의 예상 실행시간은 τ(Ti)로 표시하며, 이 값은 태스크의 현재 남은 작업량으로 모든 코어에 대해서 동일한 값을 갖는다.
또한, 특정한 코어 Cj에서 태스크 Ti의 예상 시작 시간(Expected Start Time)은 EST(Ti,Cj)로 표시한다. EST(Ti,Cj)값은 Ti가 스케줄링 큐에 들어간 뒤 실제로 코어 Cj에 실행될 때까지 대기한 총 예상 시간이다. 이 시간은 Ti보다 우선순위가 높거나 같은 태스크들의 예상 수행시간의 합으로 계산 가능하다.
상술한 멀티코어 시스템에서 태스크 스케줄링이란 태스크를 어느 코어에 할당할 것인가를 결정하는 문제이다. 본 발명은 도 2의 (a) 및 (b)와 같은 확장 가능한 구조의 분산형 방식을 가정하였다. 본 발명은 멀티코어 시스템에 탑재되는 우선순위 기반 실시간 운영체제(RTOS)에서 태스크를 효율적으로 스케줄링하기 위해, 하기의 2가지 사안에 주안점을 두었다.
1) 멀티코어 환경에서의 태스크 우선순위 역전현상 최소화
더 높은 우선순위의 태스크가 다른 코어에서 대기하고 있음에도 불구하고 현재의 태스크가 실행되는 현상을 우선순위 역전현상이라고 한다. 우선순위 기반의 RTOS에서는 우선순위 역전현상을 최소화하여야 응용의 실시간성을 높일 수 있다.
2) 고성능을 위한 태스크 부하 균등화
태스크의 부하를 분산시켜야 높은 성능을 얻을 수 있다. 부하 분산에 대한 척도는 makespan(병렬 응용 프로그램의 최종 실행 시간)으로 나타낼 수 있다. makespan을 최소화하여야 태스크 부하가 균등화된 것이다.
따라서, 기본적으로 이 두 가지 고려사항을 만족하면 좋은 스케줄링이라고 할 수 있다.
그런데, 분산형 구조의 경우에는 스케줄러가 계층적으로 되어 있으며, L2 스케줄러는 기존의 단일 코어 스케줄러를 그대로 사용하면 된다(참고로, 기존 RTOS에서 단일 코어 스케줄러로 가장 많이 쓰이는 것은 선점형 라운드로빈 스케줄러이다). 따라서, 위 두 가지 고려사항을 잘 만족할 수 있도록 L1 스케줄러만 잘 디자인 하면 된다. L1 스케줄러의 역할은 태스크들을 코어에 분배하는 것이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다.
도 3은 본 발명의 실시예에 따른 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법을 설명하기 위한 플로우차트이고, 도 4는 순차 태스크 스케줄링 알고리즘을 적용하기 위한 예제이고, 도 5는 순차 태스크 스케줄링 알고리즘의 적용 결과를 나타낸 도면이고, 도 6은 RTOS 멀티코어 응용의 예이고, 도 7은 도 6에 제시된 각 태스크에 대한 세부 사항을 기술한 예시이고, 도 8은 전체 멀티코어 태스크 스케줄링 알고리즘의 예시이고, 도 9는 전체 멀티코어 태스크 스케줄링 알고리즘 순서도이고, 도 10은 평가 시뮬레이션 결과의 예시이다.
본 발명의 실시예에 따른 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법은, 순차 태스크와 병렬 태스크 각각에 대한 스케줄링 알고리즘 후보를 발굴하는 단계(S10), 순차 태스크/병렬 태스크 스케줄링 알고리즘 후보를 조합하는 단계(S12), 전체 멀티코어 태스크 스케줄링 알고리즘을 근거로 성능 평가하는 단계(S14), 및 가장 최적의 성능을 갖는 태스크 스케줄링 알고리즘을 선택하는 단계(S16)를 포함한다.
먼저, S10에서, 순차 태스크와 병렬 태스크 각각에 대한 스케줄링 알고리즘 후보를 발굴(선정)한다. 순차 태스크와 병렬 태스크 각각에 대한 스케줄링 알고리즘 후보는 사용자가 발굴(선정)할 수 있다. 예를 들어, 메모리 등에 미리 저장(또는 정의)되어 있는 하나 이상의 순차 태스크 스케줄링 알고리즘 후보와 하나 이상의 병렬 태스크 스케줄링 알고리즘 후보를 사용자가 이용할 수 있다.
여기서, 순차 태스크 스케줄링 알고리즘 후보들에 대해 설명한다. 순차 태스크들은 주어진 우선순위에 따라 가능한 한 빨리 수행될 수 있으면 된다. 예측 가능한 태스크 대기시간은 EST(Ti,Cj)와 관련되어 있다. 본 발명의 실시예에 적용되는 순차 태스크 스케줄링 알고리즘의 후보로는 다양한 태스크 스케줄링 알고리즘중에서 RR(Round Robin), MNT(Minimum Number of Tasks), LB(Load Balance), 및 NTWP(Number of Tasks, Waiting Time and Priority) 등이 있을 수 있다.
RR(Round Robin) 알고리즘은 태스크가 도착하자마자 코어에 순차적으로 분배하는 알고리즘으로서 매우 간단하다는 장점이 있다. 이 알고리즘은 다른 알고리즘에 대한 참조 비교용으로 사용될 수 있다.
MNT(Minimum Number of Tasks) 알고리즘의 경우, 코어에 할당된 태스크의 수는 태스크들의 부하 균등화를 실현하기 위한 좋은 정보가 된다. 이 알고리즘은 할당된 태스크의 수가 최소가 되는 코어에 태스크를 할당한다.
LB(Load Balance) 알고리즘은 각 코어에 할당된 태스크의 실행 시간의 총 합(sum)만 고려한 알고리즘이다. 태스크 실행 시간의 총합이 가장 작은 코어에 태스크를 할당한다.
NTWP(Number of Tasks, Waiting Time and Priority) 알고리즘은 MNT 알고리즘을 고려한 뒤 동일한 태스크 수를 갖는 코어가 여러 개 있다면 태스크의 대기시간이 가장 짧은 코어를 선택한다. 만일 태스크 대기 시간이 동일한 코어가 여러 개가 있다면 태스크 우선순위의 총 합이 가장 작은 태스크 집합을 갖고 있는 코어를 선택한다. 이 알고리즘은 태스크 수, 대기시간, 우선순위를 모두 고려하는 하이브리드 방식이다.
순차 태스크 스케줄링 알고리즘 후보들을 적용하는 간단한 예제가 도 4에 나타나 있다. 도 4의 예제에서는 코어가 2개 존재한다고 가정하였다. 태스크가 L2 스케줄러에 도착을 하게 되면 태스크 우선순위(priority)에 따라 선점 정책(preemption policy)이 적용되어 태스크가 다시 정렬된다. 도 5의 (a)는 RR 또는 MNT 알고리즘이 적용된 경우를 나타낸 것으로서, 도 4에 제시된 예제에 의하면 도 5의 (a)에서 볼 수 있듯이 RR, MNT 알고리즘이 같은 스케줄을 만들어내므로 서로간의 차이를 알 수 없지만, 좀 더 동적인 환경에서는 MNT 알고리즘이 현재의 부하 상태를 반영하므로 RR 알고리즘보다 좀 더 좋은 스케줄을 만들어 낼 수 있을 것이다. 도 5의 (b)는 LB 알고리즘을 적용한 경우를 나타낸 것으로서, 도 5의 (b)의 경우를 살펴보면 LB 알고리즘은 makespan을 최소화하여 부하균형이 잘 이루어지도록 한다. 도 5의 (c)는 NTWP 알고리즘을 적용한 경우를 나타낸 것으로서, 도 5의 (c)의 경우를 살펴보면 NTWP 알고리즘이 LB 알고리즘에 비해 부하 불균형이 더 일어나지만 우선순위 역전(priority inversion)현상이 덜 발생하는 것을 알 수 있다.
이번에는, 병렬 태스크 스케줄링 알고리즘 후보들에 대해 설명한다. 병렬 태스크를 스케줄링하는 것은 병렬 태스크의 모든 하위 태스크들을 스케줄링하는 것이다. 하위 태스크들을 스케줄링할 때에 병렬 태스크의 최종 수행 시간(makespan)을 줄이는 알고리즘으로서 MIN-MIN, MAX-MIN과 같은 유명한 알고리즘이 있다. MIN-MIN은 태스크의 크기가 증가하는 순서대로 정렬하고 작은 태스크부터 할당을 하는데, 그 태스크가 가장 빨리 완료하는 코어에 할당을 한다. MAX-MIN은 태스크의 크기가 감소하는 순서대로 정렬하고 큰 태스크부터 할당을 하는데, 그 태스크가 가장 빨리 완료하는 코어에 할당을 한다.
본 발명에서는 MIN-MIN 알고리즘과 MAX-MIN 알고리즘을 상술한 순차 태스크 스케줄링 알고리즘에 각각 적용하여 병렬 태스크 스케줄링 후보들을 제시한다. 예를 들면, MIN-RR 알고리즘은 작은 크기의 태스크를 먼저 선택하고 그 태스크를 라운드 로빈 방식으로 코어에 할당하는 병렬 태스크 스케줄링 방식이다. 이와 같이 하게 되면, MIN-(.), MAX-(.)와 같이 되어 총 8가지의 병렬 태스크 스케줄링 알고리즘 후보들이 존재하게 된다((.)은 순차 태스크 스케줄링 알고리즘). 즉, 본 발명의 실시예에서 병렬 태스크 스케줄링 알고리즘 후보들은 MIN-RR, MIN-MNT, MIN-LB, MIN-NTWP, MAX-RR, MAX-MNT, MAX-LB, MAX-NTWP이 된다.
S12에서, 이와 같이 본 발명의 실시예에서 필요로 하는 순차 태스크 스케줄링 알고리즘 후보들과 병렬 태스크 스케줄링 알고리즘 후보들이 선정(발굴)된 이후에는 순차 태스크 스케줄링 알고리즘 후보들과 병렬 태스크 스케줄링 알고리즘 후보들을 조합한다. 조합에 의해 생성된 태스크 스케줄링 알고리즘 후보는 총 32가지(즉, RR/MIN-RR, RR/MIN-MNT, RR/MIN-LB, RR/MIN-NTWP, RR/MAX-RR, RR/MAX-MNT, RR/MAX-LB, RR/MAX-NTWP, MNT/MIN-RR, MNT/MIN-MNT, MNT/MIN-LB, MNT/MIN-NTWP, MNT/MAX-RR, MNT/MAX-MNT, MNT/MAX-LB, MNT/MAX-NTWP, LB/MIN-RR, LB/MIN-MNT, LB/MIN-LB, LB/MIN-NTWP, LB/MAX-RR, LB/MAX-MNT, LB/MAX-LB, LB/MAX-NTWP, NTWP/MIN-RR, NTWP/MIN-MNT, NTWP/MIN-LB, NTWP/MIN-NTWP, NTWP/MAX-RR, NTWP/MAX-MNT, NTWP/MAX-LB, NTWP/MAX-NTWP)가 된다.
이후, S14에서, 조합에 의해 생성된 32가지의 태스크 스케줄링 알고리즘 후보들에 대해 멀티코어 RTOS 응용 프로그램을 대상으로 실험을 하고 성능 평가를 한다. 실험을 위한 멀티코어 RTOS 응용 프로그램의 요구조건은 다음과 같다. 첫 번째 요구조건은 순차 태스크와 병렬 태스크가 응용에 존재해야 한다는 것이다. 두 번째 요구조건은 순차 태스크는 주기성을 갖고 반복적으로 실행되는 태스크가 존재해야 한다는 것이다. 세 번째 요구조건은 순차 태스크와 병렬 태스크에는 의존성을 갖고 있어야 한다는 것이다. 네 번째 요구조건은 모든 태스크들은 우선순위와 크기(실행시간)를 갖고 있어야 한다는 것이다.
이러한 요구조건들을 수용하는 멀티코어 응용의 예시가 도 6에 나타나 있다. 도 7은 도 6에서 나타난 각 태스크에 대한 세부 사항을 기술한 예시를 보여준다.
한편, 실험을 위한 멀티코어 RTOS 응용 프로그램의 알고리즘(즉, 전체 멀티코어 스케줄링 알고리즘)은 도 8과 같이 예시될 수 있다. 도 8에서, 순차 태스크 스케줄링 알고리즘은 CoreSelectSEQ(Ti)가 된다. 병렬 태스크 스케줄링 알고리즘은 CoreSelectHPC(Ti)가 되는데 이 알고리즘 역시 CoreSelectSEQ(Ti)를 활용한 것을 볼 수 있다. 도 8에 예시된 L1_Scheduler(Ti)는 CoreSelectSEQ(Ti)와 CoreSelectHPC(Ti)가 어떤 알고리즘을 사용하느냐에 따라 달라지게 된다. 순차 태스크/병렬 태스크 알고리즘의 조합은 32가지 후보가 된다. 이를 본 발명에서는 RR/MIN-MNT과 같이 표기하기로 한다. 이때, RR은 CoreSelectSEQ(Ti)이며, MIN-MNT는 CoreSelectHPC(Ti)가 된다. 만약, MNT/MAX-NTWP의 경우 MNT는 CoreSelectSEQ(Ti)이며, MAX-NTWP는 CoreSelectHPC(Ti)가 된다.
도 8의 알고리즘을 순서도(Flowchart)로 도식화한 것이 도 9이다. L1 스케줄러 알고리즘만 제시한 것은 상술한 바와 같이 분산형 멀티코어 스케줄링 방법에서는 L2 스케줄러 알고리즘은 기존의 단일 코어 스케줄링 알고리즘(우선순위 기반 스케줄링 알고리즘)을 그대로 사용하면 되기 때문이다. 그래서, 도 2의 (a), (b)의 L1에 대한 알고리즘만 제시하였다. 본 발명에서는 L2 스케줄링 알고리즘을 단일 코어용 RTOS에서 흔히 사용하는 우선순위 기반 스케줄링 알고리즘으로 가정한다.
도 9의 순서도를 보면, L1 스케줄러를 시작하게 되면 먼저 태스크(Ti)를 수신한다(S20). 태스크(Ti)를 수신하지 못하고 있으면 계속 대기한다(S22). 태스크(Ti)를 수신한 경우에는 수신한 태스크(Ti)의 타입을 판별한다(S24). 태스크(Ti)의 타입이 순차태스크이면 순차 태스크 스케줄링 알고리즘을 수행하고(S26), 태스크(Ti)의 타입이 병렬 태스크이면 병렬 태스크 스케줄링 알고리즘을 수행한다(S28). 여기서, 순차 태스크 스케줄링 알고리즘 수행이라 함은 순차 태스크를 선택된 코어의 L2 스케줄러에 할당하는 것을 의미하고, 병렬 태스크 스케줄링 알고리즘 수행이라 함은 병렬 태스크의 각 하위 태스크들을 선택된 코어의 L2 스케줄러들에 각각 할당하는 것을 의미한다.
이와 같이 32가지의 태스크 스케줄링 알고리즘 후보 각각을 도 8의 알고리즘에 적용시켜서 성능 평가를 한다. 여기서, 32가지의 태스크 스케줄링 알고리즘 후보들을 각각 평가하기 위한 성능 평가 기준은 상술한 바와 같이 태스크 스케줄링 문제의 목적대로 makespan과 우선순위 역전현상을 최소화시키는 것이다. 따라서, 성능 평가를 위해서는 2가지 평가 지표(makespan, prioinv)를 이용할 수 있다. 여기서, makespan은 응용의 마지막 하위 태스크가 끝날 때까지 걸리는 수행시간을 나타낸다. prioinv(Priority Inversion, 우선순위 역전)은 더 높은 우선순위의 태스크가 다른 코어에 대기하고 있음에도 낮은 우선순위의 태스크가 실행되는 경우의 수로 정의한다. 예를 들어 ARM-Cortex A8 프로세서가 도 7에서 제시한 응용을 이용하여 각각의 스케줄링 알고리즘 후보들을 멀티코어 RTOS 시뮬레이션하여 도 10과 같은 결과를 얻을 수 있다.
마지막으로, S16에서 가장 최적의 성능을 갖는 태스크 스케줄링 알고리즘을 선택(선정)한다. 본 발명의 실시예에서는 태스크 스케줄링 알고리즘 후보 각각에 대한 시뮬레이션 결과, 응용의 마지막 하위 태스크가 끝날 때까지 걸리는 수행시간(makespan)의 비율 및 더 높은 우선순위의 태스크가 다른 코어에 대기하고 있음에도 낮은 우선순위의 태스크가 실행되는 경우의 수(prioinv)의 비율을 서로 합산하여 평균한 값중에서 가장 높은 값을 갖는 태스크 스케줄링 알고리즘 후보를 가장 최적의 성능을 갖는 태스크 스케줄링 알고리즘으로 선택한다. 즉, 도 10에서는 makespan과 prioinv 값을 기준으로 하여 각각의 후보들의 등급을 보여준다. 이 결과 그래프로부터 NTWP/MIN-MNT 알고리즘 조합이 makespan과 priority inversion 관점에서 가장 좋은 성능을 보인다는 것을 알 수 있다. NTWP/MIN-MNT 알고리즘은 가장 나쁜 성능을 보여주는 RR/MIN-RR 보다 makespan 관점에서는 4.80%, prioinv 관점에서는 30.37%의 성능 향상을 보여준다.
상술한 도 3의 S12의 동작은 조합부(또는 조합장치)에 의해 행해질 수 있고, S14의 동작은 성능 평가부(또는 성능 평가장치)에서 행해질 수 있고, S16의 동작은 선택부(또는 선택장치)에서 행해질 수 있다. 별도의 도면을 제시하지 않았지만, 본 발명을 실시하기 위해서는 S12의 동작을 수행할 수 있는 조합부, S14의 동작을 수행할 수 있는 성능 평가부, 및 S16의 동작을 수행할 수 있는 선택부를 포함하는 장치가 있어야 함은 상술한 설명을 근거로 누구라도 쉽게 이해할 수 있으리라 본다. 한편, S12의 순차 태스크 스케줄링 알고리즘 후보들과 병렬 태스크 스케줄링 알고리즘 후보들을 조합하는 동작은 필요에 따라서는 사용자가 할 수도 있다.
이상에서와 같이 도면과 명세서에서 최적의 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로, 본 기술 분야의 통상의 지식을 가진자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (8)

  1. 조합부, 성능 평가부 및 선택부를 포함하는 장치에 의해 수행되는 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법에 있어서,
    상기 조합부에서, 하나 이상의 순차 태스크 스케줄링 알고리즘의 후보와 하나 이상의 병렬 태스크 스케줄링 알고리즘의 후보를 조합하는 단계;
    상기 성능 평가부에서, 상기 조합하는 단계에 의해 생성된 태스크 스케줄링 알고리즘 후보 각각을 시뮬레이션하여 성능 평가 기준에 따라 성능 평가하는 단계; 및
    상기 선택부에서, 상기 성능 평가하는 단계의 결과에서 가장 우수한 성능을 내는 태스크 스케줄링 알고리즘을 선택하는 단계;를 포함하는 것을 특징으로 하는 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법.
  2. 청구항 1에 있어서,
    상기 성능 평가 기준은, 응용의 마지막 하위 태스크가 끝날 때까지 걸리는 수행시간, 및 더 높은 우선순위의 태스크가 다른 코어에 대기하고 있음에도 낮은 우선순위의 태스크가 실행되는 경우의 수를 포함하는 것을 특징으로 하는 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법.
  3. 청구항 2에 있어서,
    상기 태스크 스케줄링 알고리즘을 선택하는 단계는, 상기 태스크 스케줄링 알고리즘 후보 각각에 대한 시뮬레이션 결과 상기 응용의 마지막 하위 태스크가 끝날 때까지 걸리는 수행시간의 비율 및 상기 더 높은 우선순위의 태스크가 다른 코어에 대기하고 있음에도 낮은 우선순위의 태스크가 실행되는 경우의 수의 비율을 서로 합산하여 평균한 값이 가장 높은 태스크 스케줄링 알고리즘 후보를 상기 가장 우수한 성능을 내는 태스크 스케줄링 알고리즘으로 선택하는 것을 특징으로 하는 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법.
  4. 청구항 1에 있어서,
    상기 성능 평가하는 단계에서의 상기 시뮬레이션은 상기 조합하는 단계에 의해 생성된 태스크 스케줄링 알고리즘 후보 각각에 대해 멀티코어 실시간 운영체제 응용 프로그램을 대상으로 시뮬레이션하는 것이고,
    상기 멀티코어 실시간 운영체제 응용 프로그램의 요구조건은 순차 태스크와 병렬 태스크가 응용에 존재할 것, 순차 태스크는 주기성을 갖고 반복적으로 실행되는 태스크가 존재할 것, 순차 태스크와 병렬 태스크에는 의존성을 갖고 있을 것, 및 모든 태스크들은 우선순위와 크기를 갖고 있을 것을 포함하는 것을 특징으로 하는 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법.
  5. 청구항 4에 있어서,
    상기 멀티코어 실시간 운영체제 응용 프로그램은 계층적 구조를 갖는 분산형 방식을 취하는 응용 프로그램인 것을 특징으로 하는 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법.
  6. 청구항 1에 있어서,
    상기 하나 이상의 순차 태스크 스케줄링 알고리즘의 후보는, RR(Round Robin), MNT(Minimum Number of Tasks), LB(Load Balance), 및 NTWP(Number of Tasks, Waiting Time and Priority)를 포함하는 것을 특징으로 하는 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법.
  7. 청구항 1에 있어서,
    상기 하나 이상의 병렬 태스크 스케줄링 알고리즘의 후보는, MIN-RR, MIN-MNT, MIN-LB, MIN-NTWP, MAX-RR, MAX-MNT, MAX-LB, 및 MAX-NTWP를 포함하는 것을 특징으로 하는 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법.
  8. 청구항 1에 있어서,
    상기 조합하는 단계에 의해 생성된 태스크 스케줄링 알고리즘 후보는, RR/MIN-RR, RR/MIN-MNT, RR/MIN-LB, RR/MIN-NTWP, RR/MAX-RR, RR/MAX-MNT, RR/MAX-LB, RR/MAX-NTWP, MNT/MIN-RR, MNT/MIN-MNT, MNT/MIN-LB, MNT/MIN-NTWP, MNT/MAX-RR, MNT/MAX-MNT, MNT/MAX-LB, MNT/MAX-NTWP, LB/MIN-RR, LB/MIN-MNT, LB/MIN-LB, LB/MIN-NTWP, LB/MAX-RR, LB/MAX-MNT, LB/MAX-LB, LB/MAX-NTWP, NTWP/MIN-RR, NTWP/MIN-MNT, NTWP/MIN-LB, NTWP/MIN-NTWP, NTWP/MAX-RR, NTWP/MAX-MNT, NTWP/MAX-LB, 및 NTWP/MAX-NTWP를 포함하는 것을 특징으로 하는 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법.
KR1020130122057A 2013-10-14 2013-10-14 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법 KR101666395B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130122057A KR101666395B1 (ko) 2013-10-14 2013-10-14 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법
US14/461,791 US9256471B2 (en) 2013-10-14 2014-08-18 Task scheduling method for priority-based real-time operating system in multicore environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130122057A KR101666395B1 (ko) 2013-10-14 2013-10-14 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법

Publications (2)

Publication Number Publication Date
KR20150043066A KR20150043066A (ko) 2015-04-22
KR101666395B1 true KR101666395B1 (ko) 2016-10-14

Family

ID=52810789

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130122057A KR101666395B1 (ko) 2013-10-14 2013-10-14 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법

Country Status (2)

Country Link
US (1) US9256471B2 (ko)
KR (1) KR101666395B1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9632823B1 (en) * 2014-09-08 2017-04-25 Amazon Technologies, Inc. Multithreaded application thread schedule selection
CN104793990B (zh) * 2015-04-21 2018-08-17 中国海洋大学 一种多时序任务调度方法和***
KR101711060B1 (ko) 2015-05-29 2017-02-28 주식회사 코어라인소프트 레이 캐스팅의 가속화 방법 및 장치
GB2545435B (en) * 2015-12-15 2019-10-30 Advanced Risc Mach Ltd Data processing systems
US10289448B2 (en) 2016-09-06 2019-05-14 At&T Intellectual Property I, L.P. Background traffic management
DE102016221526A1 (de) * 2016-11-03 2018-05-03 Robert Bosch Gmbh Vorrichtung und Verfahren zum Bearbeiten einer Mehrzahl Aufgaben
CN106900041B (zh) * 2017-03-03 2020-08-18 上海笃一物联科技有限公司 一种物联网节点节能方法及其装置
US11010193B2 (en) * 2017-04-17 2021-05-18 Microsoft Technology Licensing, Llc Efficient queue management for cluster scheduling
CN109426553A (zh) * 2017-08-21 2019-03-05 上海寒武纪信息科技有限公司 任务切分装置及方法、任务处理装置及方法、多核处理器
US10659374B2 (en) * 2017-09-29 2020-05-19 Electronics And Telecommunications Research Institute Method and apparatus for controlling frame transmission
US10509671B2 (en) 2017-12-11 2019-12-17 Afiniti Europe Technologies Limited Techniques for behavioral pairing in a task assignment system
US10768981B2 (en) * 2018-06-21 2020-09-08 Microsoft Technology Licensing, Llc Dynamic time slicing for data-processing workflow
CN108984292B (zh) * 2018-08-14 2022-02-08 华侨大学 混合关键***固定优先级周期任务能耗优化方法
CN109144696B (zh) 2018-08-30 2021-08-10 百度在线网络技术(北京)有限公司 一种任务调度方法、装置、电子设备及存储介质
DE102018125090A1 (de) * 2018-10-10 2020-04-16 Beckhoff Automation Gmbh Verfahren zur Datenverarbeitung und speicherprogrammierbare Steuerung
KR102132598B1 (ko) * 2018-10-23 2020-07-10 울산과학기술원 시스템의 메모리 대역폭을 분할하는 방법 및 장치
KR102252079B1 (ko) * 2019-09-20 2021-05-13 인천대학교 산학협력단 실시간 시스템을 위한 실시간성 분석 장치 및 그 동작 방법
KR102264205B1 (ko) * 2019-09-20 2021-06-10 인천대학교 산학협력단 실시간 시스템에서의 작업 할당 스케줄링이 가능한지 여부를 판정할 수 있는 실시간성 분석 장치 및 그 동작 방법
KR102496115B1 (ko) 2019-11-28 2023-02-06 한국전자통신연구원 강화학습 기반 이타적 스케줄링 장치 및 방법
EP3872634A1 (en) * 2020-02-27 2021-09-01 Mitsubishi Electric R&D Centre Europe B.V. Multicore system on chip architecture
CN111752692B (zh) * 2020-06-23 2024-04-12 北京经纬恒润科技股份有限公司 仿真环境下的多核任务处理方法及装置
US11570176B2 (en) 2021-01-28 2023-01-31 Bank Of America Corporation System and method for prioritization of text requests in a queue based on contextual and temporal vector analysis
CN113495781B (zh) * 2021-06-30 2023-03-03 东风商用车有限公司 任务调度方法、装置、设备及可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000076211A (ja) 1998-08-24 2000-03-14 Lucent Technol Inc シミュレ―ション実行装置及びシミュレ―ション実行方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266750B1 (en) * 2002-07-10 2007-09-04 Maxtor Corporation Error recovery strategies for iterative decoders
KR100733989B1 (ko) 2004-12-08 2007-06-29 한국전자통신연구원 와이어스피드 실현을 위한 패킷 처리 장치 및 그 방법
GB0519981D0 (en) 2005-09-30 2005-11-09 Ignios Ltd Scheduling in a multicore architecture
US7725745B2 (en) * 2006-12-19 2010-05-25 Intel Corporation Power aware software pipelining for hardware accelerators
WO2008090665A1 (ja) * 2007-01-25 2008-07-31 Nec Corporation プログラム並列化方法及び装置
US20130139176A1 (en) * 2011-11-28 2013-05-30 Samsung Electronics Co., Ltd. Scheduling for real-time and quality of service support on multicore systems
KR20130074401A (ko) * 2011-12-26 2013-07-04 삼성전자주식회사 계층적 스케줄러를 갖는 멀티코어 기반의 컴퓨팅 장치 및 계층적 스케줄 방법
KR101733117B1 (ko) 2012-01-31 2017-05-25 한국전자통신연구원 멀티코어 시스템의 태스크 분배 방법 및 장치
US8793638B2 (en) * 2012-07-26 2014-07-29 Taiwan Semiconductor Manufacturing Company, Ltd. Method of optimizing design for manufacturing (DFM)

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000076211A (ja) 1998-08-24 2000-03-14 Lucent Technol Inc シミュレ―ション実行装置及びシミュレ―ション実行方法

Also Published As

Publication number Publication date
US20150106819A1 (en) 2015-04-16
US9256471B2 (en) 2016-02-09
KR20150043066A (ko) 2015-04-22

Similar Documents

Publication Publication Date Title
KR101666395B1 (ko) 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법
US11106495B2 (en) Techniques to dynamically partition tasks
US9069610B2 (en) Compute cluster with balanced resources
Liaw et al. Hypersched: Dynamic resource reallocation for model development on a deadline
Kang et al. Lalarand: Flexible layer-by-layer cpu/gpu scheduling for real-time dnn tasks
US20100083262A1 (en) Scheduling Requesters Of A Shared Storage Resource
KR101350755B1 (ko) 클라우드 컴퓨팅에서 다중 워크플로우를 위한 비용기반 스케줄링 방법 및 그 시스템
US7818747B1 (en) Cache-aware scheduling for a chip multithreading processor
Paolieri et al. IA^ 3: An interference aware allocation algorithm for multicore hard real-time systems
US8356304B2 (en) Method and system for job scheduling
US9665290B2 (en) Memory controller for heterogeneous computer
KR20110075297A (ko) 병렬도를 고려한 병렬 처리 장치 및 방법
Di et al. Optimization of composite cloud service processing with virtual machines
US20160034310A1 (en) Job assignment in a multi-core processor
KR20110075296A (ko) 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
CN111104211A (zh) 基于任务依赖的计算卸载方法、***、设备及介质
CN110990154B (zh) 一种大数据应用优化方法、装置及存储介质
JP2022539955A (ja) タスクスケジューリング方法及び装置
US9471387B2 (en) Scheduling in job execution
Zheng et al. Memory access scheduling schemes for systems with multi-core processors
Ferreira da Silva et al. Controlling fairness and task granularity in distributed, online, non‐clairvoyant workflow executions
KR20130059300A (ko) 멀티코어 시스템에서 실시간 및 서비스 품질 지원을 위한 스케줄링
Kim et al. Paris and elsa: An elastic scheduling algorithm for reconfigurable multi-gpu inference servers
Xue et al. BOLAS: bipartite-graph oriented locality-aware scheduling for MapReduce tasks
EP3039544B1 (en) Method and system for assigning a computational block of a software program to cores of a multi-processor system

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: 20190925

Year of fee payment: 4