KR19990050550A - 실시간 태스크 스케쥴링 방법 - Google Patents
실시간 태스크 스케쥴링 방법 Download PDFInfo
- Publication number
- KR19990050550A KR19990050550A KR1019970069682A KR19970069682A KR19990050550A KR 19990050550 A KR19990050550 A KR 19990050550A KR 1019970069682 A KR1019970069682 A KR 1019970069682A KR 19970069682 A KR19970069682 A KR 19970069682A KR 19990050550 A KR19990050550 A KR 19990050550A
- Authority
- KR
- South Korea
- Prior art keywords
- time
- task
- real
- tasks
- real time
- Prior art date
Links
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/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
1. 청구범위에 기재된 발명이 속하는 기술분야
본 발명은 실시간 태스크들의 실행순서가 뒤바뀌는 우선순위 역전현상을 해결하는 실시간 태스크 스케쥴링 방법 에 관한 것임.
2. 발명이 해결하고자하는 기술적 요지
본 발명은 우선순위 역전현상을 마감시간내에 완료할 수 있는 실시간 태스크의 수를 극대화하는 실시간 스캐쥴링 방법을 제공하는데 그 목적이 있다.
3. 발명의 해결 방법의 요지
본 발명은 실시간 태스크 테이블에 있는 태스크의 여유시간을 재계산하고, 새로 도착한 실시간 태스크의 여유시간이 상기 실시간 태스크 중에 가장적은 여유시간보다 적은지를 비교하여, 비교 결과에 따라 일시 중지한 태스크를 선점당한 태스크들을 위한 별도의 테이블에 삽입한다.
4. 발명의 중요한 용도.
본 발명은 ATM 교환기의 DBMS 등의 선점당한 태스크들을 별도의 테이블에 관리하여 우선순위 역전현상을 해결하는데 이용됨.
Description
본 발명은 ATM(Asynchronous Trasfer Mode) 교환기의 DBMS(Data Base Management System) 등의 실시간 태스크 스케쥴링 방법에 관한 것으로서, 특히 선점당한 태스크들을 별도의 테이블에 관리하여, 새로운 실시간 태스크의 도착여부에 따라 기존의 실시간 태스크들의 실행순서가 뒤바뀌는 우선순위 역전(Priority Reversal) 현상을 해결하는 실시간 태스크 스케쥴링 방법에 관한 것이다.
종래의 실시간 태스크 스케쥴링 기법중 대표적인 것의 하나가 LSF(Least Slack First) 기법이다. LSF 스케쥴링 기법은 시스템에 도착한 실시간 태스크들 중에 여유시간이 가장 적은 실시간 태스크를 우선적으로 수행하는 것이다. 종래의 LSF(Least Slack First) 스케쥴링 전략에서는 새로운 실시간 태스크의 도착여부에 따라 기존의 실시간 태스크들의 실행순서가 뒤바뀌는 우선순위 역전(Priority Reversal) 현상이 나타나게 된다. 우선순위 역전이란 새로운 실시간 태스크가 시스템에 도착했을 때 현재 실행 중인 실시간 태스크의 여유시간은 그대로이지만 실행을 하지 않고 대기하던 실시간 태스크들의 여유시간은 실행 중이던 실시간 태스크가 실행한 만큼의 시간이 줄어들기 때문에 발생하는 현상이다.
도 1은 종래의 실시간 태스크 스케쥴링 방법에 의하여 발생된 우선순위 역전현상을 나타내는 설명도이다.
도 1에 도시된 바와 같이, 이 예에서 사용한 실시간 태스크는 도착시간 a(T), 실행시간 x(T), 여유시간 s(T), 마감시간 d(T) 등의 특성을 갖고 있다. 여기서, 마감시간 d(T) = a(T) + x(T) + s(T)이다. 실시간 태스크 A, B, C가 있고, 실시간 태스크의 실행시간과 여유시간은 각각 A는 3과 5, B는 4와 6, C는 3과 2라고 가정한다.
먼저, A와 B가 시스템에 동시에 도착하고 C가 2 이후에 도착하면, A와 B가 시스템에 동시에 도착하므로 가장 여유시간이 적은 A를 먼저 수행한다. 2 이후에 C가 도착하면 A의 수행을 멈추고, 실시간 태스크들의 여유시간을 다시 계산하면 A, B, C의 여유시간은 각각 5, 4, 2이다. 이때, LSF 스케쥴링 방법은 여유시간이 가장 적은 C를 수행한다. C가 3 이후에 수행을 마치고, 실시간 태스크의 여유시간을 다시 계산하면, 각 실시간 태스크의 여유시간은 A가 2이고 B가 1이다. 그러므로 여유시간이 적은 B를 수행한다. B가 4 이후에 수행을 마치고, A의 여유시간을 다시 계산하면 -2이다. 다른 실시간 태스크는 없으므로 A를 수행하고 마친다. 여기서, A는 초기에는 B보다 여유시간이 적어서 먼저 수행을 시작했지만, 다른 실시간 태스크의 도착으로 인해 오히려 B가 먼저 수행을 마치는 우선순위 역전 현상이 나타남을 볼 수 있다. 또한, 우선순위 역전 현상으로 인하여 A는 마감시간내에 수행되지 못함을 볼 수 있다.
이러한, 종래의 LSF 스케쥴링 방법은, 우선순위 역전현상으로 인하여 마감시간내에 수행을 마치지 못하는 태스크들의 수가 증가되는 문제점이 발생되었다.
따라서, 상기한 바와 같은 문제점을 해결하기 위하여 안출된 본 발명은, 기존의 실시간 태스크들의 실행 순서를 유지하기 위해서 선점당한 태스크들을 별도의 테이블에 관리하여 우선순위 역전 현상을 해결하고, 또한 기존의 시스템내에서 결정된 태스크들의 수행순서가 새로운 태스크들의 도착여부에 영향을 받지 않도록 하는 실시간 태스크 스케쥴링 방법을 제공하는데 그 목적이 있다.
도 1은 종래의 실시간 태스크 스케쥴링 방법에 의하여 발생된 우선순위 역전현상을 나타내는 설명도.
도 2는 본 발명에 따른 실시간 태스크 스케쥴링 방법의 수행 과정을 나타내는 일실시예 흐름도.
도 3은 본 발명에 따른 실시간 태스크 스케쥴링 방법의 수행 과정을 나타내는 다른 실시예 흐름도.
도 4는 본 발명에 따른 실시간 태스크 스케쥴링 방법에 의해 기존의 우선순위 역전현상이 해결된 상태를 나타내는 설명도.
이와 같은 목적을 달성하기 위한 본 발명은, 새로운 실시간 태스크가 시스템에 도착하는 경우에 대한 실시간 스케쥴링하는 방법에 있어서, 현재 실행 중인 실시간 태스크의 수행을 일시 중지시키고, 실시간 태스크 테이블에 있는 태스크의 여유시간을 재계산하는 제 1 단계; 상기 재계산이 모두 끝나면, 새로 도착한 실시간 태스크의 여유시간이 상기 실시간 태스크 중에 가장적은 여유시간보다 적은지를 비교하는 제 2 단계; 및 상기 비교 결과에 따라, 일시 중지한 태스크를 선점당한 태스크들을 위한 별도의 테이블에 삽입하고, 새로 도착한 실시간 태스크를 수행하거나, 새로 도착한 실시간 태스크를 실시간 태스크 테이블에 삽입하고, 일시 중지한 태스크의 수행을 재개하는 제 3 단계를 포함한다.
또한, 상기한 바와 같은 목적을 달성하기 위한 본 발명은, 수행하던 실시간 태스크가 완료된 경우에 대한 실시간 스케쥴링하는 방법에 있어서, 완료된 태스크를 실시간 태스크 테이블에서 삭제하고, 상기 실시간 태스크 테이블에 있는 실시간 태스크들의 여유시간을 재계산하는 제 1 단계; 상기 모든 실시간 태스크들의 여유시간을 재계산한 후에는, 선점당한 태스크 테이블이 비어 있는지를 검사하는 제 2 단계; 및 상기 검사 결과에 따라, 상기 선점당한 태스크 테이블에서 가장 최근에 상기 선점당한 태스크를 선택하여 수행하거나, 상기 실시간 태스크 테이블에서 여유시간이 가장 적은 태스크를 선택하여 수행하는 제 3 단계를 포함한다.
이하, 도 2 내지 도 4를 참조하여 본 발명의 바람직한 실시예를 설명한다.
도 2는 새로운 실시간 태스크가 시스템에 도착하는 경우에 대한 본 발명의 실시간 태스크 스케쥴링 방법의 수행 과정을 나타내는 일실시예 흐름도이다.
도 2에 도시된 바와 같이, 실시간 태스크 실행중에 다른 새로운 실시간 태스크가 시스템에 도착하면, 먼저 현재 실행 중인 실시간 태스크의 수행을 일시 중지시키고(201), 실시간 태스크 테이블에 있는 태스크의 여유시간을 재계산한다(202). 재계산이 모두 끝나면, 새로 도착한 실시간 태스크의 여유시간이 실시간 태스크 중에 가장적은 여유시간보다 적은지를 비교한다(203). 상기 비교 결과 새로 도착한 실시간 태스크의 여유시간이 적으면, 일시 중지한 태스크를 선점당한 태스크들을 위한 별도의 테이블(선점 태스크 테이블)에 삽입하고(204), 새로 도착한 실시간 태스크를 수행한다(205).
상기 비교 과정(203)에서, 상기 비교 결과 새로 도착한 실시간 태스크의 여유시간이 실시간 태스크 중에 가장 여유시간 보다 크면, 새로 도착한 실시간 태스크를 실시간 태스크 테이블에 삽입하고(207), 일시 중지한 태스크의 수행을 재개한다(208).
도 3은 수행하던 실시간 태스크가 완료된 경우에 대한 본 발명의 실시간 태스크 스케쥴링 방법의 수행 과정을 나타내는 다른 실시예 흐름도이다.
도 3에 도시된 바와 같이, 먼저 완료된 태스크를 실시간 태스크 테이블에서 삭제하고(301), 실시간 태스크 테이블에 있는 실시간 태스크들의 여유시간을 재계산한다(302). 모든 실시간 태스크들의 여유시간을 재계산한 후에는, 선점당한 태스크 테이블이 비어 있는지를 검사한다(304). 상기 검사 결과 테이블이 비어 있지 않으면, 선점 태스크 테이블에서 가장 최근에 선점당한 태스크를 선택하여 수행한다(305).
상기 검사 과정(304)에서, 상기 검사 결과 테이블이 비어 있으면, 실시간 태스크 테이블에서 여유시간이 가장 적은 태스크를 선택하여 수행한다(306).
도 4는 본 발명에 따른 실시간 태스크 스케쥴링 방법에 의해 기존의 우선순위 역전현상이 해결된 상태를 나타내는 설명도이다.
도 4에 도시한 바와 같이, A와 B가 시스템에 동시에 도착하므로 여유시간이 적은 A를 먼저 수행한다. 2 이후에 C가 도착하면 A의 수행을 멈추고, 실시간 태스크의 여유시간을 다시 계산하면 A, B, C의 여유시간은 각각 5, 4, 2이다. 여기서, 여유시간이 가장 적은 C를 수행한다. 이때, 기존의 LSF 스케쥴링 기법과는 달리 A는 실시간 태스크 테이블에서 삭제하고 선점당한 태스크 테이블에 삽입한다. C가 3 이후에 수행을 마치고, 여유시간을 다시 계산하면 B의 여유시간은 1이다.
그러나, 선점당한 태스크 테이블에 최근에 삽입된 A가 존재하므로 A를 먼저 수행한다. A가 1 이후에 수행을 마치고, B의 여유시간을 다시 계산하면 0이다. 시스템 내에는 다른 실시간 태스크가 없으므로 B를 수행하고 마친다. 이 예에서는 상기 도 1의 예에서 발생하던 새로 도착한 실시간 태스크로 인한 우선순위 역전 현상이 해결되었음을 볼 수 있다. 또한, 이 결과 도 1의 예에서는 마감시간을 만족하지 못하던 실시간 태스크 A가 마감시간을 만족하였음을 볼 수 있다.
본 발명의 기술 사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술 사상의 범위내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다.
이상에서 설명한 바와 같이 본 발명의 실시간 태스크 스케쥴링 방법은, 선점당한 태스크들을 별도의 테이블에 관리하므로써, 기존의 시스템내에서 결정된 태스크들의 수행순서가 새로운 태스크들의 도착여부에 영향을 받지 않도록 하고, 또한 우선순위 역전 현상을 해결하여 마감시간내에 해당 동작을 완료하는 실시간 테스크들의 수를 극대화할 수 있는 효과가 있다.
Claims (2)
- 실시간 태스크 실행중 새로운 실시간 태스크가 시스템에 도착하는 경우에 실시간 태스크를 스케쥴링하는 방법에 있어서,현재 실행 중인 실시간 태스크의 수행을 일시 중지시키고, 실시간 태스크 테이블에 있는 태스크의 여유시간을 재계산하는 제 1 단계;상기 재계산이 모두 끝나면, 새로 도착한 실시간 태스크의 여유시간이 상기 실시간 태스크 중에 가장적은 여유시간보다 적은지를 비교하는 제 2 단계; 및상기 비교 결과에 따라, 일시 중지한 태스크를 선점당한 태스크들을 위한 별도의 테이블에 삽입하고, 새로 도착한 실시간 태스크를 수행하거나, 새로 도착한 실시간 태스크를 실시간 태스크 테이블에 삽입하고, 일시 중지한 태스크의 수행을 재개하는 제 3 단계를 포함하여 이루어진 실시간 태스크 스케쥴링 방법.
- 수행하던 실시간 태스크가 완료된 경우에 실시간 태스크를 스케쥴링하는 방법에 있어서,완료된 태스크를 실시간 태스크 테이블에서 삭제하고, 상기 실시간 태스크 테이블에 있는 실시간 태스크들의 여유시간을 재계산하는 제 1 단계;상기 모든 실시간 태스크들의 여유시간을 재계산한 후에는, 선점당한 태스크 테이블이 비어 있는지를 검사하는 제 2 단계; 및상기 검사 결과에 따라, 상기 선점당한 태스크 테이블에서 가장 최근에 상기 선점당한 태스크를 선택하여 수행하거나, 상기 실시간 태스크 테이블에서 여유시간이 가장 적은 태스크를 선택하여 수행하는 제 3 단계를 포함하여 이루어진 실시간 태스크 스케쥴링 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970069682A KR100298212B1 (ko) | 1997-12-17 | 1997-12-17 | 우선순위역전현상을해결하기위한실시간태스크스케쥴링방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970069682A KR100298212B1 (ko) | 1997-12-17 | 1997-12-17 | 우선순위역전현상을해결하기위한실시간태스크스케쥴링방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990050550A true KR19990050550A (ko) | 1999-07-05 |
KR100298212B1 KR100298212B1 (ko) | 2001-08-07 |
Family
ID=37528322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970069682A KR100298212B1 (ko) | 1997-12-17 | 1997-12-17 | 우선순위역전현상을해결하기위한실시간태스크스케쥴링방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100298212B1 (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100384339B1 (ko) * | 2000-04-21 | 2003-05-16 | 주식회사 아이네스테크 | 태스크 스케쥴링 방법 |
KR100426201B1 (ko) * | 2001-12-27 | 2004-04-06 | 씨멘스 오토모티브 주식회사 | 전자 제어 장치의 타스크 운영 시스템 |
KR100487543B1 (ko) * | 2000-09-01 | 2005-05-03 | 엘지전자 주식회사 | 시피유 스케쥴링 방법 |
KR100791296B1 (ko) * | 2006-03-03 | 2008-01-04 | 삼성전자주식회사 | 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101573781B1 (ko) | 2014-04-25 | 2015-12-03 | 상명대학교서울산학협력단 | 우선 순위 기반 저전력 태스크 스케줄링 장치 및 방법 |
KR101733339B1 (ko) | 2016-01-19 | 2017-05-08 | 한국과학기술원 | 사이버 물리 시스템을 위한 보안 제약 사항을 포함하는 실시간 스케줄링 장치 및 방법 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2693916B2 (ja) * | 1994-09-22 | 1997-12-24 | 米沢日本電気株式会社 | タスクスケジュール方法 |
-
1997
- 1997-12-17 KR KR1019970069682A patent/KR100298212B1/ko not_active IP Right Cessation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100384339B1 (ko) * | 2000-04-21 | 2003-05-16 | 주식회사 아이네스테크 | 태스크 스케쥴링 방법 |
KR100487543B1 (ko) * | 2000-09-01 | 2005-05-03 | 엘지전자 주식회사 | 시피유 스케쥴링 방법 |
KR100426201B1 (ko) * | 2001-12-27 | 2004-04-06 | 씨멘스 오토모티브 주식회사 | 전자 제어 장치의 타스크 운영 시스템 |
KR100791296B1 (ko) * | 2006-03-03 | 2008-01-04 | 삼성전자주식회사 | 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법 |
Also Published As
Publication number | Publication date |
---|---|
KR100298212B1 (ko) | 2001-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR960005105B1 (ko) | 컴퓨터에서 태스크 실행을 제어하는 방법 및 오퍼레이팅 시스템 | |
Pinedo et al. | A shifting bottleneck heuristic for minimizing the total weighted tardiness in a job shop | |
US6006247A (en) | Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system | |
US7721286B2 (en) | Preemptive multi-tasking with cooperative groups of tasks | |
US9740495B2 (en) | Implementing out of order processor instruction issue queue | |
US20070240143A1 (en) | Migratable unit based application migration | |
JPH01234940A (ja) | 優先式待ち行列管理方法 | |
CN100530111C (zh) | 一种多线程访问间接寄存器的调度方法 | |
US7111289B2 (en) | Method for implementing dual link list structure to enable fast link-list pointer updates | |
CN110457126A (zh) | 一种异步调用方法及系统 | |
Wittrock | Scheduling parallel machines with major and minor setup times | |
KR19990050550A (ko) | 실시간 태스크 스케쥴링 방법 | |
JULIEN et al. | Generalized preemption models for single-machine dynamic scheduling problems | |
US5430874A (en) | Control method and system for managing memory control blocks of programmed tasks in a multi-processing system | |
Qureshi et al. | Maintaining the feasibility of hard real-time systems with a reduced number of priority levels | |
CN114443248A (zh) | 对象的生命周期管理方法、装置、电子设备及存储介质 | |
US5386586A (en) | System and method for construction of lists of deferred service requests | |
Isovic et al. | Online handling of hard aperiodic tasks in time triggered systems | |
CN109710390A (zh) | 单线程处理器的多任务处理方法及处理系统 | |
Vaucher | Simulation data structures using Simula 67 | |
JPS62245441A (ja) | 待ち行列制御方式 | |
Manimaran et al. | A new study for fault-tolerant real-time dynamic scheduling algorithms | |
Silberschatz | A note on the distributed program component cell | |
JPH0586574B2 (ko) | ||
Bruno et al. | Simulation of production systems with DESFOR |
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 | ||
LAPS | Lapse due to unpaid annual fee |