KR101311305B1 - 데드라인 기반 우선순위상속 시스템 및 그 방법 - Google Patents
데드라인 기반 우선순위상속 시스템 및 그 방법 Download PDFInfo
- Publication number
- KR101311305B1 KR101311305B1 KR1020110086061A KR20110086061A KR101311305B1 KR 101311305 B1 KR101311305 B1 KR 101311305B1 KR 1020110086061 A KR1020110086061 A KR 1020110086061A KR 20110086061 A KR20110086061 A KR 20110086061A KR 101311305 B1 KR101311305 B1 KR 101311305B1
- Authority
- KR
- South Korea
- Prior art keywords
- priority
- task
- deadline
- tasks
- inheritance
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4831—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
- G06F9/4837—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority time dependent
-
- 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/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
- G06F9/268—Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
본 발명은 데드라인 기반의 우선순위 상속(priority inheritance) 시스템 및 그 방법에 관한 것이다.
본 발명은: 데드라인 기반 EDF(Earliest Deadline First) 스케줄링 시스템에서 "우선순위 역전" 현상을 방지하기 위해; 우선순위 상속 데드라인 기반 스케줄러가 매 클럭 틱 마다 지속적으로 임계구역 또는 서버 대기 태스크의 우선순위를 높여줄 때; 새롭게 형성된 대기 태스크의 최고 우선순위를 임계구역 실행 태스크나 서버 태스크에 지속적으로 상속시켜주는 것이다.
본 발명은: 데드라인 기반 EDF(Earliest Deadline First) 스케줄링 시스템에서 "우선순위 역전" 현상을 방지하기 위해; 우선순위 상속 데드라인 기반 스케줄러가 매 클럭 틱 마다 지속적으로 임계구역 또는 서버 대기 태스크의 우선순위를 높여줄 때; 새롭게 형성된 대기 태스크의 최고 우선순위를 임계구역 실행 태스크나 서버 태스크에 지속적으로 상속시켜주는 것이다.
Description
본 발명은 임베디드 실시간 운영체제에 관한 것으로서, 특히 실시간 시스템에서 데드라인 기반의 우선순위 상속(priority inheritance) 시스템 및 그 방법에 관한 것이다.
도 1은 분산 실시간 객체 모델 TMO(Time-triggered Message-triggered Object)의 구조이다.
도 1에 되시된 바와 같이, 분산 실시간 객체 모델 TMO(Time-triggered Message-triggered Object)는 정시보장 컴퓨팅 패러다임을 지향하는 모델로, 객체 내의 스레드를 수행할 때 설계 시 주어진 시간 제약 조건을 엄수하여, 수행 종료 데드라인 이내의 처리를 보장하는 모델이다. TMO는 일반적인 객체 모델과 달리 객체 내 자료 저장소와 이 자료를 제어하는 멤버 스레드인 SpM(Time-triggered Spontaneous Method)과 SvM(Message-triggered Service Method)으로 구성된다. SpM은 설계 시 주어진 시간 조건(AAC: Autonomous Activation Condition)에 의해 주기적으로, 구동되어 데드라인 이내의 처리가 가능하도록 스케쥴되면, SvM은 원격 혹은 로컬 노드에서의 서비스 요청 메시지에 의해 데드라인 기반으로 구동된다.
TMO를 지원하기 위한 실행엔진의 하나로 오픈 소스 실시간 임베디드 OS인 eCos3.0에 TMO를 지원하기 위한 데드라인 기반 실시간 스케쥴러 기능과 분산 IPC 기능을 삽입하여 개발된 RT-eCos3.0[2,3]이 있다. RT-eCos3.0는 데드라인 기반 스케줄링을 제공하지만 mutex-lock의 우선순위 상속 처리에 있어, 기존의 단순 운선순위 방식이 아닌 데드라인에 가까워짐에 따라 동적으로 변화하는 lock 대기 스레드들의 우선순위를 동적으로 상속하는 시스템을 필요로 한다. 즉, SpM이나 SvM이 동일 TMO 객체 내의 자료 저장소에 접근할 때, mutex-lock을 사용하게 되는데, 전통적인 우선순위 상속 시스템은 mutex-lock 진입 스레드가 mutex-lock의 큐에 대기하는 SpM이나 SvM들 중 최고 우선 순위를 상속하는 방식이다.
그러나, 데드라인 기반 스케줄링을 하는 RT-eCos3.0 TMO 엔진의 경우, 대기 중인 SpM이나 SvM들의 데드라인이 점점 가까워지므로 스레드들의 우선순위에 변화가 이루어져야 할 뿐만 아니라, 상속된 우선순위를 갖고 실행되는 스레드에 대한 우선순위 상속도 지속적으로 이루어져야 한다. 물론, 이때 lock을 갖고 실행 중인 스레드 자체의 데드라인 기반 우선순위도 고려되어야 한다.
이하, TMO를 지원하기 위한 데드라인 기반 스케줄링을 제공하는 종래 운영체제 RT-eCos3.0를 설명한다.
RT-eCos3.0는 임베디드 시스템을 위한 소형 오픈소스 운영체제인 eCos3.0 커널에 데드라인 기반 스케줄러 및 SpM/SvM의 처리, 분산 IPC 등의 기능을 갖는 TMO 엔진을 탑재한 실시간 임베디드 커널이다.
RT-eCos3.0는 TMO 기반의 분산 실시간 객체 지원을 위해서 다음과 같은 기능을 제공한다:
- CPU의 성능에 따라 최소 30μs에서 10ms 까지의 정밀도로 SpM과 SvM의 데드라인 기반 실시간 스케줄링을 제공한다;
- 실시간 메소드(method) SpM의 정시 구동(on-time Activation)을 제공한다.
- 논리적인 멀티캐스트 IPC 서브시스템을 제공한다;
- 원격 및 로컬 메시지를 통한 실시간 메소드 SvM 구동을 제공한다;
-분산 노드 간의 클럭 동기화를 제공한다;
- TMOSL(TMO Support Library)를 이용한 TMO 기반의 객체 지향 프로그밍 방법을 제공한다.
한편, 종래 우선순위 상속 기법은 다음의 두 가지 경우에 사용된다.
도 2 및 도 3은 종래 우선순위 상속 방법을 도시한 블록도이다. 도 2는 상호배제에 의한 임계구역 진입 처리과정의 기존의 우선순위 상속 기법을 설명하기 위한 도면이다. 도 3은 클라이언트-서버 모델에서의 서버 대기 시작 시의 기존의 우선순위 상속 기법을 설명하기 위한 도면이다.
첫째, 도 2의 종래 우선순위 상속 기법은 다음과 같은 조건을 전제한다: 즉, 태스크 B(200)의 우선순위가 태스크 A(100)의 우선순위 보다 높고; 태스크 A(100)가 임계수역 내에 태스크 B(200)보다 먼저 진입한 경우에 있어서; 태스크 B(200)의 우선순위를 태스크 A(100)에 상속시켜주는 것이다.
도 2의 종래 우선순위 상속 기법을 더욱 상세히 설명하면 다음과 같다. 즉, 우선순위가 높은 태스크 B(200)가 임계구역에 상호배제에 의한 진입을 시도할 때, 이미 임계구역 내 우선순위가 낮은 진입 태스크 A(100)가 있을 경우, 임계구역 진입을 대기하게 되는 태스크 B(200)의 높은 우선순위를 임계구역에 이미 진입한 태스크에 상속시켜, EDF(Earliest Deadline First) 스케줄러(400)에 의해 다른 중간 우선순위의 태스크 C(300)에 스케줄을 뺏기지 않도록 (이를, "우선순위 역전"이라 한다) 하는 방법이다. 이때, 상기와 같이 다른 중간 우선순위의 태스크에게 스케쥴을 뺏기는 것을 "우선순위의 역전"이라 한다.
둘째, 도 3의 종래 우선순위 상속 기법은 다음과 같은 조건을 전제한다: 즉, 클라인언트 태스크 B(700)의 우선순위가 서버 태스크 A(600)의 우선순위보다 높고; 우선순위가 높은 클라이언트 태스크 B(700)가 우선순위가 낮은 서버 태스크A(600)에게 메시지를 보내 해당 요청을 처리 중일 때; 서버 태스크 A(600)는 메시지 서비스 중이이고, 반면 클라이언트 태스크 B(700)는 메시지 송신 후 서버의 서비스 종료를 대기 중에 있는 경우에 있어서; 클라이언트 태스크 B(700)의 우선순위를 서버 태스크 A(600)에 상속시켜주는 것이다.
도 3의 종래 우선순위 상속 기법을 더욱 상세히 설명하면 다음과 같다. 즉, 우선순위가 높은 클라이언트 태스크 B(700)가 우선순위가 낮은 서버 태스크A(600)에게 메시지를 보내 해당 요청을 처리 중일 때, EDF 스케줄러(400)에 의해 다른 중간 우선순위의 태스크C(800)에게 서버가 스케줄을 뺏기지 않도록 (이를, "우선순위 역전"이라 한다), 서버 태스크 A (600)에게 클라이언트 태스크 B(700)의 높은 우선순위를 상속시키는 방법이다.
그러나, 도 2 및 도 3의 종래 우선순위 상속 기법은, 태스크 실행의 종료 데드라인 기반으로 대기 태스크의 우선순위가 시시각각 높아지는 데드라인 기반 EDF(Earliest Deadline First) 스케줄링 시스템에는 적합하지않는 기술적 한계를 내포하고 있다. 즉, 데드라인이 도래함에 따라 대기 태스크의 우선순위가 지속적으로 높아지게 되면, 대기 초기에 임계구역 진입 태스크(즉, 도 2에서 태스크 A(100))나 서버 태스크(즉, 도 3에서 서버 태스크 (600))에게 상속시킨 우선순위는, 현재의 대기 태스크의 최고 우선순위가 아니므로 다시 더 높은 중간 우선순위의 다른 태스크에 스케줄을 빼앗기는 "우선순위 역전"이 발생할 수 있는 기술적 문제점이 있다.
따라서, 본 발명의 목적은, 상기와 같이 우선순위 상속을 하는 스케쥴링 시스템에서 우선순위 역전이 발생하지 않도록, 데드라인 기반의 우선순위 상속 방법을 제공하는 것이다.
상기와 같은 목적을 달성하기 위하여, 본 발명에 따른 데드라인 기반의 우선순위 상속 방법은,
(A) 매 클럭 틱마다 작동하는 우선순위 상속 스케줄러가, 주기가 도래한 태스크들을 구동시키는 단계와; (B) 데드라인이 도래에 따라, 상기 우선순위 상속 스케줄러가, 태스크들의 우선순위를 각 태스크의 잔여 데드라인을 기반으로 재계산하는 단계와; (C) 상기 재계산된 태스크들의 우선순위를 임계 구역에서 실행 중인 태스크에게 상속시키는 단계; 포함하는 것을 특징으로 한다.
바람직하게는, 상기 (C) 단계는
상기 우선순위 상속 스케줄러가 모든 임계구역 별 대기 큐(Queue)에 대해 각각 큐에 대기 중인 태스크의 최고 우선순위를 선택하는 단계와;
상기 우선순위 상속 스케줄러가 상기 선택한 최고 우선순위를 임계구역 실행 중인 태스크에게 상속시키는 단계;를 포함하는 것을 특징으로 한다.
바람직하게는, 상기 (B) 단계는
상기 우선순위 상속 스케줄러가, 데드라인이 도래에 따라,
수행 중이거나; 임계구역 대기 중이거나; 서버 완료 대기 중인; 모든 실시간 태스크의 우선순위를 잔여 데드라인을 기반으로 재계산하는 것을 특징으로 한다.
바람직하게는, 상기 우선순위 상속 EDF 스케줄러는, 서버 별로 각각 해당 서비스 완료를 대기 중인 태스크들의 최고 우선순위를 선택하고, 그 선택한 최고 우선순위를 서버 태스크에게 상속시키는 단계;를 더 포함하는 것을 특징으로 한다.
또한, 상기와 같은 목적을 달성하기 위하여, 본 발명에 따른 데드라인 기반의 우선순위 상속 방법은,
데드라인이 도래함에 따라 우선순위 상속 스케줄러가 매 클럭 틱마다 스케줄링을 수행하는 우선순위 상속 방법으로서,
임계구역 대기 큐(queue)에 대기 중인 태스크들, 또는 서버 대기 태스크들에 대해 우선순위를 재계산하는 단계와;
상기 재계산한 태스크들의 우선순위 중에 최고 우선순위를 상기 임계구역에 실행 중인 태스크 또는 상기 서버 태스크에게 동적으로 상속시키는 단계;를 포함하는 것을 특징으로 하는 .
또한, 상기와 같은 목적을 달성하기 위하여, 본 발명에 따른 데드라인 기반의 우선순위 상속 방법은,
클라이언트-서버 모델에 있어서, 서버에 서비스 요구 메시지를 보내고 대기하는 모든 태스크들의 최고 우선순위를 서버 태스크에게 상속시키는 데드라인 기반의 우선순위 상속 방법으로서,
데드라인이 도래함에 따라 우선순위 상속 스케줄러에 의해 매 클럭 틱마다 변경되는 우선순위를 계산하는 단계와;
상기 계산한 우선순위 중에서 최고의 우선순위를 선택하는 단계와;
상기 선택한 최고의 우선순위를 메시지 서비스 중인 서버 태스크에 상속시키는 단계;를 포함하는 것을 특징으로 한다.
또한, 상기와 같은 목적을 달성하기 위하여, 본 발명에 따른 데드라인 기반 우선순위상속 시스템은,
주기적으로 태스크들을 구동시키고;
데드라인이 도래함에 따라 태스크들의 우선순위를 매 클럭 틱 마다 재계산을 수행하고;
상기 재계산된 태스크들의 우선순위를 임계구역 진입 대기 중인 태스크들의 우선순위 또는 서버의 서비스 종료 대기 중인 태스크들의 우선순위를 상승시키고, 또한 임계구역 내에서 실행 중인 태스크 또는 메시지 서비스 중인 서버 태스크에게 상기 재계산된 태스크 우선순위를 상속시키는 동작을 수행하는 우선순위 상속 데드라인 기반 스케줄러를 포함하는 것을 특징으로 한다.
바람직하게는, 상기 우선순위 상속 데드라인 기반 스케줄러는
주기적으로 태스크들을 구동하는 태스크 구동기와;
데드라인이 도래함에 따라 태스크들의 우선순위를 매 클럭 틱 마다 재계산을 수행하는 태스크 우선순위 계산기와;
상기 재계산한 태스크의 우선순위 중에서 최고의 우선순위를 선택하는 단계와;
상기 선택한 최고의 우선순위를, 임계구역 내에서 실행 중인 태스크 또는 메시지 서비스 중인 서버 태스크에 상속시키는 태스크 우선순위 상속기;를 포함하는 것을 특징으로 한다.
본 발명은, 매 클럭 틱 마다 지속적으로 임계구역 또는 서버 대기 태스크의 우선순위를 높여줄 때, 새롭게 형성된 대기 태스크의 최고 우선순위를 임계구역 실행 태스크나 서버 태스크에 지속적으로 상속시켜줌으로써, 데드라인 기반 EDF 스케줄링 시스템에서 "우선순위 역전" 현상을 방지하는 효과가 있다.
도 1은 분산 실시간 객체 모델 TMO(Time-triggered Message-triggered Object)의 구조이다.
도 2는 종래 우선순위 상속 기법으로서, 상호배제에 의한 임계구역 진입 처리과정의 기존의 우선순위 상속 기법을 설명하기 위한 도면이다.
도 3은 종래 우선순위 상속 기법으로서, 클라이언트-서버 모델에서의 서버 대기 시작 시의 기존의 우선순위 상속 기법을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시 예로서, 본 발명에 따른 상호배제에 의한 임계구역 진입 처리과정의 우선순위 상속 EDF(Earliest Deadline First) 스케줄러의 개입에 따른 데드라인 기반 우선순위 상속 기법을 나타낸 도면이다.
도 5는 본 발명의 일 실시 예로서, 본 발명에 따른 클라이언트-서버 모델에서의 우선순위 상속 EDF 스케줄러의 개입에 따른 데드라인 기반 우선순위 상속 기법을 나타낸 도면이다.
도 6은 본 발명의 일 실시 예로서, 본 발명에 따른 데드라인 기반 우선순위상속을 위한 우선순위 상속 EDF 스케줄러의 동작을 나타낸 흐름도이다.
도 2는 종래 우선순위 상속 기법으로서, 상호배제에 의한 임계구역 진입 처리과정의 기존의 우선순위 상속 기법을 설명하기 위한 도면이다.
도 3은 종래 우선순위 상속 기법으로서, 클라이언트-서버 모델에서의 서버 대기 시작 시의 기존의 우선순위 상속 기법을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시 예로서, 본 발명에 따른 상호배제에 의한 임계구역 진입 처리과정의 우선순위 상속 EDF(Earliest Deadline First) 스케줄러의 개입에 따른 데드라인 기반 우선순위 상속 기법을 나타낸 도면이다.
도 5는 본 발명의 일 실시 예로서, 본 발명에 따른 클라이언트-서버 모델에서의 우선순위 상속 EDF 스케줄러의 개입에 따른 데드라인 기반 우선순위 상속 기법을 나타낸 도면이다.
도 6은 본 발명의 일 실시 예로서, 본 발명에 따른 데드라인 기반 우선순위상속을 위한 우선순위 상속 EDF 스케줄러의 동작을 나타낸 흐름도이다.
본 발명은 스케줄링 시스템에 적용된다. 특히, 본 발명은 데드라인 기반의 우선순위 상속방법의 스케줄링 시스템에 적용된다. 그러나, 본 발명의 기술적 사상은 이에 한정하지 않고 타 기술에 적용될 수도 있다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항복들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여 본 발명에 바람직한 실시 예를 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어 도면 부호에 상관없이 동일하거나 대응하는 구성요소는 동일한 참조번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
본 발명의 기본 개념은: 데드라인 기반 EDF(Earliest Deadline First) 스케줄링 시스템에서 "우선순위 역전" 현상을 방지하기 위해; 우선순위 상속 데드라인 기반 스케줄러가 매 클럭 틱 마다 지속적으로 임계구역 또는 서버 대기 태스크의 우선순위를 높여줄 때; 새롭게 형성된 대기 태스크의 최고 우선순위를 임계구역 실행 태스크나 서버 태스크에 지속적으로 상속시켜주는 것이다.
도 4는 본 발명의 일 실시 예로서, 본 발명에 따른 데드라인 기반 우선순위 상속 시스템의 동작을 나타낸 블록도이다. 도 4는 도 1의 종래 우선순위 상속 기법의 기술적 한계점을 해결한 실시 예이다.
도 4에서, 태스크 B(200)의 우선순위가 태스크 A(100)의 우선순위보다 높고; 태스크 A(100)가 임계수역 내에 태스크 B(200)보다 먼저 진입한 경우에 있어서; 태스크 B(200)의 우선순위를 태스크 A(100)에 상속시켜줄 때, 임계구역과 무관한 태스크 C(300)가 우선순위를 빼앗음으로써(즉 "우선순위 역전"), 태스크 B(200)의 우선순위를 태스크 A(100)에게 상속되지 않는 현상을 방지하는 것이다. 한편, 이러한 "우선순위 역전"은 데드라인이 도래함에 따라, 태스크들의 우선순위가 변경됨으로써 발생할 수 있다.
도 4의 실시 예에 따른 상호배제에서의 데드라인 기반 우선순위 상속 시스템은, 임계구역에 진입하여 그 내부에서 실행 중인 낮은 우선순위의 태스크 A(100)와, 높은 우선순위의 임계구역 진입 대기 태스크 B(200)와, 임계구역과 무관한 중간 우선순위의 태스크 C(300)와, 우선순위 상속 데드라인 기반 스케줄러(500)로 구성된다. 한편, 상기 우선순위 상속 데드라인 기반 스케쥴러(500)는 주기적 태스크 구동기(510)과, 태스크 우선순위 재계산기(520)과, 임계구역 실행 태스크 우선순위 상속기(530)로 구성된다.
상기 우선순위 상속 데드라인 기반 스케줄러(500)는 매 클럭 틱 마다 주기적 태스크 구동기(510)에 의해 스케줄링을 수행하고, 특히 임계구역에 대기 중인 태스크도 데드라인 도래에 따라 우선순위를 상속시켜주기 위해 태스크 우선순위 재계산기(520)가 태스크의 우선순위를 다시 계산한다. 그리고, 그 재계산된 태스크의 우선순위는 임계구역 실행 태스크 우선순위 상속기(530)의 의해 임계구역 내에서 실행중인 태스크에게 상속된다.
이상과 같이, 본 발명에 따른 우선순위 상속 데드라인 기반 스케줄러(500)는 매 클럭 틱 마다 주기가 도래한 태스크를 실행시킨다. 그리고, 우선순위 상속 데드라인 기반 스케줄러(500)는 데드라인이 도래함에 따라, 모든 실행 중인 태스크들과, 임계구역 진입 대기, 서버 종료 대기 태스크들의 잔여 종료 데드라인에 의한 태스크의 우선순위를 재계산한다(즉, 태스크 우선순위 재계산기(520)가 수행). 우선순위 상속 데드라인 기반 스케줄러(500)는 모든 임계구역의 대기 큐(queue)에 대해 대기 큐 마다 대기 중인 태스크들의 최고 우선순위를 각 임계구역에서 실행 중인 태스크에게 새로이 상속시킨다. 즉, 우선순위 상속 데드라인 기반 스케줄러(500)는 상기 재계산된 태스크의 우선순위를 임계구역에 대기 중인 태스크 B(200)의 우선순위를 상속시키고, 또한 임계구역 내에서 실행 중인 태스크 A(100)에게도 재계산된 태스크 우선순위가 상속되도록 동작(제어)한다 (즉, 임계구역 실행 태스크 우선순위 상속기(520)가 수행).
따라서, 도 4의 실시 예의 구성과 같이, 임계구역 대기 태스크 B(200)의 변화하는 높은 우선순위는 임계구역 대기 시작 시뿐만 아니라, 지속적으로 우선순위 상속 데드라인 기반 스케줄러(500)에 의해 임계구역에 진입 수행중인 태스크 A(100)에게 상속된다. 즉, 매 클럭 틱 마다 수행되는 우선순위 상속 데드라인 기반 스케줄러(500)에 의해, 임계구역 대기 태스크 B(200)의 우선순위가 데드라인 임박함에 따라 높아지게 되고, 우선순위 상속 데드라인 기반 스케줄러(500)는 이러한 임계구역 대기 태스크들 중 가장 높은 새로운 우선순위로 상속시키게 된다.
도 5는 본 발명의 일 실시 예로서, 본 발명에 따른 데드라인 기반 우선순위 상속 시스템의 동작을 나타낸 블록도이다. 도 5는 도 2의 종래 우선순위 상속 기법의 기술적 한계점을 해결한 실시 예이다.
도 5에서, 클라인언트 태스크 B(700)의 우선순위가 서버 태스크 A(600)의 우선순위보다 높고; 우선순위가 높은 클라이언트 태스크 B(700)가 우선순위가 낮은 서버 태스크A(600)에게 메시지를 보내 해당 요청을 처리 중일 때; 서버 태스크 A(600)는 메시지 서비스 중이이고, 반면 클라이언트 태스크 B(700)는 메시지 송신 후 서버의 서비스 종료를 대기 중에 있는 경우에 있어서; 클라이언트 태스크 B(700)의 우선순위를 서버 태스크 A(600)에 상속시켜줄 때, 서버와 무관한 태스크 C(300)가 우선순위를 빼앗아 (즉 "우선순위 역전") 서버 태스크 A(600)보다 먼저 스케줄링되는 것을 방지하는 것이다.
즉, 도 5의 실시 예에 따른 클라이언트-서버 모델에서의 데드라인 기반 우선순위 상속 시스템은, 클라이언트의 메시지를 받아 서비스 중인 낮은 우선순위의 서버 태스크 A(600)와, 높은 우선순위의 서비스 종료 대기 클라이언트 태스크 B(700) 와, 클라이언트나 서버 태스크와 무관한 중간 우선순위의 일반 태스크 C(800)와, 우선순위 상속 데드라인 기반 스케줄러(500)로 구성된다. 한편, 상기 우선순위 상속 데드라인 기반 스케줄러(500)는 주기적 태스크 구동기(510)과, 태스크 우선순위 재계산기(520)과, 서버 태스크 우선순위 상속기(540)으로 구성된다.
본 발명에 따른 우선순위 상속 데드라인 기반 스케줄러(500)는 매 클럭 틱 마다 주기가 도래한 태스크를 실행시킨다. 그리고, 우선순위 상속 데드라인 기반 스케줄러(500)는 데드라인이 도래함에 따라, 모든 실행 중인 태스크들과, 임계구역 진입 대기, 서버 종료 대기 태스크들의 잔여 종료 데드라인에 의한 태스크의 우선순위를 재계산한다. 우선순위 상속 데드라인 기반 스케줄러(500)는 모든 임계구역의 대기 큐(queue)에 대해 대기 큐 마다 대기 중인 태스크들의 최고 우선순위를 각 임계구역에서 실행 중인 태스크에게 새로이 상속시킨다. 즉, 우선순위 상속 데드라인 기반 스케줄러(500)는 그 재계산된 태스크의 우선순위를 서버의 서비스 종료 대기 중인 클라이언트 태스크 B(700)의 우선순위를 상승시키고, 또한 메시지 서비스 중인 서버 태스크 A(100)에게도 재계산된 태스크 우선순위가 상속되도록 동작(제어)한다. 즉, 우선순위 상속 데드라인 기반 스케줄러(500)는 데드라인이 도래함에 따라 우선순위를 지속적으로 변경(또는 재계산)하여, 그 변경된 우선순위를 서버 태스크 A(600)에 상속시킨다.
이때, 태스크 우선순위 재계산기(520)는 데드라인이 도래함에 다라 우선순위를 재계산한다. 그리고, 서버 태스크 우선순위 상속기(540)는, 상기 태스크 우선순위 재계산기(520)가 계산한 우선순위를, '메시지 송신 후 서버의 서비스 종료 대기 중인 상기 클라이언트 태스크 B(700)'에게 전달하여 우선순위를 상승시켜고, 또한 '메시지 서비스 중인 서버 태스크 A(600)'에게도 우선순위가 상승된 클라이언트 태스크 B의 우선순위가 상속되도록 동작(또는 제어)한다.
따라서, 도 5의 실시 예의 구성과 같이, 서비스 종료 대기 중인 클라이언트 태스크 B(700)의 높은 우선순위는 서비스 요구 메시지 송신 시뿐만 아니라, 지속적으로 우선순위 상속 데드라인 기반 스케줄러(500)에 의해 서버 태스크 A(600)에게 상속된다. 즉, 매 클럭 틱 마다 수행되는 데드라인 기반 스케줄러(500)에 의해 대기 클라이언트 태스크들의 우선순위가 데드라인 임박함으로 해서 높아지게 되고, 우선순위 상속 데드라인 기반 스케줄러(500)는 이러한 서버 대기 태스크들을 가지는 서버 태스크의 우선순위를 서버 대기 태스크들의 새로운 최고 우선순위로 지속적으로 상속시키게 된다.
도 6은 본 발명의 일 실시 예로서, 본 발명에 따른 데드라인 기반의 우선순위 상속 방법의 동작을 나타낸 흐름도이다.
도 4 및 도 5에 도시된 바와 같이, 본 발명의 실시 예들은 는 두 가지 경우에 데드라인 기반 우선순위 상속에서 적용된다. 도 4 및 도 5의 실시 예와 같이, 본 발명에 따른 우선순위 상속 EDF(Earliest Deadline First) 스케줄러는, 도 2 내지 도 3의 종래 EDF 스케줄러에 비교하여 볼 때, 매 클럭 틱마다 임계구역 및 클라이언트-서버 우선순위 상속을 하는 동작과 그 동작을 수행하는 구성요소를 포함하고 있다.
본 발명에 따른 우선순위 상속 EDF 스케줄러는, 매 클럭 틱마다 작동하여 데드라인인 도래에 따라 재계산한 우선순위를 태스크에 상속시키는 동작을 수행한다. 즉, 도 6을 참조하면, 우선순위 상속 EDF 스케줄러는, 주기가 도래한 태스크를 구동시킨다(S610).
우선순위 상속 EDF 스케줄러는: i)수행 중이거나; ii) 임계구역 대기 중이거나; iii) 서버 완료 대기 중인; 모든 실시간 태스크의 우선순위를 잔여 데드라인을 기반으로 재계산한다(S620).
우선순위 상속 EDF 스케줄러는, 모든 임계구역 별 대기 큐(Queue)에 대해 각각 큐에 대기 중인 태스크의 최고 우선순위를 선택해서, 그 선택한 최고 우선순위를 임계구역 실행 중인 태스크에게 새로이 상속시킨다(S630).
이어서, 우선순위 상속 EDF 스케줄러는, 모든 서버 별로 각각 해당 서비스 완료를 대기 중인 태스크들의 최고 우선순위를 골라 이를 서버 태스크에게 새로이 상속시킨다(S640).
이상, 본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
Claims (8)
- (A) 매 클럭 틱마다 작동하는 우선순위 상속 스케줄러가, 주기가 도래한 태스크들을 구동시키는 단계와;
(B) 데드라인이 도래에 따라, 상기 우선순위 상속 스케줄러가, 태스크들의 우선순위를 각 태스크의 잔여 데드라인을 기반으로 재계산하는 단계와;
(C) 상기 재계산된 태스크들의 우선순위를 임계 구역에서 실행 중인 태스크에게 상속시키는 단계를 포함하고,
상기 (C) 단계는,
상기 우선순위 상속 스케줄러가 모든 임계구역 별 대기 큐(Queue)에 대해 각각 큐에 대기 중인 태스크의 최고 우선순위를 선택하는 단계와,
상기 우선순위 상속 스케줄러가 상기 선택한 최고 우선순위를 임계구역 실행 중인 태스크에게 상속시키는 단계를 포함하는 것을 특징으로 데드라인 기반의 우선순위 상속 방법. - 삭제
- 제1항에 있어서, 상기 (B) 단계는
상기 우선순위 상속 스케줄러가, 데드라인이 도래에 따라,
수행 중이거나; 임계구역 대기 중이거나; 서버 완료 대기 중인; 모든 실시간 태스크의 우선순위를 잔여 데드라인을 기반으로 재계산하는 것을 특징으로 하는 데드라인 기반의 우선순위 상속 방법. - 제1항에 있어서
상기 우선순위 상속 EDF 스케줄러는, 서버 별로 각각 해당 서비스 완료를 대기 중인 태스크들의 최고 우선순위를 선택하고, 그 선택한 최고 우선순위를 서버 태스크에게 상속시키는 단계;를 더 포함하는 것을 특징으로 데드라인 기반의 우선순위 상속 방법. - 데드라인이 도래함에 따라 우선순위 상속 스케줄러가 매 클럭 틱마다 스케줄링을 수행하는 우선순위 상속 방법으로서,
임계구역 대기 큐(queue)에 대기 중인 태스크들, 또는 서버 대기 태스크들에 대해 우선순위를 재계산하는 단계와;
상기 재계산한 태스크들의 우선순위 중에 최고 우선순위를 상기 임계구역에 실행 중인 태스크 또는 상기 서버 태스크에게 동적으로 상속시키는 단계;를 포함하는 것을 특징으로 하는 데드라인 기반의 우선순위 상속 방법. - 클라이언트-서버 모델에 있어서, 서버에 서비스 요구 메시지를 보내고 대기하는 모든 태스크들의 최고 우선순위를 서버 태스크에게 상속시키는 데드라인 기반의 우선순위 상속 방법으로서,
데드라인이 도래함에 따라 우선순위 상속 스케줄러에 의해 매 클럭 틱마다 변경되는 우선순위를 계산하는 단계와;
상기 계산한 우선순위 중에서 최고의 우선순위를 선택하는 단계와;
상기 선택한 최고의 우선순위를 메시지 서비스 중인 서버 태스크에 상속시키는 단계;를 포함하는 것을 특징으로 하는 데드라인 기반의 우선순위 상속 방법. - 주기적으로 태스크들을 구동시키고;
데드라인이 도래함에 따라 태스크들의 우선순위를 매 클럭 틱 마다 재계산을 수행하고;
상기 재계산된 태스크들의 우선순위를 임계구역 진입 대기 중인 태스크들의 우선순위 또는 서버의 서비스 종료 대기 중인 태스크들의 우선순위를 상승시키고, 또한 임계구역 내에서 실행 중인 태스크 또는 메시지 서비스 중인 서버 태스크에게 상기 재계산된 태스크 우선순위를 상속시키는 동작을 수행하는 우선순위 상속 데드라인 기반 스케줄러를 포함하고,
상기 우선순위 상속 데드라인 기반 스케줄러는,
주기적으로 태스크들을 구동하는 태스크 구동기와,
데드라인이 도래함에 따라 태스크들의 우선순위를 매 클럭 틱 마다 재계산을 수행하는 태스크 우선순위 계산기와,
상기 재계산한 태스크의 우선순위 중에서 선택된 최고의 우선순위를, 임계구역 내에서 실행 중인 태스크 또는 메시지 서비스 중인 서버 태스크에 상속시키는 태스크 우선순위 상속기를 포함하는 것을 특징으로 하는 데드라인 기반 우선순위상속 시스템. - 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110086061A KR101311305B1 (ko) | 2011-08-26 | 2011-08-26 | 데드라인 기반 우선순위상속 시스템 및 그 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110086061A KR101311305B1 (ko) | 2011-08-26 | 2011-08-26 | 데드라인 기반 우선순위상속 시스템 및 그 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130022976A KR20130022976A (ko) | 2013-03-07 |
KR101311305B1 true KR101311305B1 (ko) | 2013-09-25 |
Family
ID=48175535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110086061A KR101311305B1 (ko) | 2011-08-26 | 2011-08-26 | 데드라인 기반 우선순위상속 시스템 및 그 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101311305B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182180A (zh) * | 2014-07-30 | 2014-12-03 | 山东大学 | 面向混合主存嵌入式***的低能耗edf实时任务调度方法 |
KR20190093455A (ko) * | 2018-02-01 | 2019-08-09 | 충남대학교산학협력단 | 가상 데드라인 위반 없이 프로세서의 반응성을 개선하기 위한 태스크 스케줄링 방법 |
KR102062945B1 (ko) | 2015-11-02 | 2020-01-06 | 캐논 가부시끼가이샤 | 정보 처리 장치 및 그의 제어 방법, 및 프로그램 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160210174A1 (en) * | 2015-01-15 | 2016-07-21 | Microsoft Corporation | Hybrid Scheduler and Power Manager |
CN111626531B (zh) * | 2019-02-28 | 2023-09-05 | 贵阳海信网络科技有限公司 | 风险控制方法、设备、***及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19990087794A (ko) * | 1996-03-14 | 1999-12-27 | 비센트 비.인그라시아 | 통신 네트워크에서 다중 서비스 카테고리를 지원하기 위한이벤트 구동 셀 스케줄러 및 그 방법 |
US6718360B1 (en) | 1997-01-09 | 2004-04-06 | Microsoft Corporation | Providing predictable scheduling of programs using a repeating precomputed schedule |
KR20050020942A (ko) * | 2003-08-20 | 2005-03-04 | 마이크로소프트 코포레이션 | 연속 매체 우선순위 인식 저장장치 스케줄러 |
-
2011
- 2011-08-26 KR KR1020110086061A patent/KR101311305B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19990087794A (ko) * | 1996-03-14 | 1999-12-27 | 비센트 비.인그라시아 | 통신 네트워크에서 다중 서비스 카테고리를 지원하기 위한이벤트 구동 셀 스케줄러 및 그 방법 |
US6718360B1 (en) | 1997-01-09 | 2004-04-06 | Microsoft Corporation | Providing predictable scheduling of programs using a repeating precomputed schedule |
US6745222B1 (en) | 1997-01-09 | 2004-06-01 | Microsoft Corporation | Providing predictable scheduling of programs using repeating precomputed schedules on discretely scheduled and/or multiprocessor operating systems |
KR20050020942A (ko) * | 2003-08-20 | 2005-03-04 | 마이크로소프트 코포레이션 | 연속 매체 우선순위 인식 저장장치 스케줄러 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182180A (zh) * | 2014-07-30 | 2014-12-03 | 山东大学 | 面向混合主存嵌入式***的低能耗edf实时任务调度方法 |
KR102062945B1 (ko) | 2015-11-02 | 2020-01-06 | 캐논 가부시끼가이샤 | 정보 처리 장치 및 그의 제어 방법, 및 프로그램 |
KR20190093455A (ko) * | 2018-02-01 | 2019-08-09 | 충남대학교산학협력단 | 가상 데드라인 위반 없이 프로세서의 반응성을 개선하기 위한 태스크 스케줄링 방법 |
KR102012182B1 (ko) | 2018-02-01 | 2019-10-21 | 충남대학교산학협력단 | 가상 데드라인 위반 없이 프로세서의 반응성을 개선하기 위한 태스크 스케줄링 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20130022976A (ko) | 2013-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8813080B2 (en) | System and method to optimize OS scheduling decisions for power savings based on temporal characteristics of the scheduled entity and system workload | |
KR101311305B1 (ko) | 데드라인 기반 우선순위상속 시스템 및 그 방법 | |
US7137117B2 (en) | Dynamically variable idle time thread scheduling | |
US8183712B2 (en) | Method and system for organizing and optimizing electricity consumption | |
US9904575B2 (en) | System and method for selective timer rate limiting | |
WO2018226301A1 (en) | Scheduler for amp architecture with closed loop performance controller using static and dynamic thread grouping | |
CN101923487A (zh) | 一种综合嵌入式实时周期任务调度方法 | |
EP3376381A1 (en) | Resource management method and system, and computer storage medium | |
CN105389204B (zh) | 一种多资源偏序调度方法 | |
CN109491780B (zh) | 多任务调度方法及装置 | |
WO2016195778A1 (en) | Opportunistic waking of an application processor | |
WO2015188016A2 (en) | Energy-efficient real-time task scheduler | |
Niu et al. | A hybrid static/dynamic dvs scheduling for real-time systems with (m, k)-guarantee | |
JP2001236236A (ja) | タスク制御装置およびそのタスクスケジューリング方法 | |
EP2637096B1 (en) | A system for schedule and executing best-effort, real-time and high-performance computing (HPC) processes | |
Yi et al. | An effective algorithm of jobs scheduling in clusters | |
CN106933325B (zh) | 一种固定优先级io设备能耗管理方法 | |
CN101833477B (zh) | 基于SmartOSEK OS的非周期性任务调度方法 | |
JP2016184315A (ja) | 電子制御装置 | |
CN115454640B (zh) | 任务处理***及自适应任务调度的方法 | |
Chishiro et al. | Responsive task for real-time communication | |
Zhu et al. | Selecting server parameters for predictable runtime monitoring | |
Cheour et al. | EDF scheduler technique for wireless sensors networks: case study | |
Nasri et al. | Increasing Fixed-Priority Schedulability using Non-Periodic Load Shapers | |
Wan et al. | Clockwerk: A predictable and efficient extension of logical execution time model |
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 |