KR100256628B1 - 실시간 다중처리기 시스템에서의 스케쥴링 방법 - Google Patents

실시간 다중처리기 시스템에서의 스케쥴링 방법 Download PDF

Info

Publication number
KR100256628B1
KR100256628B1 KR1019980006861A KR19980006861A KR100256628B1 KR 100256628 B1 KR100256628 B1 KR 100256628B1 KR 1019980006861 A KR1019980006861 A KR 1019980006861A KR 19980006861 A KR19980006861 A KR 19980006861A KR 100256628 B1 KR100256628 B1 KR 100256628B1
Authority
KR
South Korea
Prior art keywords
period
task
scheduling
tasks
periodic
Prior art date
Application number
KR1019980006861A
Other languages
English (en)
Other versions
KR19990073758A (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 KR1019980006861A priority Critical patent/KR100256628B1/ko
Publication of KR19990073758A publication Critical patent/KR19990073758A/ko
Application granted granted Critical
Publication of KR100256628B1 publication Critical patent/KR100256628B1/ko

Links

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
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Automation & Control Theory (AREA)
  • Multi Processors (AREA)

Abstract

본 발명은 태스크의 주기변환시 새로 변환된 주기를 새로운 기초수로 할당하여 주기변환을 수행함으로써, 원시 주기에 근접하게 주기를 변환시키고, 이 변환된 주기와 원시주기의 차가 최소인 태스크 순으로 처리기에 할당하여 스케쥴링이 이루어지도록 한 스케쥴링 방법을 제공하는 데 그 목적이 있다.
본 발명에 따르면, 태스크의 인덱스 값을 초기화하고, 입력된 태스크 집합내의 태스크 주기들 중 최소 값의 주기를 기초수로 지정하는 제1단계와, 지정된 기초수에 임의의 자연수 k를 곱해 원시주기보다 작은 최대값을 변환주기로 선정한 후, 상기 변환된 현재 주기를 새로운 기초수로 지정하는 제2단계와, 입력된 모든 태스크들의 주기에 대해 변환과정을 완료할 때까지 인덱스 값을 증가시켜 가면서 상기 제2단계 이하를 반복 수행하는 제3단계와, 모든 주기 태스크에 대한 주기 변환 과정이 완료되면 스케쥴링이 가능한 처리기가 존재하는지 확인하는 제4단계와, 상기 제4단계에서 스케쥴링이 가능하지 않으면 주기태스크의 전체 부하보다 큰 최소 정수값을 증가시킨 후, 상기 제4단계를 반복하는 제5단계 및, 상기 제4단계에서 스케쥴링이 가능한 처리기가 존재하면 태스크의 원시 주기와 변환주기의 차가 최소인 태스크를 처리기에 할당하는 제6단계를 포함한 것을 특징으로 하는 실시간 다중처리기 시스템에서의 스케쥴링 방법이 제공된다.

Description

실시간 다중처리기 시스템에서의 스케쥴링 방법
본 발명은 실시간 다중처리기 시스템에서의 개선된 스케쥴링 방법에 관한 것으로, 더욱 자세하게는 실시간 다중처리기 시스템에서 태스크의 주기변환시 원시 주기에 근접하게 주기를 변환시키고, 이 변환된 주기와 원시주기의 차가 최소인 태스크 순으로 처리기에 할당하여 스케쥴링이 이루어지도록 한 스케쥴링 방법에 관한 것이다.
실시간 시스템이란 시스템에 정의된 시간제한에 따라 논리적으로 정확한 동작을 하도록 설계된 시스템으로, 이러한 예로는 항공기 제어 시스템이나 공정제어 시스템과 같은 것이 있다. 이러한 실시간 시스템에서의 설계 및 구현에 있어 가장 중요한 것은 구현된 시스템의 동작이 물리적인 환경에 의해 요구되는 시간 제한에 대해 정확히 준수하도록 하는 것이다.
실시간 시스템 분야에서는 이러한 시간제한에 대한 시스템의 동작을 정확히 유도하기 위하여 시스템에 이용되는 운영체제의 스케쥴러 설계에 많은 연구가 이루어져 왔다. 특히 실시간 시스템의 대부분을 구성하는 주기적인 태스크의 스케쥴링에 대한 많은 연구가 수행되었고, 더욱이 시스템의 실행시간 부하를 최소화하기 위하여 고정우선순위를 사용하는 알고리즘과 이를 이용한 스케쥴러에 대한 연구와 개발이 많이 이루어져 왔다.
이러한 연구 결과물들 중에서 현재 가장 많이 이용되는 스케쥴링 알고리즘으로는 레이트 모노토닉(RM: Rate-Monotonic) 알고리즘이 있다. 이는 주기와 최대수행시간으로 정의되는 주기 태스크들을 주기의 비감소순위에 따라 우선순위를 부여하는 알고리즘이다. 다시 말해, 이는 주기가 작은 태스크일수록 높은 우선순위를 얻게 되고, 이렇게 부여된 우선순위에 따라 선점 방식으로 처리기(processor) 자원을 할당하는 스케쥴링 방식이다.
레이트 모노토닉(RM) 알고리즘은 각 태스크에 하나의 우선순위를 할당함으로써, 각각의 주기 태스크의 인스턴스(instance)들이 새로운 우선순위를 다시 할당받을 필요가 없다. 이러한, 고정 우선순위 방식은 동적 우선순위 방식에 비해 실행시간 부하가 적어 엄격한 시간적인 제한이 있는 실시간 시스템에 많이 이용되고 있다. 한편, 레이트 모노토닉(RM) 알고리즘은 동적우선순위를 이용하는 EDF(Earliest Deadline First) 알고리즘에 비하여 처리기의 용량을 충분히 활용하지 못하는 단점은 있으나, 실행시간 부하 문제와 구현의 용이성 측면에서 동적우선순위 알고리즘보다 뛰어난 장점이 있다.
이러한 레이트 모노토닉(RM) 알고리즘에서의 가장 커다란 문제점으로는 거리제한으로 시간제한이 정의되는 시스템(DCTS: Distance Constrained Task System)에서 스케쥴링이 되지 않는다는 것이다. 거리제한 태스크 시스템이란 태스크의 종료시간 간의 간격이 일정할 것이 요구되는 시스템으로, 이는 레이더 관측 시스템이나 인공위성의 자세제어 혹은 공정제어 시스템 등에서 보다 엄밀한 시간제한이 요구되어 질 때 적용될 수 있다.
거리제한 태스크 시스템(DCTS)을 위한 스케쥴링 알고리즘으로는 Sr 알고리즘이 스케쥴링 가능성을 기준으로 가장 효율이 좋은 것으로 알려져 있다. Sr 알고리즘은 주기변환 과정을 거쳐 레이트 모노토닉(RM) 알고리즘으로 주기 태스크를 스케쥴링 한다. 여기에서 가장 핵심이 되는 부분은 주기 변환 과정이다.
Sr 알고리즘의 주기변환 과정은 주기변환을 위하여 기본이 되는 기초수(base)를 정하고, 이를 원시주기보다 작은 2kx base 중 최대값으로 주기를 변환하는 방식을 취하고 있다. 여기서, k는 임의의 자연수이다. 그러나, 이러한 주기변환 과정을 통해 변환된 주기는 원시주기와는 많은 차이가 있을 수 있다. 예를 들어, 원시주기가 주기 태스크 집합 T1={2, 3, 11, 27}과 같이 주어질 때, 2를 변환 기초수로 이용하여 변환하는 경우 2는 그대로 2로 변환되고, 3은 k값으로 0 혹은 1을 대입할 경우 변환 주기는 2 또는 4이나 원시주기보다는 작은 최대값을 선택하므로 2로 변환되고, 마찬가지로 11은 8, 27은 16으로 변환되어 변환주기 집합 T1'는 {2, 2, 8, 16}이 된다. 이 경우 27을 주기로 하는 태스크는 16을 주기로 하는 태스크로 변환되게 됨으로 과도하게 시스템의 부하가 증가되는 문제점이 있었다.
따라서, 본 발명은 상기와 같은 종래 기술의 문제점을 개선하기 위하여 안출된 것으로, 본 발명의 목적은 태스크의 주기변환시 새로 변환된 주기를 새로운 기초수로 할당하여 주기변환을 수행함으로써, 원시 주기에 근접하게 주기를 변환시키고, 이 변환된 주기와 원시주기의 차가 최소인 태스크 순으로 처리기에 할당하여 스케쥴링이 이루어지도록 한 스케쥴링 방법을 제공하는데 있다.
도1은 본 발명의 한 실시예에 따른 실시간 다중처리기 시스템에서의 스케쥴링 방법을 나타낸 흐름도.
상기 목적을 달성하기 위한 본 발명은, 실시간 다중처리기 시스템에서의 스케쥴링 방법에 있어서, 태스크의 인덱스 값을 초기화하고, 입력된 태스크 집합내의 태스크 주기들 중 최소 값의 주기를 기초수로 지정하는 제1단계와, 지정된 기초수에 임의의 자연수 k를 곱해 원시주기보다 작은 최대값을 변환주기로 선정한 후, 상기 변환된 현재 주기를 새로운 기초수로 지정하는 제2단계 및, 입력된 모든 태스크들의 주기에 대해 변환과정을 완료할 때까지 인덱스 값을 증가시켜 가면서 상기 제2단계 이하를 반복 수행하는 제3단계를 포함한 것을 특징으로 한다.
또한, 상기 목적을 달성하기 위한 본 발명의 스케쥴링 방법은 상기와 같은 과정을 통해 모든 주기 태스크에 대해 주기 변환 과정이 완료되면 스케쥴링이 가능한 처리기가 존재하는지 확인하는 제4단계와, 상기 제4단계에서 스케쥴링이 가능하지 않으면 주기태스크의 전체 부하보다 큰 최소 정수값을 증가시킨 후, 상기 제4단계를 반복하는 제5단계 및, 상기 제4단계에서 스케쥴링이 가능한 처리기가 존재하면 태스크의 원시 주기와 변환주기의 차가 최소인 태스크를 처리기에 할당하는 제6단계를 부가적으로 포함한 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 양호한 실시예를 상세히 설명하기로 한다.
본 발명의 개략적인 동작을 살펴보면, 입력된 주기 태스크는 새롭게 제시하는 주기변환 알고리즘을 이용해 주기변환 과정을 거쳐 다중 처리기 할당 알고리즘에 의해 각 처리기에 할당된다. 그리고, 이렇게 주기변환된 태스크들은 기존의 RM 알고리즘을 이용해 스케쥴링된다. 여기서, 본 발명의 핵심은 주기변환 알고리즘과 다중처리기 할당 알고리즘이다.
먼저, 도1을 참조하여 본 발명의 주기변환 과정을 살펴본다.
태스크의 인덱스 값을 '1'로 초기화 한 다음(101), 입력된 태스크 집합내의 태스크의 주기들 중 가장 작은 값을 갖는 주기를 기초수(base)로 지정한다(102). 그리고, 상기 지정된 기초수에 임의의 자연수 k를 곱해(k × base) 원시주기보다 작은 최대값을 변환주기로 선정한다(103). 그런 다음, 상기 변환된 현재 태스크의 주기를 새로운 기초수로 재지정한다(104). 즉, 종래의 주기변환 과정에서는 기초수가 고정된 값이었으나, 본 발명에서는 원시주기에 근접한 변환주기를 얻기 위해 기초수를 변경한다. 그리고, 입력된 태스크 집합내의 모든 태스크에 대해 주기 변환 과정을 수행하였는지 확인하기 위해 인덱스 값이 임의의 자연수 n이하인지를 확인한다(105). 인덱스 값이 임의의 자연수 n이하이면 인덱스 값을 '1'증가시킨 후(106), 원시주기를 변환시키는 103단계 이하를 반복하고, 인덱스 값이 임의의 자연수 n이하가 아니면 주기변환 과정을 완료 하였으므로, 주기 태스크를 다중처리기에 할당하는 과정을 수행한다.
본 발명의 다중처리기 할당 알고리즘은 이러한 주기변환 알고리즘을 이용하여 다중 처리기상에 주기 태스크를 할당하는 알고리즘으로, 주기변환이 원시 주기에 근접한 형태로 변환될 수 있도록 태스크를 할당한다. 즉, 다중처리기 할당 알고리즘은 주기변환 알고리즘이 각각의 처리기에서 가장 좋은 효율을 가질 수 있도록 주기 태스크들을 할당한다. 본 발명의 다중처리기 할당 알고리즘을 이용하는 경우 적어도 3개 이상의 처리기가 사용되면 최적의 효율을 얻을 수 있다.
다중처리기 할당 알고리즘을 살펴보면, 먼저 스케쥴링 가능한 처리기가 존재하는지 확인한다(107). 여기서, 스케쥴링 가능성의 점검방법은 기존의 RM 알고리즘에서 이용하는 스케쥴링 가능성 점검법을 이용한다. 스케쥴링 가능한 처리기가 없으면 주기 태스크의 전체 부하보다 큰 최소 정수값을 '1' 증가시킨 후(108), 스케쥴링 가능한 처리기가 존재하는지 확인한다. 여기서, 주기 태스크의 전체부하보다 큰 최소 정수는 결국 처리기의 개수를 나타낸다.
한편, 스케쥴링 가능한 처리기가 존재하면 태스크의 원시주기와 변환주기의 차가 최소인 태스크 순으로 처리기에 할당한다(109). 이와 같은 처리기 할당 과정은 모든 태스크에 대해 할당이 완료될 때까지 반복된다(110).
상기와 같이 이루어진 본 발명에 의해 얻어지는 효과를 살펴보면 다음과 같다. 본 발명은 원시주기의 변환시 보다 원시주기에 근접한 주기변환을 수행할 수 있다. 예를 들어, 입력되는 태스크 집합 T1이 {2, 3, 11, 27}와 같을 때, 본 발명에 따른 주기 변환 과정을 살펴보면, 주기중 최소값 2가 먼저 기초수가 되면서 2는 2로 변환된다. 그리고, 기초수가 2이므로 3은 2로 변환되고, 여전히 기초수는 2이다. 다음 기초수 2에 k값 5를 곱해 원시주기 11보다 작은 최대값 10을 변환 주기로 하면서, 기초수는 10이 된다. 그리고, 원시주기 27은 기초수 10에 k값 2를 곱해 20으로 변환된다. 따라서, 본 발명에 의해 얻어지는 변환주기 T1'는 {2, 2, 10, 20}으로 종래의 변환주기 {2, 2, 8, 16}보다 원시주기에 근접해 있음을 알 수 있다.
따라서, 상기와 같은 본 발명은 시스템의 부하 증가를 감소시킬 수 있으며, 거리제한에 의한 시간제한을 만족하는 시스템에서 스케쥴링 효율이 향상되는 효과가 있다.
이상에서 본 발명의 실시간 다중처리기 시스템에서의 스케쥴링 방법에 대한 기술사상을 첨부도면과 함께 서술하였지만 이는 본 발명의 가장 양호한 실시예를 예시적으로 설명한 것이지 본 발명을 한정하는 것은 아니다. 또한, 이 기술분야의 통상의 지식을 가진 자이면 누구나 본 발명의 기술사상의 범주를 이탈하지 않는 범위내에서 다양한 변형 및 모방이 가능함은 명백한 사실이다.

Claims (2)

  1. 실시간 다중처리기 시스템에서의 스케쥴링 방법에 있어서,
    태스크의 인덱스 값을 초기화하고, 입력된 태스크 집합내의 태스크 주기들 중 최소 값의 주기를 기초수로 지정하는 제1단계와,
    지정된 기초수에 임의의 자연수 k를 곱해 원시주기보다 작은 최대값을 변환주기로 선정한 후, 상기 변환된 현재 주기를 새로운 기초수로 지정하는 제2단계 및,
    입력된 모든 태스크들의 주기에 대해 변환과정을 완료할 때까지 인덱스 값을 증가시켜 가면서 상기 제2단계 이하를 반복 수행하는 제3단계를 포함한 것을 특징으로 하는 실시간 다중처리기 시스템에서의 스케쥴링 방법.
  2. 제1항에 있어서, 모든 주기 태스크에 대한 주기 변환 과정이 완료되면 스케쥴링이 가능한 처리기가 존재하는지 확인하는 제4단계와,
    상기 제4단계에서 스케쥴링이 가능하지 않으면 주기태스크의 전체 부하보다 큰 최소 정수값을 증가시킨 후, 상기 제4단계를 반복하는 제5단계 및,
    상기 제4단계에서 스케쥴링이 가능한 처리기가 존재하면 태스크의 원시 주기와 변환주기의 차가 최소인 태스크를 처리기에 할당하는 제6단계를 부가적으로 포함한 것을 특징으로 하는 실시간 다중처리기 시스템에서의 스케쥴링 방법.
KR1019980006861A 1998-03-03 1998-03-03 실시간 다중처리기 시스템에서의 스케쥴링 방법 KR100256628B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980006861A KR100256628B1 (ko) 1998-03-03 1998-03-03 실시간 다중처리기 시스템에서의 스케쥴링 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980006861A KR100256628B1 (ko) 1998-03-03 1998-03-03 실시간 다중처리기 시스템에서의 스케쥴링 방법

Publications (2)

Publication Number Publication Date
KR19990073758A KR19990073758A (ko) 1999-10-05
KR100256628B1 true KR100256628B1 (ko) 2000-05-15

Family

ID=19534108

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980006861A KR100256628B1 (ko) 1998-03-03 1998-03-03 실시간 다중처리기 시스템에서의 스케쥴링 방법

Country Status (1)

Country Link
KR (1) KR100256628B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7237242B2 (en) * 2002-12-31 2007-06-26 International Business Machines Corporation Dynamic thread pool tuning techniques

Also Published As

Publication number Publication date
KR19990073758A (ko) 1999-10-05

Similar Documents

Publication Publication Date Title
Andersson et al. Static-priority scheduling on multiprocessors
US8607240B2 (en) Integration of dissimilar job types into an earliest deadline first (EDF) schedule
EP2728473B1 (en) Systems and methods for instruction entity allocation and scheduling on multi-processors
CN111861412B (zh) 面向完成时间优化的科学工作流调度方法及系统
Liu et al. Bursty-interference analysis techniques for analyzing complex real-time task models
Lin et al. Scheduling periodic and aperiodic tasks in hard real-time computing systems
Ghattas et al. Preemption threshold scheduling: Stack optimality, enhancements and analysis
Tsai et al. Scheduling multiple scientific and engineering workflows through task clustering and best-fit allocation
Beckert et al. Zero-time communication for automotive multi-core systems under SPP scheduling
Nasri et al. FIFO with offsets: High schedulability with low overheads
Nasri et al. Non-work-conserving scheduling of non-preemptive hard real-time tasks based on fixed priorities
Isovic et al. Handling sporadic tasks in off-line scheduled distributed real-time systems
KR100256628B1 (ko) 실시간 다중처리기 시스템에서의 스케쥴링 방법
Wu et al. Time/utility function decomposition techniques for utility accrual scheduling algorithms in real-time distributed systems
Qureshi et al. Maintaining the feasibility of hard real-time systems with a reduced number of priority levels
Audsley et al. Integrating best effort and fixed priority scheduling
Park et al. Conditionally optimal parallelization for global fp on multi-core systems
Garg et al. A k-factor CPU scheduling algorithm
Baker et al. A unified analysis of global edf and fixed-task-priority schedulability of sporadic task systems on multiprocessors
Jain Multishape Task Scheduling Algorithm for Real Time Micro-Controller Based Application
de Oliveira et al. Scheduling imprecise tasks in real-time distributed systems
Aromolo et al. Replication-Based Scheduling of Parallel Real-Time Tasks
Yin et al. An algorithm for scheduling aperiodic real-time tasks on a static schedule
Kermia et al. Non-preemptive multiprocessor static scheduling for systems with precedence and strict periodicity constraints
Isovic Handling sporadic tasks in real-time systems: Combined offline and online approach

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee