KR101335038B1 - 위상 정렬 및 잉여 시간을 기반으로 하는 주기 및 비주기 실시간 태스크 스케줄링 알고리즘 - Google Patents

위상 정렬 및 잉여 시간을 기반으로 하는 주기 및 비주기 실시간 태스크 스케줄링 알고리즘 Download PDF

Info

Publication number
KR101335038B1
KR101335038B1 KR1020110085508A KR20110085508A KR101335038B1 KR 101335038 B1 KR101335038 B1 KR 101335038B1 KR 1020110085508 A KR1020110085508 A KR 1020110085508A KR 20110085508 A KR20110085508 A KR 20110085508A KR 101335038 B1 KR101335038 B1 KR 101335038B1
Authority
KR
South Korea
Prior art keywords
task
periodic
time
scheduling
tasks
Prior art date
Application number
KR1020110085508A
Other languages
English (en)
Other versions
KR20130022707A (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 KR1020110085508A priority Critical patent/KR101335038B1/ko
Priority to US13/430,549 priority patent/US8924976B2/en
Publication of KR20130022707A publication Critical patent/KR20130022707A/ko
Application granted granted Critical
Publication of KR101335038B1 publication Critical patent/KR101335038B1/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
    • 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/44Arrangements for executing specific programs
    • 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/461Saving or restoring of program or task context
    • 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)
  • Mobile Radio Communication Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명의 실시예들은 실시간 시스템에서 태스크들을 스케줄링하여 처리하는 기술에 관한 것으로, 특히 태스크들의 특성을 고려하여 태스크들 각각을 효율적으로 스케줄링하여 처리하는 알고리즘에 관련된다. 특히, 본 발명의 실시에에 의하면, 하나의 시스템에서 주기 태스크들 및 비주기 실시간 태스크를 함께 수행할 수 있고, 주기 태스크들 간의 선행 관계를 만족시키는 스케줄링 및 주기 태스크들의 스케줄링 시간에 의해 남는 잉여 시간에 비주기 실시간 태스크를 효율적으로 실행시킬 수 있는 스케줄링이 가능하다.

Description

위상 정렬 및 잉여 시간을 기반으로 하는 주기 및 비주기 실시간 태스크 스케줄링 알고리즘{PERIODIC AND APERIODIC TASK SCHEDULING ALGORITHM BASED ON TOPOLOGICAL SORT AND RESIDUAL TIME}
아래 실시예에서는 실시간 시스템에서 태스크들을 스케줄링하여 처리하는 기술에 관한 것으로, 특히 태스크들의 특성을 고려하여 태스크들 각각을 효율적으로 스케줄링하여 처리하는 알고리즘에 관련된다.
일반적인 실시간 시스템은 비주기 실시간 태스크, 주기 태스크 및 비실시간 태스크를 포함하는 태스크들을 처리한다. 특히, 주기 태스크는 특정 주기에 따라 수행되는 태스크로, 데이터를 생성하거나 다른 태스크로부터 태스크를 받아 처리한 후 다른 태스크로 전송하는 것 및 다른 태스크로부터 전송된 데이터를 처리만하는 것으로 구분될 수 있다.
이러한 주기 태스크는 그 동작에 있어서 선행관계가 존재하기 때문에, 가능한 한 그 주기 안에서 모두 수행될 필요가 있고, 또한 정해진 선행 제약에 따라서 데이터를 생성 및 사용해야할 필요가 있다. 따라서, 주기 태스크와 관련된 실시간 시스템의 스케줄링은 NP-Nard 문제로 알려져있기 때문에 휴리스틱(Heuristic) 방법을 이용하여 최적 보다는 차선의 해결책을 얻는 기법들이 연구되고 있다. 또한, 주기 태스크를, 알람과 같이 불특정한 시간에 발생하는 이벤트를 처리하는 비주기 실시간 태스크를 함께 처리하는 스케줄링 기법도 연구되고 있다.
한편, 실시간 시스템의 스케줄링은 스케줄링이 이루어지는 시점에 따라 온라인(on-line) 스케줄링 및 오프라인(off-line) 스케줄링으로 구분될 수 있다. 온라인 스케줄링은 유연성이라는 정점이 있지만, 태스크간 선행 제약 등의 문제를 해결하는데 한계가 있을 수 있다.
또한, 오프라인 스케줄링 방법은 시스템의 수행 전에 주기 태스크들의 가동 시간 또는 우선순위를 미리 할당하는 것이기 때문에, 불특정한 시간에 발생하는 비주기 실시간 태스크를 스케줄링하기에는 적합하지 못할 수 있다.
본 발명의 실시예에 의하면, 하나의 시스템에서 주기 태스크와 비주기 실시간 태스크를 함께 수행할 수 있는 위상 정렬 및 잉여 시간을 기반으로 하는 주기 및 비주기 실시간 태스크 스케줄링 알고리즘을 제공할 수 있다.
특히, 본 발명의 실시예에 의하면, 주기 태스크들 간의 선행 관계를 만족시키는 스케줄링을 할 수 있으며, 주기 태스크들의 스케줄링 시간에 의해 남는 잉여 시간에 비주기 실시간 태스크를 실행할 수 있도록 스케줄링할 수 있는 위상 정렬 및 잉여 시간을 기반으로 하는 주기 및 비주기 실시간 태스크 스케줄링 알고리즘을 을 제공할 수 있다.
본 발명의 일 실시예에 따른 스케줄링 알고리즘 수행 방법에 있어서, 복수의 주기 태스크들 및 적어도 하나의 비주기 실시간 태스크를 수행하는 시스템에서의 스케줄링 알고리즘 수행 방법으로서, 상기 복수의 주기 태스크들의 서로간의 선행 관계를 고려하여, 상기 복수의 주기 태스크들 각각의 스케줄링을 수행하는 단계와, 상기 시스템으로부터 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링이 요청되면, 상기 복수의 주기 태스크들의 스케줄링 시간의 잉여 시간(Residual Time)에 대한 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링을 수행하는 단계를 포함한다.
이때, 상기 복수의 주기 태스크들 각각의 스케줄링을 수행하는 단계는 상기 복수의 주기 태스크들 각각의 주기 및 수행 순서에 기초하여, 상기 복수의 주기 태스크들 중에서 그래프 구조상 에서 진입 차수가 적은 태스크를 우선적으로 스케줄링할 수 있다.
또한, 상기 복수의 주기 태스크들 각각의 스케줄링을 수행하는 단계는 상기 복수의 주기 태스크들 중 그래프 구조 상에서 진입 차수가 0인 정점의 태스크를 반복하여 삭제하는 단계와, 상기 반복하여 삭제된 주기 태스크들을 삭제 순서에 따라 위상 정렬하여, 우선 순위를 할당하는 단계와, 상기 할당된 우선 순위를 고려하여, 상기 복수의 주기 태스크들의 스케줄링을 수행하는 단계를 포함할 수 있다.
또한, 상기 진입 차수가 0인 정점의 태스크가 복수인 경우, 상기 진입 차수가 0인 정점의 태스크를 반복하여 삭제하는 단계는 상기 정점의 복수의 태스크들의 주기를 비교하고, 상기 비교 결과에 따라 주기가 더 짧은 태스크를 먼저 삭제할 수 있다.
또한, 상기 스케줄링 알고리즘 수행 방법은 상기 복수의 주기 태스크들의 스케줄링 시간에 의한 잉여 시간(Residual Time)과 상기 스케줄링이 요청된 비주기 실시간 태스크의 수행 시간보다 큰 지의 여부에 따라, 상기 스케줄링이 요청된 비주기 실시간 태스크의 실행을 수락하는 단계를 더 포함할 수 있다.
또한, 상기 스케줄링 알고리즘 수행 방법은 상기 스케줄링이 요청된 비주기 실시간 태스크의 실행이 수락되면, 상기 스케줄링이 요청된 비주기 실시간 태스크의 우선순위를 최상위로 할당하는 단계와, 상기 복수의 주기 태스크들의 임계 시간을 갱신하는 단계와, 상기 갱신에 의해 마감이 임박한 임계 시간의 주기 태스크가 있으면, 상기 마감이 임박한 주기 태스크를 상기 비주기 실시간 태스크보다 먼저 수행하는 단계를 더 포함할 수 있다.
또한, 상기 마감이 임박한 주기 태스크를 상기 비주기 실시간 태스크보다 먼저 수행하는 단계는 상기 비주기 실시간 태스크의 우선 순위를 최하위로 설정하는 단계와, 상기 마감이 임박한 주기 태스크를 실행하는 단계와, 상기 마감이 임박한 주기 태스크를 실행이 끝나면, 상기 비주기 실시간 태스크의 우선 순위를 최상위로 재설정하는 단계를 포함할 수 있다.
본 발명의 다른 실시예에 따른 스케줄링 장치는 복수의 주기 태스크들 및 적어도 하나의 비주기 실시간 태스크를 수행하는 시스템에서의 스케줄링 장치에 있어서, 상기 복수의 주기 태스크들의 서로간의 선행 관계를 고려하여, 상기 복수의 주기 태스크들 각각의 스케줄링을 수행하는 주기 태스크 스케줄러와, 상기 시스템으로부터 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링 요청을 수신하는 스케줄링 요청 수신부와, 상기 복수의 주기 태스크들의 스케줄링 시간의 잉여 시간(Residual Time)에 대하여 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링을 수행하는 비주기 실시간 태스크 스케줄러를 포함한다.
이때, 상기 주기 태스크 스케줄러는 상기 복수의 주기 태스크들 각각의 주기 및 수행 순서에 기초하여, 상기 복수의 주기 태스크들 중에서 그래프 구조상 에서 진입 차수가 적은 태스크를 우선적으로 스케줄링할 수 있다.
또한, 상기 주기 태스크 스케줄러는 상기 복수의 주기 태스크들 중 그래프 구조 상에서 진입 차수가 0인 정점의 태스크를 반복하여 삭제하고, 상기 반복하여 삭제된 주기 태스크들을 삭제 순서에 따라 위상 정렬하여, 우선 순위를 할당하고, 상기 할당된 우선 순위를 고려하여, 상기 복수의 주기 태스크들의 스케줄링을 수행할 수 있다.
또한, 상기 진입 차수가 0인 정점의 태스크가 복수인 경우, 상기 주기 태스크 스케줄러는 상기 정점의 복수의 태스크들의 주기를 비교하고, 상기 비교 결과에 따라 주기가 더 짧은 태스크를 먼저 삭제할 수 있다.
또한, 상기 비주기 실시간 태스크 스케줄러는 상기 복수의 주기 태스크들의 스케줄링 시간에 의한 잉여 시간(Residual Time)과 상기 스케줄링이 요청된 비주기 실시간 태스크의 수행 시간보다 큰 지의 여부를 판단하고, 그 판단 결과, 상기 잉여 시간이 상기 스케줄링이 요청된 비주기 실시간 태스크의 수행 시간보다 더 큰 경우에 상기 스케줄링이 요청된 비주기 실시간 태스크의 실행을 수락할 수 있다.
또한, 상기 비주기 실시간 태스크 스케줄러는 상기 스케줄링이 요청된 비주기 실시간 태스크의 실행이 수락되면, 상기 스케줄링이 요청된 비주기 실시간 태스크의 우선순위를 최상위로 할당하고, 상기 복수의 주기 태스크들의 임계 시간을 갱신하고, 상기 갱신에 의해 마감이 임박한 임계 시간의 주기 태스크가 있으면, 상기 마감이 임박한 주기 태스크를 상기 비주기 실시간 태스크보다 먼저 수행할 수 있다.
또한, 상기 비주기 실시간 태스크 스케줄러는 상기 마감이 임박한 주기 태스크를 상기 비주기 실시간 태스크보다 먼저 수행하기 위하여, 상기 비주기 실시간 태스크의 우선 순위를 최하위로 설정하고, 상기 마감이 임박한 주기 태스크를 실행하고, 상기 마감이 임박한 주기 태스크를 실행이 끝나면, 상기 비주기 실시간 태스크의 우선 순위를 최상위로 재설정할 수 있다.
본 발명의 또 다른 실시예에 따른 스케줄링 알고리즘은 복수의 주기 태스크들 및 적어도 하나의 비주기 실시간 태스크를 수행하는 시스템을 위한 스케줄링 알고리즘\으로서, 상기 복수의 주기 태스크들의 서로간의 선행 관계를 고려하여, 상기 복수의 주기 태스크들 각각의 스케줄링을 수행하는 주기 태스크 스케줄링 알고리즘과, 상기 시스템으로부터 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링 요청이 수신됨에 따라, 상기 복수의 주기 태스크들의 스케줄링 시간의 잉여 시간(Residual Time)에 대하여 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링을 수행하는 비주기 실시간 태스크 스케줄링 알고리즘을 포함한다.
도 1은 본 발명의 일 실시예에 따른 스케줄링 알고리즘에서 주기 태스크들의 선행 관계를 설명하기 위한 도면.
도 2는 본 발명의 일 실시예에 따른 스케줄링 알고리즘에서 인접 리스트를 기초로 한 주기 태스크들의 그래프 구조 예시를 보여주는 도면.
도 3은 본 발명의 일 실시예에 따른 스케줄링 알고리즘에서, 주기 태스크들에게 우선 순위를 할당하는 알고리즘.
도 4는 도 3에서 보여주는 우선 순위 할당 알고리즘에 의해 우선 순위가 할당되는 과정을 설명하기 위한 도면.
도 5는 본 발명의 일 실시예에 따른 스케줄링 알고리즘에서 위상 정렬 기반 우선 순위 할당 알고리즘에 의한 스케줄링 결과 예시를 보여주는 도면.
도 6은 본 발명의 다른 실시예에 따른 스케줄링 방법을 수행할 수 있는 스케줄링 장치의 구성을 보여주는 도면.
도 7은 상기의 스케줄링 장치에 의해 스케줄링된 결과를 예시한 도면.
도 8은 도 6에 도시된 비주기 실시간 태스크 스케줄러의 동작을 간략하게 보여주는 도면.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 발명의 스케줄링 알고리즘은 주기 태스크에 대한 오프라인 스케줄링 방법 및 비주기 실시간 태스크에 대한 온라인 스케줄링 방법을 제공한다.
여기서, 오프라인 스케줄링 방법은 주기 태스크들의 주기 및 위상 정렬(topological sort)에 기초하여, 오프라인 상에서의 우선 순위에 따른 주기 태스크들의 선행 관계를 고려하여 주기 태스크들을 스케줄링하는 방법이다. 온라인 스케줄링 방법은 오프라인 스케줄링에 의해 스케줄링된 주기 태스크들의 잉여시간(Residual Time)을 사용하여 비주기 실시간 태스크의 수락 여부를 결정하고, 우선 순위를 할당하는 방법이다.
나아가, 본 발명의 스케줄링 알고리즘은 실시예로서, 동일 주기의 주기 태스크들을 하나의 집합으로 표현할 수 있다. 또한, 본 발명의 스케줄링 알고리즘은 슬랙 테이블을 이용하는 대신에, 주기 태스크 집합의 파라메터(주기, 수행 시간, 발생 빈도)를 동적으로 갱신하여 주기 태스크의 잉여시간을 산출할 수 있다. 이에 따라, 본 발명은 슬렉 테이블의 생성에 필요한 메모리 낭비를 줄일 수 있으며, 주기 태스크 집합을 이용함을 통해 이전보다 계산량을 줄일 수 있다.
본 발명의 스케줄링 알고리즘은 실시예로서, 태스크의 임계 시간을 사용하여 비주기 실시간 태스크의 빠른 응답 시간을 만족시킬 수 있다.
나아가, 본 발명의 스케줄링 알고리즘의 시스템 모델은 아래와 같이 구현될 수 있다. 시스템 모델은 실시예로서, 주기 태스크
Figure 112011066407199-pat00001
는 본 발명의 일 실시예에 따라
Figure 112011066407199-pat00002
의 각각의 요소에 따라 그 특성이 표현될 수 있다. 여기서,
Figure 112011066407199-pat00003
는 주기 태스크
Figure 112011066407199-pat00004
의 수행 시간을 나타내고,
Figure 112011066407199-pat00005
는 주기 태스크
Figure 112011066407199-pat00006
의 주기를 나타내고,
Figure 112011066407199-pat00007
는 우선 순위를 나타내고,
Figure 112011066407199-pat00008
는 주기 태스크
Figure 112011066407199-pat00009
에서 생산되는 데이터를 소비하는 태스크로 연결되는 간선들을 나타내고,
Figure 112011066407199-pat00010
는 주기 태스크
Figure 112011066407199-pat00011
가 사용하는 데이터를 생산하는 생산자 태스크의 집합을 나타낸다.
주기 태스크 집합 및 각 주기 태스크들의 선행 관계는 방향성을 가지는 비순환 그래프(Direct Acyclic Graph, DAG)의 특성을 가질 수 있으며, 실시예로서, G(V, E)로 표현될 수 있다. 여기서, V는 시스템 상의 모든 주기 태스크
Figure 112011066407199-pat00012
의 집합이고, E는 시스템상의 모든 간선들
Figure 112011066407199-pat00013
의 집합이다.
도 1은 본 발명의 일 실시예에 따른 스케줄링 알고리즘에서 주기 태스크들의 선행 관계를 설명하기 위한 도면이다. 주기 태스크들은 복수의 생산자 태스크들 및 복수의 소비자 태스크들을 포함할 수 있다. 여기서, 소비자 태스크들은 선행 관계에 의해서 자신의 생산자 태스크가 수행된 후에 수행될 수 있고, 그 생산자 태스크가 수행되지 않으면 자신도 수행되지 못한다.
도 1을 참조하면, 예컨대
Figure 112011066407199-pat00014
(105)는 소비자 태스크로서,
Figure 112011066407199-pat00015
(105)의 생산자 태스크들인
Figure 112011066407199-pat00016
(102) 및
Figure 112011066407199-pat00017
(103)이 모두 수행되어야, 자신의 태스크가 수행될 수 있다.
생산자와 소비자간의 이러한 관계에서 주기 태스크의 샘플링에 대한 동기화 제약을 만족하기 위해서, 각 주기 태스크들의 주기는 하모닉스 관계를 가지도록 할당될 수 있다. 여기서, 동기화 제약이란 소비자 태스크가 자신의 주기 안에서 생산자 태스크의 데이터를 사용해야 하는 제약 사항을 의미한다. 따라서, 스케줄링 알고리즘은 실시예로서, 소비자 태스크의 주기를 생산자의 태스크 주기의 정수 배로 설정함으로써, 소비자 태스크가 자신의 주기 안에서 생산되는 생산자의 데이터를 더 많이 사용할 수 있도록 할 수 있다.
본 발명의 시스템 모델은 불특정한 시간 t에 발생하는 비주기 실시간 태스크를 A(t)로 표현할 수 있다. 또한, 본 발명의 시스템 모델은 수행 시간을 가지는 비주기 실시간 태스크를
Figure 112011066407199-pat00018
로 표현하고, 우선 순위를 가지는 비주기 실시간 태스크를
Figure 112011066407199-pat00019
로 표현할 수 있다. 본 발명에서 사용되는 비주기 실시간 태스크는 다른 비주기 실시간 태스크와 동시에 발생하지 않으며, 이전에 발생된 비주기 실시간 태스크의 수행이 종료된 후에 다음 비주기 실시간 태스크가 처리되는 것을 가정하도록 한다.
본 발명의 스케줄링 알고리즘의 오프라인 스케줄링 방법은 실시예로서, 위상 정렬(Topological Sort)을 기반으로 수행될 수 있다. 여기서, 위상 정렬은 그래프에 존재하는 각 정점들의 선행 순서를 위배하지 않으면서 모든 정점을 나열하는 것을 말한다.
위상 정렬에 관련된 알고리즘은 일반적으로, 진입 차수(Input Degree)가 0인 정점을 선택하고, 그 선택된 정점에 연결된 모든 간선들을 삭제한다. 그리고, 위상 정렬에 관련된 알고리즘은 이러한 선택 동작 및 삭제 동작을 반복하여, 모든 정점이 선택되고 그 간선들이 삭제된 경우에 알고리즘을 종료한다. 위상 정렬에 관련된 알고리즘에서는 이들 반복 과정에 의해 삭제된 순서대로 위상 정렬이 이루어 진다. 본 발명의 스케줄링 알고리즘은 이러한 위상 정렬을 이용하기 위해 인접 리스트를 사용할 수 있다.
1. 주기 태스크 스케줄링 알고리즘
도 2는 본 발명의 일 실시예에 따른 스케줄링 알고리즘에서 인접 리스트를 기초로 한 주기 태스크들의 그래프 구조 예시를 보여주는 도면이다.
도 2를 참조하면, 주기 테스크들(201 내지 206) 각각은 자신의 데이터를 사용하는 소비자 태스크의 주소를 인접 노드로서 가지며, 자신의 진입차수 즉 사용하는 데이터를 생산하는 생산자 태스크의 수 및 주기를 요소로서 가질 수 있다.
예컨대, 주기 테스크
Figure 112011066407199-pat00020
는 소비자 태스크들
Figure 112011066407199-pat00021
Figure 112011066407199-pat00022
의 주소를 인접 노드로서 가지고, 값이 0인 진입 차수
Figure 112011066407199-pat00023
를 가지고, 값이 50인 주기
Figure 112011066407199-pat00024
를 요소로서 가지고 있다.
주기 태스크 그래프의 위상 정렬 알고리즘은 일반적인 위상 정렬 알고리즘을 사용하지만, 진입 차수(생산자 태스크의 개수)가 0인 주기 태스크의 선택에서는 해당 주기 태스크의 주기를 비교하는 방식이 추가될 수 있다.
도 3은 본 발명의 일 실시예에 따른 스케줄링 알고리즘에서, 주기 태스크들에게 우선 순위를 할당하는 알고리즘을 보여준다. 상기의 실시예에서, 주기 태스크들은 FIFS(First In First Service) 큐 구조로 저장될 수 있다.
도 3을 참조하면, 우선 순위 할당 알고리즘에서, Ls는 진입 차수가 0인 주기 태스크들의 주기를 비교하기 위한 리스트이고, Lp는 주기 태스크들이 저장되는 리스트이다.
우선 순위 할당 알고리즘에 의해, 주기 태스크들은 주기가 작은 순서대로 정렬될 수 있으며, 그 정렬된 주기 태스크는 각각의 우선 순위가 부여되어 FIFS에 저장될 수 있다.
도 4는 도 3에서 보여주는 우선 순위 할당 알고리즘에 의해 우선 순위가 할당되는 과정을 설명하기 위한 도면이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 스케줄링 알고리즘의 위상 정렬 기반 우선 순위 할당 알고리즘이 아래의 표 1에 기초하여 수행됨에 따라, 도 3의 우선 순위 할당 알고리즘이 주기 태스크들에게 우선 순위를 부여하는 과정을 볼 수 있다.
[표 1]
Figure 112011066407199-pat00025
먼저, 위상 정렬 기반 우선 순위 할당 알고리즘은 도 4에 도시된 초기 상태(400)의 그래프 구조의 주기 테스크들로부터 진입 차수가 0인 정점을 차례로 삭제한다. 상기의 삭제로 인해 그래프 구조는 초기 상태(400)에서,
Figure 112011066407199-pat00026
가 제거된 상태(410),
Figure 112011066407199-pat00027
가 제거된 상태(420),
Figure 112011066407199-pat00028
가 제거된 상태(430),
Figure 112011066407199-pat00029
가 제거된 상태(440),
Figure 112011066407199-pat00030
가 제거된 상태(450) 등으로 변경될 것이다.
우선 순위 할당 알고리즘은 주기 태스크들을 그 삭제되는 순서대로 우선 순위를 부여할 수 있다. 이 결과 우선 순위가 부여된 태스크들은 아래의 표2와 같이 도시할 수 있다.
[표 2]
Figure 112011066407199-pat00031
여기서, 상기 부여된 우선 순위
Figure 112011066407199-pat00032
는 각 주기 태스크들이 도 4에서 삭제된 순서대로 부여된 것을 볼 수 있다.
도 5는 본 발명의 일 실시예에 따른 스케줄링 알고리즘에서 위상 정렬 기반 우선 순위 할당 알고리즘에 의한 스케줄링 결과 예시를 보여주는 도면이다.
도 5를 참조하면, 각 주기 테스크들은 스케줄링 알고리즘에 의해 할당된 우선 순위에 따라서, 자신의 주기를 위배하지 않고 수행될 수 있다. 특히, 500 및 510의 경우와 같이, 주기 태스크들의 초기 기동 시간을 설정하지 않더라도 또는 다르더라도 주기 태스크들간의 선행 관계를 만족하면서 태스크가 수행될 수 있음을 알 수 있다.
2. 비주기 실시간 태스크 스케줄링 알고리즘
한편, 본 발명의 스케줄링 알고리즘은 앞서 설명한 위상 정렬 기반 우선 순위 할당 알고리즘에 의해 주기 태스크들에게 부여된 우선 순위에 기초하여, 온라인으로부터 도착하는 비주기 실시간 태스크를 스케줄링할 수 있다. 이러한 비주기 실시간 태스크 스케줄링은 주기 태스크의 초월 주기(Hyper Period)를 먼저 산출하고, 그 산출된 초월 주기 내에서 주기 태스크가 수행된 후 남는 잉여 시간(Residual Time)에, 비주기 실시간 태스크의 실행을 수락하고 제어할 수 있다.
또한, 비주기 실시간 태스크 스케줄링 알고리즘은 비주기 실시간 태스크의 응답 시간을 최소화하기 위하여, 임계 시간에 있는 주기 태스크가 없을 때까지 비주기 실시간 태스크의 우선순위를 최상위로 할당할 수 있다.
초월 주기는 본 발명의 시스템에 속한 모든 주기 태스크의 최소 공배수가 될 수 있다. 특히, 초월 주기는 아래의 수학식 1을 통해 표현될 수 있다.
[수학식 1]
Figure 112011066407199-pat00033
여기서, H는 초월 주기이고,
Figure 112011066407199-pat00034
는 주기 태스크들의 주기들이며, LCM은 최소 공배수(Least Common Multiple)이다.
한편, 본 발명의 위상 정렬 기반 우선 순위 할당 알고리즘은 앞서 설명한 바와 같이 주기 태스크들을 주기의 크기순으로 정렬하였다. 따라서, 동일한 주기의 주기 태스크들은 연속하여 수행될 것이다.
이에 따라, 본 발명에서는 동일한 주기의 주기 태스크들을 하나의 집합(group)로 정의하여, 주기 태스크의 수행 전 계산 시간을 절약할 수 있다. 본 발명에서, 동일 주기의 주기 태스크들은 Sj라 칭할 수 있다.
본 발명에서 동일 주기의 주기 태스크들 Sj는
Figure 112011066407199-pat00035
에 따른 각 요소들을 가질 수 있다. 본 발명에서 상기의 요소는 Xj로 표시하도록 하며, 그 X에는
Figure 112011066407199-pat00036
의 각 요소들이 될 수 있다.
Figure 112011066407199-pat00037
는 주기 태스크들 Sj에 속하는 주기 태스크들 각각의 주기이다. Nj는 초월 주기 H 안에서 주기 태스크들 Sj이 발생하는 횟수로서 아래의 수학식 3을 통해 계산될 수 있다.
[수학식 3]
Figure 112011066407199-pat00038
여기서,
Figure 112011066407199-pat00039
는 초월 주기의 시작 시간이다. 상기의 횟수 Nj는 주기 태스크들 Sj의 주기가 끝나는 시점에서 1이 감소될 수 있다. 또한, 주기 태스크들 Sj의 수행 시간의 합은
Figure 112011066407199-pat00040
로서 아래의 수학식 4를 통해 계산될 수 있다.
[수학식 4]
Figure 112011066407199-pat00041
또한, 주기 태스크들 Sj에 속하는 태스크들이 현재까지 수행된 시간은 Pj로서, 아래의 수학식 5를 통해 계산될 수 있다.
[수학식 5]
Figure 112011066407199-pat00042
이때,
Figure 112011066407199-pat00043
는 Sj의 주기 시작 시간에 t까지의 수행 시간을 의미한다.
한편, Cj는 임계 시간(Critical Time)으로서, Sj가 자신의 주기가 시작된 후 초기 임계 시간까지의 값을 나타낸다. 여기서, 임계 시간이란 주기 태스크가 자신의 주기를 만족하며 수행될 수 있는 경계의 시간이다. 주기 태스크가 자신의 임계 시간을 오버하게 되면, 자신의 주기를 벗어나게 된다.
이러한 임계 시간 Cj는 EDL 알고리즘에서 유휴 시간 테이블을 생성하는 방법과 같이 산출될 수 있다. 특히,
Figure 112011066407199-pat00044
는 비주기 실시간 태스크가 온라인으로부터 도착하거나 또는 자신보다 우선 순위가 높은 주기 태스크에 의해 선점이 발생한 경우, 재산출되는 임계 시간이다. 상기의
Figure 112011066407199-pat00045
은 비주기 실시간 태스크의 도착이 일어나지 않거나 선점이 발생하지 않으면, Cj값과 동일할수 있다. 따라서, 시간 t에 비주기 실시간 태스크가 도착하거나 우선 순위가 높은 주기 태스크에 의한 선점이 발생한 경우, 아래의 수학식 6을 이용하여
Figure 112011066407199-pat00046
을 갱신할 수 있다.
[수학식 6]
Figure 112011066407199-pat00047
나아가,
Figure 112011066407199-pat00048
의 갱신 이후, 자신의 Cj보다 빠른
Figure 112011066407199-pat00049
을 가지는 Sk의
Figure 112011066407199-pat00050
값도 다시 갱신할 필요가 있다. 그 갱신 과정은 아래의 수학식 7을 이용할 수 있다.
[수학식 7]
Figure 112011066407199-pat00051
본 발명의 실시간 비주기 실시간 태스크 스케줄링 알고리즘은 시간 t에 도착한 비주기 실시간 태스크의 수락을 검증하기 위하여, t시간에 주기 태스크의 수행 후 남는 잉여 시간을 산출한다. 여기서, 잉여 시간을 R(t)로 표현하면, 상기 실시간 비주기 실시간 태스크 스케줄링 알고리즘은 실시예로서, 아래의 수학식 8을 이용하여, 잉여시간 R(t)를 구할 수 있다.
[수학식 8]
Figure 112011066407199-pat00052
나아가, 실시간 비주기 실시간 태스크 스케줄링 알고리즘은 시간 t에 도착한 비주기 실시간 태스크 A(t)의 실행 여부를 아래의 수학식 9의 조건에 따라 수락할 수 있다. 즉, 실시간 비주기 실시간 태스크 스케줄링 알고리즘은 온라인으로부터 도착한 비주기 실시간 태스크 A(t)에 기초하여 아래의 수학식 9이 만족하는 지에 따라, 상기 도착한 비주기 실시간 태스크 A(t)를 선택적으로 수행할 수 있다.
[수학식 9]
Figure 112011066407199-pat00053

도 6은 본 발명의 다른 실시예에 따른 스케줄링 방법을 수행할 수 있는 스케줄링 장치의 구성을 보여주는 도면이고, 도 7은 상기의 스케줄링 장치에 의해 스케줄링된 결과를 예시한 도면이다. 상기의 스케줄링 장치는 복수의 주기 태스크들 및 적어도 하나의 비주기 실시간 태스크를 수행하는 시스템을 위한 스케줄링 장치이다.
도 6을 참조하면, 상기 스케줄링 장치(600)는 주기 태스크 스케줄러(610), 스케줄링 요청 수신부(620) 및 비주기 실시간 태스크 스케줄러(630)를 포함한다.
주기 태스크 스케줄러(610)는 상기 복수의 주기 태스크들의 서로간의 선행 관계를 고려하여, 상기 복수의 주기 태스크들 각각의 스케줄링을 수행한다. 여기서, 주기 태스크 스케줄러(610)는 앞서 설명된 위상 정렬 기반 우선 순위 할당 알고리즘에 기초하여, 복수의 주기 태스크들의 스케줄링을 수행한다.
스케줄링 요청 수신부(620)는 상기 시스템으로부터 상기 시스템이 송신한 비주기 실시간 태스크의 스케줄링 요청을 수신한다.
비주기 실시간 태스크 스케줄러(630)는 상기 복수의 주기 태스크들의 스케줄링 시간의 잉여 시간(Residual Time)에 대하여 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링을 수행한다.
비주기 실시간 태스크 스케줄러(630)는 앞서 설명된 비주기 실시간 태스크 스케줄링 알고리즘에 기초하여 상기 시스템이 요청한 비주기 실시간 태스크의 스케줄링을 수행한다.
특히, 비주기 실시간 태스크 스케줄러(630)의 동작은 도 8에 도시된 바와 같이 간략화할 수 있다. 도 8을 참조하면, 비주기 실시간 태스크 스케줄링 알고리즘을 간략하게 설명한 데이터(800)를 볼 수 있다.
여기서, t시간에 비주기 실시간 태스크가 도착한 경우는 스케줄링 요청 수신부(620)가 상기 시스템으로부터 t시간에 비주기 실시간 태스크에 대한 스케줄링 요청을 수신한 것을 의미하고, t시간에 비주기 실시간 태스크가 도착하지 않은 경우는 스케줄링 요청 수신부(620)가 상기 스케줄링 요청을 수신하지 못한 것을 의미한다.
따라서, 비주기 실시간 태스크 스케줄러(630)는 t시간에 비주기 실시간 태스크가 도착한 경우에 비주기 실시간 태스크 스케줄링 알고리즘에 기초하여 비주기 실시간 태스크를 스케줄링할 수 있다.
비주기 실시간 태스크 스케줄러(630)의 동작을 보다 상세하게 살펴보면, 비주기 실시간 태스크 스케줄러(630)는 수학식 9의 조건을 이용하여, 시스템이 상기 스케줄링 요청한 비주기 실시간 태스크의 스케줄성(schedulability)을 검사한다. 즉, 비주기 실시간 태스크 스케줄러(630)는 수학식 9의 조건이 성립되는 지의 여부에 따라서 비주기 실시간 태스크의 실행 여부를 결정할 것이다.
즉, 수학식 9의 조건이 만족하지 않았다면, 비주기 실시간 태스크 스케줄러(630)는 상기의 비주기 실시간 태스크 A(t)의 실행을 수락하지 않는다. 반면, 수학식 9의 조건이 만족한다면, 비주기 실시간 태스크 스케줄러(630)는 비주기 실시간 태스크 A(t)의 실행을 수락한다.
비주기 실시간 태스크 A(t)의 실행이 수락되면, 비주기 실시간 태스크 스케줄러(630)는 상기의 스케줄성 검사가 통과하면, 비주기 실시간 태스크 A(t)의 우선 순위를 최상위로 할당하여, 응답 시간이 빨라지도록 할 수 있다.
또한, 비주기 실시간 태스크 스케줄러(630)는 주기 태스크의
Figure 112011066407199-pat00054
를 갱신하고, 우선 순위에 따른 주기 및 비주기 태스크를 수행할 수 있다.
또한, 비주기 실시간 태스크 스케줄러(630)는
Figure 112011066407199-pat00055
가 임박한 주기 태스크가 있으면, 비주기 실시간 태스크 A(t)의 우선 순위를 최하위로 할당할 수 있다. 이는
Figure 112011066407199-pat00056
가 임박한 주기 태스크를 먼저 실행하기 위함이다. 그리고, 비주기 실시간 태스크 스케줄러(630)는
Figure 112011066407199-pat00057
가 임박한 주기 태스크의 수행이 끝나면, 비주기 실시간 태스크 A(t)의 우선 순위를 최상위로 다시 할당할 수 있다.
이에 따라, 비주기 실시간 태스크 스케줄러(630)는 임계 시간이 임박한 주기태스크가 있으면, 비주기 실시간 태스크의 우선 순위를 최하위로 설정하여, 임계시간이 임박한 주기 태스크의 수행이 끝날 때까지 비주기 실시간 태스크의 수행을 지연시킬 수 있다.
한편, 앞서 언급한 표 2의 태스크를 사용하여 시간 110에서의 태스크의 집합
Figure 112011066407199-pat00058
Figure 112011066407199-pat00059
를 이용하면 아래의 표 3과 같은 태스크 집합이 나올 수 있다.
[표 3]
Figure 112011066407199-pat00060
만약, 시간 110에 수행 시간이 30인 비주기 실시간 태스크 A가 도착 했을때 R(t)를 구하면 30이고 A의 수행 시간과 R(t)가 같으므로 A(t)의 스케줄링이 가능하다. 따라서 S1의 값을 아래의 표 4과 같이 135로 갱신하고 온라인 스케줄링을 실시할 수 있다.
[표 4]
Figure 112011066407199-pat00061
도 7을 참조하면, 시간 135에서 실시간 비주기 태스크 A는 임계시간이 임박한 그룹 S1의
Figure 112011066407199-pat00062
Figure 112011066407199-pat00063
의 주기를 보장하기 위하여 우선순위가 최하위로 할당된다. 이에 따라, 실시간 비주기 태스크 A의 수행이 지연되고, 주기 태스크들
Figure 112011066407199-pat00064
Figure 112011066407199-pat00065
가 수행할 수 있다. 이후,
Figure 112011066407199-pat00066
Figure 112011066407199-pat00067
의 수행외 남은 시간에서 실시간 비주기 태스크 A가 수행될 수 있음을 볼 수 있다.
한편, 도 9는 본 발명의 또 다른 실시예에 따른 스케줄링 알고리즘 수행 방법을 보여준다. 상기의 방법은 900 단계에서, 상기 복수의 주기 태스크들의 서로간의 선행 관계를 고려하여, 상기 복수의 주기 태스크들 각각의 스케줄링을 수행할 수 있다. 또한, 상기의 방법은 910 단계에서, 상기 시스템으로부터 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링이 요청되었는 지를 판단할 수 있다.
910 단계의 판단 결과, 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링이 요청된 경우, 상기의 방법은 920 단계에서, 상기 복수의 주기 태스크들의 스케줄링 시간의 잉여 시간(Residual Time)에 대한 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링을 수행할 수 있다.
930 단계에서, 상기의 방법은 920 단계에 의해 스케줄링된 결과로, 주기 태스크 및 비주기 태스크를 우선 순위에 따라 차례로 수행한다.
한편, 910 단계의 판단 결과, 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링이 요청되지 않았다면, 상기의 방법은 900 단계에서 스케줄링된 주기 태스크들을 각각의 우선 순위에 따라 수행할 것이다.
본 발명의 실시 예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.

Claims (15)

  1. 복수의 주기 태스크들 및 불특정한 시간에 발생하는 이벤트를 처리하는 적어도 하나의 비주기 실시간 태스크를 수행하는 시스템에서의 스케줄링 알고리즘 수행 방법에 있어서,
    상기 복수의 주기 태스크들의 서로간의 선행 관계를 고려하여, 상기 복수의 주기 태스크들 각각의 스케줄링을 수행하는 단계; 및
    상기 시스템으로부터 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링이 요청되면, 상기 복수의 주기 태스크들의 스케줄링 시간의 잉여 시간(Residual Time)에 대한 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링을 수행하는 단계
    를 포함하고,
    상기 적어도 하나의 비주기 실시간 태스크의 스케줄링을 수행하는 단계는,
    상기 복수의 주기 태스크의 초월 주기(Hyper Period)를 먼저 산출하고, 상기 산출된 초월 주기 내에서 상기 복수의 주기 태스크가 수행된 후, 상기 잉여 시간에 상기 적어도 하나의 비주기 실시간 태스크의 실행을 수락하고 제어하는 단계
    를 포함하는 스케줄링 알고리즘 수행 방법.
  2. 제1항에 있어서,
    상기 복수의 주기 태스크들 각각의 스케줄링을 수행하는 단계는
    상기 복수의 주기 태스크들 각각의 주기 및 수행 순서에 기초하여, 상기 복수의 주기 태스크들 중에서 그래프 구조상 에서 진입 차수가 적은 태스크를 우선적으로 스케줄링하는
    스케줄링 알고리즘 수행 방법.
  3. 제2항에 있어서,
    상기 복수의 주기 태스크들 각각의 스케줄링을 수행하는 단계는
    상기 복수의 주기 태스크들 중 그래프 구조 상에서 진입 차수가 0인 정점의 태스크를 반복하여 삭제하는 단계;
    상기 반복하여 삭제된 주기 태스크들을 삭제 순서에 따라 위상 정렬하여, 우선 순위를 할당하는 단계; 및
    상기 할당된 우선 순위를 고려하여, 상기 복수의 주기 태스크들의 스케줄링을 수행하는 단계
    를 포함하는 스케줄링 알고리즘 수행 방법.
  4. 제3항에 있어서,
    상기 진입 차수가 0인 정점의 태스크가 복수인 경우,
    상기 진입 차수가 0인 정점의 태스크를 반복하여 삭제하는 단계는
    상기 정점의 복수의 태스크들의 주기를 비교하고, 상기 비교 결과에 따라 주기가 더 짧은 태스크를 먼저 삭제하는
    스케줄링 알고리즘 수행 방법.
  5. 제1항에 있어서,
    상기 복수의 주기 태스크들의 스케줄링 시간에 의한 잉여 시간(Residual Time)과 상기 스케줄링이 요청된 비주기 실시간 태스크의 수행 시간보다 큰 지의 여부에 따라, 상기 스케줄링이 요청된 비주기 실시간 태스크의 실행을 수락하는 단계
    를 더 포함하는 스케줄링 알고리즘 수행 방법.
  6. 제5항에 있어서,
    상기 스케줄링이 요청된 비주기 실시간 태스크의 실행이 수락되면, 상기 스케줄링이 요청된 비주기 실시간 태스크의 우선순위를 최상위로 할당하는 단계;
    상기 복수의 주기 태스크들의 임계 시간을 갱신하는 단계;
    상기 갱신에 의해 마감이 임박한 임계 시간의 주기 태스크가 있으면, 상기 마감이 임박한 주기 태스크를 상기 비주기 실시간 태스크보다 먼저 수행하는 단계
    를 더 포함하는 스케줄링 알고리즘 수행 방법.
  7. 제6항에 있어서,
    상기 마감이 임박한 주기 태스크를 상기 비주기 실시간 태스크보다 먼저 수행하는 단계는
    상기 비주기 실시간 태스크의 우선 순위를 최하위로 설정하는 단계;
    상기 마감이 임박한 주기 태스크를 실행하는 단계; 및
    상기 마감이 임박한 주기 태스크를 실행이 끝나면, 상기 비주기 실시간 태스크의 우선 순위를 최상위로 재설정하는 단계
    를 포함하는 스케줄링 알고리즘 수행 방법.
  8. 복수의 주기 태스크들 및 불특정한 시간에 발생하는 이벤트를 처리하는 적어도 하나의 비주기 실시간 태스크를 수행하는 시스템에서의 스케줄링 장치에 있어서,
    상기 복수의 주기 태스크들의 서로간의 선행 관계를 고려하여, 상기 복수의 주기 태스크들 각각의 스케줄링을 수행하는 주기 태스크 스케줄러;
    상기 시스템으로부터 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링 요청을 수신하는 스케줄링 요청 수신부;
    상기 복수의 주기 태스크들의 스케줄링 시간의 잉여 시간(Residual Time)에 대하여 상기 적어도 하나의 비주기 실시간 태스크의 스케줄링을 수행하는 비주기 실시간 태스크 스케줄러
    를 포함하고,
    상기 비주기 실시간 태스크 스케줄러는,
    상기 주기 태스크 스케줄러에 의하여 상기 복수의 주기 태스크의 초월 주기(Hyper Period)가 먼저 산출되고, 상기 산출된 초월 주기 내에서 상기 복수의 주기 태스크가 수행된 후, 상기 잉여 시간에 상기 적어도 하나의 비주기 실시간 태스크의 실행을 수락하고 제어하는 스케줄링 장치.
  9. 제8항에 있어서,
    상기 주기 태스크 스케줄러는
    상기 복수의 주기 태스크들 각각의 주기 및 수행 순서에 기초하여, 상기 복수의 주기 태스크들 중에서 그래프 구조상 에서 진입 차수가 적은 태스크를 우선적으로 스케줄링하는
    스케줄링 장치.
  10. 제9항에 있어서,
    상기 주기 태스크 스케줄러는
    상기 복수의 주기 태스크들 중 그래프 구조 상에서 진입 차수가 0인 정점의 태스크를 반복하여 삭제하고, 상기 반복하여 삭제된 주기 태스크들을 삭제 순서에 따라 위상 정렬하여, 우선 순위를 할당하고, 상기 할당된 우선 순위를 고려하여, 상기 복수의 주기 태스크들의 스케줄링을 수행하는
    를 포함하는 스케줄링 장치.
  11. 제10항에 있어서,
    상기 진입 차수가 0인 정점의 태스크가 복수인 경우,
    상기 주기 태스크 스케줄러는
    상기 정점의 복수의 태스크들의 주기를 비교하고, 상기 비교 결과에 따라 주기가 더 짧은 태스크를 먼저 삭제하는
    스케줄링 장치.
  12. 제8항에 있어서,
    상기 비주기 실시간 태스크 스케줄러는
    상기 복수의 주기 태스크들의 스케줄링 시간에 의한 잉여 시간(Residual Time)과 상기 스케줄링이 요청된 비주기 실시간 태스크의 수행 시간보다 큰 지의 여부를 판단하고, 그 판단 결과, 상기 잉여 시간이 상기 스케줄링이 요청된 비주기 실시간 태스크의 수행 시간보다 더 큰 경우에 상기 스케줄링이 요청된 비주기 실시간 태스크의 실행을 수락하는
    스케줄링 장치.
  13. 제12항에 있어서,
    상기 비주기 실시간 태스크 스케줄러는
    상기 스케줄링이 요청된 비주기 실시간 태스크의 실행이 수락되면, 상기 스케줄링이 요청된 비주기 실시간 태스크의 우선순위를 최상위로 할당하고, 상기 복수의 주기 태스크들의 임계 시간을 갱신하고, 상기 갱신에 의해 마감이 임박한 임계 시간의 주기 태스크가 있으면, 상기 마감이 임박한 주기 태스크를 상기 비주기 실시간 태스크보다 먼저 수행하는
    스케줄링 장치.
  14. 제13항에 있어서,
    상기 비주기 실시간 태스크 스케줄러는
    상기 마감이 임박한 주기 태스크를 상기 비주기 실시간 태스크보다 먼저 수행하기 위하여, 상기 비주기 실시간 태스크의 우선 순위를 최하위로 설정하고, 상기 마감이 임박한 주기 태스크를 실행하고, 상기 마감이 임박한 주기 태스크를 실행이 끝나면, 상기 비주기 실시간 태스크의 우선 순위를 최상위로 재설정하는
    스케줄링 장치.
  15. 삭제
KR1020110085508A 2011-08-26 2011-08-26 위상 정렬 및 잉여 시간을 기반으로 하는 주기 및 비주기 실시간 태스크 스케줄링 알고리즘 KR101335038B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110085508A KR101335038B1 (ko) 2011-08-26 2011-08-26 위상 정렬 및 잉여 시간을 기반으로 하는 주기 및 비주기 실시간 태스크 스케줄링 알고리즘
US13/430,549 US8924976B2 (en) 2011-08-26 2012-03-26 Task scheduling method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110085508A KR101335038B1 (ko) 2011-08-26 2011-08-26 위상 정렬 및 잉여 시간을 기반으로 하는 주기 및 비주기 실시간 태스크 스케줄링 알고리즘

Publications (2)

Publication Number Publication Date
KR20130022707A KR20130022707A (ko) 2013-03-07
KR101335038B1 true KR101335038B1 (ko) 2013-11-29

Family

ID=48175307

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110085508A KR101335038B1 (ko) 2011-08-26 2011-08-26 위상 정렬 및 잉여 시간을 기반으로 하는 주기 및 비주기 실시간 태스크 스케줄링 알고리즘

Country Status (1)

Country Link
KR (1) KR101335038B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101716182B1 (ko) * 2012-04-16 2017-03-14 한화테크윈 주식회사 데이터베이스 관리 장치 및 방법
CN110888728B (zh) * 2019-12-03 2022-06-28 中电工业互联网有限公司 一种Kettle集群服务器的任务调度方法
KR102307445B1 (ko) * 2020-01-22 2021-09-30 단국대학교 산학협력단 실시간 기기에서의 보안성 강화 기술의 스케줄 가능성 검증 장치 및 방법
KR102436160B1 (ko) * 2020-09-29 2022-08-24 엘에스일렉트릭(주) 이벤트 기반 전력기기 제어장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010043794A (ko) * 1998-06-05 2001-05-25 샌제이브 사이두 추상형 지역 탐색 기술을 사용한 컴퓨터 구현 방식의스케줄링 시스템 및 프로세스
KR20040058299A (ko) * 2001-11-19 2004-07-03 코닌클리케 필립스 일렉트로닉스 엔.브이. 예산 잉여를 태스크에 할당하는 방법 및 시스템
KR20110061587A (ko) * 2008-08-28 2011-06-09 엔이씨 유럽 리미티드 주기적인 프로세스들을 스케줄링하기 위한 방법 및 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010043794A (ko) * 1998-06-05 2001-05-25 샌제이브 사이두 추상형 지역 탐색 기술을 사용한 컴퓨터 구현 방식의스케줄링 시스템 및 프로세스
KR20040058299A (ko) * 2001-11-19 2004-07-03 코닌클리케 필립스 일렉트로닉스 엔.브이. 예산 잉여를 태스크에 할당하는 방법 및 시스템
KR20110061587A (ko) * 2008-08-28 2011-06-09 엔이씨 유럽 리미티드 주기적인 프로세스들을 스케줄링하기 위한 방법 및 시스템

Also Published As

Publication number Publication date
KR20130022707A (ko) 2013-03-07

Similar Documents

Publication Publication Date Title
US8924976B2 (en) Task scheduling method and apparatus
CN113254178B (zh) 一种任务调度方法、装置、电子设备及可读存储介质
US8020161B2 (en) Method and system for the dynamic scheduling of a stream of computing jobs based on priority and trigger threshold
CN107291548B (zh) 任务的资源调度方法及装置
US7958507B2 (en) Job scheduling system and method
US8397235B2 (en) User tolerance based scheduling method for aperiodic real-time tasks
CN107193655B (zh) 一种基于效用函数的面向大数据处理的公平资源调度方法
CN111381950A (zh) 一种面向边缘计算环境基于多副本的任务调度方法和***
CN108154317B (zh) 多云环境下基于实例自适应分配整合的工作流组调度方法
McGough et al. Making the grid predictable through reservations and performance modelling
KR101335038B1 (ko) 위상 정렬 및 잉여 시간을 기반으로 하는 주기 및 비주기 실시간 태스크 스케줄링 알고리즘
CN111813523A (zh) 时长预估模型生成方法、***资源调度方法、装置、电子设备和存储介质
Falzon et al. Enhancing list scheduling heuristics for dependent job scheduling in grid computing environments
CA2433379A1 (en) Modulo scheduling of multiple instruction chains
US20210141667A1 (en) Information processing apparatus, job scheduling method, and non-transitory computer-readable storage medium
CN111026519A (zh) 基于分布式的任务优先级调度方法和***及存储介质
Denninnart et al. Improving robustness of heterogeneous serverless computing systems via probabilistic task pruning
CN115033357A (zh) 基于动态资源选择策略的微服务工作流调度方法及装置
US20070129929A1 (en) System simulation using multi-tasking computer code
CN110088730B (zh) 任务处理方法、装置、介质及其设备
JP5482442B2 (ja) ジョブ管理装置、ジョブ管理方法、およびジョブ管理プログラム
CN111143063A (zh) 任务的资源预约方法及装置
Monot et al. PASA: Framework for partitioning and scheduling automation applications on multicore controllers
JP2020173622A (ja) 並列タスクスケジューリング方法
Zhu et al. High-Throughput Scientific Workflow Scheduling under Deadline Constraint in Clouds.

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190110

Year of fee payment: 6