KR101366802B1 - 실시간 운영체제를 위한 스케쥴링 방법 및 장치 - Google Patents

실시간 운영체제를 위한 스케쥴링 방법 및 장치 Download PDF

Info

Publication number
KR101366802B1
KR101366802B1 KR1020070001701A KR20070001701A KR101366802B1 KR 101366802 B1 KR101366802 B1 KR 101366802B1 KR 1020070001701 A KR1020070001701 A KR 1020070001701A KR 20070001701 A KR20070001701 A KR 20070001701A KR 101366802 B1 KR101366802 B1 KR 101366802B1
Authority
KR
South Korea
Prior art keywords
task
tasks
priority
timer
interrupt
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR1020070001701A
Other languages
English (en)
Other versions
KR20080064610A (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 KR1020070001701A priority Critical patent/KR101366802B1/ko
Priority to US12/002,758 priority patent/US9009714B2/en
Priority to CN200810001504.XA priority patent/CN101216786B/zh
Publication of KR20080064610A publication Critical patent/KR20080064610A/ko
Application granted granted Critical
Publication of KR101366802B1 publication Critical patent/KR101366802B1/ko
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; 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
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; 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

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)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

본 발명에 의한 스케쥴링 방법 및 장치는, 각각은 태스크와 그 태스크에 부여된 시점과 우선순위를 나타내는 하나 이상의 타이머들 중 인터럽트의 발생 시점에 상응하는 시점을 나타내는 타이머를 선별하고, 선별된 타이머가 나타내는 태스크와 인터럽트가 수행을 요구하는 하나 이상의 태스크들을 우선순위 순으로 수행함으로써, 인터럽트가 발생될 당시에 만료되거나 이미 만료된 태스크의 개수가 많더라도 실시간 운영체제의 성능을 저하시키지 않으면서, 그 만료되어 있는 태스크의 우선순위와 인터럽트가 수행을 요구하는 태스크의 우선순위간의 역전 가능성을 차단하는 효과를 갖는다.

Description

실시간 운영체제를 위한 스케쥴링 방법 및 장치{Method and apparatus for scheduling tasks in Real-Time Operating System}
도 1은 본 발명에 의한 스케쥴링 장치를 설명하기 위한 블록도이다.
도 2는 본 발명에 의한 스케쥴링 원리를 설명하기 위한 참고도이다.
도 3은 본 발명에 의한 스케쥴링 방법을 설명하기 위한 플로우챠트이다.
본 발명은 스케쥴링(sheduling)에 관한 것으로, 특히, MicroC/OS-Ⅱ와 같은 실시간 운영체제(RTOS: Real Time Operating System)를 위한 스케쥴링 방법 및 장치에 관한 것이다.
실시간 운영체제는 그 실시간 운영체제가 탑재된 컴퓨팅(computing) 장치의 자원(resource)을 사용하며 수행될 다수의 태스크(task)들간의 수행 순서를 각 태스크의 우선순위(priority)를 고려하여 조정한다. 즉, 실시간 운영체제는 수행될 다수의 태스크들의 스케쥴링(scheduling)을 수행한다.
스케쥴링 장치는 시점별로 마련된 태스크들과 인터럽트가 수행을 요구하는 하나 이상의 태스크들의 스케쥴링을 수행하고 태스크를 수행한다. 구체적으로, 스 케쥴링 장치는 인터럽트가 발생될 때마다 그 시점별로 마련된 태스크들을 나타내는 타이머(timer)들 중 그 인터럽트가 발생될 당시에 만료되어(expired) 있는 하나 이상의 타이머들이 나타내는 태스크들을 모두 수행한 뒤에야 비로소 그 인터럽트가 수행을 요구하는 태스크들을 수행한다.
따라서, 종래의 스케쥴링 장치는 그 만료되어 있는 타이머의 개수가 많을수록 인터럽트가 수행을 요구하는 태스크의 수행을 보다 더디게 개시할 수 밖에 없어 실시간 운영체제의 성능을 저하시키는 문제점을 갖는다. 또한, 종래의 스케쥴링 장치는 인터럽트가 수행을 요구하는 태스크들 중 그 만료되어 있는 타이머가 나타내는 태스크의 우선순위보다 높은 우선순위를 갖는 태스크가 존재하는 경우라도, 그 만료되어 있는 타이머가 나타내는 태스크를 인터럽트가 수행을 요구하는 태스크보다 먼저 수행하므로, 태스크의 당초 설정된 우선순위가 의도치 않게 실질적으로 변경될 수 있다는 문제점을 갖는다.
본 발명이 이루고자 하는 기술적 과제는, 인터럽트가 발생될 당시에 만료되거나 이미 만료된 타이머의 개수가 많더라도 실시간 운영체제의 성능을 저하시키지 않으면서, 그 만료되어 있는 타이머가 나타내는 태스크의 우선순위와 인터럽트가 수행을 요구하는 태스크의 우선순위간의 역전 가능성을 차단한 채 태스크를 수행하는 스케쥴링 방법을 제공하는 데 있다.
본 발명이 이루고자 하는 다른 기술적 과제는, 인터럽트가 발생될 당시에 만료되거나 이미 만료된 타이머의 개수가 많더라도 실시간 운영체제의 성능을 저하시 키지 않으면서, 그 만료되어 있는 타이머가 나타내는 태스크의 우선순위와 인터럽트가 수행을 요구하는 태스크의 우선순위간의 역전 가능성을 차단한 채 태스크를 수행하는 스케쥴링 장치를 제공하는 데 있다.
본 발명이 이루고자 하는 또 다른 기술적 과제는, 인터럽트가 발생될 당시에 만료되거나 이미 만료된 타이머의 개수가 많더라도 실시간 운영체제의 성능을 저하시키지 않으면서, 그 만료되어 있는 타이머가 나타내는 태스크의 우선순위와 인터럽트가 수행을 요구하는 태스크의 우선순위간의 역전 가능성을 차단한 채 태스크를 수행하도록 하는 프로그램을 저장한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다.
상기 과제를 이루기 위해, 본 발명에 의한 스케쥴링 방법은, 각각은 태스크와 상기 태스크에 부여된 시점과 우선순위를 나타내는 하나 이상의 타이머들 중 인터럽트의 발생 시점에 상응하는 시점을 나타내는 타이머를 선별하는 단계; 및 상기 선별된 타이머가 나타내는 태스크와 상기 인터럽트가 수행을 요구하는 하나 이상의 태스크들을 우선순위 순으로 수행하는 단계를 포함하는 것이 바람직하다.
상기 다른 과제를 이루기 위해, 본 발명에 의한 스케쥴링 장치는, 각각은 태스크와 상기 태스크에 부여된 시점과 우선순위를 나타내는 하나 이상의 타이머들 중 인터럽트의 발생 시점에 상응하는 시점을 나타내는 타이머를 선별하는 인터럽트 응답부; 및 상기 선별된 타이머가 나타내는 태스크와 상기 인터럽트가 수행을 요구하는 하나 이상의 태스크들을 우선순위 순으로 수행하는 태스크 수행부를 포함하는 것이 바람직하다.
상기 또 다른 과제를 이루기 위해, 본 발명에 의한 컴퓨터로 읽을 수 있는 기록매체는, 각각은 태스크와 상기 태스크에 부여된 시점과 우선순위를 나타내는 하나 이상의 타이머들 중 인터럽트의 발생 시점에 상응하는 시점을 나타내는 타이머를 선별하는 단계; 및 상기 선별된 타이머가 나타내는 태스크와 상기 인터럽트가 수행을 요구하는 하나 이상의 태스크들을 우선순위 순으로 수행하는 단계를 포함하는 스케쥴링 방법을 컴퓨터에서 실행시키기 위한 프로그램을 저장하는 것이 바람직하다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 그 첨부 도면을 설명하는 내용을 참조하여야만 한다.
이하, 본 발명에 의한 스케쥴링 방법 및 장치를 첨부한 도면들을 참조하여 다음과 같이 설명한다.
도 1은 본 발명에 의한 스케쥴링 장치를 설명하기 위한 블록도로서, 제1 타이머리스트 저장부(110), 인터럽트 응답부(120), 제2 타이머리스트 저장부(130), 속성 검사부(140), 및 태스크 수행부(150)를 포함할 수 있다. 제1 타이머리스트 저장부(110) 내지 태스크 수행부(150)는 실시간 운영체제상에 구현될 수 있다. 다만, 태스크 수행부(150)의 후술할 동작들 중 스케쥴링은 실시간 운영체제상에서 수행될 수 있지만, 태스크 수행은 그 실시간 운영체제가 탑재된 컴퓨팅 장치의 자원(예를 들어, CPU(Central Processing Unit))상에서 이루어질 수 있다.
본 발명에 의한 스케쥴링 장치가 수행하는 각각의 태스크에는 시점(point of time)과 우선순위(priority)가 부여되어 있다. 한편, 본 명세서에서 타이머(timer)란 태스크, 그 태스크에 부여된 시점에 관한 정보, 및 그 태스크에 부여된 우선순위에 관한 정보를 포함하는 정보를 의미한다. 이러한 타이머는 타이머의 속성이 하드(hard) 속성인지 아니면 소프트(soft) 속성인지에 대한 정보도 포함하는 것이 바람직하다. 타이머의 속성이 하드 속성이라 함은, 타이머에 나타난 태스크가 그 태스크에 당초 설정된 데드라인(deadline)을 도과하여 수행될 수 없음을 의미한다. 즉, 하드 속성의 타이머에 나타난 태스크는 데드라인을 도과하여 수행될 경우 무효로 취급된다. 마찬가지로, 타이머의 속성이 소프트 속성이라 함은, 타이머에 나타난 태스크가 그 태스크에 당초 설정된 데드라인을 도과하여 수행될 수 있음을 의미한다. 즉, 소프트 속성의 타이머에 나타난 태스크는 데드라인을 도과하여 수행되더라도 유효로 취급되지만 도과하는 정도가 증가됨에 따라 그 유효성이 점차 감소하고 도과하는 정도가 임계치를 초과하면 그 태스크의 수행이 무효로 취급된다.
실시간 운영체제에는 다수의 타이머들이 미리 마련되는 것이 바람직하다. 실시간 운영체제가 탑재된 컴퓨팅 장치에 구비된 클럭(clock)은 현재 시각을 나타내며, 그 미리 마련된 타이머들 중 만료된(expired) 하나 이상의 타이머들은 취합되어 하나의 리스트를 구성하게 된다. 이 때의 리스트를 이하에서는 제1 타이머리스트(timer list)라 명명한다. 만료된 타이머란, 현재 시각이 타이머에 부여된 시점이거나 타이머에 부여된 시점을 도과한 경우의 타이머를 의미한다. 한편, 제1 타이머리스트에는 타이머들이 각 타이머에 부여된 시점 순으로 정렬되는 것이 바람직하 다. 다만, 동일 시점이 부여된 다수의 타이머들은 속성별로 정렬될 수도 있고, 우선순위 순으로 정렬될 수도 있다.
제1 타이머리스트 저장부(110)는 제1 타이머리스트를 저장한다. '현재 시각이 증가됨에 따라(= 시간이 진행함에 따라)' 만료된 타이머는 증가하게 되고, 이에 따라 제1 타이머리스트 저장부(110)에 저장된 제1 타이머리스트는 현재 시각이 증가하는 한 계속적으로 갱신된다.
인터럽트 응답부(120)는 인터럽트의 발생에 응답하여 동작한다. 본 명세서에서 인터럽트는 타임틱 인터럽트(time-tick interrupt)인 것이 바람직하다. 즉, 본 명세서에서 인터럽트는 일정 시간마다 주기적으로 발생되는 것이 바람직하다.
인터럽트가 발생되면, 인터럽트 응답부(120)는 미리 마련된 다수의 타이머들 중 인터럽트가 발생될 당시에 만료되거나 이미 만료된 하나 이상의 타이머들을 선별한다. 이처럼 선별된 타이머들은 제1 타이머리스트에서 삭제된다. 이로써, 제1 타이머리스트 저장부(110)에 저장된 제1 타이머리스트는 갱신된다.
인터럽트 응답부(120)에서 선별된 타이머들은 취합되어 하나의 리스트를 구성하게 된다. 이 때의 리스트를 이하에서는 제2 타이머리스트라 명명한다. 제2 타이머리스트에는 타이머들이 우선순위 순으로 정렬되는 것이 바람직하다. 제2 타이머리스트 저장부(130)는 제2 타이머리스트를 저장한다.
속성 검사부(140)는 제2 타이머리스트를 구성하는 타이머들 각각의 속성을 분석한다. 구체적으로, 속성 검사부(140)는 제2 타이머리스트를 구성하는 타이머들 각각의 속성이 하드 속성인지 아니면 소프트 속성인지를 검사한다.
태스크 수행부(150)는 '제2 타이머리스트에 나타난 하나 이상의 태스크들'과 '인터럽트가 수행을 요구하는 하나 이상의 태스크들'을 스케쥴링한 뒤 수행한다. 본 명세서에서, 타이머가 나타내는 태스크에 우선순위가 부여되어 있듯이, 인터럽트가 수행을 요구하는 태스크에도 우선순위가 부여되어 있다.
구체적으로, 태스크 수행부(150)는 '제2 타이머리스트를 구성하는 타이머들 중 하드 속성의 타이머들이 나타내는 태스크들'을 우선순위를 고려하여 스케쥴링한다. 이에 따라, 태스크 수행부(150)는 '제2 타이머리스트를 구성하는 타이머들 중 하드 속성의 타이머들이 나타내는 태스크들'을 우선순위 순으로 수행할 수 있다.
이 후, 태스크 수행부(150)는 '제2 타이머리스트를 구성하는 타이머들 중 소프트 속성의 타이머들이 나타내는 태스크들'과 '인터럽트가 수행을 요구하는 하나 이상의 태스크들'을 우선순위를 고려하여 스케쥴링한다. 이에 따라, 태스크 수행부(150)는 '제2 타이머리스트를 구성하는 타이머들 중 소프트 속성의 타이머들이 나타내는 태스크들'과 '인터럽트가 수행을 요구하는 하나 이상의 태스크들'을 우선순위 순으로 수행할 수 있다. 보다 구체적으로, 태스크 수행부(150)는 '제2 타이머리스트가 나타내는 태스크들 중 수행되지 않은 태스크들 중 최선순위의 태스크'와 '인터럽트가 수행을 요구하는 하나 이상의 태스크들 중 수행되지 않은 하나 이상의 태스크들'을 우선순위 순으로 수행할 수 있다. 이 때, 그 최선순위의 태스크는 수행될 경우 제2 타이머리스트에서 삭제된다. 이로써, 제2 타이머리스트 저장부(130)에 저장된 제2 타이머리스트는 그 최선순위의 태스크가 수행될 때마다 갱신된다.
이에 따라, 만일, 제2 타이머리스트를 구성하는 타이머들이 모두 하드 속성 의 타이머들이라면, 태스크 수행부(150)는 제2 타이머리스트에 나타난 태스크들을 우선순위 순으로 수행한다. 그에 반해, 제2 타이머리스트를 구성하는 타이머들이 모두 소프트 속성의 타이머들이라면, 태스크 수행부(150)는 '제2 타이머리스트에 나타난 태스크들'과 '인터럽트가 수행을 요구하는 하나 이상의 태스크들'을 우선순위 순으로 수행한다.
도 2는 본 발명에 의한 스케쥴링 원리를 설명하기 위한 참고도이다. 도 2에 도시된 바에서, Task는 태스크를 의미하고, Time은 태스크마다 부여된 시점을 의미하고, 태스크마다 괄호 안에 표기된 숫자는 우선순위를 의미한다. 설명의 편의상, Tc, Tb, Te, Td, Ta, Th를 나타내는 타이머들 각각의 속성은 모두 소프트 속성이고, 인터럽트는 현재 시각이 3*N [ms] (단, N은 자연수)일 때 발생되고, 현재 시각이 3ms일 때 발생된 인터럽트는 태스크들(Tf, Tg)의 수행을 요구하고, 현재 시각이 6ms일 때 발생된 인터럽트는 태스크들(Ta, Th)의 수행을 요구한다고 가정한 채, 도 2에 도시된 바를 도 1에 대한 설명에 근거해 설명하면 다음과 같다.
현재 시각이 1ms인 경우 만료된 태스크들은 Tc, Ti이고, 현재 시각이 2ms인 경우 만료된 태스크들은 Tc, Ti, Tb이고, 현재 시각이 3ms인 경우 만료된 태스크들은 Tc, Ti, Tb, Te이고, 현재 시각이 4ms인 경우 만료된 태스크들은 Tc, Ti, Tb, Te, Tj이고, 현재 시각이 5ms인 경우 만료된 태스크들은 Tc, Ti, Tb, Te, Tj, Td이고, 현재 시각이 6ms인 경우 만료된 태스크들은 Tc, Tc, Tb, Te, Tj, Td, Ta이다. 이처럼, 제1 타이머리스트는 현재 시각이 증가됨에 따라 갱신된다.
전술한 바와 같이, 현재 시각이 4ms인 경우 제1 타이머리스트는 '태스크는 Tc, 시점은 1ms, 우선순위는 12'임을 나타내는 타이머, '태스크는 Ti, 시점은 1ms, 우선순위는 10'임을 나타내는 타이머, '태스크는 Tb, 시점은 2ms, 우선순위는 4'임을 나타내는 타이머, '태스크는 Te, 시점은 3ms, 우선순위는 8'임을 나타내는 타이머, '태스크는 Tj, 시점은 4ms, 우선순위는 2'임을 나타내는 타이머를 포함한다. 이 때, 그 타이머들은 제1 타이머리스트 내에서 시점 순으로 정렬된다. 다만, 동일 시점이 부여된 타이머들은 우선순위 순으로 정렬될 수 있다. 즉, 그 타이머들은 제1 타이머리스트 내에서 '태스크는 Ti, 시점은 1ms, 우선순위는 10'임을 나타내는 타이머, '태스크는 Tc, 시점은 1ms, 우선순위는 12'임을 나타내는 타이머, '태스크는 Tb, 시점은 2ms, 우선순위는 4'임을 나타내는 타이머, '태스크는 Te, 시점은 3ms, 우선순위는 8'임을 나타내는 타이머, '태스크는 Tj, 시점은 4ms, 우선순위는 2'임을 나타내는 타이머 순으로 정렬될 수 있다.
한편, 인터럽트 응답부(120)의 동작 개시 시점은 인터럽트가 발생된 이후에 어느 정도의 시간이 경과한 시점일 수 있다. 예컨대, 인터럽트가 현재 시각이 3ms일 때 발생된 경우, 인터럽트 응답부(120)는 현재 시각이 4ms일 때 동작을 개시할 수 있다. 이 경우, 인터럽트 응답부(120)는 제1 타이머리스트에 포함된 타이머들 중 인터럽트가 발생될 당시에 만료되거나 이미 만료된 타이머들인 '태스크는 Tc, 시점은 1ms, 우선순위는 12'임을 나타내는 타이머, '태스크는 Ti, 시점은 1ms, 우선순위는 10'임을 나타내는 타이머, '태스크는 Tb, 시점은 2ms, 우선순위는 4'임을 나타내는 타이머, '태스크는 Te, 시점은 3ms, 우선순위는 8'임을 나타내는 타이머를 선별한다. 이에 따라, '태스크는 Tc, 시점은 1ms, 우선순위는 12'임을 나타내는 타이머, '태스크는 Ti, 시점은 1ms, 우선순위는 10'임을 나타내는 타이머, '태스크는 Tb, 시점은 2ms, 우선순위는 4'임을 나타내는 타이머, '태스크는 Te, 시점은 3ms, 우선순위는 8'임을 나타내는 타이머는 제1 타이머리스트에서 삭제되고 제2 타이머리스트에 포함된다. 이 때, 그 타이머들은 제2 타이머리스트 내에서 우선순위 순으로 정렬될 수 있다. 즉, 그 타이머들은 제2 타이머리스트 내에서 '태스크는 Tb, 시점은 2ms, 우선순위는 4'임을 나타내는 타이머, '태스크는 Te, 시점은 3ms, 우선순위는 8'임을 나타내는 타이머, '태스크는 Ti, 시점은 1ms, 우선순위는 10'임을 나타내는 타이머, '태스크는 Tc, 시점은 1ms, 우선순위는 12'임을 나타내는 타이머 순으로 정렬될 수 있다.
이 경우, 태스크 수행부(150)는 '제2 타이머리스트에 나타난 태스크들(Tb, Te, Ti, Tc) 중 최선순위의 태스크(Tb)'와 '인터럽트가 수행을 요구하는 태스크들(Tf, Tg) 중 수행되지 않은 태스크들(Tf, Tg)' 중 최선순위의 태스크(Tf)를 수행한다.
이 후, 태스크 수행부(150)는 '제2 타이머리스트에 나타난 태스크들(Tb, Te, Ti, Tc) 중 최선순위의 태스크(Tb)'와 '인터럽트가 수행을 요구하는 태스크들(Tf, Tg) 중 수행되지 않은 태스크(Tg)' 중 최선순위의 태스크(Tb)를 수행한다. 이에 따라, '태스크는 Tb, 시점은 2ms, 우선순위는 4'임을 나타내는 타이머는 제2 타이머리스트에서 삭제된다.
이 후, 태스크 수행부(150)는 '제2 타이머리스트에 나타난 태스크들(Te, Ti, Tc) 중 최선순위의 태스크(Te)'와 '인터럽트가 수행을 요구하는 태스크들(Tf, Tg) 중 수행되지 않은 태스크(Tg)' 중 최선순위의 태스크(Te)를 수행한다. 이에 따라, '태스크는 Te, 시점은 3ms, 우선순위는 8'임을 나타내는 타이머는 제2 타이머리스트에서 삭제된다.
이 후, 태스크 수행부(150)는 '제2 타이머리스트에 나타난 태스크들(Ti, Tc) 중 최선순위의 태스크(Ti)'와 '인터럽트가 수행을 요구하는 태스크들(Tf, Tg) 중 수행되지 않은 태스크(Tg)' 중 최선순위의 태스크(Tg)를 수행한다.
이 후, 태스크 수행부(150)는 제2 타이머리스트에 나타난 태스크들(Ti, Tc) 중 최선순위의 태스크(Ti)를 수행한다. 이에 따라, '태스크는 Ti, 시점은 1ms, 우선순위는 10'임을 나타내는 타이머는 제2 타이머리스트에서 삭제된다.
이 후, 태스크 수행부(150)는 제2 타이머리스트에 나타난 태스크(Tc)를 수행한다.
이상에서 언급된 원리와 동일한 원리로, 태스크 수행부(150)는 '태스크는 Tj, 시점은 4ms, 우선순위는 2'임을 나타내는 타이머, '태스크는 Td, 시점은 5ms, 우선순위는 6'임을 나타내는 타이머, '태스크는 Ta, 시점은 6ms, 우선순위는 3'임을 나타내는 타이머를 포함한 제2 타이머리스트가 나타내는 태스크들(Ti, Td, Ta)과, 인터럽트가 수행을 요구하는 태스크(Th)을 우선순위 순으로 수행할 수 있다. 즉, 태스크 수행부(150)는 Tj, Td, Ta, Th를 Th, Tj, Ta, Td 순으로 수행한다.
도 3은 본 발명에 의한 스케쥴링 방법을 설명하기 위한 플로우챠트로서, 인터럽트가 발생될 당시에 만료되거나 이미 만료된 타이머의 개수가 많더라도 실시간 운영체제의 성능을 저하시키지 않으면서, 그 만료되어 있는 타이머가 나타내는 태 스크의 우선순위와 인터럽트가 수행을 요구하는 태스크의 우선순위간의 역전 가능성을 차단한 채 태스크를 수행하는 단계들(제310~ 제320 단계들)을 포함할 수 있다. 설명의
인터럽트 응답부(120)는 제1 타이머리스트에 포함된 타이머들 중 인터럽트의 발생 당시 만료되거나 이미 만료된 하나 이상의 타이머들을 선별한다(제310 단계). 이하 설명의 편의상, 제310 단계에서 선별된 타이머들 각각의 속성은 모두 소프트 속성이라 가정한다.
제310 단계 후에, 제1 타이머리스트 갱신부(미 도시)는 제310 단계에서 선별된 타이머들을 제1 타이머리스트에서 삭제한다(제312 단계). 이러한 제1 타이머리스트 갱신부(미 도시)는 본 발명에 의한 스케쥴링 장치에 마련될 수 있다.
제312 단계 후에, 태스크 수행부(150)는 "제2 타이머리스트가 나타내는 태스크들 중 최선순위의 태스크와, 인터럽트가 수행을 요구하는 하나 이상의 태스크들" 중 최선순위의 태스크를 수행한다(제314 단계). 이 때, 제2 타이머리스트는 제310 단계에서 선별된 타이머들을 포함한다.
제314 단계 후에, 제2 타이머리스트 갱신부(미 도시)는 제314 단계에서 수행된 태스크가 제310 단계에서 선별된 타이머들이 나타내는 태스크들에 포함되는지 판단한다(제316 단계). 이러한 제2 타이머리스트 갱신부(미 도시) 역시, 본 발명에 의한 스케쥴링 장치에 마련될 수 있다.
제316 단계에서 포함된다고 판단되면, 제2 타이머리스트 갱신부(미 도시)는 제314 단계에서 수행된 태스크를 나타내는 타이머를 제2 타이머리스트에서 삭제한 다(제318 단계).
제318 단계 후에, 태스크 수행부(150)는 제2 타이머리스트가 나타내는 태스크들과 인터럽트가 수행을 요구하는 태스크들이 모두 수행되었는지 판단한다(제320 단계).
만일, 제2 타이머리스트가 나타내는 태스크들과 인터럽트가 수행을 요구하는 태스크들 중 아직 수행되지 않은 태스크가 존재한다고 판단되면(제320 단계), 제314 단계로 진행한다.
한편, 제316 단계에서 포함되지 않는다고 판단되면, 제320 단계로 진행한다.
이상에서 언급된 본 발명에 의한 스케쥴링 방법을 컴퓨터에서 실행시키기 위한 프로그램은 컴퓨터로 읽을 수 있는 기록매체에 저장될 수 있다. 여기서, 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬(ROM), 플로피 디스크, 하드 디스크 등), 및 광학적 판독 매체(예를 들면, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc))와 같은 저장매체를 포함한다.
이제까지 본 발명을 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로, 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점들은 본 발명에 포함된 것으로 해석되어야 할 것이다.
이상에서 설명한 바와 같이, 본 발명에 의한 스케쥴링 방법 및 장치는, 인터럽트가 발생될 당시에 만료되거나 이미 만료된 하나 이상의 타이머들 각각의 속성이 하드(hard) 속성이 아니라 소프트(soft) 속성이라면, 그 만료되어 있는 타이머들이 나타내는 태스크들의 스케쥴링을 수행한 뒤에야 비로소 인터럽트가 수행을 요구하는 하나 이상의 태스크들의 스케쥴링을 수행하는 것이 아니라, 그 만료되어 있는 타이머들이 나타내는 태스크들의 우선순위들과 인터럽트가 수행을 요구하는 태스크들의 우선순위들을 함께 고려하여 그 만료되어 있는 타이머들이 나타내는 태스크들과 인터럽트가 수행을 요구하는 태스크들을 우선순위 순으로 스케쥴링하므로, 그 만료되어 있는 태스크의 개수가 많더라도 인터럽트가 수행을 요구하는 태스크의 수행을 신속히 개시할 수 있어 실시간 운영체제의 성능을 저하시키지 않는 효과를 갖는다.
이처럼, 본 발명에 의한 스케쥴링 방법 및 장치는, 그 만료되어 있는 타이머들이 나타내는 태스크들의 우선순위들과 인터럽트가 수행을 요구하는 태스크들의 우선순위들을 함께 고려하여 그 만료되어 있는 타이머들이 나타내는 태스크들과 인터럽트가 수행을 요구하는 태스크들을 우선순위 순으로 스케쥴링하므로, 인터럽트가 수행을 요구하는 태스크들 중 그 만료되어 있는 태스크의 우선순위보다 높은 우선순위를 갖는 태스크가 존재하는 경우라도, 그 만료되어 있는 태스크의 우선순위가 인터럽트가 수행을 요구하는 태스크의 우선순위보다 후순위임에도 불구하고 그 만료되어 있는 태스크가 인터럽트가 수행을 요구하는 태스크보다 먼저 수행되어 그 만료되어 있는 태스크의 우선순위가 인터럽트가 수행을 요구하는 태스크의 우선순위를 역전하는 현상의 발생을 차단하는 효과를 갖는다.

Claims (10)

  1. (a) 스케쥴링 장치가 태스크, 상기 태스크에 부여된 우선순위를 나타내는 하나 이상의 타이머들 중 인터럽트의 발생 시 만료된 타이머를 선별하는 단계; 및
    (b) 스케쥴링 장치가 상기 선별된 타이머가 나타내는 태스크와 상기 인터럽트가 수행을 요구하는 하나 이상의 태스크들을 우선순위 순으로 수행하는 단계를 포함하는 것을 특징으로 하는 스케쥴링 방법.
  2. 제1 항에 있어서, 상기 (b) 단계는
    (b1) 수행되지 않은 상기 선별된 타이머들이 나타내는 태스크들 중 최선순위의 태스크를 선택하는 단계;
    (b2) 상기 선택된 태스크와 수행되지 않은 상기 인터럽트가 수행을 요구하는 태스크들 중 최선순위의 태스크를 수행하는 단계;
    (b3) 상기 (b2) 단계에서 수행된 태스크가 상기 (b1) 단계에서 선택된 태스크인지 판단하는 단계; 및
    (b4) 상기 (b2) 단계에서 수행된 태스크가 상기 (b1) 단계에서 선택된 태스크라고 판단되면, 상기 (b1) 단계로 진행하는 단계를 포함하는 것을 특징으로 하는 스케쥴링 방법.
  3. 제2 항에 있어서, 상기 (b) 단계는
    (b5) 상기 (b2) 단계에서 수행된 태스크가 상기 (b1) 단계에서 선택된 태스크가 아니라고 판단되면, 상기 (b2) 단계로 진행하는 단계를 더 포함하는 것을 특징으로 하는 스케쥴링 방법.
  4. 제1 항에 있어서, 상기 (b) 단계에서 수행 가능한 태스크는 당초 설정된 데드라인을 도과하여 수행 가능한 것을 특징으로 하는 스케쥴링 방법.
  5. 태스크 및 상기 태스크에 부여된 우선순위를 나타내는 하나 이상의 타이머들 중 인터럽트의 발생 시 만료된 타이머를 선별하는 인터럽트 응답부; 및
    상기 선별된 타이머가 나타내는 태스크와 상기 인터럽트가 수행을 요구하는 하나 이상의 태스크들을 우선순위 순으로 수행하는 태스크 수행부를 포함하는 것을 특징으로 하는 스케쥴링 장치.
  6. 제5 항에 있어서, 상기 태스크 수행부는 상기 선별된 타이머가 나타내는 태스크가 수행될 때마다 선택되며 수행되지 않은 하나 이상의 상기 선별된 타이머들이 나타내는 태스크들 중 최선순위의 태스크와, 수행되지 않은 상기 인터럽트가 수행을 요구하는 태스크들을 우선순위 순으로 수행하는 것을 특징으로 하는 스케쥴링 장치.
  7. 제5 항에 있어서, 상기 태스크 수행부에서 수행 가능한 태스크는 당초 설정된 데드라인을 도과하여 수행 가능한 것을 특징으로 하는 스케쥴링 장치.
  8. 제5 항에 있어서, 상기 타이머는 상기 타이머가 나타내는 태스크가 당초 설정된 데드라인을 도과하여 수행 가능한지의 여부를 더 나타내는 것을 특징으로 하는 스케쥴링 장치.
  9. 제8 항에 있어서, 상기 스케쥴링 장치는 상기 선별된 타이머가 나타내는 태스크가 상기 데드라인을 도과하여 수행 가능한지 검사하는 속성 검사부를 더 포함하고,
    상기 태스크 수행부는 상기 데드라인을 도과하여 수행 가능하다고 검사된 태스크를 수행한 뒤, 상기 데드라인을 도과하여 수행 불가능하다고 검사된 태스크와 상기 인터럽트가 수행을 요구하는 태스크들을 우선순위 순으로 수행하는 것을 특징으로 하는 스케쥴링 장치.
  10. 제1 항 내지 제4 항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 저장한 컴퓨터로 읽을 수 있는 기록매체.
KR1020070001701A 2007-01-05 2007-01-05 실시간 운영체제를 위한 스케쥴링 방법 및 장치 Expired - Fee Related KR101366802B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020070001701A KR101366802B1 (ko) 2007-01-05 2007-01-05 실시간 운영체제를 위한 스케쥴링 방법 및 장치
US12/002,758 US9009714B2 (en) 2007-01-05 2007-12-19 Method, medium and apparatus scheduling tasks in a real time operating system
CN200810001504.XA CN101216786B (zh) 2007-01-05 2008-01-04 在实时操作系统中调度任务的方法、介质和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070001701A KR101366802B1 (ko) 2007-01-05 2007-01-05 실시간 운영체제를 위한 스케쥴링 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20080064610A KR20080064610A (ko) 2008-07-09
KR101366802B1 true KR101366802B1 (ko) 2014-02-21

Family

ID=39595388

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070001701A Expired - Fee Related KR101366802B1 (ko) 2007-01-05 2007-01-05 실시간 운영체제를 위한 스케쥴링 방법 및 장치

Country Status (3)

Country Link
US (1) US9009714B2 (ko)
KR (1) KR101366802B1 (ko)
CN (1) CN101216786B (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201009713A (en) * 2008-08-21 2010-03-01 Ind Tech Res Inst Multitasking processor and task switch method thereof
CN101833478A (zh) * 2010-05-28 2010-09-15 浙江大学 一种基于Alarm的调度表实现方法
CN102495758A (zh) * 2011-12-05 2012-06-13 中南大学 分布式高性能计算环境中实时任务的调度方法
KR101867960B1 (ko) * 2012-01-05 2018-06-18 삼성전자주식회사 매니 코어 시스템을 위한 운영체제 동적 재구성 장치 및 방법
CN103324469A (zh) * 2012-03-21 2013-09-25 腾讯科技(深圳)有限公司 定时器实现方法及装置
US10534421B2 (en) 2013-06-13 2020-01-14 Microsoft Technology Licensing, Llc Virtual per-processor timers for multiprocessor systems
EP4091949A1 (en) * 2014-10-13 2022-11-23 Avery Dennison Retail Information Services LLC Utility timers in a food freshness printer
GB2545508B (en) * 2015-12-18 2019-04-10 Imagination Tech Ltd Controlling operation of a GPU
GB2545507B (en) * 2015-12-18 2019-07-17 Imagination Tech Ltd Controlling scheduling of a GPU
US11314686B2 (en) 2019-02-26 2022-04-26 Nxp Usa, Inc. Hardware for supporting time triggered load anticipation in the context of a real time OS
CN118445038B (zh) * 2024-04-24 2025-07-11 粤港澳大湾区(广东)国创中心 Rtos定时器中断处理系统、装置、方法、电子设备及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001075820A (ja) 1999-09-07 2001-03-23 Oki Electric Ind Co Ltd リアルタイムos装置
US6434708B1 (en) 1999-04-09 2002-08-13 Integrated Technology Express, Inc. Programmable timer & methods for scheduling time slices executed by a controller circuit
KR20040011006A (ko) * 2002-07-26 2004-02-05 대한민국(서울대학교 총장) 연성 실시간 태스크 스케줄링 방법 및 그 기록매체

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5640563A (en) * 1992-01-31 1997-06-17 International Business Machines Corporation Multi-media computer operating system and method
JP2000322278A (ja) 2000-01-01 2000-11-24 Hitachi Ltd プロセス実行制御方法
US6813766B2 (en) 2001-02-05 2004-11-02 Interland, Inc. Method and apparatus for scheduling processes based upon virtual server identifiers
CN100485605C (zh) * 2001-09-24 2009-05-06 中兴通讯股份有限公司 一种多任务实时操作系统的实现方法
US7310803B2 (en) * 2001-10-19 2007-12-18 419638 Canada Inc. Method and system for executing multiple tasks in a task set
US20050015767A1 (en) * 2003-07-01 2005-01-20 Brian Nash Operating system configuration tool
JP3953449B2 (ja) 2003-08-26 2007-08-08 富士通株式会社 タスク管理プログラムおよびタスク制御装置
KR101017372B1 (ko) * 2003-12-23 2011-02-28 삼성전자주식회사 작업 스케쥴러를 이용한 다수의 디바이스 초기화 방법
CN1304949C (zh) * 2005-01-12 2007-03-14 宁波大学 一种实时多任务操作系统的定时器调度方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434708B1 (en) 1999-04-09 2002-08-13 Integrated Technology Express, Inc. Programmable timer & methods for scheduling time slices executed by a controller circuit
JP2001075820A (ja) 1999-09-07 2001-03-23 Oki Electric Ind Co Ltd リアルタイムos装置
KR20040011006A (ko) * 2002-07-26 2004-02-05 대한민국(서울대학교 총장) 연성 실시간 태스크 스케줄링 방법 및 그 기록매체

Also Published As

Publication number Publication date
US9009714B2 (en) 2015-04-14
KR20080064610A (ko) 2008-07-09
CN101216786A (zh) 2008-07-09
CN101216786B (zh) 2016-09-21
US20080168455A1 (en) 2008-07-10

Similar Documents

Publication Publication Date Title
CN101216786B (zh) 在实时操作系统中调度任务的方法、介质和设备
Baruah et al. The preemptive uniprocessor scheduling of mixed-criticality implicit-deadline sporadic task systems
Xu et al. Improved deadline miss models for real-time systems using typical worst-case analysis
Bertogna et al. Limited preemption EDF scheduling of sporadic task systems
Zeng et al. An efficient formulation of the real-time feasibility region for design optimization
Hammadeh et al. Bounding deadline misses in weakly-hard real-time systems with task dependencies
JP2015049550A (ja) 制御プログラム、制御方法および制御装置
US20090158287A1 (en) Dynamic critical path update facility
Theis et al. Schedule table generation for time-triggered mixed criticality systems
Marinho et al. Limited pre-emptive global fixed task priority
Ranjha et al. Partial-order reduction in reachability-based response-time analyses of limited-preemptive DAG tasks
Ma et al. Systematic methodology for real-time cost-effective mapping of dynamic concurrent task-based systems on heterogeneous platforms
JP5628222B2 (ja) スケジューラ
Aminifar et al. Stability-aware analysis and design of embedded control systems
US20080295104A1 (en) Realtime Processing Software Control Device and Method
US20160299787A1 (en) System, method and managing device
Quinton et al. Formal analysis of sporadic bursts in real-time systems
JP2001236236A (ja) タスク制御装置およびそのタスクスケジューリング方法
JP2019521451A (ja) 処理用の独立した動作及び依存した動作のスケジューリング
Zini et al. In Search of Butterflies: Exceedance Analysis for Real-Time Systems under Transient Overload
Maia et al. Safe Reconfiguration of LET Communication Intervals to Reduce End-to-End Latencies
Adyanthaya et al. Iterative robust multiprocessor scheduling
JP2006059340A (ja) 実時間処理ソフトウェア制御装置及び方法
JP2006172229A (ja) タスクの動作制御方法、タスクの動作制御システムおよびプログラム
Kwak PD-SAC: Priority-Driven and Status-Aware Chain Scheduling for Weakly-Hard Real-Time Tasks

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

A201 Request for examination
PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 6

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 7

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 8

PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20220215

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20220215

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000