KR101958112B1 - 태스크 스케줄링 장치 및 태스크 스케줄링 방법 - Google Patents
태스크 스케줄링 장치 및 태스크 스케줄링 방법 Download PDFInfo
- Publication number
- KR101958112B1 KR101958112B1 KR1020170128019A KR20170128019A KR101958112B1 KR 101958112 B1 KR101958112 B1 KR 101958112B1 KR 1020170128019 A KR1020170128019 A KR 1020170128019A KR 20170128019 A KR20170128019 A KR 20170128019A KR 101958112 B1 KR101958112 B1 KR 101958112B1
- Authority
- KR
- South Korea
- Prior art keywords
- tasks
- cpu
- bandwidth
- task
- scheduling
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5044—Allocation 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 hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5038—Allocation 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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
태스크 스케줄링 장치 및 태스크 스케줄링 방법이 개시된다. 일 실시예에 따른 스케줄링 방법은 태스크 스케줄링 데이터로부터 자원에 대한 복수의 태스크 각각의 공유 비율 및 대역폭을 획득하는 단계와, 상기 공유 비율 및 상기 대역폭에 기초하여 상기 공유 비율을 제어하는 단계를 포함한다.
Description
아래 실시예들은 태스크 스케줄링 장치 및 태스크 스케줄링 방법에 관한 것이다.
운영체제의 자원을 효율적으로 분산하여 스케줄링하는 방법에 있어서, 공유 비율 방식의 스케줄링 알고리즘과 대역폭 방식의 스케줄링 알고리즘이 있을 수 있다.
해당 운영체제에서 공유 비율 방식의 스케줄링 알고리즘은 각 자원제공 대상에 할당된 공유 비율을 기준하여 시스템의 가용자원을 분배하는 방식으로 스케줄링을 수행할 수 있다. 또한, 대역폭 방식의 스케줄링 알고리즘은 해당 자원제공 대상의 자원 사용량이 대역폭을 넘지 못하도록 제한할 수 있다.
즉, 자원제공 대상은 공유 비율 방식의 스케줄링 알고리즘 및/또는 대역폭 방식의 스케줄링 알고리즘을 사용하여 자원을 예약할 수 있다.
공유 비율 방식의 스케줄링 알고리즘의 경우 자원 제공대상에 예약된 공유 비율에 의해 공유 비율이 결정되고, 다른 자원제공 대상의 자원을 예약하는 대상이 증가, 감소하는 경우 기존 대상에 대한 CPU 자원 제공 량이 변화할 수 있다. 또한, 대역폭 방식의 스케줄링 알고리즘을 사용한 자원 예약은 자원 제공대상에게 제공되는 자원이 설정된 대역폭을 넘어서지 않도록 제한할 수 있다.
따라서, 운영체제에서 자원제공 대상은 공유 비율 방식의 스케줄링 알고리즘과 대역폭 방식의 스케줄링 알고리즘을 함께 사용하는 경우 할당된 공유 비율에 따라 자원 제공량이 결정 되며, 예약된 대역폭 자원을 넘는 자원이 제공되는 경우 해당 자원에 대한 사용이 제한될 수 있다.
즉, 위와 같은 운영체제에서는 자원 제공대상에게 예약된 대역폭에 대한 CPU 자원 제공을 보장하기 어렵다. 클라우드 시스템과 같이 여러 노드간에 작업을 분배하거나, 컴퓨팅 자원의 사용량을 과금 대상으로 삼는 산업에서 사용자는 정량화된 CPU 자원을 구매할 수 있어야 하며, 과금된 자원에 대한 보장이 이루어져야 한다.
일 실시예에 따른 스케줄링 방법은 태스크 스케줄링 데이터(task scheduling data)로부터 자원(resource)에 대한 복수의 태스크 각각의 공유 비율(CPU shares) 및 대역폭(bandwidth)을 획득하는 단계와, 상기 공유 비율 및 상기 대역폭에 기초하여 상기 공유 비율을 제어하는 단계를 포함한다.
상기 획득하는 단계는, 상기 복수의 태스크를 계층적(hierarchical) 구조로 분류하는 단계를 포함할 수 있다.
상기 복수의 태스크를 계층적 구조로 분류하는 단계는, 상기 복수의 태스크를 부모(parent) 폴더, 형제(sibling) 폴더, 및 자식(child) 폴더로 분류하는 단계를 포함할 수 있다.
상기 획득하는 단계는, 상기 복수의 태스크 중 상기 대역폭이 예약된 태스크의 공유 비율 및 대역폭과, 상기 대역폭이 예약되지 않은 태스크의 공유 비율 및 대역폭을 분류하는 단계를 포함할 수 있다.
상기 제어하는 단계는, 상기 복수의 태스크 중 상기 대역폭이 예약된 태스크의 공유 비율을 제어하는 단계를 포함할 수 있다.
상기 제어하는 단계는, 상기 복수의 태스크 중 상기 대역폭이 예약되지 않은 태스크의 공유 비율 및 대역폭에 기초하여 상기 대역폭이 예약된 태스크의 공유 비율을 제어하는 단계를 포함할 수 있다.
상기 방법은 상기 복수의 태스크가 제어된 공유 비율로 스케줄링이 가능한 지 확인하는 단계를 더 포함할 수 있다.
상기 확인하는 단계는, 상기 자원이 상기 복수의 태스크 중 상기 대역폭이 예약된 태스크의 대역폭의 총합보다 같거나 큰 경우, 상기 스케줄링이 가능한 것으로 확인하는 단계를 포함할 수 있다.
일 실시예에 따른 스케줄링 장치는 태스크 스케줄링 데이터(task scheduling data)로부터 자원(resource)에 대한 복수의 태스크 각각의 공유 비율(CPU shares) 및 대역폭(bandwidth)을 획득하는 스케줄링 준비 모듈과, 상기 공유 비율 및 상기 대역폭에 기초하여 상기 공유 비율을 제어하는 스케줄링 모듈을 포함한다.
상기 스케줄링 준비 모듈은, 상기 복수의 태스크를 계층적(hierarchical) 구조로 분류할 수 있다.
상기 스케줄링 준비 모듈은, 상기 복수의 태스크를 부모(parent) 폴더, 형제(sibling) 폴더, 및 자식(child) 폴더로 분류할 수 있다.
상기 스케줄링 준비 모듈은, 상기 복수의 태스크 중 상기 대역폭이 예약된 태스크의 공유 비율 및 대역폭과, 상기 대역폭이 예약되지 않은 태스크의 공유 비율 및 대역폭을 분류할 수 있다.
상기 스케줄링 모듈은, 상기 복수의 태스크 중 상기 대역폭이 예약된 태스크의 공유 비율을 제어할 수 있다.
상기 스케줄링 모듈은, 상기 복수의 태스크 중 상기 대역폭이 예약되지 않은 태스크의 공유 비율 및 대역폭에 기초하여 상기 대역폭이 예약된 태스크의 공유 비율을 제어할 수 있다.
상기 스케줄링 모듈은, 상기 복수의 태스크가 제어된 공유 비율로 스케줄링이 가능한 지 확인할 수 있다.
상기 스케줄링 모듈은, 상기 자원이 상기 복수의 태스크 중 상기 대역폭이 예약된 태스크의 대역폭의 총합보다 같거나 큰 경우, 상기 스케줄링이 가능한 것으로 확인할 수 있다.
도 1은 일 실시예에 따른 스케줄링 시스템의 개략적인 블록도이다.
도 2는 도 1에 도시된 스케줄링 장치의 구조도의 일 예를 나타낸다.
도 3은 도 1에 도시된 스케줄링 장치의 동작을 설명하기 위한 도면의 일 예이다.
도 4는 일 실시예에 따른 스케줄링 방법의 순서도를 나타낸다.
도 5는 일 실시예에 따른 스케줄링 방법의 순서도를 나타낸다.
도 2는 도 1에 도시된 스케줄링 장치의 구조도의 일 예를 나타낸다.
도 3은 도 1에 도시된 스케줄링 장치의 동작을 설명하기 위한 도면의 일 예이다.
도 4는 일 실시예에 따른 스케줄링 방법의 순서도를 나타낸다.
도 5는 일 실시예에 따른 스케줄링 방법의 순서도를 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 “직접 연결되어” 있다거나 “직접 접속되어” 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 “~사이에”와 “바로~사이에” 또는 “~에 직접 이웃하는” 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, “포함하다” 또는 “가지다” 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일 실시예에 따른 스케줄링 시스템의 개략적인 블록도이다.
도 1을 참조하면, 스케줄링 시스템(10)은 스케줄링 장치(100) 및 태스크 스케줄링 데이터(Task Scheduling Data; 200)를 포함한다.
태스크 스케줄링 데이터(200)는 복수의 태스크(task) 및 복수의 태스크 각각의 스케줄링 정보를 포함할 수 있다. 예를 들어, 스케줄링 정보는 태스크의 공유 비율(CPU shares), 대역폭(bandwidth), 주기, 허용량 등을 포함할 수 있다.
스케줄링 장치(100)는 태스크 스케줄링 데이터(200)에 접근하여 복수의 태스크 각각의 스케줄링 정보를 획득할 수 있다.
스케줄링 장치(100)는 스케줄링 정보에 기초하여 복수의 태스크의 공유 비율을 제어할 수 있다. 예를 들어, 스케줄링 장치(100)는 복수의 태스크가 예약한 대역폭만큼 자원(resource)을 공급받기 위한 공유 비율을 계산할 수 있다. 스케줄링 장치(100)는 복수의 태스크를 계산된 공유 비율로 변경하여 조절할 수 있다. 즉, 스케줄링 장치(100)는 태스크 스케줄링 데이터(200)의 공유 비율을 정정할 수 있다.
또한, 스케줄링 장치(100)는 복수의 태스크가 계산된 공유 비율로 스케줄링 가능한지 확인할 수 있다. 예를 들어, 스케줄링 장치(100)는 자식(child) 계층의 공유 비율의 합이 부모(parent) 계층이 제공 가능한 자원의 합을 넘지 않는지 확인할 수 있다.
스케줄링 장치(100)는 복수의 태스크가 계산된 공유 비율로 스케줄링 가능한 경우에 태스크 스케줄링 데이터(200)의 공유 비율을 정정할 수 있다. 스케줄링 장치(100)는 복수의 태스크가 계산된 공유 비율로 스케줄링 불가능한 경우에 공유 비율을 다시 계산하거나, 또는 스케줄링 동작을 종료하여 자원 예약을 거부할 수 있다.
도 2는 도 1에 도시된 스케줄링 장치의 구조도의 일 예를 나타낸다.
도 2를 참조하면, 스케줄링 장치(100)는 스케줄링 준비 모듈(110) 및 스케줄링 모듈(120)을 포함한다.
스케줄링 준비 모듈(110)은 태스크 스케줄링 데이터(200)로부터 자원에 대한 복수의 태스크 각각의 스케줄링 정보를 획득할 수 있다. 예를 들어, 스케줄링 정보는 복수의 태스크 각각의 공유 비율(CPU shares), 대역폭(bandwidth), 주기, 허용량 등을 포함할 수 있다.
스케줄링 준비 모듈(110)은 복수의 태스크를 계층적(hierarchical) 구조로 분류할 수 있다. 예를 들어, 스케줄링 준비 모듈(110)은 복수의 태스크를 부모(parent) 폴더, 형제(sibling) 폴더, 및 자식(child) 폴더로 분류할 수 있다. 이때, 부모 폴더와 자식 폴더는 수직적인 관계의 계층이고, 형제 폴더는 수평적인 관계의 계층을 의미할 수 있다.
스케줄링 준비 모듈(110)은 폴더에 하위 폴더가 존재하는지 여부에 기초하여 부모 폴더와 자식 폴더로 분류할 수 있다. 스케줄링 준비 모듈(110)은 더 이상의 하위 폴더가 존재하지 않는 경우 다음 폴더를 검색할 수 있다. 스케줄링 준비 모듈(110)은 다음 폴더가 존재하는 경우 형제 폴더로 분류할 수 있다. 스케줄링 준비 모듈(110)은 더 이상의 폴더가 존재하지 않을 때까지 반복적으로 분류를 수행할 수 있다.
스케줄링 준비 모듈(110)은 복수의 태스크 중 대역폭이 예약된 태스크와 대역폭이 예약되지 않은 태스크를 분류할 수 있다. 예를 들어, 스케줄링 준비 모듈(110)은 대역폭이 예약된 태스크의 공유 비율 및 대역폭과, 대역폭이 예약되지 않은 태스크의 공유 비율 및 대역폭을 분류할 수 있다.
스케줄링 모듈(120)은 공유 비율 및 대역폭에 기초하여 공유 비율을 제어할 수 있다. 예를 들어, 스케줄링 모듈(120)은 복수의 태스크 중 대역폭이 예약된 태스크의 공유 비율을 제어할 수 있다. 이때, 스케줄링 모듈(120)은 대역폭이 예약되지 않은 태스크의 공유 비율 및 대역폭을 사용할 수 있다. 이하에서는 구체적으로 수학식을 사용하여 스케줄링 모듈(120)의 동작에 대하여 상세하게 설명한다.
스케줄링 모듈(120)은 수학식 1에 기초하여 복수의 태스크의 공유 비율을 제어할 수 있다.
여기서, 는 복수의 태스크 중 i번째 태스크의 제어(정정)된 공유 비율이고, 는 복수의 태스크의 공유 비율의 총합이고, 는 복수의 태스크 중 i번째 태스크의 대역폭이고, 는 복수의 태스크 중 i번째 태스크의 공유 비율이고, 는 복수의 태스크 중 i번째 태스크의 대역폭이 예약되었음을 의미하고, 는 복수의 태스크 중 i번째 태스크의 대역폭이 예약되지 않았음을 의미할 수 있다.
이때, 스케줄링 모듈(120)은 수학식 2에 기초하여 복수의 태스크의 공유 비율의 총합을 계산할 수 있다.
여기서, 는 복수의 태스크의 공유 비율의 총합이고, 는 복수의 태스크 중 대역폭이 예약되지 않은 태스크의 공유 비율의 총합이고, 는 자원(CPU 자원)을 대역폭의 형태로 표현한 것이고, 은 복수의 태스크 중 대역폭이 예약된 태스크의 대역폭의 총합을 의미할 수 있다.
이때, 스케줄링 모듈(120)은 수학식 3에 기초하여 복수의 태스크 중 대역폭이 예약되지 않은 태스크의 공유 비율의 총합을 계산할 수 있다.
여기서, 는 복수의 태스크 중 대역폭이 예약되지 않은 태스크의 공유 비율의 총합이고, 는 복수의 태스크 중 i번째 태스크의 공유 비율이고, 는 복수의 태스크 중 i번째 태스크의 대역폭이 예약되지 않았음을 의미할 수 있다.
이때, 스케줄링 모듈(120)은 수학식 4에 기초하여 복수의 태스크 중 대역폭이 예약된 태스크의 대역폭의 총합을 계산할 수 있다.
여기서, 은 복수의 태스크 중 대역폭이 예약된 태스크의 대역폭의 총합이고, 는 복수의 태스크 중 i번째 태스크의 대역폭이고, 는 복수의 태스크 중 i번째 태스크의 대역폭이 예약되었음을 의미할 수 있다.
이때, 스케줄링 모듈(120)은 수학식 5에 기초하여 자원(CPU 자원)을 재귀적으로 계산할 수 있다.
여기서, 는 수정된 공유 비율에 의해 i번째 태스크에 제공될 CPU의 자원을 의미하고, 는 복수의 태스크의 공유 비율의 총합이고, 는 복수의 태스크 중 i번째 태스크의 제어(정정)된 공유 비율이고, 는 합산되는 복수의 태스크가 공통으로 갖는 부모 태스크에게 제공될 CPU 자원을 의미하는 것일 수 있다.
스케줄링 모듈(120)은 복수의 태스크가 제어(정정)된 공유 비율로 스케줄링이 가능한 지 확인할 수 있다. 예를 들어, 스케줄링 모듈(120)은 수학식 6에 기초하여 스케줄링이 가능한지 확인할 수 있다.
즉, 스케줄링 모듈(120)은 자원(CPU 자원)이 복수의 태스크 중 대역폭이 예약된 태스크의 대역폭의 총합보다 같거나 큰 경우, 스케줄링이 가능한 것으로 확인할 수 있다.
스케줄링 모듈(120)은 자원(CPU 자원)이 복수의 태스크 중 대역폭이 예약된 태스크의 대역폭의 총합보다 작은 경우, 공유 비율을 다시 계산하거나, 또는 스케줄링 동작을 종료하여 자원 예약을 거부할 수 있다.
스케줄링 모듈(120)은 계층적으로 존재하는 자식 폴더 및 형제 폴더에도 상술한 방법을 사용하여 동일하게 스케줄링을 수행할 수 있다.
본 명세서에서의 모듈(module)은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 특정 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예를 들어 프로세서 또는 마이크로 프로세서를 의미할 수 있다.
다시 말해, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.
도 3은 도 1에 도시된 스케줄링 장치의 동작을 설명하기 위한 도면의 일 예이다.
도 3을 참조하면, 스케줄링 준비 모듈(110)은 태스크 스케줄링 데이터(200)로부터 스케줄링 데이터를 획득하여, 복수의 태스크를 부모 폴더(300) 및 자식 폴더(301, 302, 303, 및 304)로 분류할 수 있다. 이때, 자식 폴더(301, 302, 303, 및 304)는 서로 형제 폴더일 수 있다.
스케줄링 준비 모듈(110)은 태스크 스케줄링 데이터(200)에 기초하여 부모 폴더(300) 및 자식 폴더(301, 302, 303, 및 304)의 공유 비율 및 대역폭을 확인할 수 있다.
예를 들어, 자식 폴더(301, 302, 303, 및 304)의 공유 비율은 각각 1024일 수 있다. 이때, 1024는 공유 비율의 기본 값일 수 있다. 공유 비율은 상대적으로 결정될 수 있다. 만약, 스케줄링 모듈(120)이 자식 폴더(301)의 공유 비율을 2048로 설정하는 경우, 기본 값보다 두 배 많은 CPU 자원을 할당할 수 있다.
제1 자식 폴더(301), 제2 자식 폴더(302), 및 제3 자식 폴더(303)의 대역폭은 모두 0.3일 수 있다. 제4 자식 폴더(304)의 대역폭은 -1일 수 있다. 즉, 제4 자식 폴더(304)의 대역폭은 예약되지 않았을 수 있다.
스케줄링 모듈(120)은 수학식 4에 기초하여 복수의 태스크 중 대역폭이 예약된 태스크의 대역폭의 총합을 계산할 수 있다. 즉, 제1 자식 폴더(301), 제2 자식 폴더(302), 및 제3 자식 폴더(303)의 대역폭이 모두 0.3으로 예약되어 있으므로, 스케줄링 모듈(120)은 을 0.9로 계산할 수 있다.
스케줄링 모듈(120)은 스케줄링 준비 모듈(110)이 획득한 스케줄링 정보로부터, 자원(CPU 자원())을 계산할 수 있다. 예를 들어, CPU 프로세서가 1개인 경우, 자원()은 대역폭의 형태로 1로 표현되고, CPU 프로세서가 N개인 경우, 자원()은 대역폭의 형태로 N으로 표현될 수 있다. 도 3에서는 설명의 편의를 위해 CPU 프로세서가 1개인 경우로 설명하나, 반드시 이에 한정되는 것은 아니다.
스케줄링 모듈(120)은 수학식 3에 기초하여 복수의 태스크 중 대역폭이 예약되지 않은 태스크의 공유 비율의 총합()을 계산할 수 있다. 즉, 대역폭이 예약되지 않은 태스크는 제4 자식 폴더(304)이므로, 스케줄링 모듈(120)은 를 1024로 계산할 수 있다.
스케줄링 모듈(120)은 수학식 2에 기초하여 복수의 태스크의 공유 비율의 총합()을 계산할 수 있다. 즉, 스케줄링 모듈(120)은 를 1024/(1-0.9)=10240로 계산할 수 있다.
이에, 스케줄링 모듈(120)은 수학식 1에 기초하여 제1 자식 폴더(301), 제2 자식 폴더(302), 및 제3 자식 폴더(303)의 공유 비율을 제어(정정)할 수 있다. 즉, 스케줄링 모듈(120)은 제1 자식 폴더(301), 제2 자식 폴더(302), 및 제3 자식 폴더(303)의 공유 비율을 모두 10240*0.3=3072로 제어(정정)할 수 있다. 스케줄링 모듈(120)은 제4 자식 폴더(304)의 공유 비율은 제어(정정)하지 않을 수 있다.
도 4는 일 실시예에 따른 스케줄링 방법의 순서도를 나타낸다.
도 4를 참조하면, 스케줄링 장치(100)는 복수의 태스크의 공유 비율 및 대역폭을 획득할 수 있다(410). 예를 들어, 스케줄링 장치(100)는 태스크 스케줄링 데이터(200)로부터 스케줄링 정보를 획득할 수 있다. 스케줄링 정보는 복수의 태스크의 공유 비율, 대역폭, 주기, 허용량 등을 포함할 수 있다.
스케줄링 장치(100)는 공유 비율 및 대역폭에 기초하여 공유 비율을 제어(정정)할 수 있다(420). 예를 들어, 스케줄링 장치(100)는 대역폭이 예약되지 않은 태스크의 공유 비율 및 대역폭에 기초하여, 대역폭이 예약된 태스크의 공유 비율을 제어할 수 있다.
도 5는 일 실시예에 따른 스케줄링 방법의 순서도를 나타낸다.
도 5를 참조하면, 스케줄링 장치(100)는 복수의 태스크가, 제어된 공유 비율로 스케줄링이 가능한 지 확인할 수 있다(510). 예를 들어, 스케줄링 장치(100)는 자원(CPU 자원)이 복수의 태스크 중 대역폭이 예약된 태스크의 대역폭의 총합보다 같거나 큰 경우, 스케줄링이 가능한 것으로 확인할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
Claims (20)
- 스케줄링 장치가 태스크 스케줄링 데이터(task scheduling data)로부터 자원(resource)에 대한 복수의 태스크 각각의 CPU 공유 비율(CPU shares) 및 CPU 대역폭(CPU bandwidth)을 획득하는 단계; 및
스케줄링 장치가 상기 CPU 공유 비율 및 상기 CPU 대역폭에 기초하여 상기 CPU 공유 비율을 제어하는 단계
를 포함하고,
상기 제어하는 단계는,
상기 복수의 태스크의 공유 비율 총합, 상기 복수의 태스크 각각의 대역폭, 및 상기 복수의 태스크 각각의 대역폭 예약 여부에 기초하여 상기 복수의 태스크 각각의 공유 비율을 제어하는 단계
를 포함하는 스케줄링 방법.
- 제1항에 있어서,
상기 획득하는 단계는,
상기 복수의 태스크를 계층적(hierarchical) 구조로 분류하는 단계
를 포함하는 스케줄링 방법.
- 제2항에 있어서,
상기 복수의 태스크를 계층적 구조로 분류하는 단계는,
상기 복수의 태스크를 부모(parent) 폴더, 형제(sibling) 폴더, 및 자식(child) 폴더로 분류하는 단계
를 포함하는 스케줄링 방법.
- 제1항에 있어서,
상기 획득하는 단계는,
상기 복수의 태스크 중 상기 CPU 대역폭이 예약된 태스크의 CPU 공유 비율 및 CPU 대역폭과, 상기 CPU 대역폭이 예약되지 않은 태스크의 CPU 공유 비율 및 CPU 대역폭을 분류하는 단계
를 포함하는 스케줄링 방법.
- 제4항에 있어서,
상기 CPU 공유 비율 및 상기 CPU 대역폭에 기초하여 상기 CPU 공유 비율을 제어하는 단계는,
상기 복수의 태스크 중 상기 CPU 대역폭이 예약된 태스크의 CPU 공유 비율을 제어하는 단계
를 포함하는 스케줄링 방법.
- 제5항에 있어서,
상기 CPU 공유 비율 및 상기 CPU 대역폭에 기초하여 상기 CPU 공유 비율을 제어하는 단계는,
상기 복수의 태스크 중 상기 CPU 대역폭이 예약되지 않은 태스크의 CPU 공유 비율 및 CPU 대역폭에 기초하여 상기 CPU 대역폭이 예약된 태스크의 CPU 공유 비율을 제어하는 단계
를 포함하는 스케줄링 방법.
- 제1항에 있어서,
상기 복수의 태스크 각각의 대역폭 예약 여부에 기초하여 상기 복수의 태스크 각각의 공유 비율을 제어하는 단계는,
아래 수학식에 기초하여 상기 CPU 공유 비율을 제어하는 단계
를 포함하는 스케줄링 방법.
[수학식]
여기서, 는 상기 복수의 태스크 중 i번째 태스크의 제어된 CPU 공유 비율이고, 는 상기 복수의 태스크의 CPU 공유 비율의 총합이고, 는 상기 복수의 태스크 중 i번째 태스크의 CPU 대역폭이고, 는 상기 복수의 태스크 중 i번째 태스크의 CPU 공유 비율이고, 는 상기 복수의 태스크 중 i번째 태스크의 CPU 대역폭이 예약되었음을 의미하고, 는 상기 복수의 태스크 중 i번째 태스크의 CPU 대역폭이 예약되지 않았음을 의미함.
- 제1항에 있어서,
상기 복수의 태스크가 제어된 CPU 공유 비율로 스케줄링이 가능한 지 확인하는 단계
를 더 포함하는 스케줄링 방법.
- 제9항에 있어서,
상기 확인하는 단계는,
상기 자원이 상기 복수의 태스크 중 상기 CPU 대역폭이 예약된 태스크의 CPU 대역폭의 총합보다 같거나 큰 경우, 상기 스케줄링이 가능한 것으로 확인하는 단계
를 포함하는 스케줄링 방법.
- 태스크 스케줄링 데이터(task scheduling data)로부터 자원(resource)에 대한 복수의 태스크 각각의 CPU 공유 비율(CPU shares) 및 CPU 대역폭(CPU bandwidth)을 획득하는 스케줄링 준비 모듈; 및
상기 CPU 공유 비율 및 상기 CPU 대역폭에 기초하여 상기 CPU 공유 비율을 제어하는 스케줄링 모듈
을 포함하고,
상기 스케줄링 모듈은,
상기 복수의 태스크의 공유 비율 총합, 상기 복수의 태스크 각각의 대역폭, 및 상기 복수의 태스크 각각의 대역폭 예약 여부에 기초하여 상기 복수의 태스크 각각의 공유 비율을 제어하는 스케줄링 장치.
- 제11항에 있어서,
상기 스케줄링 준비 모듈은,
상기 복수의 태스크를 계층적(hierarchical) 구조로 분류하는 스케줄링 장치.
- 제12항에 있어서,
상기 스케줄링 준비 모듈은,
상기 복수의 태스크를 부모(parent) 폴더, 형제(sibling) 폴더, 및 자식(child) 폴더로 분류하는 스케줄링 장치.
- 제11항에 있어서,
상기 스케줄링 준비 모듈은,
상기 복수의 태스크 중 상기 CPU 대역폭이 예약된 태스크의 CPU 공유 비율 및 CPU 대역폭과, 상기 CPU 대역폭이 예약되지 않은 태스크의 CPU 공유 비율 및 CPU 대역폭을 분류하는 스케줄링 장치.
- 제14항에 있어서,
상기 스케줄링 모듈은,
상기 복수의 태스크 중 상기 CPU 대역폭이 예약된 태스크의 CPU 공유 비율을 제어하는 스케줄링 장치.
- 제15항에 있어서,
상기 스케줄링 모듈은,
상기 복수의 태스크 중 상기 CPU 대역폭이 예약되지 않은 태스크의 CPU 공유 비율 및 CPU 대역폭에 기초하여 상기 CPU 대역폭이 예약된 태스크의 CPU 공유 비율을 제어하는 스케줄링 장치.
- 제11항에 있어서,
상기 스케줄링 모듈은,
아래 수학식에 기초하여 상기 CPU 공유 비율을 제어하는 스케줄링 장치.
[수학식]
여기서, 는 상기 복수의 태스크 중 i번째 태스크의 제어된 CPU 공유 비율이고, 는 상기 복수의 태스크의 CPU 공유 비율의 총합이고, 는 상기 복수의 태스크 중 i번째 태스크의 CPU 대역폭이고, 는 상기 복수의 태스크 중 i번째 태스크의 CPU 공유 비율이고, 는 상기 복수의 태스크 중 i번째 태스크의 CPU 대역폭이 예약되었음을 의미하고, 는 상기 복수의 태스크 중 i번째 태스크의 CPU 대역폭이 예약되지 않았음을 의미함.
- 제11항에 있어서,
상기 스케줄링 모듈은,
상기 복수의 태스크가 제어된 CPU 공유 비율로 스케줄링이 가능한 지 확인하는 스케줄링 장치.
- 제19항에 있어서,
상기 스케줄링 모듈은,
상기 자원이 상기 복수의 태스크 중 상기 CPU 대역폭이 예약된 태스크의 CPU 대역폭의 총합보다 같거나 큰 경우, 상기 스케줄링이 가능한 것으로 확인하는 스케줄링 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170128019A KR101958112B1 (ko) | 2017-09-29 | 2017-09-29 | 태스크 스케줄링 장치 및 태스크 스케줄링 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170128019A KR101958112B1 (ko) | 2017-09-29 | 2017-09-29 | 태스크 스케줄링 장치 및 태스크 스케줄링 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101958112B1 true KR101958112B1 (ko) | 2019-07-04 |
Family
ID=67259308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170128019A KR101958112B1 (ko) | 2017-09-29 | 2017-09-29 | 태스크 스케줄링 장치 및 태스크 스케줄링 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101958112B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102230901B1 (ko) * | 2020-11-06 | 2021-03-22 | 건국대학교 산학협력단 | 클라우드 자원 관리를 위한 비율방식의 QoS 지원 방법 및 장치 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3585755B2 (ja) * | 1998-01-05 | 2004-11-04 | ルーセント テクノロジーズ インコーポレーテッド | タイムシェアリングシステムにおける非通信プロセス間のプライオリティに基づく負荷分散 |
KR20130081213A (ko) * | 2010-03-26 | 2013-07-16 | 버추얼메트릭스, 인크. | 컴퓨터 시스템들의 미세한 단위의 성능 자원 관리 |
KR20160102917A (ko) * | 2015-02-23 | 2016-08-31 | 한남대학교 산학협력단 | 태스크 스케줄링 장치 및 방법 |
KR101733534B1 (ko) * | 2016-03-04 | 2017-05-24 | 국방과학연구소 | 경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 방법 및 장치 |
-
2017
- 2017-09-29 KR KR1020170128019A patent/KR101958112B1/ko active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3585755B2 (ja) * | 1998-01-05 | 2004-11-04 | ルーセント テクノロジーズ インコーポレーテッド | タイムシェアリングシステムにおける非通信プロセス間のプライオリティに基づく負荷分散 |
KR20130081213A (ko) * | 2010-03-26 | 2013-07-16 | 버추얼메트릭스, 인크. | 컴퓨터 시스템들의 미세한 단위의 성능 자원 관리 |
KR20160102917A (ko) * | 2015-02-23 | 2016-08-31 | 한남대학교 산학협력단 | 태스크 스케줄링 장치 및 방법 |
KR101733534B1 (ko) * | 2016-03-04 | 2017-05-24 | 국방과학연구소 | 경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 방법 및 장치 |
Non-Patent Citations (1)
Title |
---|
임인구 외 3명. ‘리눅스 CFS 그룹 스케줄링을 위한 엄격한 CPU 자원예약’. 2014 한국정보과학회 제41회 정기총회 및 동계학술발표회, 2014.12., pp.1190-1192.* * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102230901B1 (ko) * | 2020-11-06 | 2021-03-22 | 건국대학교 산학협력단 | 클라우드 자원 관리를 위한 비율방식의 QoS 지원 방법 및 장치 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10911332B2 (en) | Time sensitive networking in a microservice environment | |
US9965322B2 (en) | Scheduling tasks in a distributed processing system with both reconfigurable and configurable processors | |
US9189273B2 (en) | Performance-aware job scheduling under power constraints | |
US8589923B2 (en) | Preprovisioning virtual machines based on request frequency and current network configuration | |
Moreira et al. | Scheduling multiple independent hard-real-time jobs on a heterogeneous multiprocessor | |
US9477529B2 (en) | Job distributed within a grid environment using mega-host groupings of execution hosts based on resource attributes | |
US20170060707A1 (en) | High availability dynamic restart priority calculator | |
US10360075B2 (en) | Allocating a global resource in a distributed grid environment | |
US20150295970A1 (en) | Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system | |
US8707316B1 (en) | Methods and systems for mission-driven quality of service management | |
Murthy et al. | Resource management in real-time systems and networks | |
JP6468499B2 (ja) | 分散コンピューティングアーキテクチャ | |
US10733015B2 (en) | Prioritizing applications for diagonal scaling in a distributed computing environment | |
KR20220170428A (ko) | 이기종 프로세서 기반 엣지 시스템에서 slo 달성을 위한 인공지능 추론 스케쥴러 | |
Tolosana-Calasanz et al. | Resource management for bursty streams on multi-tenancy cloud environments | |
US20160203026A1 (en) | Processing a hybrid flow associated with a service class | |
KR102230901B1 (ko) | 클라우드 자원 관리를 위한 비율방식의 QoS 지원 방법 및 장치 | |
US20150100964A1 (en) | Apparatus and method for managing migration of tasks between cores based on scheduling policy | |
US20170142223A1 (en) | Software-defined networking multi-orchestrator system | |
Chardet et al. | Predictable efficiency for reconfiguration of service-oriented systems with concerto | |
US20190155661A1 (en) | Adaptive scaling of workloads in a distributed computing environment | |
KR101958112B1 (ko) | 태스크 스케줄링 장치 및 태스크 스케줄링 방법 | |
US10812407B2 (en) | Automatic diagonal scaling of workloads in a distributed computing environment | |
CN110968422A (zh) | 用于集成场景的负载分发 | |
EP3295308B1 (en) | System and method for multi-level real-time scheduling analyses |