KR20020022049A - 태스크 스케줄링 및 메시지 패싱 - Google Patents

태스크 스케줄링 및 메시지 패싱 Download PDF

Info

Publication number
KR20020022049A
KR20020022049A KR1020017014519A KR20017014519A KR20020022049A KR 20020022049 A KR20020022049 A KR 20020022049A KR 1020017014519 A KR1020017014519 A KR 1020017014519A KR 20017014519 A KR20017014519 A KR 20017014519A KR 20020022049 A KR20020022049 A KR 20020022049A
Authority
KR
South Korea
Prior art keywords
task
tasks
deadline
message
importance
Prior art date
Application number
KR1020017014519A
Other languages
English (en)
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 추후보정
Publication of KR20020022049A publication Critical patent/KR20020022049A/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
    • G06F9/4887Scheduling 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)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)
  • Communication Control (AREA)

Abstract

멀티태스크 시스템 내에서 실타임 주기적 및 비주기적 태스크 스케줄링 및 메시지 패싱을 모델링하는 방법이 게시된다. 상기 방법은 소프트웨어 태스크 객체 및 하드웨어 태스크 객체 사이의 지연되지 않은 단일 샘플 지연된 메시지 접속을 이용한다. 태스크 우선순위는 주기 또는 데드라인에 역으로 할당되어서, 더 짧은 주기 및 데드라인을 가지는 태스크가 더 높은 태스크 우선순위를 가진다. 높은 중요도 태스크의 주기는, 우선순위의 초기할당이 태스크 중요도와 일치하지 않는 곳에서 실질적으로 더 높은 속도로 디스패치되는 더 작은 피스로 분해된다. 상기 방법은 주기적인 프로세스 사이에 결정적인 통신을 제공한다.

Description

태스크 스케줄링 및 메시지 패싱{TASK SCHEDULING AND MESSAGE PASSING}
컴퓨터 프로세스는 직렬 및/또는 병렬 방식으로 태스크로서 실행될 수 있는 다양한 기능으로 분할될 수 있다. 이들 컴퓨터 프로세스는 정보를 모으고 이 정보에 작용하고, 이 정보에 응답하여 몇몇 결과를 가져오는 데에 이용될 수 있다. 이들 기능적 태스크 시스템은 다양한 중요한 환경에서 그 사용처를 발견할 수 있다.그러한 예로는 전력 발생 및 배분 시스템과 같은 산업적인 프로세스의 모니터링 및 제어, 및 상용 비행기와 같은 정교한 장비를 제어하고 모니터링하는 것을 포함한다.
종래의 제어기능은 주기적으로 실행된 태스크의 다음 디스패치에 전달된 태스크의 결과와 함께, 이와같은 태스크 간의 데이터 흐름에 의존한다. 이러한 동작은 태스크간에 순환적인 데이터 종속성 즉, 피드백 루프가 될 수 있게 하고 이산 타임 동적 시스템의 수학적 분석에 기초한 가정사항들과 양립한다. 메시지 패싱 통신 모델은 공유 메모리 통신 모델 보다 분할 멀티프로세서 시스템에 더욱 적절하고, 특히 고정밀도의 하드웨어 오류 제거를 유지하도록 소결합된 시스템에 적절하다.
임무가 매우 중요한 대부분의 시스템 소프트웨어는 종래의 제어 태스크를 복수의 통신 서브태스크로 분할할 것을 흔히 필요로 하는 적절한 기능 분류를 이용하여 모듈화되어 질 것이 요구된다. 이것은 일정한 서브태스크 및 메시지의 엔드-엔드 순서화 및 스케줄링을 필요로 한다. 예를들어, 항공 전자 공학 시스템에서, 관성 측정 프로세싱 및 오토파일롯팅은 개별 태스크 세트에 의해 수행된 개별 기능으로서 구현될 수 있다. 센서 데이터를 판독하는 것으로부터 액츄에이터 명령어 출력까지의 엔드-엔드 데드라인, 및 이 데드라인내의 태스크 및 메시지 순서 종속성이 있을 수 있다.
하드웨어의 복잡도의 증가는 정확하게 연산 및 통신 타임을 제한하는 것을 더욱 어렵게 한다. 예를들어, 캐쉬는 제어 흐름이 데이터-독립적인 알고리즘인 경우에도, 최악의 연산 타임을 정확하게 제한하는 것을 더욱 어렵게 한다. 실제 최악의 연산 타임은 개발 동안 용이하게 수립될 수 있는 경계치 보다 훨씬 작을 수 있다. 실제 연산 타임은 동일한 태스크의 상이한 디스패치에 걸쳐서 상당하게 변동될 수 있다. 시스템은 단지 더욱 중요한 기능들만이 최악의 연산 타임 범위내에서 스케줄링될 수 있는 최고의 확실성으로 보장되도록 설계될 수 있다. 덜 중요한 태스크의 처리 분담은 일시적인 프로세서 과부담의 임의의 간격 동안 발생할 수 있다. 고신뢰도 시스템은 추가의 필요조건을 갖는다. 연산 및 통신의 종속성 순서화, 및 외부 세계와의 정확한 상호작용 타임은 결정적인 결과를 생성해야 한다. 태스크 연산 타임에서의 불확실성 및 변동은 지정된 제어 출력의 값에 영향을 미치지 않아야 한다. 시스템의 타이밍 동작을 명백하게 모델링 및 분석할 것이 필요하다. 상세사항, 모델, 분석 및 코드들은 모두 복수의 독립적인 증명 수단에 이해될 수 있고, 기인할 수 있고 친숙할 수 있고 잘 구성될 것이 필요하다.
당업계에는 임무-중요도 집적 시스템, 또는 제약된 처리능력 및/또는 메모리를 갖는 마이크로컨트롤러 및 고속 응용분야를 갖춘 시스템에 유용한 주기적 및 비주기적 태스크 스케줄링 및 메시지 패싱을 모델링하는 데 있어서의 솔루션이 필요로 된다.
본 발명은 일반적으로 태스크 시스템내에서의 태스크 스케줄링 및 메시지 패싱에 관한 것으로, 상세히는 멀티태스크 시스템내에서의 타이밍 동작을 분석하고 주기적 및 비주기적인 실타임 태스크 스케줄링 및 메시지 패싱을 수행하기 위한 명령 및 전자 시스템을 정의하도록 응용된 상기와 같은 태스크 스케줄링 및 메시지 패싱을 모델링하는 것에 관한 것이다.
본 출원 명세서의 기술개시는 저작권 보호를 받는 자료를 포함한다. 저작권 소유자는 미국 특허상표청의 파일 및 기록철에 있는 바와 같은, 특허 문헌에 대해 누군가에 의한 팩시밀리 재생에 대해 반대할 수 없지만, 그밖의 경우엔 모든 종류의 저작권을 보유한다. 다음과 같은 주의는 하기에 설명되고 도면에 나타내어진 소프트웨어 및 데이터에 대해 적용된다: Copyrightⓒ 1999, Honeywell, Inc., All rights reserved.
도 1A는 본 발명의 한 실시예에 따른 사용을 위한 비행 제어 시스템의 개략도.
도 1B는 본 발명의 한 실시예에 따른 사용을 위한 여분의 비행 제어 시스템의 개략도.
도 1C는 본 발명의 한 실시예에 따른 멀티태스크 시스템의 블록도.
도 2는 본 발명의 한 실시예에 따른 실행 타임라인을 나타낸 도.
도 3은 태스크 객체가 예시된 본 발명의 한 실시예에 따른 메시지 패싱을 위한 연결 유형의 개략도.
도 4는 본 발명의 한 실시예에 따른 하드웨어 객체의 개략도.
도 5는 본 발명의 한 실시예에 따른 엔드-엔드 연산 및 통신의 개략도.
도 6은 본 발명의 한 실시예에 따른 태스크 이그제큐티브의 개략도.
도 7은 본 발명의 한 실시예에 따른 이그제큐티브 버퍼를 예시하는 개략도.
도 8은 본 발명의 한 실시예에 따른 디스패쳐 태스크의 프로세스 흐름도.
도 9는 본 발명의 한 실시예에 따른 이벤트 핸들러의 프로세스 흐름도.
도 10은 본 발명의 한 실시예에 따른 서비스 컴포넌트의 프로세스 흐름도.
도 11은 본 발명의 한 실시예에 따른 태스크 리스트 발생에 대한 프로세스 흐름도.
도 12는 본 발명의 한 실시예에 따른 사용을 위해 변환 시나리오의 예를 예시하는 도.
도 13은 본 발명의 한 실시예에 따른 태스크 변환의 프로세스 흐름도.
도 14는 본 발명의 한 실시예에 따른 전자 시스템의 블록도.
본 발명은 두 개의 주기적 프로세스간의 결정적 통신에 주안점을 둔다. 이것은 통신 모델, 데드라인 감소 기술, 주기 변환 기술 및 구현 효율적인 버퍼 할당 규칙등을 포함한다.
한 실시예에서, 본 발명은 멀티태스크 시스템내의 복수의 태스크의 할당된 스케줄링 우선순위를 발생시키는 방법을 제공한다. 이 방법은 복수의 태스크의 제1 리스트를 정의하는 것을 포함하고, 복수의 태스크의 제1 리스트는 제1 키로서 태스크 데드라인과 제2 키로서 태스크 중요도(criticality)로 정렬된다. 이 방법은 또한 지연되지 않은 메시지를 생성하지 않는 복수의 태스크의 각각의 태스크 데드라인을 변환하는 것을 포함한다. 이 변환은 최저 태스크 데드라인을 갖는 태스크로부터 시작하는 변환 시나리오를 이용하여 한 타임에 한 번 발생하고, 이렇게하여 복수의 태스크의 각각에 대한 변환된 태스크 데드라인을 생성한다. 이 방법은 또한 복수의 태스크의 제2 리스트를 정의하는 것을 포함하고, 복수의 태스크의 제2 리스트는 제1 키로서 변환된 태스크 데드라인으로 정렬되고 제1 태스크 중요도를 갖는 태스크의 각각의 변환된 태스크 데드라인은 제1 태스크 중요도 보다 낮은 중요도를 갖는 태스크의 임의의 변환된 태스크 데드라인 보다 짧다. 스케줄링 우선순위는 따라서 복수의 태스크의 제2 리스트의 순서로 할당되고, 이렇게하여 할당된 스케줄링 우선순위를 생성한다. 또다른 실시예에서, 멀티태스크 시스템은 비행 제어 시스템이다.
다른 실시예에서, 본 발명은 멀티태스크 시스템의 동작 방법을 제공한다. 이 방법은 각각이 우선순위 및 중요도를 갖는 태스크들간의 통신을 포함한다. 각각의 태스크는 지연되지 않은 메시지 및/또는 단일한 샘플 지연 메시지의 송신기 및/또는 수신기이다. 이 방법은 또한 송신기 태스크의 우선순위가 임의의 다운스트림 수신기 태스크의 우선순위 보다 높도록 지연되지 않은 메시지를 송신하는 각각의 송신기 태스크에 우선순위를 할당하는 것을 포함한다. 이 방법은 또한 지연되지 않은 메시지를 송신하지 않는 각각의 송신기 태스크에 우선순위를 할당하는 것을 포함하고, 여기서 제1 중요도를 갖는 상기와 같은 각각의 태스크는 제1 중요도 보다 낮은 중요도를 갖는 임의의 상기와 같은 태스크 보다 높은 우선순위를 갖는다. 이 방법은 또한 그 할당된 우선순위에 따라 프로세서상에서 각각의 태스크를 실행하는 것을 포함한다. 다른 실시예에서, 멀티태스크 시스템은 비행 제어 시스템이다.
또다른 실시예에서, 본 발명은 멀티태스크 시스템을 제공한다. 이 멀티태스크 시스템은 프로세서 및 이 프로세서상에서 동작하는 복수의 태스크를 포함한다. 각각의 태스크는 적어도 하나의 I/O 버퍼와 연관되어 있다. 각각의 I/O 버퍼와의 통신은 지연되지 않은 메시지 또는 단일한 샘플 지연 메시지에 적용된다. 주기적 디스패쳐, 이벤트 핸들러 및 서비스 컴포넌트를 갖는 실행 태스크는 I/O 버퍼간의 통신 및 태스크의 디스패칭을 제어하기 위해 이용된다. 주지적 디스패쳐는 주기적 태스크의 디스패칭 및 그들의 단일한 샘플 지연 통신을 관리한다. 이벤트 핸들러는 비주기적 태스크의 디스패칭 및 그들의 단일한 샘플 지연 통신을 관리한다. 서비스 컴포넌트는 태스크 완료 및 모든 지연되지 않은 메시지 통신을 관리한다. 추가의 실시예에서, 멀티태스크 시스템은 비행 제어 시스템이다.
이후의 바람직한 실시예에 대한 설명에서, 본 발명이 실시되는 특정 실시예가 도시되는 도면을 참조하여 설명될 것이다. 실시예는 당업자가 본 발명을 실시할 수 있도록 충분히 상세히 설명될 것이고, 그리고 다른 실시예가 있을 수 있으며 본 발명의 범위를 벗어남이 없이 프로세스나 기계적인 변경이 이루어 질 수 있음이 또한 이해되어야 한다. 후술하는 상세한 설명은 따라서, 발명의 범위를 제한하는 의미로 여겨져서는 아니되고 단지 발명의 범위는 첨부된 청구범위에 의해 한정될 뿐이다.
도 1A는 비행 제어 시스템(100)의 개요도이다. 비행 제어 태스크(105)은 주기적으로 실행된다. 비행 제어 태스크(105)는 센서(110)로부터 센서 데이터(S,115)를 수신하고, 입력으로서 센서 데이터(115)와 이전 디스패치(Xm)에서 계산된 상태 데이터(130)로 함수 f를 계산하고, 액츄에이터(125)로 출력(Xm+1,120)을 기록한다. 이것은 Xm+1=f(Xm,S) 라고 기록될 것이다. 센서 데이터(115)는 실제로 지연없이 비행 제어 태스크(105)로 전송될 것이고, 비행 제어 태스크(105)는 센서 데이터(115)를 수신할 때까지는 실행되지 않아야 한다. 이 지연되지 않은 전송은 꼭지 둘 달린 화살표로 표현되어 있다.
타임 t에 판독된 센서 데이터(115)로부터 계산된 액츄에이터 출력(120)은 최소의 지터를 가지고 정확하게 t+△ 에 기록될 것이다. 여기서 △ 는 태스크 기간은 시스템 사양에 기초하여 제어 기술자에 의해 결정되고 특정될 것이다. 종종, △ 는 비행 제어 태스크의 다음 디스패치전에 일어나는 데드라인이다. 태스크의 번째 디스패치에서 계산된 상태정보(Xm,130)는 태스크의 m+1번째 디스패치에서 수신되어야한다. 이 지연 데이터 흐름은 비행 제어 태스크에서 피드백 연결로 표현되어 있다. 비행 제어 태스크에서 피드백 데이터는 태스크 주기와 같은 어떤 고정되고 변하지 않는 지연으로 전송될 수 있을 것이다. 후자의 2가지 전송은 단일 샘플 지연(SSD) 연결로서 언급된다.
데이터가 주기적인 태스크A 메서 주기적인 태스크B (다른 비율을 가질 수 있다.)로 보내지고, 어느 스케줄링 실행에서 B의 i번째 디스패치가 A의 j 번째 디스패치로부터 데이터를 수신한다면, 그것은 모든 스케줄링 실행에서 피드백 제어 결정 요건을 만족하도록 할 것이다. 이것은 SSD 연결뿐만 아니라 미지연에서도 유효하다.
도 1B는 리던덴시를 가지는 비행 제어 시스템(100)의 변형이다. 비행 제어 시스템(100)은 또한 시스템을 제어하는데 사용되는 출력(120A 또는 120B)을 선택하기 위해 제1 비행 제어 태스크(105A), 제2 비행 제어 태스크(105B)와 비교기 태스크(135)를 더 포함한다. 센서 입력(115)의 판독과 액츄에이터 출력(120) 기록 사이의 끝지점간의 데드라인 △ 는 모든 세가지 태스크(105A,105B,135)의 실행과 2개의 비행 제어 태스크(105A, 105B)와 비교기 태스크(135)사이의 중간 데이터 전송에 적용된다. 비행 제어 태스크(105A,105B)와 비교기 태스크(135)간의 데이터 전송은 실제로 지연되지 않고 스케줄링 선행 제약이 2개의 비행 제어 태스크(105A, 105B)와 비교기 태스크(135)사이에 존재한다.
본 발명의 실시예에서, 시스템은 주기적 및 비주기적인 태스크의 선점 고정된 우선순위 스케줄링을 제공하고 메시지 버퍼 변수사이의 할당을 제공한다. 우선순위는 주기 또는 데드라인으로 역으로 할당되어, 짧은 주기나 데드라인을 가진 태스크가 선 스케줄링 우선순위를 가진다. 처음 우선순위 할당이 태스크 중요도와 불일치하면 고 중요도 태스크의 주기 및/또는 데드라인이 변환, 즉 태스크가 결과적으로 더 높은 비율로 디스패치되는 더 작은 조각으로 분해된다. 비주기적인 스케줄링에 대한 실시예는 지연가능한 서버와 주기 강제 알고리즘 둘다 사용한다. 다른 실시예에서, 시스템은 실타임 슬랙 스케줄러를 제공한다.
민감도 분석 정보를 제공하도록 확장된 정확한 특성화 알고리즘은 스케줄링 분석에 이용된다. 실시예는 시스템의 스케줄링 신뢰성 파티셔닝 모델을 자동적으로 발생하고 분석하고; 발생된 스케줄링과 통신코드를 사용하고 각 시스템 프로세서에 대한 이미지를 설계하여 자동적으로 시스템을 구성하는 MetaH 툴셋에서 구현되어 왔다. MetaH 툴셋은 미국, 미네소타, 미니아폴리스 소재 하니웰 회사에서 개발되어 배포되었다. 다른 컴퓨터 보조 소프트웨어 공학(CASE) 툴이 본 발명의 다양한 실시예에 사용되어 질 수 있다.
도 1C를 참조하면, 태스크 시스템(100)은 적어도 2개의 스케줄가능한 응용 태스크(110)을 가지는 멀티태스크 시스템이다. 응용 태스크(110)의 통신뿐만 아니라 태스크 시스템(100)내의 응용 태스크(110)의 스케줄링은 실행 태스크(150)에 의해 제어된다. 태스크 시스템(100)의 각 태스크(110)는 주기적인 태스크에 대한 고정 비율이나 어떤 이벤트, 예를 들어 소프트 웨어 발생 인트럽트나 다른 이벤트 같은 비주기적인 태스크의 어떤 이벤트에 응답하여 반복적으로 디스패치된다. 태스크(110)는 하나의 프로세서(120)에 의해서만 수행되거나 거주한다.
도 2는 태스크(110)에 따르는 각 디스패치의 태스크 실행 타임라인과 선택된 인스턴스와 타임 간격에 대해 정의된 용어를 보여주고 있다. "태스크 인스턴스"는 태스크(110)의 특정 디스패치와 뒤따르는 활동과 스케줄링 점의 연관 시퀀스를 일컫는다. 태스크(110)의 각 디스패치와 이후의 데드라인사이에 태스크는 일정량의 태스크를 수행하고 프로세서로부터 일정량의 계산 기산을 수신해야 한다. 그러나, 프로세서는 디스패치와 완료사이에 다른 태스크(110)에 작동하는 타임을 소비하고, 그 간격동안 태스크(110)는 다른 태스크(110)에 선점되어 있다고 말한다. 중요하게 보아야 할 점은 태스크 디스패치, 즉 태스크(110)가 선순위 준비된 큐에 있을 때 그리고 데드라인 즉, 어떤 시스템 한정 데드라인 또는 태스크 완료에 대한 다른 제약은 주기적인 태스크에 대한 결정적인 타임에 일어난다. 그러나, 태스크 시작 타임, 즉 태스크 계산이 완료된 때는 스케줄링과 계산 타임 조건에 따라 변할 수 있다.
태스크(110)는 4개의 주요 파라미터를 사용하는 것에 특징이 있다. 태스크의 분류는 주기적(즉 규칙적으로 디스패치(dispatch)하기로 스케줄된다)되거나 또는 비주기적(즉 스케줄되지 않은 이벤트에 응답하여 디스패치된다)이다. 태스크의 주기는 주기적 태스크의 디스패치 사이의 간격이거나, 또는 비주기적 태스크에 대한 이벤트 도착 사이의 최소 간격이다. 태스크의 계산 타임은 각 디스패치 후에 완성하는 태스크의 경우에 요구되는 프로세서 타임의 양의 상한이다. 사실상, 실제의 계산 타임이 이 값을 초과하지 않을 거라는 확신의 정도는 태스크에 의존하여 변화한다.
일 실시예에서 태스크의 중요도는, 프로세서가 오버로드일 때 즉 태스크의 몇몇 서브세트가 스케줄할 수 없는 경우, 스케줄링 행동을 제어하는데 사용되는 정수값이다. 그러한 수치적 랭킹 시스템이 구현하기 편하지만 다른 랭킹 시스템도 사용될 수 있다. 태스크의 스케줄가능성(schedulability)은, 그 자신의 중요도와 동일하거나 또는 더 큰 중요도를 갖는, 동일 프로세서 상의 태스크에 의해서만 영향받는다.
더 낮은 중요도의 태스크는 그들의 소정 계산 타임을 초과할 수 있고, 또는 비주기적 태스크에 대해, 더 높은 중요도의 태스크가 데드라인을 놓치지 않게 하면서 그들의 소정 주기보다 더 높은 속도로 디스패치될 수 있다.
일 실시예에서 메시지는, 특정 연결 세트에 따라서 송신기 태스크의 출력 버퍼 변수로부터 수신기 태스크의 입력 버퍼 변수로 전송되는 값이다. MetaH 상술 언어에서, 각 태스크는 태스크 소스 코드에서 버퍼 변수 선언을 지정하는 하나이상의 입력 또는 출력 포트를 가질 수 있고, 도 3에 도시된 바와 같이 적절한 타입의 포트 사이에 연결이 이루어진다. 도 3에 도시되었듯이, 태스크(1001)는 단일 샘플 지연 출력버퍼(310) 및 지연되지 않은 입력버퍼(340)를 가진다. 태스크(1102)는 단일 샘플 지연 입력버퍼(320) 및 지연되지 않은 출력버퍼(330)를 가진다. 태스크(1101,1102)는 부가적인 또는 다른 입력 및 출력 버퍼를 가질 수도 있다.
단일 샘플 지연 출력버퍼(310)는 그의 메시지 값을 단일 샘플 지연 입력버퍼(320)에 제공하고, 지연되지 않은 출력버퍼(330)는 그의 메시지 값을 지연되지 않은 입력버퍼(340)에 제공한다.
유입 메시지는 그것이 시작할 때 수신기 태스크의 입력버퍼에 위치하고, 유출 메시지는 그것이 완료하였을 때 태스크의 출력버퍼에서 사용가능한 것으로 추정된다. 스케줄가능한 시스템에서 태스크 스케줄링에 대한 다른 제약이 없을 경우, 유입 메시지는 태스크 디스패치에서 사용가능하여야 하고 유출 메시지는 태스크 데드라인까지 사용가능하면 안된다. 출력버퍼로부터 메시지 값을 보낼 때 태스크는 송신기이고, 입력버퍼에서 메시지 값을 수신할 때는 수신기이다.
일 실시예에서, 두가지 타입의 메시지 연결이 있다. 첫째는 단일 샘플 지연연결이고 두번째는 지연되지 않은 메시지 연결이다.
단일 샘플 지연 연결은, 태스크 인스턴스(instance)에 의해 수신된 값이, 수신기 디스패치에서 처럼, 동일한 인스턴스에서 우선하나 발생했던 가장 최근의 송신기 데드라인에서 사용가능한 하나가 되게 한다. 일 실시예에서, 송신기가 비주기적 태스크일 때 예외가 발생하고, 메시지 값은 송신기의 데드라인이 아닌 완료 타임에 얻어진다.
하드웨어 객체는 포트(예를 들어, 메모리 공간으로 매핑된 디바이스 제어 레지스터)를 가지도록 허락된다. 도 4에 도시되었듯이, 하드웨어 객체(400)는 하나이상의 하드웨어 입력포트(410) 및 하나이상의 하드웨어 출력포트(420)를 가진다. 하드웨어 포트로 또는 포트로부터의 전송은 송신기 태스크의 데드라인 또는 수신기 태스크 인스턴스의 디스패치에서 각각 발생한다. 비주기적 태스크에 대해 설명하였듯이, 비주기적 태스크로부터 하드웨어 포트로의 전송은 태스크의 완료 타임에 발생할 수 있다. 하드웨어 객체는 메시지 값을 태스크에 제공할 뿐만 아니라(예를 들어, 데이터의 키보드 입력 또는 기계-판독가능 매체로부터의 데이터), 메시지 값을 태스크로부터 수신한다(예를 들어, 최종 사용자 또는 제어 산업 장치에 디스플레이). 태스크와 유사하게, 하드웨어 객체는 출력포트로부터 메시지 값을 보낼 때는 송신기이고, 입력포트에서 메시지 값을 수신할 때는 수신기이다.
지연되지 않은 메시지를 출력하고 입력은 하지 않는 임의의 태스크 또는 디바이스를 소스라고 한다. 지연되지 않은 메시지를 입력하고 출력은 하지 않는 임의의 태스크 또는 디바이스를 싱크라고 한다. 지연되지 않은 메시지를 출력하는 임의의 태스크 또는 디바이스를 생산자(producer)라고 한다. 정의에 따라, 소스는 생산자이다. 지연되지 않은 메시지를 입력하는 임의의 태스크 또는 디바이스를 소비자(consumer)라고 한다. 정의에 따라, 싱크는 소비자이다.
데드라인 및 디스패치가 주기적 태스크에 대해 결정적인(deterministic) 타임에 발생하기 때문에, 이것은 주기적인 태스크 사이에 엄밀하게 결정론적인 데이터 의존을 초래한다. 즉, 만일 태스크의 j 번째 인스턴스가 시스템의 임의의 스케줄가능한 실행에서 다른 태스크의 i 번째 인스턴스를 수신하면, 그것은 시스템의 모든 스케줄가능한 실행에서도 그렇게 할 것이다. 도 5는 주기적 태스크 사이의 지연되지 않은 메시지 패싱(passing)의 예를 도시하고, 여기서 A는 B 및 C로의 지연되지 않은 연결을 가지고, B는 C로의 지연되지 않은 연결을 가진다. 도 5에서, 태스크 C의 첫번째 인스턴스가 태스크 A 및 B의 첫번째 인스턴스로부터의 입력을 수신하고, 반면에 태스크 C의 두번째 인스턴스는 태스크 A의 세번째 인스턴스 및 태스크 B의 첫번째 인스턴스로부터의 입력을 수신한다. 지연되지 않은 메시지 패싱에 대해 주기적 태스크 사이의 이러한 의존성은 태스크 시스템의 모든 스케줄가능한 실행에서 반복될 것이다. 비주기적 송신기의 경우에 허락되는 예외는, 비주기적 디스패치 타임이 어떤 의미에서는 비-결정론적이기 때문에, 결정론의 받아들여질 수 있는 손실로 간주되고, 이것은 더 간단한 구현을 가능하게 한다.
미지연된 커넥션은 태스크 인스턴스 사이에 데이터 종속성은 물론 우선순위 컨스트레인트를 달성한다. 송신기는 완료로 실행되고, 메시지는 전송되고, 그후에 수신기는 개시될 수 있을 것이다. 일 실시예에서, 태스크 시스템(100)은 페어와이즈 동기 디스패치 모델로 불리는 것에서 미지연된 메시지 커넥션상에 다음의 컨스트레인트를 갖는다.
1. 미지연된 메시지 커넥션 및 관련된 태스크의 세트는 디렉티드 비순환적인 그래프를 형성하여야 한다.
2. 미지연된 커넥션에 의해 통신하는 주기적인 태스크의 모든 쌍은 조화 주기를 가져야 한다. 즉, 하나의 주기는 또 다른 주기의 정수배이어야 한다. 트랜시티비티느 비지연 체인에서의 모든 태스크는 조화되게 하지만 트리의 병렬 브런치에서의 모든 태스크가 조화되는 것은 아니다. 예를 들어, A,B,C1,C2는 각각 5ms,10ms,20ms,30ms인 미지연 체인 A-≫B-≫C1및 A-≫B-≫C2,의 병렬 브런치를 생각해보라.
3. 미지연된 메시지의 송신기는 송신기가 계산 타임 및 최소 이벤트 인터어라이벌 타임을 실행하기만 하면 수신기 보다 더 낮은 중요도를 가질 수 있다.
미지연 데이터 전송은 2개의 주기 태스크 인스턴스가 동시에 디스패칭되었을 때만, 즉, 페어와이즈 동기 디스패치일 경우에만 상기 2개의 주기적인 태스크 인스턴스 사이에 발생한다. 상기 페어와이즈 동기 디스패치 모델에서, 송신기는 먼저 완료하기 위해 실행하고, 수신기는 메시지가 전송된 후까지 지연된다. 미지연된 메시지 통신 및 계산의 전체 엔드-투-엔드 체인은 최종 수신기 태스크의 데드라인을 갖는다. 다시 A가 B 및 C로의 미지연된 커넥션을 갖고 B가 C로의 미지연된 커넥션을 갖는 도 5에서, 송신기가 수신기보다 더 높은 디스패치율을 가질 필요가 없다는 사실에 주목해야 한다. 도 5의 예에서, C는 B로부터 수신된 데이터를 오버샘플링한다.
송신기 또는 수신기가 주기적이지 않다면, 순서화 컨스프레인트 및 메시지 전송은 송신기의 태스크의 디스패치를 따르거나 송신기 태스크의 디스패치에서 디스패칭되는 수신기 태스크의 다음 예에 적용된다. 이것은 예를 들어, 대등한 태스크 인스턴스의 트리를 형성하도록 비주기적인 태스크가 석세서 비주기적인 태스크를 디스패치하고 데이터를 통과시키게 한다. 미지연된 커넥션이 하드웨어 출력 포트로부터 온다면, 메시지 값은 수신기 태스크의 디스패치에서 전송된다. 미지연된 커넥션이 하드웨어 입력 포트로 간다면, 상기 값은 송신기 태스크의 완료시에 전송된다. 하드웨어 포트로의 미지연된 커넥션이 임시로 결정된 것이 아님을 주목해야 한다. 따라서, 상기 미지연된 커넥션은 계산 타임 및 스케줄링 다양성 때문에 지터를 금한다.
일 실시예에서, 실행 태스크(150)는 선점 고정 우선순위 디시플린을 사용하여 태스크를 스케줄링한다. 실행 태스크(150)는 태스크 우선순위 관리, 태스크 디스패치(우선순위 정해진 준비 큐상에 태스크를 놓는 것), 태스크 서스펜딩(준비 큐로부터 태스크를 제거하는 것), 및 태스크 버퍼 변수 사이에 데이터를 이동시키는 것에 반응할 수 있다. 도 6에서, 실행 태스크(150)는 다음의 3개의 컴포넌트를 포함한다.
1. 태스크 시스템(100)에서 최상위 태스크이고 태스크(110)의 주기 디스패치 및 그 단일 샘플 지연 통신을 관리하는 주기 디스패쳐 태스크(610),
2. 태스크(110)의 비주기 디스패치 및 그 단일 샘플 지연 통신을 관리하는 이벤트 핸들러(620),
3. 태스크 완료 및 태스크(110)의 모든 미지연 통신을 관리하는 서비스 컴포넌트(630).
이러한 3개의 컴포넌트는 태스크의 MetaH 규격으로부터 자동적으로 발생될 수 있다.
메시지 전송은 태스크 버퍼 변수 사이의 할당에 의해 실현될 수 있다. 많은 경우에 실행 버퍼 변수는 실행 태스크(150), 예를 들어 비조화 또는 비주기적인 태스크 사이의 커넥션내에 할당되고 사용될 수 있다. 일반적으로, 실행 버퍼 변수로부터 수신기의 버퍼 변수로의 배당후의 송신기의 버퍼 변수로부터 실행 버퍼 변수로의 배당에 따라 메시지 데이터의 이동이 실현된다. 예를 들어, 도 7에서, 송신기태스크(1101)는 그 메시지 값을 출력 버퍼(710)로부터 섀도우 출력 버퍼(720), 즉 실행 버퍼로 통과시킨다. 섀도우 출력 버퍼(720)는 차례로 상기 메시지 값을 섀도우 입력 버퍼(730), 즉 또 다른 실행 버퍼로 통과시킨다. 섀도우 입력 버퍼(730)는 상기 메시지 값을 수신기 태스크(1102)의 입력 버퍼(740)로 통과시킨다. 이 2개의 할당, 즉, 송신기로부터 실행 버퍼로 그리고 실행 버퍼로부터 수신기로의 할당은 상이한 스케줄링 포인트, 예를 들어, 첫번째는 송신기 주기적인 태스크(1101)의 데드라인에서, 그리고 두번째는 수신기 주기적인 태스크(1102)의 디스패치에서 일어날 수 있다. 일 실시예에서, 실행 버퍼 변수로의 메시지 값의 중간 할당은 데드라인이 주기와 동일한 조화 주기적인 태스크 사이의 커넥션에 대해 최적화될 수 있어서, 송신기 태스크(1101)는 점선(750)으로 도시된 바와 같이, 수신기 태스크(1102)로 직접 그 메시지 값을 통과시킨다. 이러한 경우에, 상기 실행 버퍼는 제거된다. 또 다른 실시예에서, 상기 섀도우 출력 버퍼 및 섀도우 입력 버퍼는 동일한 실행 버퍼인데, 편이상 섀도우 입력 버퍼로 부른다.
상기 디스패쳐(610)는 주기적인 태스크 사이를 통과하는 단일 샘플 지연 메시지를 실행하고 주기적인 태스크 디스패칭을 실행한다. 상기 디스패처 태스크(610)는 모든 프로세서에서 거의 동시에 일어나는 주기 하드웨어 클록 인터럽트의 핸들러로서 보통 실현된다. 이 인터럽트율은 인터럽트 주기의 정수배, 예를 들어, 시스템 규격에 나타나는 주기 및 데드라인의 최대공약수가 되도록 선택되어야 한다.
각 인터럽트에서, 사이클 카운터는 (모든 주기의 공통 배수인 특정 큰 값에을 기준으로)1만큼 증가된다. 각 인터럽트에서 발생할 이 주기적인 작동은 사이클 카운터가 작동의 주기에 의해 짝수로 나누어지는지에 따라 결정된다.
일 실시예에서, 디스패쳐 태스크(610)의 프로세스 플로우는 도 8을 참조하여 설명될 수 있다. 도 8은 판정 박스(830)는 물론 액션 박스(810,820,840,850)를 갖는 프로세스 플로우차트이다. 액션 박스(810)에서, 디스패쳐 태스크(610)는 하드웨어 클록 인터럽트와 같이 주기적인 인터럽트에서 실행될 준비가 된다. 이 주기적인 인터럽트의 수신시, 사이클 카운터는 액션 박스(820)에서 증가된다. 판정 박스(830)는 임의의 스케줄링된 태스크가 이러한 사이클에서 디스패칭될 지, 즉, 이 사이클이 어디에서 주기적인 인터럽트에 의해 나누어진 태스크 주기의 수량을 고르게 나누는지를 결정한다. 태스크가 판정 박스(830)에서 디스패칭될 것이라면, 액션 박스(840)는 모든 태스크의 세트(S)를 디스패칭할 것을 결정한다. 버퍼 대 버퍼 메시지 할당은 판정 박스(830)가 기준을 만족시키는 이러한 주기적 태스크에 대해 액션 박스(850)에서 만들어지고, 이러한 태스크는 디스패칭된다. 그후에, 이 주기적 인터럽트에 의해 인터럽트되는 태스크를 다시 제어하게 된다. 이 주기적 태스크의 디스패치는 이 태스크를 준비 큐(890)에 더함으로써 실현될 수 있다. 도 8을 참조하여, 다음 예가 제공되었다.
여기에서,
ssdel_comm(τi)은 모든 τi출력 버퍼를 실행 입력 버퍼에 카피하고 실행 출력 버퍼를 모든 τi입력 버퍼에 가피하는 것을 의미한다. 그리고
disp(τi)은 태스크 i를 디스패칭하는 것을 의미한다.
이 이벤트 핸들러(620)는 외부 인터럽트 또는 내부 소프트웨어로 발생된 이벤트가 발생할 때마다. 실행된다. 비주기적인 태스크의 디스패치에서 수신될 메시지 값은 그 입력 버퍼 변수에 할당되고 이 태스크는 디스패칭된다.
도 9는 이벤트 핸들러(620)의 일 실시예의 프로세스 순서도이다. 도 9는 액션 박스(910,920,930)를 포함한다. 액션 박스(910)에서, 이벤트 핸들러(620)는 소프트웨어로 발생된 이벤트 또는 외부 인터럽트에 반응하여 실행된다. 액션 박스(910)에서 인터럽트 수신시, 이벤트 핸들러(620)는 메시지 값을 액션 박스(920)에서 메시지 값의 태스크 입력 버퍼에 할당한다. 이 비주기적인 태스크 또는 910에서 인터럽트와 관련된 태스크는 액션 박스(930)에서 디스패칭된다. 그후에, 컨트롤은 최우선 준비 태스크로 돌아간다. 디스패치 태스크(610)와 같이, 비주기적인 태스크를 디스패칭하는 단계는 이 비주기적인 태스크를 준비 큐(890)에 더하는 단계를 포함한다.
이 서비스 컴포넌트(630)는 태스크 인스턴스가 완료될 때 실행된다. 이 완료 태스크는 이 준비 큐(890)로부터 제거된다. 완료 태스크에 의해 생성된 출력 값은 아래에 제시된 룰에 따라 상응하는 실행 버퍼 또는 수신기 태스크 버퍼 변수에 할당된다. 이러한 할당은 미지연된 메시지를 수신할 수 있는 모든 태스크의 디스패치에서 기록된 정보에 따라 조건적이다. 또 다른 주기적 태스크로부터 미지연 입력을 수신할 수 있는 주기적 태스크의 각 디스패치에서, 태스크가 디스패칭되는 사이클이 기록된다. 또 다른 태스크로부터 미지연된 입력을 수신할 수 있는 각 비주기적 태스크의 디스패치에서, (디스패치를 기다리거나, 디스패칭되었지만 아직 완료되지 않은) 각 송신기 태스크의 스케줄링 상태가 기록된다.
도 10은 서비스 컴포넌트(630)의 일 실시예의 프로세스 순서도이다. 도 10은 실행 박스(1010,1020),1030)을 포함한다. 액션 박스(1010)에서, 서비스 컴포넌트(630)는 태스크가 완료될 때 실행된다. 액션 박스(1010)를 초래하는 태스크 또는 태스크의 완료시에, 서비스 컴포넌트(630)는 준비 큐(830)로부터 완료된 태스크를 제거한다. 완료된 태스크로부터의 출력은 액션 박스(1030)에서 실행 버퍼 또는 수신기 버퍼에 할당된다. 그후에, 준비 큐내의 최상위 태스크를 제어하게 된다. 액션 박스(1030)에서의 출력의 할당은 표 1을 참조하여 더 설명될 수 있다.
메시지 패싱 타이밍
커넥션 타입 설명
PR.in<-PS.out 타임 CS(n)에서 PS.out을 PR.in. 버퍼에 카피. DR(n)=DS(n)에서, PR.in. 버퍼를 포트 PR.in에 카피.
DR.in<-PS.out 타임 LS(n)에서, PS.out을 DR.in에 카피.
AR.in<-PS.out 타임 LS(n)에서, PS.out을 AR.in. 버퍼에 카피. 타임 DR(n)에서, AR.in. 버퍼를 AR.in에 카피.
PR.in<-DS.out 디바이스가 DS.out에 기록한다. 타임 DR(n)에서, DS.out이 포트 PR.in에 카피된다.
PR.in<-AS.out 타임 CS(n)에서, AS.out을 PR.in. 버퍼에 카피. 타임 DR(n)에서, PR.in. 버퍼를 포트 PR.in에 카피.
AR.in<-AS.out 타임 CS(n)에서, AS.out을 AR.in. 버퍼에 카피. 타임 DR(n)에서, PR.in. 버퍼를 포트 AR.in에 카피.
DR.in<-AS.out 타임 CS(n)에서, AS.out을 디바이스의 입력 포트에 카피.
AR.in<-DS.out 디바이스가 AR.in. 버퍼에 기록한다. 타임 DR(n)에서, AR.in. 버퍼가 포트 AR.in에 카피된다.
PR.in≪-PS.out DS(i)= DR(l)이라면, PS.out은 타임 CS(n)에서, PR.in. 버퍼에 카피된다. 타임 SR(n)에서, PR.in.버퍼는 포트 PR.in에 입력된다.
DR.in≪-PS.out 타임 CS(n)에서,PS.out은 포트 DR.in.에 카피된다.
AR.in≪-PS.out 타임 CS(n)에서, PR.out은 AR.in. 버퍼에 카피된다. 타임 SR(n)에서, AR.in. 버퍼는 AR.in에 카피된다.
PR.in≪-DS.out 디바이스는 PR.in.버퍼에 기록된다. 타임 SR(n)에서, PR.in.버퍼는 포트 PR.in에 카피된다.
PR.in≪-AS.out 타임 CS(n)에서, AS.out은 PR.in. 버퍼에 카피된다. 타임 SR(n)에서, PR.in. 버퍼는 PR.in에 카피된다.
AR.in≪-AS.out 타임 CS(n)에서, AS.out은 AR.in. 버퍼에 카피된다. 타임 SR(n)에서, AR.in. 버퍼는 AR.in에 카피된다.
DR.in≪-AS.out 타임 CS(n)에서, AS.out은 포트 DR.in에 카피된다.
AR.in≪-DS.out 타임 SR(n)에서, AR.in에 DS.out의 현재값이 할당된다.
여기서, ≪-은 미지연된 메시지 패싱,
<-은 단일 샘플 지연된 메시지 패싱,
XR.in은 태스크 X에 대한 입력 버퍼이고, 여기에서 X는 P(주기적), A(비주기적) 또는 D(디바이스)이다.
XR.in.버퍼는 태스크 X에 대한 섀도우 입력 버퍼이고, 여기에서X는 P,A 또는 D이다.
XR.out은 태스크 X에 대한 출력 버퍼이고, 여기에서, X는 P,A 또는 D이다.
PR은 주기적 수신기,
PS는 주기적 송신기,
AR은 비주기적 수신기,
AS는 비주기적 송신기,
DR은 디바이스 수신기,
DS는 디바이스 송신기,
DS(n)은 송신기 태스크의 다음 디스패치,
DS(l)은 송신기 태스크의 마지막 패치,
DR(n)은 수신기 태스크의 다음 패치,
DR(ㅣ)은 수신기 태스크의 마지막 패치,
SR(n)은 수신기 태스크의 다음 개시 타임,
CS(n)은 송신기 태스크의 다음 완료 타임,
LS(n)은 송신기 태스크의 다음 데드라인.
일 실시예에서, 우선 할당 알고리즘은 미지연된 메시지의 다운스트림 수신기보다는 미지연된 메시지의 송신기에 더 높은 우선순위를 할당한다. 다운스트림 수신기는 미지연된 메시지의 송신기에서 루팅된 비순환적인 그래프의 모든 수신 태스크는 물론 미지연된 메시지를 직접 수신하는 임의의 태스크를 포함한다. 이것은 버퍼가 또 다른 태스크의 완료시에 쓰여진 기록된 임의의 태스크, 즉 또 다른 태스크로부터 미지연된 값을 수신하는 임의의 태스크가 그 디스패치의 타임으로부터 할당 타임으로 선점된 상태로 남아 있어서 할당 이후까지는 개시하지 않도록 보장한다.
가능할 때마다. 높은 중요도와 긴 주기를 갖는 태스크는 변환되어 데드라인 모노토닉 우선순위 할당이 사용될 수 있다. 일 실시예에서, 주기 변환은 제어된 타임-슬라이싱의 형태이다. 이 변환된 태스크의 계산 타임은 이 태스크에 대한 타임 슬라이스에 도착하기 위해 특정 정수 값에 의해 나누어진다. 이 변환된 태스크의 디스패치는 일련의 주기적 회복이 다른 디스패치로 전환된다. 각 디스패치 및 회복은 타임 슬라이스를 허용하고, 각 타임 슬라이스를 다한 후에 변환된 태스크는 그 다음 회복때가지 중지된다. 전체 효과는 더 적은 계산 타임을 갖는 고속의 태스크 같아 보이는 저속 태스크를 만들어 더 높은 우선순위를 만드는 것이다.
주기적 태스크의 주기 변환을 위해, 상기 디스패치 및 회복은 디스패쳐 케이스 스테이트먼트의 적합한 케이스로 단순히 삽입된다(그후에 Q1은 모든 변환된 주기의 배수가 되게 한다). 비주기 태스크의 주기 변환은 상기 사용된 스케일링 프로토콜에 의존한다. 이러한 프로토콜이 본질적으로 디스패쳐 주파수에 종속된 제어된 타임 슬라이싱이기 때문에 주기 변환은 지연가능한 서버 프로토콜을 사용하여 용이하게 적용될 수 있다. 일 실시예에서, 주기 인포스먼트는 태스크의 리인에이블링을그 다음 디스패쳐 태스크 디스패치로 정의함으로서 추정되고, 또한 아날로그 추정 주기 변환이 실행될 수 있다. 또한 슬랙 스케줄링이 중요도를 고려하기 위해 사용될 수 있다.
MetaH 툴셋은 디스패쳐(610), 이벤트 핸들러(620) 및 서비스 컴포넌트(630)에 대한 데이터 테이블 및 코드를 생성시킨다. 이 MetaH 툴셋은 태스크 시스템(100)의 실타임 스케줄가능성 모델을 생성시키고 분석한다.
미지연된 메시지 커넥션 및 태스크는 아무 사이클도 포함하지 않도록 보장하기 위해 검사된다. 그후에 태스크 데드라인은 필요한대로 감소되어 미지연된 메시지의 모든 송신기의 데드라인은 모든 미지연된 메시지의 수신기의 데드라인보다 완전히 더 작아진다. 더 짧은 데드라인에 더 높은 우선순위를 할당하는 연속 데드라인-모노토닉 우선순위 할당 페이스는 미지연된 메시지의 수신기보다는 미지연된 메시지의 송신기에 더 높은 우선순위를 할당한다. 이것은 수신기가 선점된 상태로 남아있게 되고 미지연된 전송에 대한 조건이 만족될 때마다 송신기가 완료된 후까지 기시하지 않도록 보장한다.
보다 상세하게는, 미지연된 메시지 커넥션의 센트는 사이클에 대해 먼저 검사된다. 그후에 태스크 데드라인은 필요한 대로 감소되어 미지연된 메시지의 모든 송신기의 데드라인은 미지연된 메시지의 모든 수신기보다 완전히 더 작아진다. 더 짧은 데드라인에 더 높은 우선순위를 할당하는 연속 데드라인-모노토닉 우선순위 할당 페이지는 미지연된 메시지의 송신기에 그 수신기보다 더 높은 우선순위를 할당할 것이다. 이것은 수신기가 선점된 상태로 남아있게 하고 미지연된 전송에 대한조건이 만족될 때마다 송신기가 완료할 때까지 개시하지 않도록 보장한다.
보다 공식적으로는, 모든 미지연된 메시지의 세트는 τi-≫τj이라면 R(i,j)=1을 가진 리처빌러티 매트릭스 R로서 나타내고 그렇지 않으면 0으로서 나타낸다. 길이가 정확히 k인 τi로부터 τj의 미지연된 커넥션 경로가 존재한다면 Rk(i,j)를 구성하고 그렇지않으면 0이 된다. nu가 미지연된 커넥션을 가진 태스크의 수이고, 1≤i,k≤nu인 임의의 i,k 값에 대하여, Rk(i,j)가 1이라면, 허용되지 않은 사이클이 존재한다.
그 다음, D(i,j)-max{k|Rk(i,j)=1}에 의해 집합{Rk}로부터 거리 매트릭스 D를 구성한다. 말하자면, D(i,j)는 τi로부터 τj의 최대 길이 미지연된 메시지 커넥션이다. (∞가 아닌) 케이스 세트 D(i,j)가 0인 다수의 경로가 있을 수 있다. 그다음, 각 태스크의 데드라인 τ은 τ로부터 도달될 수 있는 모든 태스크의 데드라인 및 각 태스크의 사용자 특정 데드라인의 최소가 되도록 조정된다. 분명한 데드라인 및 우선순위 할당을 보장하기 위해, 이러한 데드라인은 그후에 mε만큼 감소되는데, 여기에서, m은 미지연된 메시지 송신기 및 이 송신기에서 루팅된 미지연된 커넥션 디렉티드 비순환적인 그래프(DAG)내의 모든 잎 사이의 최대 커넥션 깊이이고, ε은 타임 수량이고, 바람직하게는 디스패쳐 태스크율, 즉, 데드라인 수량의 수배인 태스크의 수보다 더 적은 매그니튜드의 다수의 오더이다. 예를 들어, ε은 상기데드라인이 밀리초로 측정되는 복수의 디스패쳐 태스크 주기일 것이라는 예상하에 1나노초가 될 수 있다. 이 용어 내부 데드라인은 이러한 조정된 데드라인을 나타내도록 정의된다. 수학적인 표시로, I(i)={k:D(i,k)>0}이라고 하자. I(i)는 τi가 미지연된 메시지 체인을 통해 도달할 수 있는 모든 태스크의 인덱스 세트이다. 그후에, 각 i에 대해, τ'i데드라인은 minkεI(i){τ'i데드라인, τ'k데드라인 -D(i,k)ㆍε}이다.
2개의 태스크에 대한 사용자 특정 중요도 및 미지연된 커넥션에 의해 부과된 우선순위 할당 및 그 상응하는 내부 데드라인 사이에 충돌이 있을 수 있다. 예를 들어, A 로부터 B로의 미지연된 커넥션이 존재한다면, 우선순위 컨스트레인트를 적합하게 부과하기 위해 B보다 더 높은 우선순위를 가져야하지만, B는 A보다 더 높은 사용자 특정 중요도를 가질 수 있다. τ'i중요도>τ'j중요도 및 jεI(i)에 의해서 충돌 테스트가 실행된다. 그러한 충돌은 계산 타임 제한(및, 비주기적인 태스크에 대해, 주기 인포스먼트)가 송신기에 대해 특정된다고 가정하였을 때 허용되고, 그렇지 않으면 그것은 에러이다. 내부 데드라인(및 우선순위)은 그러한 충돌이 존재할 때 사용자 특정 중요도 애트리뷰트보다는 미지연된 커넥션 우선순위 컨스트레인트에 따라 할당된다. 사용자 특정 중요도 값은 수용가능한 충돌을 제거하기 위해 상향 조정된다. 용어 내부 중요도는 이러한 조정된 중요도 값을 나타내기 위해 정의된다.
예컨대, τu를 지연되지 않은 메시지를 전송하는 태스크(task)로 설정하자.τu로부터 직접적으로 또는 일련의 지연되지 않은 메시지를 경유하여 중간 태스크를 통하여 입력을 결과적으로 수신하는 모든 태스크 세트를 Ru로 설정하자. Ru는 τu에 정착된(rooted) 수신기 태스크의 DAG의 노드를 포함하며, 모든 태스크 및 그것들의 메시지 커넥션의 과도적인 클로져(closure)를 사용하여 용이하게 구성되어진다. τu는 Ru에서의 어떠한 태스크가 시작되기전에 완료되어져야만 하기때문에, τu의 내부 중요도는 유저-특정 중요도 및 Ru에서의 내부 중요도의 최소값으로 조정된다.
그 다음, 지연되지 않은 메시지를 송신 또는 수신하는 태스크의 리스트는 내부 데드라인을 상승(ascend)시킴으로써 분류된다. 만약 다중 태스크가 동등한 데드라인을 가진다면, 그 서브리스트는 중요도를 상승시킴으로써 소트된다. 그 결과는 제1 키로서 내부 데드라인 및 제2키로서 내부 중요도를 가지고 소트된 리스트이며, 거기에서 내부 데드라인 및 내부 중요도는 서로 일치하며 상승한다.
잔여 태스크(지연되지 않은 메시지를 송신하거나 수신하지도 않는 것)의 리스트는 제1 키로서 유저-특정 데드라인 및 제2 키로서 유저-특정 중요도를 사용하여, 소트된 순서대로 상기 리스트와 병합된다. 중요도 랭킹 및 데드라인 랭킹중에서의 불일치는 상기 리스트중에서 허용될 수 있다. 이러한 불일치는 차후에 주기 변환을 이용하여 제거될 것이다. 내부 중요도 및 내부 데드라인 각각은 유저-특정 중요도 및 유저-특정 데드라인으로 설정된다.
병합된 태스크의 리스트는 제1 키로서 내부 데드라인 및 제2키로서 내부 중요도를 사용하여 소트된다. 그 다음 단계는 중요도 및 데드라인이 단순한 순서로 되도록 태스크의 주기 및 데드라인을 변환하는 것이다. 즉, 제1 중요도를 가지는 모든 태스크는 더 낮은 중요도를 가지는 어떠한 태스크보다 더 적은 데드라인을 가진다.
도 11 은 전술한 태스크 리스트 발생의 일 실시예의 프로세스 플로우챠트이다. 도 11 에서, 지연되지 않은 메시지를 송신 또는 수신하는 태스크 리스트 및 잔여 태스크 리스트는 병렬로 발생한다. 그러나, 그러한 병렬 구현에 대한 요구는 없다.
도 11 은 액션 박스(1110, 1115, 1120, 1125, 1135, 1140, 1145, 1155, 1160, 1165, 및 1170) 및 판단 박스(1130 및 1150)를 포함한다. 각각의 프로세서에 대하여 지연되지 않은 메시지를 송신 또는 수신하는 태스크 리스트의 발생은 액션 박스(1110)에서 시작된다. 내부 데드라인은 모든 송신기 태스크의 데드라인이 엄밀히 모든 수신기의 데드라인보다 적어지도록 액션 박스(1115)에서 설정된다. 그 다음, 리스트는 액션 박스(1115)에서 내부 데드라인에 의해 소트된다. 내부 중요도는 충돌을 제거하기 위하여 액션 박스(1125)에서 설정된다. 판단 박스(1130)는 소트된 리스트에서의 다중 태스크가 내부 데드라인과 동등한지 여부를 결정한다. 만약 '예'라면, 동등한 데드라인을 가진 리스트의 부분은 액션 박스(1135)에서 내부 중요도에 의해 분류된다. 만약 판단 박스(1130)에서 동등한 내부 데드라인을 가지는 리스트의 부분이 없거나 액션 박스(1135)에서의 내부 중요도에 의하여 이어지는 분류가 없으면, 액션 박스(1165)로 이동하도록 제어된다.
각각의 프로세서에 대하여 지연되지 않은 메시지를 송신 또는 수신하지 않는 태스크 리스트의 발생은 액션 박스(1140)에서 시작된다. 액션 박스(1140)에서 발생된 리스트는 액션 박스(1145)에서의 유저-특정 데드라인에 의하여 소트된다. 판단 박스(1150)는 소트된 리스트에서의 다중 태스크가 동등한 유저-특정 데드라인을 가지는지 여부를 결정한다. 만약 '예'라면, 동등한 유저-특정 데드라인을 가지는 그 리스트의 부분은 액션 박스(1155)에서 유저-특정 중요도에 의해 소트된다. 만약 판단 박스(1150)에서 동등한 유저-특정 데드라인을 가지는 리스트의 부분이 없거나 액션 박스(1155)에서 유저-특정 중요도에 의해 이어지는 분류가 없으면, 액션 박스(1160)로 이동하도록 제어되며, 액션 박스(1160)에서 내부 중요도 및 데드라인 각각은 유저-특정 중요도 및 데드라인으로 설정된다.
액션 박스(1165)는 지연되지 않은 메시지를 송신하고 수신하는 태스크의 분류된 리스트를 지연되지 않은 메시지를 송신하지 않고 수신하지 않는 태스크의 분류된 리스트와 함께 합병한다. 합병된 리스트는 제 1 키에 따른 내부 데드라인 및 제 2 키에 따른 내부 중요도로 분류된다. 이후에 합병된 리스트는 액션 박스(1170)에서 변환되어서 우선순위 분류 리스트를 생성한다.
태스크는 그 주기로 나누어져서 변환되고, 임의의 양의 정수에 의해 타임이 계산되고, 예를들어, 제어된 실행 타임 시분할을 통해서 더 작은 주기 및 데드라인을 가지는, 결론적으로 더 높은 우선순위를 가지는 태스크로 변화된다.
변환 알고리즘은 한번에 하나씩 태스크를 동작시킴으로써 최소의 데드라인을 가지는 태스크를 개시시킨다. 태스크의 리스트는 일련의 서브 리스트(HELp U)로 나타나고, 이 리스트에서 p는 현재 변환중인 태스크이고, H는 p보다 더 높은 중요도를 가지는 태스크의 서브리스트이고, E는 p와 동일한 중요도를 가지는 태스크의 서브리스트이고, L은 p보다 낮은 중요도를 가지는 태스크의 서브리스트이고, U는 리스트 중에서 변환되지 않은 것이다. 그 목적은 p 즉, 리스트가 HE1pE2LU로 쓰여지게 하는 변환 인수의 주기(및 계산 타임)의 정수인 제수를 찾는 것이고, HE1pE2LU에서, E1및 E2의 태스크는 p와 동일한 중요도를 가지고, E1의 태스크는 p보다 더 큰 데드라인은 가지지 않으며, E2의 태스크는 p보다 더 작은 중요도의 데드라인은 가지지 않는다.
여러가지 요인이 이 문제에 대한 해답을 복잡하게 한다. 가능한 정수 해답을 가지지 않는 실시예를 구성하는 것이 가능하고, 여기서 p를 인수 i로 변환하는 것은 변화된 주기를 너무 크게 하지만, 그러나 p를 인수 i+1로 변환하는 것은 변환된 주기를 너무 작게 한다. 예를들어, A>B>C의 순서로 중요도를 가지고, A와 C의 주기는 2와 같고, B의 주기는 3과 같다고 가정하자. 1인 변환 인수는 변환된 주기를 너무 크게 하고, 2인 인수는 변환된 주기를 너무 작게 한다.
변환된 태스크는 사전 주기(preperiod)에 의해 완성될 수 있다. 이와 같이, 주기의 변환과 유사한 데드라인의 변환은 적절할 수 있다.
변환은 콘태스크 스왑 오버헤드를 일으킨다. 일 실시예에서, 이 컨텍스트 스왑 오버헤드는 최소화된다. 또한, 변환된 주기 및 데드라인은 클록 인터럽트 주기의 배수가 되는 것이 바람직하다. 마지막으로, 지연되지 않은 메시지의 송신기는변환될 수 없고, 이는 송신기가 완성되기 이전에 수신기가 시작되는 간격을 생성할 수 있기 때문이다. 따라서, 지연되지 않은 메시지 송신기는 임의의 주기 변환 이전에 계산된 그들의 데드라인을 가지기 때문이다.
도 12는 태스크를 변환해서, 그 개시된 데드라인에 의한 계산 타임의 양을 수신하는 세가지 시나리오가 도시되어 있다. 도 12의 제 1 부분은 원래의 태스크 주기 및 데드라인을 도시한다. 도 12의 시나리오(1)는 주기 및 데드라인을 모두 변환하는 것이고, 여기서 변환된 데드라인은 변환된 주기에 관해서 선주기된 데드라인으로, 마지막 재개의 변환된 데드라인은 원래의 데드라인에서 발생한다. 이 시나리오는 변환된 데드라인이 변환된 주기의 실질적으로 일부일 때, 적합하다. 시나리오(2)는 태스크를 변환해서 원래의 데드라인은 변환된 주기의 일부이다. 변환된 데드라인은 변환된 주기와 같고, 변환된 계산 타임은 원래의 데드라인보다 크지 않은 일부 수의 변환된 주기 이후에 태스크가 완성되는 타임이다. 시나리오(2)는 시나리오(1)가 변환된 주기의 작은 일부인 변환된 데드라인을 생성할 때, 시나리오(1)가 종료된 이후에 바람직하다. 원래의 시나리오와 원래의 주기가 동일하면, 두 시나리오는 같다. 시나리오(3)는 필요에 따라서 데드라인을 간단하게 줄이는 것이다. 즉, 태스크의 스케줄을 변환하지 않고, 중요도 요구를 만족시킬 필요가 있는 우선순위를 증가시키는 것이다. 시나리오(3)는 지연되지 않은 메시지의 송신기를 변환할 때, 및 더이상 변환 인수가 적합하지 않을 때, 사용된다.
일 실시예에서, 서치는 적합한 정수 변환 인수, 즉, 태스크(p)를 서브리스트(E..)로 이동시키는 범위에서 변환된다. 각각의 적합한 변환에러에 대해서 두 시나리오(1, 2)가 평가된다. 시나리오(3)는 시나리오(3)와 시나리오(1, 3)의 조합을 계산한 결과를 가진, 1에서부터 p를 E의 앞에 놓지 않는 가장 큰 변환 인수까지의 모든 정수 변환 인수에 대해서 평가될 수 있다.
일 실시예에서, 코스트 함수는 코스트가 최소화되는 다른 시나리오가 종료된 이후에 하나의 시나리오를 선택하는데 사용된다. 다른 실시예에서, 코스트 함수는 컨텍스트 스왑, 즉 선주기 데드라인에 의한 스케줄 가능성의 증가를 실험적으로 계산하는 인자 플러스 스택 및 레지스트의 제거 및 재배치에 요구된다. 다른 실시예에서, 코스트 기능은 (1이 될 수 있는)변환 요인 타임:
이다. 여기서 S는 컨텍스트 스왑 타임이고, Tt는 변환된 주기, Dt는 변환된 데드라인이다. 일 실시예에서 시나리오의 선택은 코스트 함수를 최소화하기 위해 행해진다.
도 13은 태스크 변환의 일실시예의 처리 흐름도이고, 합병된 태스크의 리스트내의 각각의 태스크에 대해 변환된다. 액션 박스(1310)에서, 적절한 정수 변환 에러가 판정된다. 적절한 변환 인수는, 서브 리스트(HELp U)가, E1및 E2의 태스크는 p와 동일한 중요도를 가지고, E1의 태스크는 p보다 더 큰 데드라인은 가지지 않으며, E2의 태스크는 p보다 더 작은 중요도의 데드라인, 즉, 최소 적절한 변환 인수또는 TFmin은 가지지 않는 HE1pE2LU로 쓰여지게 하는 p의 주기(및 계산 타임)의 가장 낮은 정수인 제수, 및 E1및 E2의 태스크는 p와 동일한 중요도를 가지고, E1의 태스크는 p보다 더 큰 데드라인은 가지지 않으며, E2의 태스크는 p보다 더 작은 중요도의 데드라인, 즉, 최대 적절한 변환 인수 또는 TFmax은 가지지 않는 HE1pE2LU로 쓰여지게 하는 p의 주기(및 계산 타임)의 가장 높은 정수인 제수를 포함한다. 액션 박스(1320)에서, 태스크는 TFmin에서 TFmax까지의 각각의 변환 인수에 대해서 제 1 시나리오로 변환된 자체 주기 및 데드라인을 가지고, 여기서 변환된 데드라인은 변환된 주기에 대한 사전 주기 데드라인이고, 마지막 재개의 변환된 데드라인이 원래의 데드라인에서 발생하도록 선택된다. 액션박스(1330)에서, 태스크는 TFmin에서 TFmax까지의 각각의 변환된 인수에 대해서, 원래의 데드라인이 변환된 주기의 배수가 되도록 제 2 시나리오로 변환된다. 변환된 데드라인은 변환된 주기와 동일하고, 변환된 계산 타임은 원래의 데드라인보다 크지 않은 임의의 수의 변환된 주기 이후에 태스크가 계산될 것이다. 액션 박스(1340)에서, 태스크의 데드라인은 제 3 시나리오로 계산되고, 태스크의 스케줄링을 변화시키지 않고, 중요도요구를 만족시키기 위한 필요에 따라 우선순위를 증가시키기 위해 데드라인을 감소시킨다. 변환 요인의 그들 각각의 범위에서 평가된 이후에, 코스트는 액션 박스(1350)에서 각각의 시나리오의 각각의 변환 인자에 대해서 평가된다. 액션 박스(1360)에서, 최저 코스트 값을 가지고 있는 시나리오 및 변환 인자는 태스크를 변환하도록 선택된다. 태스크는 액션박스(1370)에서 변환된다.
모든 태스크가 변환된 이후에, 태스크가 마지막 리스트에 나타나는 순서대로 우선순위가 할당된다. 변환된 태스크의 순서대로 된 우선순위는 할당된 스케줄링 우선순위를 나타낸다. 할당된 스케줄링 우선순위는 멀티 태스크 시스템내의 프로세서에서 태스크의 순서대로된 수행을 위해 이그제큐티브에 의해 이용된다.
일 실시예에 따라서, MetaH툴셋을 사용하는 본 발명의 실시예에서, MetaH툴 셋은 선형 스케줄 가능성 모델을 생성하고, 이는 태스크 요소의 시퀀스로 각각의 태스크를 나타낼 수 있는 것이다. 각각의 태스크 요소는 다른 태스크에 의해 분할 될 수 있고, 다른 태스크를 블록할 수 있다. 일반적으로, 매시지 전송과 같이 특정 태스크(110)를 위해 이그제큐티브 태스크(150)에 의해 수행되는 액션은 그 태스크의 요소로 모델화되고, 더 높은 우선순위의 다른 태스크를 위해서 타임을 블록한다. 생성된 이그제큐티브 요소의 계산 타임은 타겟 하드웨어의 기여(attribute)를 사용해서 MetaH에 의해 생성되고, 예를들어, 버퍼 할당 타임은 선형 함수(A1+A2 *b)로 계산되고, 여기서 b는 할당되는 바이트 수이고, A1, A2는 MetaH 프로세서 또는 버스 명세에 정의된 인터셉트 및 기울기 기여이다. 명세, 실시 및 모델 사이의 매핑은 태스크 및 그들의 파라미터보다 더 상세하다. 모든 태스크가 요소로 분해되도록 해서 계산 타임 반응성 분석 정보를 제공하는 정확한 특성 알고리즘의 확장을 사용해서 분석이 수행된다.
본 발명의 다양한 실시예가 유저 특정 데드라인 단조 우선순위 할당을 항상생성하는 것은 아니다. 우선순위와 데드라인, 주기 또는 최소 도달율 사이의 관계의 가정이나 특정 제한 없이, 임의의 우선순위 할당을 가지고 당업자에게 공지된 많은 스케줄 가능성 분석 방법이 본 실시예의 어프로치에 사용될 수 있다.
다양한 실시예의 해답이 실타임 세마포르를 사용하는 태스크에 대해 타당해서, 태스크를 대기하는 임의의 태스크보다 더 낮은 우선순위로 프로세서가 실행되게 하지 않는 세마포르 프로토콜을 제공한다. 이 상태는 지연되지 않은 메시지의 선점된 수신기가, 송신기가 세마포르 상에서 블록될 때, 개시하지 않는다는 것을 확고하게 하기 위해 필요하다. 이는 실링(ceiling) 우선순위 및 오든 우선 순위 계승 세마포르 프로토콜에 대해서 참이다.
본 발명의 다양한 실시예가 다이나믹한 재구성 및 모드 변화를 지원한다. 일 실시예에서, 모드 변화는 상위주기(hyperperiod) 경계로 제한된다. 천이 모드는 각각의 유저 특정 모드 변화에 도입되고, 디스패쳐는 프로세스 개시 및 정지 그리고, 약간 상이한 메제지의 전송을 천이 모드로 수행할 수 있다. MetaH 계층모드 명세는 모드가 복합 경로의 태스크 및 접속의 서브셋으로 분할되는 것을 가능하게 한다. 이와 같이 제공된 알고리즘은 시스템 내의 모든 모드를 통합해서 수행되고, 소망의 우선순위 레벨의 수를 감소시키기 위해 사전 처리 페이즈가 뒤따른다.
클록 인터럽트률을 선택하는 것은 전용 실타임 시스템에서 이슈가 될 수 있다. 일시적으로 결정적인 메시지 릴리스 타임이 하드 종단간 데드라인을 보장하기 위해 요구된다. 클록 인터럽트 주기는 유저-특정 주기로 분할될 필요가 있을 뿐만아니라 편리한 변환된 주기 및 편리한 네트워크 메시지 릴리스 타임을 제공한다.
본 발명의 다양한 방법은 태스크 시스템 상세하게는 모듈러 미션 크리티컬 소프트웨어 시스템, 고속 어플리케이션 및 마이크로 컨트롤러의 타이밍 동작을 분석하기에 적절한 모델을 제공한다. 이러한 모델의 사용은, 이그제큐티브를 더 간소화하고, 더 작고, 더 빠른 이그제큐티브로 하는 일반적인 이그제큐티브에 의존하기 보다는 이그제큐티브를 각각의 시스템에 적합하게 하는 오프 라인 분석 및 구성을 가능하게 한다. 이러한 모델은 태스크 시스템의 잘 구조된 명세의 형성을 돕고, 이는 태스크 시스템하에 놓인 더 구조화되고 추적 가능한 코드의 생성을 가능하게 할 수 있다. 본 실시예가 단일 버스로 통신하는 마이크로프로세서 태스크 시스템을 설명하고 있지만, 본 발명은 단일 버스 시스템에 한정되는 것은 아니다. 다중 프로세서가 단일 샘플 지연 메시지의 효율적인 전송을 위해 상대적으로 고속이고, 낮은 지연율을 갖는 버스에 의해 접속되는 것이 바람직하지만, 전용 시스템은, 스케줄링 어프로치가 단일 샘플 지연 메시지가 네트워크상의 특정 데드라인으로 릴리스되게 하는 곳 및 통신이 프로세서 수행과 동시에 발생하는 곳에서 발생한다.
본 발명의 다양한 실시예를 사용해서 생성된 모델은 전자 시스템을 한정해서, 멀티 태스크 시스템의 스케줄링 및 메시지 전송 동작을 수행하기 위해 사용될 수 있다. 상술한 전자 시스템은 상술한 방법은 수행하기 위해 기계 판독가능 형태의 명령어를 사용하는 프로세서를 가진 다양한 전자 장비를 사용한다. 도 14는 기계 판독가능 매체(1420)에 결합된 프로세서(1410)의 블록도를 도시한다. 프로세서(1410)는 다른 프로세서와의 통신을 위해 버스(1430)에 결합된다. 기계 판독가능 매체(1420)는 프로세서(1410)에 결합된, 내장형 매체 또는 프로그래밍 가능 메모리 디바이스와 같은 고정된 디바이스를 포함할 수 있다. 기계 판독 가능 매체(1420)는, 프로세서(1410)에 결합된 소거가능 매체 또는 프로그래밍 가능 카드리지와 같은 소거 가능 디바이스를 더 포함할 수 있다. 기계 판독가능 매체(1420)는 프로세서(1410)가 상술한 방법을 수행하는 것을 가능하게 하고, 기계 판독 가능 형태로 내장된 명령어를 포함한다.
실타임 주기적 및 비주기적 태스크 스케줄링 및 메시지 전송을 멀티 태스크 시스템 내에 모델링하는데 유용한 방법이 게시된다. 본 발명의 방법을 이용해서 생성된 모델은 이러한 멀티 태스크 시스템내에서의 타이밍 동작을 분석하기에 적합하다. 상기 방법은 소프트웨어 태스크 객체 및 하드웨어 객체사이에서 지연되지 않은 및 단일 샘플 지연된 메시지 접속을 사용한다. 태스크 우선순위는 역으로 주기 또는 데드라인에 할당되어서, 태스크는 더 짧은 주기 또는 데드라인이 더 높은 스케줄링 우선순위를 가진다. 높은-중요도 태스크의 주기는, 우선순위의 초기 할당이 태스크 중요도과 일치하지 않는 곳에서 고속으로 실질적으로 디스패치되는 더 작은 피스로 분할된다. 시스템 모델은 멀티태스크 시스템의 스케줄링 및 메시지 전송을수행하기 위해 전자 시스템 및 명령어를 한정한다.
비록 특정 실시예가 설명되었지만. 당업자는 동일한 목적을 수행하기 위해 계산된 임의의 배열이 도시된 특정 실시예로 대치될 수 있다는 것을 이해할 것이다. 본 발명의 많은 적용은 당업자에게는 명백할 것이다. 따라서, 본 명세서는 본 발명의 어떠한 변형 및 수정을 커버하도록 의도되었다. 본 발명이 하기의 청구의 범위에 의해서만 한정된다는 것은 명백하다.

Claims (26)

  1. 멀티태스크 시스템에서 복수의 태스크의 할당된 스케줄링 우선순위를 발생시키는 방법에 있어서,
    제1 키로서 태스크 데드라인과 제2 키로서 태스크 중요도로 정렬된 복수의 태스크의 제1 리스트를 정의하는 단계;
    복수의 태스크의 각각에 대한 변환된 태스크 데드라인이 생성되도록, 최저 태스크 데드라인을 갖는 태스크로부터 시작하는 변환 시나리오를 이용하여 한 타임에 한번 복수의 태스크의 각각의 태스크 데드라인을 변환하는 단계;
    제1 키로서 변환된 태스크 데드라인으로 정렬되는 복수의 태스크의 제2 리스트를 정의하는 단계로서, 제1 태스크 중요도를 갖는 태스크의 각각의 변환된 태스크 데드라인은 제1 태스크 중요도 보다 낮은 태스크 중요도를 갖는 태스크의 임의 변환된 태스크 데드라인 보다 짧은, 상기 단계; 및
    할당된 스케줄링 우선순위가 생성되도록, 복수의 태스크의 제2 리스트의 순서로 스케줄링 우선순위를 할당하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서, 복수의 태스크중 적어도 한 태스크의 변환된 태스크 데드라인은 상기 적어도 한 태스크의 태스크 데드라인과 동등한 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서, 변환 시나리오는:
    변환된 태스크 데드라인 및 변환된 태스크 주기가 생성되도록, 태스크 주기를 변환 인자로 분할하여 태스크의 태스크 데드라인 및 태스크 주기를 변환하는 단계로서, 변환된 태스크 데드라인은 변환된 태스크 주기에 대해 선주기 데드라인이고, 태스크의 최종 재개의 변환된 태스크 데드라인은 최초 태스크 데드라인에서 발생하는, 상기 단계;
    변환된 태스크 데드라인 및 변환된 태스크 주기가 생성되도록, 태스크 주기를 변환 인자로 분할하여 태스크의 태스크 데드라인 및 태스크 주기를 변환하는 단계로서, 태스크의 최초 태스크 데드라인은 태스크의 변환된 주기의 복수 배이고, 변환된 태스크 데드라인은 변환된 태스크 주기와 동등한, 상기 단계; 및
    변환된 태스크 데드라인이 생성되도록, 태스크 주기를 변환 인자로 분할하여 태스크의 태스크 데드라인을 변환하는 단계로서, 태스크의 변환된 태스크 데드라인은 낮은 태스크 중요도를 갖는 이전에 변환된 다른 태스크의 임의의 변환된 태스크 데드라인 보다 짧은, 상기 단계;로 이루어지는 그룹으로부터 선택되는 것을 특징으로 하는 방법.
  4. 제 3 항에 있어서, 변환 시나리오는 복수의 변환 인자로 평가되는 것을 특징으로 하는 방법.
  5. 제 3 항에 있어서, 태스크 데드라인을 변환하는 단계는 변환 시나리오를 선택하기 위해 코스트 함수를 평가하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  6. 제 5 항에 있어서, 코스트 함수는:
    의 변환 인자 배이고,
    여기서, S는 컨텍스트 스왑 타임이고,
    Tt는 변환된 태스크 주기이고,
    Dt는 변환된 태스크 데드라인인 것을 특징으로 하는 방법.
  7. 제 1 항에 있어서, 태스크 데드라인을 변환하는 단계는 복수의 가능한 변환 시나리오로부터 변환 시나리오를 선택하기 위해 코스트 함수를 평가하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. 제 1 항에 있어서, 태스크 데드라인을 변환하는 단계는 적어도 두 개의 변환 인자를 사용하여 변환 시나리오를 평가하는 단계와 변환 시나리오를 위한 적어도 두 개의 변환 인자중의 하나를 선택하기 위해 코스트 함수를 평가하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  9. 제 1 항에 있어서, 복수의 태스크의 제1 리스트를 정의하는 단계는:
    지연되지 않은 메시지에 의존하거나 이 메시지를 송신하는 데에 포함된 복수의 태스크중에서 적어도 한 태스크의 제1 서브리스트를 정의하는 단계로서, 상기 제1 서브리스트는 제1 키로서 내부 태스크 데드라인과 제2 키로서 내부 태스크 중요도로 정렬되는, 상기 단계;
    복수의 태스크중에서 나머지 태스크의 제2 서브리스트를 정의하는 단계로서, 상기 제2 서브리스트는 제1 키로서 사용자-지정된 태스크 데드라인과 제2 키로서 사용자-지정된 태스크 중요도로 정렬되는, 상기 단계; 및
    복수의 태스크의 제1 리스트를 생성하도록, 제1 서브리스트와 제2 서브리스트를 병합하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  10. 제 1 항에 있어서, 멀티태스크 시스템은 비행 제어 시스템인 것을 특징으로 하는 방법.
  11. 프로세서가,
    제1 키로서 태스크 데드라인과 제2 키로서 태스크 중요도로 정렬된 복수의 태스크의 제1 리스트를 정의하는 단계;
    복수의 태스크의 각각에 대한 변환된 태스크 데드라인이 생성되도록, 최저 태스크 데드라인을 갖는 태스크로부터 시작하는 변환 시나리오를 이용하여 한 타임에 한번 복수의 태스크의 각각의 태스크 데드라인을 변환하는 단계;
    제2 리스트는 제1 키로서 변환된 태스크 데드라인으로 정렬되는 복수의 태스크의 제2 리스트를 정의하는 단계로서, 제1 태스크 중요도를 갖는 태스크의 각각의 변환된 태스크 데드라인은 제1 태스크 중요도 보다 낮은 태스크 중요도를 갖는 태스크의 임의의 변환된 태스크 데드라인 보다 짧은, 상기 단계; 및
    할당된 스케줄링 우선순위가 생성되도록, 복수의 태스크의 제2 리스트의 순서로 스케줄링 우선순위를 할당하는 단계를,
    포함하는 방법을 실행하게 할 수 있는 명령어를 저장하고 있는 것을 특징으로 하는 기계식-판독가능 매체.
  12. 프로세서가,
    제1 키로서 태스크 데드라인과 제2 키로서 태스크 중요도로 정렬된 복수의 태스크의 제1 리스트를 정의하는 단계;
    복수의 태스크의 각각에 대한 변환된 태스크 데드라인이 생성되도록, 최저 태스크 데드라인을 갖는 태스크로부터 시작하는 변환 시나리오를 이용하여 한 타임에 한번 복수의 태스크의 각각의 태스크 데드라인을 변환하는 단계로서, 상기 변환 시나리오는,
    변환된 태스크 데드라인 및 변환된 태스크 주기가 생성되도록, 태스크 주기를 변환 인자로 분할하여 태스크의 태스크 데드라인 및 태스크 주기를 변환하는 단계로서, 변환된 태스크 데드라인은 변환된 태스크 주기에 대해 선주기 데드라인이고, 태스크의 최종 재개의 변환된 태스크 데드라인은 최초 태스크 데드라인에서 발생하는, 상기 단계,
    변환된 태스크 데드라인 및 변환된 태스크 주기가 생성되도록, 태스크 주기를 변환 인자로 분할하여 태스크의 태스크 데드라인 및 태스크 주기를 변환하는 단계로서, 태스크의 최초 태스크 데드라인은 태스크의 변환된 주기의 복수 배이고, 변환된 태스크 데드라인은 변환된 태스크 주기와 동등한, 상기 단계, 및
    변환된 태스크 데드라인이 생성되도록, 태스크 주기를 변환 인자로 분할하여 태스크의 태스크 데드라인을 변환하는 단계로서, 태스크의 변환 태스크 데드라인은 낮은 태스크 중요도를 갖는 이전에 변환된 다른 태스크의 임의의 변환된 태스크 데드라인 보다 짧은, 상기 단계로,
    이루어지는 그룹으로부터 선택되는, 상기 단계;
    제1 키로서 변환된 태스크 데드라인으로 정렬되는 복수의 태스크의 제2 리스트를 정의하는 단계로서, 제1 태스크 중요도를 갖는 태스크의 각각의 변환된 태스크 데드라인은 제1 태스크 중요도 보다 낮은 태스크 중요도를 갖는 태스크의 임의의 변환된 태스크 데드라인 보다 짧은, 상기 단계; 및
    할당된 스케줄링 우선순위가 생성되도록, 복수의 태스크의 제2 리스트의 순서로 스케줄링 우선순위를 할당하는 단계를;
    포함하는 방법을 실행하게 할 수 있는 명령어를 저장하고 있는 것을 특징으로 하는 기계식-판독가능 매체.
  13. 프로세서를 갖는 멀티태스크 시스템을 동작시키는 방법에 있어서,
    우선순위 및 중요도를 갖는 복수의 태스크간에 통신하는 단계로서, 복수의 태스크의 각각은 송신기 및 수신기로 이루어지는 그룹으로부터 선택된 통신 함수를 갖고, 각각의 통신 함수는 지연되지 않은 메시지 및 단일한 샘플 지연 메시지로 이루어지는 그룹으로부터 선택된 메시지 유형에 적용되는, 상기 단계;
    지연되지 않은 메시지를 송신하는 임의의 송신기 태스크에 임의의 다운스트림 수신기 태스크 보다 높은 우선순위를 할당하는 단계;
    제1 중요도를 갖는 복수의 태스크의 각각의 태스크가 제1 중요도 보다 낮은 중요도를 갖는 복수의 태스크의 임의의 태스크 보다 높은 우선순위를 더 갖도록 다른 송신기 태스크에 우선순위를 할당하는 단계; 및
    복수의 태스크의 우선순위에 따라 프로세서상에서 복수의 태스크의 각각을 실행하는 단계를 포함하는 것을 특징으로 하는 방법.
  14. 제 13 항에 있어서, 멀티태스크 시스템은 비행 제어 시스템인 것을 특징으로 하는 방법.
  15. 프로세서가,
    우선순위 및 중요도를 갖는 복수의 태스크간에 통신하는 단계로서, 복수의 태스크의 각각은 송신기 및 수신기로 이루어지는 그룹으로부터 선택된 통신 함수를 갖고, 각각의 통신 함수는 지연되지 않은 메시지 및 단일한 샘플 지연 메시지로 이루어지는 그룹으로부터 선택된 메시지 유형에 적용되는, 상기 단계;
    지연되지 않은 메시지를 송신하는 임의의 송신기 태스크에 임의의 다운스트림 수신기 태스크 보다 높은 우선순위를 할당하는 단계;
    제1 중요도를 갖는 복수의 태스크의 각각의 태스크가 제1 중요도 보다 낮은 중요도를 갖는 복수의 태스크의 임의의 태스크 보다 높은 우선순위를 더 갖도록 다른 송신기 태스크에 우선순위를 할당하는 단계; 및
    복수의 태스크의 우선순위에 따라 프로세서상에서 복수의 태스크의 각각을 실행하는 단계를 포함하는 방법을, 실행하게 할 수 있는 명령을 저장하고 있는 것을 특징으로 하는 기계식-판독가능 매체.
  16. 프로세서;
    프로세서상에서 동작하는 복수의 태스크로서, 복수의 태스크의 각각의 태스크는 주기적 빛 비주기적 태스크로 이루어지는 그룹으로부터 선택된 태스크 유형이고, 복수의 태스크의 각각은 입력 버퍼 및 출력 버퍼로 이루어지는 그룹으로부터 선택된 적어도 하나의 I/O 버퍼와 연관되고, 각각의 I/O 버퍼와의 통신은 지연되지 않은 메시지와 단일한 샘플 지연 메시지로 이루어지는 그룹으로부터 선택된 한 메시지 유형에 적용되는, 상기 복수의 태스크;
    상기 프로세서와 통신하고 프로세서상의 태스크의 디스패칭과 I/O 버퍼간의 통신을 제어하는 이그제큐티브로서, 상기 이그제큐티브는,
    주기적 태스크의 디스패칭과 주기적 태스크의 단일한 샘플 지연 메시지 통신을 관리하는 주기적 디스패쳐;
    비주기적 태스크의 디스패칭과 비주기적 태스크의 단일한 샘플 지연 메시지 통신을 관리하는 이벤트 핸들러; 및
    태스크 완료 및 모든 지연된 메시지 통신을 관리하는 서비스 컴포넌트를 포함하는 것을 특징으로 하는 멀티태스크 시스템.
  17. 제 16 항에 있어서, 제1 태스크의 출력 버퍼와 제2 태스크의 입력 버퍼사이에 개재된 적어도 하나의 이그제큐티브 버퍼를 더 포함하는 것을 특징으로 하는 멀티태스크 시스템.
  18. 제 16 항에 있어서, 복수의 태스크중 적어도 하나의 태스크와 통신하는 적어도 하나의 객체를 더 포함하는 것을 특징으로 하는 멀티태스크 시스템.
  19. 제 16 항에 있어서, 멀티태스크 시스템은 비행 제어 시스템인 것을 특징으로 하는 멀티태스크 시스템.
  20. 프로세서;
    프로세서상에서 동작하는 복수의 태스크로서, 복수의 태스크의 각각의 태스크는 주기적 빛 비주기적 태스크로 이루어지는 그룹으로부터 선택된 태스크 유형이고, 복수의 태스크의 각각은 입력 버퍼 및 출력 버퍼로 이루어지는 그룹으로부터선택된 적어도 하나의 I/O 버퍼와 연관되고, 각각의 I/O 버퍼와의 통신은 지연되지 않은 메시지와 단일한 샘플 지연 메시지로 이루어지는 그룹으로부터 선택된 한 메시지 유형에 적용되는, 상기 복수의 태스크;
    복수의 태스크중 적어도 하나의 태스크와 통신하고, 입력 포트와 출력 포트로 이루어지는 그룹으로부터 선택된 적어도 하나의 I/O 포트와 연관된 적어도 하나의 하드웨어 객체로서, 각각의 I/O 포트와의 통신은 지연되지 않은 메시지와 단일한 샘플 메시지로 이루어지는 그룹으로부터 선택된 한 메시지 유형에 적용되는, 상기 적어도 하나의 하드웨어 객체; 및
    상기 프로세서와 통신하고 프로세서상의 태스크의 디스패칭과 I/O 버퍼와 I/O 포트간의 통신을 제어하는 이그제큐티브로서, 상기 이그제큐티브는,
    주기적 태스크의 디스패칭과 주기적 태스크의 단일한 샘플 지연 메시지 통신을 관리하는 주기적 디스패쳐;
    비주기적 태스크의 디스패칭과 비주기적 태스크의 단일한 샘플 지연 메시지통신을 관리하는 이벤트 핸들러; 및
    태스크 완료 및 모든 지연된 메시지 통신을 관리하는 서비스 컴포넌트를 포함하는 것을 특징으로 하는 멀티태스크 시스템.
  21. 주기적 송신기 태스크와 비주기적 수신기 태스크간에 지연되지 않은 메시지 통신 방법에 있어서,
    상기 송신기 태스크와 수신기 태스크를 동일한 타임에 디스패칭하는 단계;
    상기 수신기 태스크의 실행을 선점하는 동안 송신기 태스크가 완료되도록 송신기 태스크를 실행하는 단계;
    상기 송신기 태스크로부터 수신기 태스크로 메시지를 전송하는 단계; 및
    상기 메시지의 수신시 수신기 태스크로 메시지를 실행하는 단계를 포함하는 것을 특징으로 하는 방법.
  22. 적어도 두개의 주기적 태스크; 및
    상기 적어도 두개의 주기적 태스크와 연관되고, 지연되지 않은 메시지 커넥션의 각각이 한 쌍의 주기적 태스크의 송신기 태스크로부터 수신기 태스크로 통신하도록 응용된 상기 지연되지 않은 메시지 커넥션으로 된 제1 세트를 포함하고,
    상기 지연되지 않은 메시지 커넥션의 제1 세트와 적어도 두 개의 태스크는 방향성 비순환 그래프를 형성하고,
    상기 지연되지 않은 메시지 커넥션에 의해 통신하는 주기적 태스크의 모든 쌍은 일정 배수의 주기를 가지며,
    상기 제1 세트의 지연되지 않은 메시지 커넥션의 각각에 대한 통신은 연관된 송신기 태스크의 완료시 발생하는 것을 특징으로 하는 멀티태스크 시스템.
  23. 제 22 항에 있어서, 한 쌍의 주기적 태스크의 송신기 태스크는 강제된 연산 타임 및 최소 이벤트 인터어라이벌 타임을 갖는 경우에만 상기 주기적 태스크의 모든 쌍의 수신기 태스크 보다 낮은 중요도를 가질 수 있게 되는 것을 특징으로 하는멀티태스크 시스템.
  24. 제 22 항에 있어서,
    적어도 하나의 비주기적 태스크; 및
    상기 적어도 하나의 비주기적 태스크와 연관되고, 지연되지 않은 메시지 커넥션의 각각이 두 개의 비주기적 태스크, 및 하나의 주기적 태스크와 하나의 비주기적 태스크로 이루어 진 그룹으로부터 선택된 한 쌍의 태스크의 송신기 태스크로부터 수신기 태스크로 통신하도록 응용된 상기 지연되지 않은 메시지 커넥션으로 된 제2 세트를 더 포함하고,
    상기 제2 세트의 지연되지 않은 메시지 커넥션의 각각에 대한 통신은 디스패칭된 수신기 태스크의 다음 인스턴스에서 또는 송신기 태스크의 디스패치에 뒤따라서 발생하는 것을 특징으로 하는 멀티태스크 시스템.
  25. 제 24 항에 있어서,
    적어도 두개의 주기적 태스크 및 적어도 하나의 비주기적 태스크와 연관된 단일 샘플 지연 메시지 커넥션의 세트를 더 포함하는 것을 특징으로 하는 멀티태스크 시스템.
  26. 제 22 항에 있어서,
    적어도 하나의 하드웨어 디바이스; 및
    상기 적어도 하나의 하드웨어 디바이스와 연관되고, 지연되지 않은 메시지 커넥션의 각각이 하드웨어 디바이스와 태스크로 이루어 진 그룹으로부터 선택된 송신기로부터 송신기가 하드웨어 디바이스인 경우의 태스크와 송신기가 태스크인 경우의 하드웨어 디바이스로 이루어 진 그룹으로부터 선택된 수신기로 통신하도록 응용된 상기 지연되지 않은 메시지 커넥션으로 된 제3 세트를 더 포함하고,
    상기 제3 세트의 지연되지 않은 메시지 커넥션의 각각에 대한 통신은 수신기가 태스크인 경우의 수신기의 디스패칭시에 및 송신기가 태스크인 경우의 송신기의 완료시에 발생하는 것을 특징으로 하는 멀티태스크 시스템.
KR1020017014519A 1999-05-14 2000-05-15 태스크 스케줄링 및 메시지 패싱 KR20020022049A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/312,592 1999-05-14
US09/312,592 US6567840B1 (en) 1999-05-14 1999-05-14 Task scheduling and message passing
PCT/US2000/013356 WO2000070455A2 (en) 1999-05-14 2000-05-15 Task scheduling and message passing

Publications (1)

Publication Number Publication Date
KR20020022049A true KR20020022049A (ko) 2002-03-23

Family

ID=23212169

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017014519A KR20020022049A (ko) 1999-05-14 2000-05-15 태스크 스케줄링 및 메시지 패싱

Country Status (9)

Country Link
US (1) US6567840B1 (ko)
EP (1) EP1244963B1 (ko)
JP (1) JP2002544621A (ko)
KR (1) KR20020022049A (ko)
AT (1) ATE253751T1 (ko)
AU (1) AU769245B2 (ko)
CA (1) CA2371340A1 (ko)
DE (1) DE60006422T2 (ko)
WO (1) WO2000070455A2 (ko)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100728021B1 (ko) * 2005-01-07 2007-06-13 삼성전자주식회사 네트워크 내 장치들에 의해 이용가능하게 만들어진태스크들을 순위 매기는 방법 및 시스템
KR100745477B1 (ko) * 2003-04-24 2007-08-02 인터내셔널 비지네스 머신즈 코포레이션 단일 스레드와 동시 멀티스레드 모드간의 멀티스레드프로세서의 동적 스위칭
KR100953099B1 (ko) * 2007-12-26 2010-04-19 전자부품연구원 소형 저전력 임베디드 시스템 및 그의 선점 회피 방법
WO2011065614A1 (ko) * 2009-11-25 2011-06-03 한양대학교 산학협력단 파이프라인 멀티 코어 시스템 및 파이프라인 멀티 코어 시스템의 효과적인 태스크 할당 방법
US8028283B2 (en) 2006-03-20 2011-09-27 Samsung Electronics Co., Ltd. Method and system for automated invocation of device functionalities in a network
US8069422B2 (en) 2005-01-10 2011-11-29 Samsung Electronics, Co., Ltd. Contextual task recommendation system and method for determining user's context and suggesting tasks
US8099313B2 (en) 2004-09-22 2012-01-17 Samsung Electronics Co., Ltd. Method and system for the orchestration of tasks on consumer electronics
US8185427B2 (en) 2004-09-22 2012-05-22 Samsung Electronics Co., Ltd. Method and system for presenting user tasks for the control of electronic devices
US8205013B2 (en) 2005-05-02 2012-06-19 Samsung Electronics Co., Ltd. Method and system for aggregating the control of middleware control points
US8412554B2 (en) 2004-09-24 2013-04-02 Samsung Electronics Co., Ltd. Method and system for describing consumer electronics using separate task and device descriptions
WO2014203029A1 (en) * 2013-06-17 2014-12-24 Freescale Semiconductor, Inc. Efficient scheduling in asynchronous contention-based system
KR20160076896A (ko) * 2014-12-23 2016-07-01 삼성전자주식회사 선점 방식을 선택하는 방법 및 장치.
KR20210022426A (ko) * 2019-08-20 2021-03-03 성균관대학교산학협력단 태스크의 러너블 그룹 단위 분할을 통한 선점 최소화 방법 및 이를 위한 장치
US11822967B2 (en) 2019-08-20 2023-11-21 Research & Business Foundation Sungkyunkwan University Task distribution method for minimizing preemption between tasks and apparatus for performing the same

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040100982A1 (en) * 1999-09-30 2004-05-27 Sivaram Balasubramanian Distributed real-time operating system
US7418506B1 (en) * 1999-11-12 2008-08-26 International Business Machines Corporation Apparatus for connection management and the method therefor
WO2001050241A2 (en) * 1999-12-30 2001-07-12 Koninklijke Philips Electronics N.V. Multi-tasking software architecture
US6928646B1 (en) * 2000-02-02 2005-08-09 Sony Corporation System and method for efficiently performing scheduling operations in an electronic device
US20010027463A1 (en) * 2000-03-22 2001-10-04 Fujitsu Limited Task priority decision apparatus and method, workflow system, work processing method, and recording medium
US7140022B2 (en) * 2000-06-02 2006-11-21 Honeywell International Inc. Method and apparatus for slack stealing with dynamic threads
US7028299B1 (en) * 2000-06-30 2006-04-11 Intel Corporation Task-based multiprocessing system
US6721948B1 (en) * 2000-06-30 2004-04-13 Equator Technologies, Inc. Method for managing shared tasks in a multi-tasking data processing system
GB0100535D0 (en) * 2001-01-09 2001-02-21 Lucas Industries Ltd Method of and apparatus for transmitting data in a distributed processor system
US6918115B2 (en) * 2001-02-16 2005-07-12 Microsoft Corporation Method and apparatus for synchronization of periodic processes
JP3857530B2 (ja) * 2001-03-09 2006-12-13 インターナショナル・ビジネス・マシーンズ・コーポレーション ジョブ実行制御装置、方法、及びプログラム
US6950927B1 (en) 2001-04-13 2005-09-27 The United States Of America As Represented By The Secretary Of The Navy System and method for instruction-level parallelism in a programmable multiple network processor environment
US6968447B1 (en) 2001-04-13 2005-11-22 The United States Of America As Represented By The Secretary Of The Navy System and method for data forwarding in a programmable multiple network processor environment
US6978459B1 (en) * 2001-04-13 2005-12-20 The United States Of America As Represented By The Secretary Of The Navy System and method for processing overlapping tasks in a programmable network processor environment
US7653906B2 (en) * 2002-10-23 2010-01-26 Intel Corporation Apparatus and method for reducing power consumption on simultaneous multi-threading systems
EP1609062A4 (en) * 2003-03-31 2011-08-03 Avaya Technology Corp SYSTEM AND METHOD FOR EFFICIENT PROGRAMMING OF PERIODIC PHENOMENA
US20050165881A1 (en) * 2004-01-23 2005-07-28 Pipelinefx, L.L.C. Event-driven queuing system and method
JP3816497B2 (ja) * 2004-02-13 2006-08-30 株式会社東芝 情報処理装置
US7197502B2 (en) * 2004-02-18 2007-03-27 Friendly Polynomials, Inc. Machine-implemented activity management system using asynchronously shared activity data objects and journal data items
US8789051B2 (en) 2004-11-18 2014-07-22 Hamilton Sundstrand Corporation Operating system and architecture for embedded system
JP4102425B2 (ja) * 2005-04-12 2008-06-18 松下電器産業株式会社 プロセッサ
US7788667B2 (en) * 2005-04-22 2010-08-31 Gm Global Technology Operations, Inc. Extensible scheduling of tasks in time-triggered distributed embedded systems
FR2889329B1 (fr) * 2005-07-29 2007-10-19 Airbus France Sas Procede de sequencement automatique des specifications d'un calculateur, notamment pour aeronef
US8849908B2 (en) * 2005-10-13 2014-09-30 Kaydon A. Stanzione Internet based data, voice and video alert notification communications system
US8438572B2 (en) * 2006-03-15 2013-05-07 Freescale Semiconductor, Inc. Task scheduling method and apparatus
JP2007316721A (ja) * 2006-05-23 2007-12-06 Toshiba Corp 携帯端末
US9588809B2 (en) 2006-10-10 2017-03-07 Invistasking LLC Resource-based scheduler
US8056083B2 (en) 2006-10-10 2011-11-08 Diskeeper Corporation Dividing a computer job into micro-jobs for execution
US8239869B2 (en) 2006-06-19 2012-08-07 Condusiv Technologies Corporation Method, system and apparatus for scheduling computer micro-jobs to execute at non-disruptive times and modifying a minimum wait time between the utilization windows for monitoring the resources
US7787486B2 (en) * 2006-11-13 2010-08-31 Honeywell International Inc. Method and system for achieving low jitter in real-time switched networks
US8266624B2 (en) * 2006-11-30 2012-09-11 Red Hat, Inc. Task dispatch utility coordinating the execution of tasks on different computers
US7926058B2 (en) * 2007-02-06 2011-04-12 Mba Sciences, Inc. Resource tracking method and apparatus
KR20100117554A (ko) * 2007-11-20 2010-11-03 샌드브리지 테크놀로지스, 인코포레이티드 단일 기준을 이용하여 주기적 동작을 구현하는 방법
US8010846B1 (en) 2008-04-30 2011-08-30 Honeywell International Inc. Scalable self-checking processing platform including processors executing both coupled and uncoupled applications within a frame
US20090300626A1 (en) * 2008-05-29 2009-12-03 Honeywell International, Inc Scheduling for Computing Systems With Multiple Levels of Determinism
JP2010102567A (ja) * 2008-10-24 2010-05-06 Toshiba Corp 周期駆動タスク実行装置、周期駆動タスク実行方法及びプログラム
TWI394027B (zh) * 2008-10-27 2013-04-21 Tatung Co 頻率調整方法及使用此方法的電腦程式產品
KR101513505B1 (ko) * 2008-11-04 2015-04-20 삼성전자주식회사 프로세서 및 인터럽트 처리 방법
US20120159336A1 (en) * 2009-03-27 2012-06-21 Michael Roy Norwood Electronic list priority management system and method of using same
CN101620550B (zh) * 2009-05-27 2013-01-02 西华师范大学 一种基于任务模糊多特征的嵌入式实时调度方法
EP2591416A4 (en) 2010-07-05 2014-08-13 Saab Ab METHOD FOR CONFIGURING A DISTRIBUTED CONTROL SYSTEM FOR AEROSPACE TECHNOLOGY
GB2483737A (en) 2010-09-13 2012-03-21 Tata Consultancy Services Ltd Workflow scheduler for server cluster with blocking assignment of order sensitive flows and non blocking assignment of other flows
US8375389B2 (en) * 2010-10-20 2013-02-12 Microsoft Corporation Ordered scheduling of suspended processes based on resumption events
KR101232561B1 (ko) * 2011-02-07 2013-02-12 고려대학교 산학협력단 임베디드 멀티 코어 프로세서의 태스크 스케쥴링 및 캐쉬 메모리 리사이징 장치 및 방법
KR101819504B1 (ko) 2011-06-01 2018-01-17 엘지전자 주식회사 이동 단말기 및 그 제어방법
EP2541348B1 (de) * 2011-06-28 2017-03-22 Siemens Aktiengesellschaft Verfahren und Programmiersystem zur Programmierung einer Automatisierungskomponente
US9098331B2 (en) * 2011-06-29 2015-08-04 Telefonaktiebolaget L M Ericsson (Publ) Joint scheduling of multiple processes on a shared processor
US9380597B2 (en) * 2011-08-25 2016-06-28 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for wireless communication baseband processing
US8924976B2 (en) * 2011-08-26 2014-12-30 Knu-Industry Cooperation Foundation Task scheduling method and apparatus
US8769090B2 (en) * 2011-11-30 2014-07-01 At&T Intellectual Property I, L.P. Method and apparatus for managing communication inquiries
US8938739B2 (en) * 2012-06-02 2015-01-20 Texas Instruments Incorporated Resource sharing aware task partitioning for multiprocessors
CN103313216B (zh) * 2013-06-24 2015-04-01 腾讯科技(深圳)有限公司 一种通信账号的消息提醒方法、系统及装置
EP3121716A1 (en) * 2015-07-21 2017-01-25 Robert Bosch Gmbh Method and apparatus for hosting a multitasking guest on a host system
WO2017074309A1 (en) * 2015-10-27 2017-05-04 Ford Global Technologies, Llc Enhanced vehicle system notification
US10540625B2 (en) * 2016-07-22 2020-01-21 Tata Consultancy Services Limited Approximate computing for application performance in heterogeneous systems
US10289448B2 (en) * 2016-09-06 2019-05-14 At&T Intellectual Property I, L.P. Background traffic management
CN109298917B (zh) * 2017-07-25 2020-10-30 沈阳高精数控智能技术股份有限公司 一种适用于实时系统混合任务的自适应调度方法
DE102018205390A1 (de) * 2018-04-10 2019-10-10 Robert Bosch Gmbh Verfahren und Vorrichtung zur Fehlerbehandlung in einer Kommunikation zwischen verteilten Software Komponenten
DE102018205392A1 (de) * 2018-04-10 2019-10-10 Robert Bosch Gmbh Verfahren und Vorrichtung zur Fehlerbehandlung in einer Kommunikation zwischen verteilten Software Komponenten
CN109214771A (zh) * 2018-08-01 2019-01-15 奇酷互联网络科技(深圳)有限公司 日常任务管理的方法、设备、存储介质及终端
US11544720B2 (en) 2019-11-25 2023-01-03 Bank Of America Corporation Client manager and router
US11305810B2 (en) 2020-04-24 2022-04-19 Steering Solutions Ip Holding Corporation Method and system to synchronize non-deterministic events
CN114326560B (zh) * 2021-11-18 2024-02-09 北京华能新锐控制技术有限公司 降低风电机组国产化plc的cpu负荷的方法及装置
US11792135B2 (en) 2022-03-07 2023-10-17 Bank Of America Corporation Automated process scheduling in a computer network
US11922161B2 (en) 2022-03-07 2024-03-05 Bank Of America Corporation Scheduling a pausable automated process in a computer network
CN115883438A (zh) * 2022-11-16 2023-03-31 重庆邮电大学 时间敏感网络中时间触发流量的路由与调度方法、装置及可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3648253A (en) 1969-12-10 1972-03-07 Ibm Program scheduler for processing systems
EP1526446A3 (en) 1991-07-08 2007-04-04 Seiko Epson Corporation Extensible RISC microprocessor architecture
US5408663A (en) 1993-11-05 1995-04-18 Adrem Technologies, Inc. Resource allocation methods
US5566177A (en) 1994-10-09 1996-10-15 International Business Machines Corporation Priority-based arbitrator on a token-based communication medium
US5630096A (en) 1995-05-10 1997-05-13 Microunity Systems Engineering, Inc. Controller for a synchronous DRAM that maximizes throughput by allowing memory requests and commands to be issued out of order

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100745477B1 (ko) * 2003-04-24 2007-08-02 인터내셔널 비지네스 머신즈 코포레이션 단일 스레드와 동시 멀티스레드 모드간의 멀티스레드프로세서의 동적 스위칭
US8099313B2 (en) 2004-09-22 2012-01-17 Samsung Electronics Co., Ltd. Method and system for the orchestration of tasks on consumer electronics
US8185427B2 (en) 2004-09-22 2012-05-22 Samsung Electronics Co., Ltd. Method and system for presenting user tasks for the control of electronic devices
US8412554B2 (en) 2004-09-24 2013-04-02 Samsung Electronics Co., Ltd. Method and system for describing consumer electronics using separate task and device descriptions
KR100728021B1 (ko) * 2005-01-07 2007-06-13 삼성전자주식회사 네트워크 내 장치들에 의해 이용가능하게 만들어진태스크들을 순위 매기는 방법 및 시스템
US8510737B2 (en) 2005-01-07 2013-08-13 Samsung Electronics Co., Ltd. Method and system for prioritizing tasks made available by devices in a network
US8069422B2 (en) 2005-01-10 2011-11-29 Samsung Electronics, Co., Ltd. Contextual task recommendation system and method for determining user's context and suggesting tasks
US8205013B2 (en) 2005-05-02 2012-06-19 Samsung Electronics Co., Ltd. Method and system for aggregating the control of middleware control points
US8028283B2 (en) 2006-03-20 2011-09-27 Samsung Electronics Co., Ltd. Method and system for automated invocation of device functionalities in a network
KR100953099B1 (ko) * 2007-12-26 2010-04-19 전자부품연구원 소형 저전력 임베디드 시스템 및 그의 선점 회피 방법
WO2011065614A1 (ko) * 2009-11-25 2011-06-03 한양대학교 산학협력단 파이프라인 멀티 코어 시스템 및 파이프라인 멀티 코어 시스템의 효과적인 태스크 할당 방법
WO2014203029A1 (en) * 2013-06-17 2014-12-24 Freescale Semiconductor, Inc. Efficient scheduling in asynchronous contention-based system
KR20160076896A (ko) * 2014-12-23 2016-07-01 삼성전자주식회사 선점 방식을 선택하는 방법 및 장치.
KR20210022426A (ko) * 2019-08-20 2021-03-03 성균관대학교산학협력단 태스크의 러너블 그룹 단위 분할을 통한 선점 최소화 방법 및 이를 위한 장치
US11822967B2 (en) 2019-08-20 2023-11-21 Research & Business Foundation Sungkyunkwan University Task distribution method for minimizing preemption between tasks and apparatus for performing the same

Also Published As

Publication number Publication date
CA2371340A1 (en) 2000-11-23
US6567840B1 (en) 2003-05-20
ATE253751T1 (de) 2003-11-15
DE60006422T2 (de) 2004-09-09
JP2002544621A (ja) 2002-12-24
AU769245B2 (en) 2004-01-22
EP1244963A2 (en) 2002-10-02
AU4851700A (en) 2000-12-05
WO2000070455A2 (en) 2000-11-23
EP1244963B1 (en) 2003-11-05
WO2000070455A3 (en) 2001-02-08
DE60006422D1 (de) 2003-12-11

Similar Documents

Publication Publication Date Title
KR20020022049A (ko) 태스크 스케줄링 및 메시지 패싱
Sehr et al. Programmable logic controllers in the context of industry 4.0
Jensen Asynchronous decentralized realtime computer systems
US7165252B1 (en) Method of scheduling executions of processes with various types of timing properties and constraints
Tindell Using offset information to analyse static priority pre-emptively scheduled task sets
Murthy et al. Resource management in real-time systems and networks
Årzén et al. Integrated control and scheduling
Pazzaglia et al. Optimizing the functional deployment on multicore platforms with logical execution time
Wang et al. Task construction for model-based design of embedded control software
McLean et al. Configuring ADAS platforms for automotive applications using metaheuristics
He et al. Task allocation and optimization of distributed embedded systems with simulated annealing and geometric programming
Kampmann et al. Optimization-based Resource Allocation for an Automotive Service-oriented Software Architecture
Kopetz et al. Real-time scheduling
Fischmeister et al. A verifiable language for programming real-time communication schedules
Balashov et al. A technology for scheduling of data exchange over bus with centralized control in onboard avionics systems
Farcas Scheduling multi-mode real-time distributed components
Herrtwich An introduction to real-time scheduling
Fersman A generic approach to schedulability analysis of real-time systems
Ingalls et al. Execution conditions: a formalization of event cancellation in simulation graphs
Simon et al. Design of real-time periodic control systems through synchronization and fixed priorities
Park et al. Network conscious design of distributed real-time systems
Redell Modelling of distributed real-time control systems: An approach for design and early analysis
Saiedian et al. Using UML-based rate monotonic analysis to predict schedulability
Gu et al. Synthesis of real-time implementations from component-based software models
Syed et al. Online admission of non-preemptive aperiodic mixed-critical tasks in hierarchic schedules

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid