KR101733534B1 - 경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 방법 및 장치 - Google Patents

경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 방법 및 장치 Download PDF

Info

Publication number
KR101733534B1
KR101733534B1 KR1020160026111A KR20160026111A KR101733534B1 KR 101733534 B1 KR101733534 B1 KR 101733534B1 KR 1020160026111 A KR1020160026111 A KR 1020160026111A KR 20160026111 A KR20160026111 A KR 20160026111A KR 101733534 B1 KR101733534 B1 KR 101733534B1
Authority
KR
South Korea
Prior art keywords
real
time
task
time task
periodic
Prior art date
Application number
KR1020160026111A
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 국방과학연구소
Priority to KR1020160026111A priority Critical patent/KR101733534B1/ko
Priority to US15/440,052 priority patent/US10296381B2/en
Application granted granted Critical
Publication of KR101733534B1 publication Critical patent/KR101733534B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)

Abstract

본 발명은 스케줄링 태스크 정보 처리 기술에 관한 것으로서, 더 상세하게는 경성 실시간 스케줄링 태스크 그룹을 지원하는 운영체제의 구동이 가능한 컴퓨터 또는 임베디드 보드상에서 동작하는 유저 프로세스로 구성되는 수행 가능성 분석 도구를 위한 수행 가능성 분석 방법 및 장치에 대한 것이다.

Description

경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 방법 및 장치 {SCHEDULABILITY ANALYSYS METHOD AND SYSTEM FOR TASK GROUP OF HARD REAL-TIME}
본 발명은 스케줄링 태스크 정보 처리 기술에 관한 것으로서, 더 상세하게는 경성 실시간 스케줄링 태스크 그룹을 지원하는 운영체제의 구동이 가능한 컴퓨터 또는 임베디드 보드상에서 동작하는 유저 프로세스로 구성되는 수행 가능성 분석 도구를 위한 수행 가능성 분석 방법 및 장치에 대한 것이다.
실시간 시스템이란 태스크의 수행결과의 정확성뿐만 아니라 태스크의 종료시한내 수행여부가 시스템 전체의 올바른 동작의 판단 기준이 되는 시스템이다. 실시간 시스템을 위한 운영체제는 크게 두 가지로 구분될 수 있다. 첫째, 실시간 시스템의 지원만을 위한 실시간 운영체제이다.
둘째, 범용 운영체제 중 실시간 스케줄러와 비실시간 스케줄러가 혼용되는 운영체제를 확장한 것이다. 이중 유닉스 계열 실시간 시스템은 유닉스에서 제공하는 다양한 서비스를 그대로 사용할 수 있고, 익숙한 개발 환경 등의 제공으로 많은 비용과 시간을 절약할 수 있다.
하지만 유닉스 계열 운영체제의 확장은 유닉스 시스템 커널의 선점 불가능성, 낮은 타이머 정밀도에 의한 예측 가능성의 부족 등의 어려움이 존재한다. 이를 해결하기 위한 방법으로는 POSIX.lb 표준을 따르는 방법, 운영체제 특성을 살린 자체적인 방법, 또는 두 가지 방법을 혼용하는 방법 등이 제시되고 있다.
일반적으로 리눅스(Linux)는 POSIX.lb 표준의 일부 지원으로 연성 실시간 시스템을 지원한다. 현재 경성 실시간 시스템을 지원하기 위한 RTinux가 개발된바 있지만, 다양한 프로그래밍 인터페이스 및/또는 스케줄러의 지원이 부족한 실정이다.
특히, 리눅스를 위한 실시간 개선들이 이전보다 훨씬 더 넓은 범위의 임베이딩 시스템에 이용되고 있다. 예를 들면, 프로세스 스케줄링을 위한 최근의 확장은 태스크 그룹을 위한 자원 예약 프레임워크(즉, cgroup)를 포함한다. 실시간 개선들을 위한 노력이 수행되고 있어, 리눅스가 가까운 미래에 "경성"실시간 어플리케이션을 위한 잠재적인 운영 시스템으로 자리매김할 것으로 예측된다. 그러나, 여전히 리눅스와 같은 범용 운영체제는 경성 실시간 시스템을 위해 설계된 것이 아니여서 개선되어야 할 점들이 많다.
부연하면, cgroup의 스케줄링 테스트가 너무 낙관적이다. 리눅스 태스크 그룹 스케줄링의 현재 구현 상황은 태스크 그룹들이 예약된 것보다 더 많은 CPU(Central Processing Unit) 자원들을 소비하지 않는 점만을 보장하는 반면에 총 사용율이 100% 이하이면 스케줄링 테스트가 단순히 건너뛴다는 것이다. 그러나, 이는 모든 태스크 그룹들이 매 주기동안 예약된 만큼의 CPU 자원들을 사용할 수 있다는 점을 보장할 수 없다.
따라서, 모든 태스크 그룹들이 항시적으로 매 주기동안 전체 예약 CPU 자원들을 사용할 수 있는지를 검출하기 위해, 주어진 태스크 그룹들을 위한 최악 시나리오를 먼저 파악할 필요가 있다.
또한, cgroup의 스케줄링 테스트는 높은 우선순위를 지닌 실시간 스케줄러(예를 들면, SCHED_DEADLINE)을 고려하지 않는다. SCHED_DEADLINE은 리눅스에서 최우선 순위 스케줄러로서 cgroup의 자원관리 대상인 비주기적 스케줄러보다 높은 우선순위를 지닌다. 따라서, SCHED_DEADLINE과 비교해 저순위 스케줄러(예를 들면, SCHED_FIFO 및 SCHED_RR)를 사용하는 cgroup은 스케줄링 테스트에서 SCHED_DEADLINE에 의해 예약되는 CPU 자원을 고려해야하나, 현재 구현 상황은 이를 고려하지 않는 다는 점이다.
따라서, 리눅스 등과 같은 운용 체제(OS: Operating System)의 경우 경성 실시간 시스템을 지원하기 위해서 상기 최악 시나리오에 대한 스케줄링 테스트 알고리즘이 요구되고 있다.
1. 한국공개특허번호 제10-2013-0066900호 2. 한국공개특허번호 제10-2013-0006587호
1. 최정훈, "RT-Linux에서 효율적인 태스크 스케줄링을 위한 혼합 실시간 스케줄러의 구현"수원대학교 학위논문 1999년 2. 박현희외, "임베디드 운영체제의 스케줄링 프리미티브를 고려한 정적 최악실행시간 분석도구"정보과학회논문지 : 컴퓨팅의 실제 및 레터 제13권 제5호 (2007년 10월) pp.271-281
본 발명은 위 배경기술에 따른 문제점을 해소하기 위해 제안된 것으로서, 주어진 태스크 그룹의 최악 시나리오를 찾는 알고리즘을 구현하는 경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 방법 및 장치를 제공하는데 그 목적이 있다.
또한, 본 발명은 최악 시나리오를 위한 스케줄링 테스트 알고리즘을 구현하는 경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 방법 및 장치를 제공하는데 다른 목적이 있다.
본 발명은 위에서 제시된 과제를 달성하기 위해, 경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 방법을 제공한다.
상기 가능성 분석 방법은, 경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 장치로서,
파일 시스템과 커널로 이루어지며, 상기 파일 시스템 및 상기 커널로부터 비주기적 실시간 태스크 정보와 상기 비주기적 실시간 태스크로 구성된 주기적 실시간 태스크 그룹의 정보 및 주기적 실시간 태스크 정보를 생성하는 운영체제; 및
미리 설정되는 제 1 스케줄링 알고리즘을 적용하여 상기 비주기적 실시간 태스크 정보를 수집하고, 미리 설정되는 제 2 스케줄링 알고리즘을 통해 상기 주기적 실시간 태스크 정보를 갖는 실시간 태스크 그룹 내의 예약 자원에 대한 수행 가능성을 판단하는 경성 실시간 수행 가능성 테스트 도구;를 포함하는 것을 특징으로 할 수 있다.
또한, 상기 경성 실시간 수행 가능성 테스트 도구는, 상기 비주기적 실시간 태스크 정보가 포함되는 실시간 태스크 그룹의 정보들을 수집하는 비주기적 실시간 태스크 정보 수집 모듈; 상기 주기적 실시간 태스크 정보를 수집하는 주기적 실시간 태스크 정보 수집 모듈; 및 상기 비주기적 실시간 태스크 정보 및 주기적 실시간 태스크 정보를 통하여 실시간 태스크 그룹 내의 예약 자원에 대한 수행 가능성을 판단하는 수행 가능성 테스트 모듈;을 포함하는 것을 특징으로 할 수 있다.
또한, 상기 제 1 알고리즘은 태스크의 주기 및 실행시간을 포함하는 스케줄링 정보에 접근 가능한 파일 시스템 또는 시스템 콜을 이용하여 상기 태스크 정보를 수집하도록 이루어지는 것을 특징으로 할 수 있다. 본 발명을 구현하기 위한 한 예로 리눅스의 경우 상기 스케줄링 정보에 접근 가능한 파일 시스템인 프록 파일 시스템과 태스크 그룹 스케줄링을 지원하는 스케줄러보다 높은 우선순위를 갖는 최우선 순위 스케줄러(SCHED_DEADLINE) 정책을 사용하는 태스크의 주기 및 실행시간을 획득하는 시스템 콜을 이용한다.
또한, 상기 제 2 알고리즘은 상기 주기적 실시간 태스크 정보가 포함된 실시간 태스크 그룹 및 주기적 실시간 태스크의 주기, 실행시간, 및 비주기적 실시간 태스크가 포함된 실시간 태스크 그룹 내 우선순위 정보와 태스크 그룹에 허용된 CPU정보를 이용하여 상기 실시간 태스크 그룹 내 예약 자원에 대한 수행 가능성을 판단하도록 이루어지는 것을 특징으로 할 수 있다.
또한, 상기 주기적 실시간 태스크 정보 수집 모듈은, 상기 파일 시스템내의 폴더로부터 실행중인 프로세스에 대한 탐색을 수행하여 상시 폴더내의 태스크 정책이 최우선 순위 스케줄러(SCHED_DEADLINE)와의 일치여부에 따라 해당 태스크의 주기 및 실행 시간 정보를 수집하는 것을 특징으로 할 수 있다.
또한, 상기 비주기적 실시간 태스크 정보 수집 모듈은, 상기 실시간 태스크 그룹에 대해 상기 파일 시스템을 탐색하여 상기 실시간 태스크 그룹내 태스크 우선순위 정보를 탐색하고 분석 대상 집합에 추가하는 것을 특징으로 할 수 있다.
또한, 상기 주기적 실시간 태스크 그룹은 태스크 그룹의 우선순위를 그룹 내 비주기적 실시간 태스크의 우선순위에 의해 결정하며, 그룹 내 비주기적 실시간 태스크의 가장 높은 우선순위와 가장 낮은 우선순위를 상기 주기적 실시간 태스크 그룹의 최대, 최소 우선순위로 선정하는 것을 특징으로 할 수 있다.
또한, 상기 실시간 태스크 그룹은 우선순위를 기준으로 내림차순 정렬되는 것을 특징으로 할 수 있다.
또한, 상기 수행 가능성 테스트 모듈은, 비주기적 실시간 태스크로 구성된 주기적 실시간 태스크 그룹을 수행 가능성 분석 대상으로 결정하고, 수행 가능성 분석 대상보다 항상 높은 우선순위를 갖는 주기적 실시간 태스크를 수행가능성 분석 연산대상으로 추가하며, 상기 수행 가능성 분석 대상 집합의 처음부터 끝까지 탐색하여 수행가능성 연산을 수행하며, 상기 수행가능성 분석 대상 집합의 끝이면 상기 실시간 태스크 그룹내의 예약 자원에 대해 실행 가능으로 판정하고, 상기 수행 가능성 분석 대상에 대해 수행가능성을 판단하여 실행 불가능이 판정 되면 상기 실시간 태스크 그룹내의 예약 자원에 대해 실행 불가능으로 판정하는 것을 특징으로 할 수 있다.
또한, 상기 수행가능성 분석 대상 집합에서 각 수행가능성 분석 대상은 항상 비교적 높은 우선순위를 갖는 수행가능성 분석 연산 대상과, 수행가능성 분석 대상 집합 내 수행가능성 분석 대상의 최소 우선순위보다 높은 최대 우선순위를 갖는 다른 수행가능성 분석 대상을 최악조건에서의 CPU자원 사용량으로 계산하여 수행가능성 분석을 수행하며, 각 CPU에 허용된 비 주기적 실시간 태스크를 포함하는 주기적 태스크 그룹 또는 주기적 실시간 태스크에 대해 상기 수행가능성 분석 대상의 최악조건에서의 CPU 자원사용량이 해당 실시간 태스크 그룹이 요구하는 실행시간을 넘어서는 지에 대한 판단을 통해서 상기 실시간 태스크 그룹내의 예약 자원에 대해 실행 가능 또는 실행 불가능으로 판단하는 것을 특징으로 할 수 있다.
또한, 상기 실시간 태스크 그룹 및 주기적 실시간 태스크가 멀티코어환경에서 동작할 때, 상기 태스크 그룹 및 주기적 실시간 태스크는 하나의 CPU에서만 동작할 수 있고, 각 CPU는 다수의 태스크 그룹 또는 주기적 실시간 태스크를 포함한다. 그리고, 상기 태스크 그룹 및 주기적 실시간 태스크는 허용된 CPU이외의 다른 CPU로 마이그레이션(태스크가 다른 CPU로 이동)되지 않는 환경을 가정한다.
또한, 상기 실시간 태스크 그룹이 존재할 경우 사용하는 실행시간은 수학식
Figure 112017016035063-pat00074
(여기서,
Figure 112017016035063-pat00002
Figure 112017016035063-pat00003
은 자연수로 각 태스크의 우선순위 크기를 높은 순으로 나타낸다. 즉, 가장 높은 우선순위를 갖는 태스크는
Figure 112017016035063-pat00004
으로 표현된다. 따라서,
Figure 112017016035063-pat00005
Figure 112017016035063-pat00006
번째 우선순위를 갖는 태스크를 표현하며,
Figure 112017016035063-pat00007
값이 커질수록 상대적으로 낮은 우선순위를 갖는 태스크를 표현된다.
현재 수행 가능성 분석 대상이
Figure 112016021028756-pat00008
번째 우선순위를 갖는 경우 수행 가능성 분석 대상을
Figure 112016021028756-pat00009
으로 표현하며,
Figure 112016021028756-pat00010
Figure 112016021028756-pat00011
의 주기를 나타내며,
Figure 112016021028756-pat00012
Figure 112016021028756-pat00013
의 실행시간을 나타낸다. 수행 가능성 분석 대상보다 높은 우선순위를 갖는 태스크 그룹 또는 주기적 실시간 태스크 는
Figure 112016021028756-pat00014
와 같이 표현된다.
Figure 112016021028756-pat00015
의 주기는
Figure 112016021028756-pat00016
으로 나타내며,
Figure 112016021028756-pat00017
의 실행시간은
Figure 112016021028756-pat00018
로 나타낸다. 이때,
Figure 112016021028756-pat00019
는 1과
Figure 112016021028756-pat00020
사이의 자연수로 나타난다)에 의해 산출되는 것을 특징으로 할 수 있다.
다른 한편으로, 본 발명의 다른 일실시예는, 경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 방법으로서, 운영체제가 파일 시스템과 커널로 이루어지며, 상기 파일 시스템 및 상기 커널로부터 비주기적 실시간 태스크 정보 및 주기적 실시간 태스크 정보를 생성하는 단계; 경성 실시간 수행 가능성 테스트 도구가 미리 설정되는 제 1 스케줄링 알고리즘을 적용하여 상기 비주기적 실시간 태스크 정보를 수집하는 단계; 및 상기 경성 실시간 수행 가능성 테스트 도구가 미리 설정되는 제 2 스케줄링 알고리즘을 통해 상기 주기적 실시간 태스크 정보를 갖는 실시간 태스크 그룹 내의 예약 자원에 대한 수행 가능성을 판단하는 단계;를 포함하는 것을 특징으로 하는 경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 방법을 제공할 수 있다.
본 발명에 따르면, 선택된 태스크가 그룹의 모든 런타임을 소모하는 경우 CPU(Central Processing Unit) 자원들이 가장 어려운 것으로 보장하는 태스크 콤비네이션을 효율적으로 찾는 알고리즘을 구현하여 주어진 태스크 그룹들을 위한 최악 시나리오를 파악할 수 있게 함으로써, 모든 태스크 그룹들이 항시적으로 매 시기동안 전체 예약 CPU 자원들을 사용할 수 있는지를 검출할 수 있다.
또한, 본 발명의 다른 효과로서는 이전 알고리즘에 의해 제공되는 태스크 콤비네이션을 사용함으로써 실제적인 스케줄링 테스트를 실행할 수 있다는 점을 들 수 있다.
도 1은 본 발명의 일실시예에 따른 수행 가능성 분석 시스템(10)의 전체 구성도를 나타낸다.
도 2는 본 발명의 일실시예에 따른 수행 가능성 분석에 필요한 주기적 실시간 스케줄링 태스크 정보 수집 과정의 흐름도를 나타낸다.
도 3은 본 발명의 일실시예에 따른 스케줄링 분석의 대상이 되는 비 주기적 실시간 스케줄링 태스크가 포함된 실시간 태스크 그룹 및 비주기적 실시간 스케줄링 태스크의 정보 수집 과정의 흐름도를 나타낸다.
도 4는 본 명세서의 일실시예에 따른 스케줄링 분석 수행 과정의 흐름도를 나타낸다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세한 설명에 구체적으로 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다.
제 1, 제 2등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. "및/또는" 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다.
일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않아야 한다.
이하 첨부된 도면을 참조하여 본 발명의 일실시예에 따른 경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 방법 및 장치를 상세하게 설명하기로 한다.
도 1은 본 발명의 일실시예에 따른 수행 가능성 분석 시스템(10)의 전체 구성도를 나타낸다. 도 1을 참조하면, 본 발명의 일실시예에 따른 수행 가능성 분석도구는 경성 실시간 태스크 그룹을 지원하는 운영체제의 구동이 가능한 컴퓨터 또는 임베디드 보드상에서 작동하는 유저 프로세스로 구성될 수 있다. 본 발명을 구현하기 위한 한 예로 도 1은 범용 운영체제인 리눅스를 예로 든다.
즉, 도 1을 참조하면, 본 발명의 일실시예에 따른 수행 가능성 분석 시스템(10)의 전체 구조는 프록 파일 시스템과 높은 우선순위를 갖는 주기적 실시간 스케줄링 정책을 사용하는 태스크의 주기 및/또는 실행시간을 얻을 수 있는 시스템 콜을 지원하는 운영체제(200)와, 경성 실시간 수행 가능성 테스트 도구(100)를 포함하여 구성된다.
실시간 수행 가능성 테스트 도구(100)는 수행 가능성 테스트를 위한 태스크 정보 수집 모듈(102)과, 수집한 정보를 통해 수행 가능성 판단 알고리즘을 적용하여 수행 가능성 여부를 판단하는 수행 가능성 테스트 모듈(101)을 포함하여 구성된다.
태스크 정보 수집 모듈(102)은 비주기적 실시간 태스크 및 상기 비주기적 실시간 태스크를 포함하는 태스크 그룹의 정보를 수집하는 비주기적 실시간 태스크 그룹 정보 수집 모듈(103)과 주기적 실시간 태스크 정보를 수집하는 주기적 실시간 태스크 정보 수집 모듈(104)로 구성된다.
비주기적 실시간 태스크 그룹 정보 수집 모듈(103)은 운영체제(200)내 프록 파일 시스템을 이용하여 현재 자원을 예약하여 사용하고 있는 비 주기적 실시간 스케줄링 태스크가 포함된 실시간 태스크 그룹 및 비주기적 실시간 태스크의 우선순위를 수집한다(201).
주기적 실시간 태스크 정보 수집 모듈(104)은 운영체제(200)내 프록 파일 시스템(210)을 이용하여 현재 SCHED_DEADLINE 정책으로 스케줄링되고 있는 실시간 태스크 정보를 수집하고(202), 상기된 실시간 태스크 정보를 이용하여 커널(220)로부터 시스템콜(203)을 통해 상기된 실시간 태스크의 주기, 실행시간의 정보 등을 수집한다.
상기된 비주기적 실시간 태스크 그룹 정보수집 모듈(103)의 수집과정(201)을 통해 획득된 정보는 수행 가능성 테스트 모듈(101)의 스케줄링 알고리즘 적용 대상이 되며, 주기적 실시간 태스크 정보 수집 모듈(104)의 수집과정(202,203)을 통해 얻은 정보는 수행 가능성 테스트 모듈(101)의 스케줄링 알고리즘의 연산과정에서 이용된다.
수행 가능성 테스트 모듈(101)은 태스크 정보 수집 모듈(102)을 통해 상기된 스케줄링 알고리즘 적용대상과 상기 알고리즘 적용대상 보다 항상 높은 우선순위를 갖는 태스크의 정보를 스케줄링 알고리즘 연산에 이용하기 위해 수집(105)한 뒤 수행된다.
도 2는 도 1본 발명의 일실시예에 따른 수행 가능성 분석에 필요한 주기적 실시간 스케줄링 태스크 정보 수집 과정의 흐름도를 나타낸다. 도 2를 참조하면, 수행 가능성 분석을 위한 주기적 실시간 태스크 정보는 프록 파일 시스템(도 1의 210)을 사용하여 수집한다.
이러한 수집 과정을 위해, 먼저 프록 파일 시스템(210) 내의 폴더로부터 실행중인 프로세스에 대한 탐색을 수행하며, 상기 탐색 과정은 탐색중인 프록 파일 시스템 내 실행중인 프로세스가 더 이상 존재하지 않는 경우 종료한다(단계 S210,S220,S221).
단계 S220에서, 상기 폴더 내에 실행중인 프로세스의 정보가 담겨 있으면, 상기 정보 중 태스크 정책이 상기 알고리즘 적용 대상보다 더 높은 우선순위를 갖는 스케줄러인 SCHED_DEADLINE과 일치하는지를 판단한다(단계 S230).
단계 S230에서, 일치하면 해당 프로세스를 수행 가능성 분석을 위해 필요한 실시간 스케줄링 태스크로 분류하여 해당 태스크의 주기와 실행시간 정보를 수집한다(단계 S240). 이후, 상기 정보를 수행 가능성 분석 연산 대상 집합에 추가한다(단계 S240). 이후, 다음 프록파일 시스템 내 폴더를 탐색하는 과정으로 돌아가 단계 S210 내지 S250을 반복 수행한다. 상기 탐색 과정은 프록 파일 시스템 내 모든 폴더를 탐색할 때까지 반복한다.
도 3은 본 발명의 일실시예에 따른 스케줄링 분석의 대상이 되는 비 주기적 실시간 스케줄링 태스크 정보가 포함된 실시간 태스크 그룹 및 비주기적 실시간 스케줄링 태스크의 정보 수집 과정의 흐름도를 나타낸다. 도 3을 참조하면, 상기된 프록 파일 시스템(도 1의 210)은 실시간 태스크 그룹에 대한 정보를 담고 있는 프록 파일 시스템을 뜻하며, 해당 폴더를 순차적으로 탐색하여 진행한다(단계 S310).
위의 과정은 모든 태스크 그룹에 대한 탐색이 끝날때까지 수행하며, 프록 파일 시스템을 통해 각 태스크 그룹의 주기, 실행시간의 정보를 수집한다(단계 S320,S321). 부연하면, 단계 S320에서 태스크 그룹에 대한 탐색이 끝이면 정보 수집을 종료한다(단계 S321).
이와 달리, 단계 S320에서 태스크 그룹에 대한 탐색이 종료가 아니면 태스크 그룹에 포함되어 있는 태스크들의 프로세스 아이디를 가져온다(단계 S330).
이후, 상기 정보를 이용하여 프록 파일 시스템을 통해 태스크들의 우선순위에 대한 정보를 획득한다(단계 S350,S351).
물론, 각 태스크 그룹들에 포함되어 있는 태스크들의 우선순위를 저장하며, 상기된 과정을 그룹 내 모든 태스크 그룹에 대한 작업이 완료될 때까지 반복한다(단계 S340, S350 및 S351).
상기된 비 주기적 실시간 스케줄링 태스크가 포함된 실시간 태스크 그룹 및 비주기적 실시간 태스크에 대한 정보를 수행 가능성 분석 알고리즘을 적용하기 위한 분석 대상 집합에 추가한다(단계 S360). 상기된 추가 과정에서 태스크 그룹은 최대 우선순위를 기준으로 내림차순 정렬한다(단계 S370).
도 4는 본 명세서의 일실시예에 따른 스케줄링 분석 수행 과정의 흐름도를 나타낸다. 도 4를 참조하면, 수행 가능성 분석 알고리즘은 도 2와 도 3에 해당하는 알고리즘의 수행결과로 얻어진 수행 가능성 분석 대상 집합 및 수행 가능성 분석 연산 대상 집합을 이용하여 수행한다.
수행 가능성 분석 알고리즘은 상기된 정보 수집과정을 거친 뒤 수행 가능성 분석 대상 집합을 탐색하여 진행되며, 해당 알고리즘이 모든 분석 대상에 대해 통과하는 경우 실행 가능함을 판단한다(단계 S410,S420,S421). 실행 가능성을 판단하기 위한 수학식은 다음과 같다.
Figure 112016021028756-pat00021
여기서,
Figure 112016021028756-pat00022
Figure 112016021028756-pat00023
은 자연수로 각 태스크의 우선순위 크기를 높은 순으로 나타낸다. 즉, 가장 높은 우선순위를 갖는 태스크는
Figure 112016021028756-pat00024
으로 표현된다. 따라서,
Figure 112016021028756-pat00025
Figure 112016021028756-pat00026
번째 우선순위를 갖는 태스크를 표현하며,
Figure 112016021028756-pat00027
값이 커질수록 상대적으로 낮은 우선순위를 갖는 태스크를 표현된다.
위의 기호 표현에 따라 현재 수행가능성을 분석하는 CPU에 허용된
Figure 112016021028756-pat00028
개의 태스크를 포함하는 수행 가능성 분석 대상 집합과,
Figure 112016021028756-pat00029
개의 태스크 그룹을 포함하는 수행 가능성 분석 연산 대상 집합을 가정할 때, 상대적으로 수행 가능성 분석 연산 대상이 높은 우선순위를 갖기 때문에, 수행 가능성 분석 연산 대상 집합은
Figure 112016021028756-pat00030
부터
Figure 112016021028756-pat00031
까지의 태스크로 구성 된다. 그리고, 수행 가능성 분석 대상 집합의 태스크 그룹은
Figure 112016021028756-pat00032
부터
Figure 112016021028756-pat00033
까지의 기호로 표현된다.
현재 수행 가능성 분석 대상이
Figure 112016021028756-pat00034
번째 우선순위를 갖는 경우 수행 가능성 분석 대상을
Figure 112016021028756-pat00035
으로 표현하며,
Figure 112016021028756-pat00036
Figure 112016021028756-pat00037
의 주기를 나타낸다. 수행 가능성 분석 대상보다 높은 우선순위를 갖는 태스크 그룹 또는 주기적 실시간 태스크 는
Figure 112016021028756-pat00038
와 같이 표현되며, 이때
Figure 112016021028756-pat00039
는 1과
Figure 112016021028756-pat00040
사이의 자연수로 나타난다.
Figure 112016021028756-pat00041
의 주기를
Figure 112016021028756-pat00042
, 실행시간을
Figure 112016021028756-pat00043
로 나타낼 때
Figure 112016021028756-pat00044
동안
Figure 112016021028756-pat00045
가 사용하는 실행시간이 위 수학식1과 같다.
따라서, 수학식 1을 적용하여
Figure 112016021028756-pat00046
동안 수행 가능성 분석 대상보다 높은 우선순위를 갖는 주기적 실시간 태스크와 비주기적 실시간 태스크를 포함하는 주기적 실시간 태스크 그룹들이 이 n-1 개 존재할 때 사용하는 총 실행시간을 다음과 같은 수학식으로 표현할 수 있다.
Figure 112017016035063-pat00075
여기서, 각 기호는 수학 식 1의 설명을 따르며,
Figure 112016021028756-pat00048
Figure 112016021028756-pat00049
의 실행 시간을 나타낸다.
위 수학식 2에 해당하는 수행 가능성 알고리즘을 모든 수행 가능성 분석 대상 집합 내의 태스크 그룹에 대해 적용하며, 상기 알고리즘 연산을 위해 수행 가능성 분석 대상 보다 항시 높은 우선순위를 갖는 수행 가능성 분석 연산 대상 집합을 탐색하며 모든 분석 연산 대상에 대한 주기 및 실행시간 정보를 수집한다.(단계 S430,S440).
상기 탐색 과정 중 현재 수행 가능성 분석 중인 태스크 그룹에 대한 수행 가능성 연산 대상의 실행시간 사용량을 수학식 1에 적용하여 합산한다(단계 S441).
상기 단계 S440이 완료되면 수행 가능성 분석 대상을 재탐색하며. 상기 과정은 모든 수행 가능성 분석 대상을 재탐색하며 다음 과정을 수행한다(단계 S450,S460).
상기 과정은 현재 수행 가능성 분석중인 대상의 최소 우선순위보다 높은 최대 우선순위를 갖는 태스크 그룹에 대해 현재 분석 중인 대상에 대해 수학식 1에 적용하여 실행시간 사용량을 합산한다(단계 S470,S480,S490).
부연하면, 단계 S470에서, 현재 분석중인 대상과 재탐색을 통해 분석 중인 대상이 같은 경우 해당 대상이 현재 분석중인 대상에 대해 수행가능성 분석 연산 대상에 포함되지 않는 것으로 간주하고, 재탐색 단계(S450)로 진입하여 단계 S450 내지 단계 S460을 다시 수행한다.
이와 달리, 단계 S450에서 현재 분석중인 대상과 재탐색을 통해 분석 중인 대상이 같지 않으면 현재 분석중인 대상의 최대우선순위보다 재탐색을 통해 분석중인 대상의 최소우선순위가 높은 가를 판단한다(단계 S480). 단계 S480에서 판단결과, 재탐색중인 분석 대상의 최소 우선순위가 높으면 현재 분석 중인 대상에 대해 수학식 1에 적용하여 실행시간 사용량을 합산한다(단계 S490). 이후 단계 S450으로 진행하여 단계 S450 내지 S480을 다시 반복 수행한다.
이와 달리, 단계 S480에서 현재 분석중인 대상의 최대우선순위보다 재탐색을 통해 분석중인 대상의 최소우선순위가 높지 않으면 실행시간을 통해 수학식 2에 해당하는 수행 가능성 판단 알고리즘을 적용한다(단계 S491).
상기된 과정은 모든 수행 가능성 분석 대상 재탐색이 끝나거나(단계 S460), 또는 현재 분석대상의 최소 우선순위가 재 탐색중인 분석대상의 최대 우선순위보다 낮아질 때까지 반복하며(단계 S480), 이는 수행 가능성 분석 대상이 최대 우선순위를 기준으로 내림차순 정렬되어 있기 때문이다.
상기된 과정(단계 S460,S480)을 통해 계산된 실행시간 사용량과, 현재 수행 가능성 분석대상의 주기, 상기된 단계 S491에서 수행 가능성 판단 알고리즘을 통과한 경우 다음 대상에 대한 수행 가능성 분석을 수행하는 단계 S410로 진입하며 단계 S410 내지 단계 S491을 반복 수행한다. 이와 달리, 단계 S491에서 판단결과, 수행 가능성 판단 알고리즘을 통과하지 못한 경우 해당 태스크 그룹에 대한 주기 내 예약자원에 대한 수행을 불가능으로 판단한다(단계 S493).
본 발명은 비주기적 실시간 태스크 그룹과 주기적 실시간 태스크가 혼재하는 운영체제를 대상으로 하며, 본 발명을 구현하기 위한 예로 위와 같은 조건을 만족하는 범용 운영체제인 리눅스를 가정하였다. 따라서, 해당 알고리즘은 상기 조건을 만족하는 다른 운영체제에서도 적용 가능하다.
10: 수행 가능성 분석 장치
100: 경성 실시간 수행 가능성 테스트 도구
101: 수행 가능성 테스트 모듈
102: 태스크 정보 수집 모듈
103: 비주기적 실시간 태스크 그룹 정보 수집 모듈
104: 주기적 실시간 태스크 정보 수집 모듈
200: 운영체제
210: 프록 파일 시스템
221: 커널

Claims (11)

  1. 경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 장치에 있어서,
    파일 시스템과 커널로 이루어지며, 상기 파일 시스템 및 상기 커널로부터 비주기적 실시간 태스크 정보와 상기 비주기적 실시간 태스크로 구성된 주기적 실시간 태스크 그룹 정보 및 주기적 실시간 태스크 정보를 생성하는 운영체제; 및
    미리 설정되는 제 1 스케줄링 알고리즘을 적용하여 상기 비주기적 실시간 태스크 정보를 수집하고, 미리 설정되는 제 2 스케줄링 알고리즘을 통해 상기 주기적 실시간 태스크 정보를 갖는 실시간 태스크 그룹내의 예약 자원에 대한 수행 가능성을 판단하는 경성 실시간 수행 가능성 테스트 도구;를 포함하며,
    상기 운영체제는,
    주기적 실시간 태스크와 비주기적 실시간 태스크가 동시에 존재하는 것을 허용하고, 상기 비주기적 실시간 태스크를 주기적 실시간 태스크 그룹에 포함하여 CPU(Central Processing Unit)자원을 관리하고,
    상기 주기적 실시간 태스크는, 상기 비주기적 실시간 태스크보다 높은 우선순위를 가지며,
    상기 비주기적 실시간 태스크는, 각각의 상기 비주기적 실시간 태스크 내 속성으로 설정된 고정 우선순위를 기반으로 상기 비주기적 실시간 태스크 간 스케줄링 우선순위가 결정되며,
    상기 주기적 실시간 태스크 그룹은, 상기 비주기적 실시간 태스크를 포함하며, 주기 및 실행시간의 속성을 가지며, 상기 비주기적 실시간 태스크의 고정 우선순위에 대한 정보를 포함하지 않고,
    상기 경성 실시간 수행 가능성 테스트 도구는,
    상기 비주기적 실시간 태스크 정보 및 상기 비주기적 실시간 태스크로 구성된 주기적 실시간 태스크 그룹의 정보들을 수집하는 비주기적 실시간 태스크 정보 수집 모듈;
    상기 주기적 실시간 태스크 정보를 수집하는 주기적 실시간 태스크 정보 수집 모듈; 및
    상기 비주기적 실시간 태스크 정보 수집 모듈 및 주기적 실시간 태스크 정보 수집 모듈로부터 수집한 스케줄러의 정보를 통하여 주기적 실시간 태스크 그룹내의 예약 자원에 대한 수행 가능성을 판단하는 수행 가능성 테스트 모듈;을 포함하고,
    상기 수행 가능성 테스트 모듈은,
    상기 비주기적 실시간 태스크 정보 수집 모듈 및 주기적 실시간 태스크 정보 수집 모듈로부터 수집한 스케줄러의 정보를 통하여 수행 가능성 분석 대상과 수행 가능성 분석 연산 대상을 판단하여 각 각 해당 집합에 추가 하고, 상기 수행 가능성 분석 대상 집합의 처음부터 끝까지 탐색하여 수행가능성 연산을 수행하며, 상기 수행가능성 분석 대상 집합의 끝까지 수행 가능성 연산을 통과하면 상기 실시간 태스크 그룹내의 예약 자원에 대해 실행 가능으로 판정하고, 상기 수행 가능성 분석 도중 수행 가능성 연산을 통과하지 못하는 태스크 그룹이 존재하면 상기 실시간 태스크 그룹내의 예약 자원에 대해 실행 불가능으로 판정하며,
    상기 수행 가능성 분석 대상은,
    상기 비주기적 실시간 태스크 그룹으로 구성된 주기적 실시간 태스크 그룹을 대상으로 구성되며,
    상기 수행가능성 분석 연산 대상은, 상기 수행 가능성 분석 대상보다 비교적 높은 우선순위를 가지는 비주기적 실시간 태스크를 포함하는 주기적 실시간 태스크 그룹 또는 주기적 실시간 태스크를 대상으로 구성되며,
    상기 수행 가능성 연산은,
    각 CPU에 허용된 실시간 자원에 대해 상기 수행 가능성 분석 연산 대상 에 해당하는 상기 비주기적 실시간 태스크와 상기 주기적 실시간 태스크가 선점하고 남은 실행시간이 상기 수행가능성 분석 대상이 요구하는 실행시간을 만족하는 경우 실행 가능으로 판단하며,
    상기 수행가능성 분석 대상의 CPU를 선점 가능한 태스크 또는 태스크 그룹은,
    상기 수행가능성 분석 연산 대상과, 상기 수행가능성 분석 대상의 집합 내에서 현재 수행가능성 분석 대상의 최소 우선순위보다 높은 최대 우선순위를 갖는 모든 주기적 실시간 태스크 그룹이며,
    상기 수행 가능성 분석 연산 대상이 선점하는 실행시간은 수학식
    Figure 112017016035063-pat00076
    (여기서,
    Figure 112017016035063-pat00077
    Figure 112017016035063-pat00078
    은 자연수로 각 태스크의 우선순위 크기를 높은 순으로 나타낸다. 즉, 가장 높은 우선순위를 갖는 태스크는
    Figure 112017016035063-pat00079
    으로 표현된다. 따라서,
    Figure 112017016035063-pat00080
    Figure 112017016035063-pat00081
    번째 우선순위를 갖는 태스크를 표현하며,
    Figure 112017016035063-pat00082
    값이 커질수록 상대적으로 낮은 우선순위를 갖는 태스크를 표현되며, 현재 수행 가능성 분석 대상이
    Figure 112017016035063-pat00083
    번째 우선순위를 갖는 경우 수행 가능성 분석 대상을
    Figure 112017016035063-pat00084
    으로 표현하며,
    Figure 112017016035063-pat00085
    Figure 112017016035063-pat00086
    의 주기를 나타내며,
    Figure 112017016035063-pat00087
    Figure 112017016035063-pat00088
    의 실행시간을 나타낸다. 수행 가능성 분석 대상보다 높은 우선순위를 갖는 태스크 그룹 또는 주기적 실시간 태스크 는
    Figure 112017016035063-pat00089
    와 같이 표현된다.
    Figure 112017016035063-pat00090
    의 주기는
    Figure 112017016035063-pat00091
    으로 나타내며,
    Figure 112017016035063-pat00092
    의 실행시간은
    Figure 112017016035063-pat00093
    로 나타낸다. 이때,
    Figure 112017016035063-pat00094
    는 1과
    Figure 112017016035063-pat00095
    사이의 자연수로 나타난다)에 의해 산출되는 것을 특징으로 하는 경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 장치.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 제 1 스케줄링 알고리즘은 태스크의 주기 및 실행시간을 포함하는 스케줄링 정보에 접근 가능한 파일 시스템 또는 시스템 콜을 이용하여 우선순위를 갖는 실시간 태스크 정보를 수집하도록 이루어지는 것을 특징으로 하는 경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 장치.
  4. 제 1 항에 있어서,
    상기 제 2 스케줄링 알고리즘은 상기 주기적 실시간 태스크 정보가 포함된 실시간 태스크 그룹 및 주기적 실시간 태스크의 주기, 실행시간, 및 비주기적 실시간 태스크가 포함된 실시간 태스크 그룹 내 우선순위 정보와 태스크 그룹에 허용된 CPU정보를 이용하여 상기 실시간 태스크 그룹 내 예약 자원에 대한 수행 가능성을 판단하도록 이루어지는 것을 특징으로 하는 경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 장치.
  5. 제 1 항에 있어서,
    상기 주기적 실시간 태스크 정보 수집 모듈은, 상기 파일 시스템내의 폴더로부터 실행중인 프로세스에 대한 탐색을 수행하여 상시 폴더내의 태스크 정책이 최우선 순위 스케줄러(SCHED_DEADLINE)와의 일치여부에 따라 해당 태스크의 주기 및 실행 시간 정보를 수집하는 것을 특징으로 하는 경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 장치.
  6. 제 1 항에 있어서,
    상기 비주기적 실시간 태스크 정보 수집 모듈은, 상기 실시간 태스크 그룹에 대해 상기 파일 시스템을 탐색하여 상기 실시간 태스크 그룹내 태스크 우선순위 정보를 탐색하고 분석 대상에 추가하는 것을 특징으로 하는 경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 장치.
  7. 제 6 항에 있어서,
    상기 실시간 태스크 그룹은 우선순위를 기준으로 내림차순으로 정렬되는 것을 특징으로 하는 경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 장치.
  8. 삭제
  9. 삭제
  10. 삭제
  11. 경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 방법에 있어서,
    운영체제가 파일 시스템과 커널로 이루어지며, 상기 파일 시스템 및 상기 커널로부터 비주기적 실시간 태스크 정보 및 주기적 실시간 태스크 정보를 생성하는 단계;
    경성 실시간 수행 가능성 테스트 도구가 미리 설정되는 제 1 스케줄링 알고리즘을 적용하여 상기 비주기적 실시간 태스크 정보 및 상기 비주기적 실시간 태스크로 구성된 주기적 실시간 태스크 그룹 정보들을 수집하는 단계; 및
    상기 경성 실시간 수행 가능성 테스트 도구가 미리 설정되는 제 2 스케줄링 알고리즘을 통해 상기 주기적 실시간 태스크 정보를 갖는 실시간 태스크 그룹내의 예약 자원에 대한 수행 가능성을 판단하는 단계; 포함하고,
    상기 운영체제는,
    주기적 실시간 태스크와 비주기적 실시간 태스크가 동시에 존재하는 것을 허용하고, 상기 비주기적 실시간 태스크를 주기적 실시간 태스크 그룹에 포함하여 CPU자원을 관리하고,
    상기 주기적 실시간 태스크는,
    상기 비주기적 실시간 태스크보다 높은 우선순위를 가지며,
    상기 비주기적 실시간 태스크는,
    각각의 상기 비주기적 실시간 태스크 내 속성으로 설정된 고정 우선순위를 기반으로 상기 비주기적 실시간 태스크 간 스케줄링 우선순위가 결정되며,
    상기 주기적 실시간 태스크 그룹은,
    상기 비주기적 실시간 태스크를 포함하며, 주기 및 실행시간의 속성을 가지며, 상기 비주기적 실시간 태스크의 고정 우선순위에 대한 정보를 포함하지 않고,
    상기 경성 실시간 수행 가능성 테스트 도구는,
    상기 비주기적 실시간 태스크 정보 및 상기 비주기적 실시간 태스크로 구성된 주기적 실시간 태스크 그룹의 정보들을 수집하는 비주기적 실시간 태스크 정보 수집 모듈;
    상기 주기적 실시간 태스크 정보를 수집하는 주기적 실시간 태스크 정보 수집 모듈; 및
    상기 비주기적 실시간 태스크 정보 수집 모듈 및 주기적 실시간 태스크 정보 수집 모듈로부터 수집한 스케줄러의 정보를 통하여 주기적 실시간 태스크 그룹내의 예약 자원에 대한 수행 가능성을 판단하는 수행 가능성 테스트 모듈;을 포함하고,
    상기 수행 가능성 테스트 모듈은,
    상기 비주기적 실시간 태스크 정보 수집 모듈 및 주기적 실시간 태스크 정보 수집 모듈로부터 수집한 스케줄러의 정보를 통하여 수행 가능성 분석 대상과 수행 가능성 분석 연산 대상을 판단하여 각 각 해당 집합에 추가 하고, 상기 수행 가능성 분석 대상 집합의 처음부터 끝까지 탐색하여 수행가능성 연산을 수행하며, 상기 수행가능성 분석 대상 집합의 끝까지 수행 가능성 연산을 통과하면 상기 실시간 태스크 그룹내의 예약 자원에 대해 실행 가능으로 판정하고, 상기 수행 가능성 분석 도중 수행 가능성 연산을 통과하지 못하는 태스크 그룹이 존재하면 상기 실시간 태스크 그룹내의 예약 자원에 대해 실행 불가능으로 판정하며,
    상기 수행 가능성 분석 대상은, 상기 비주기적 실시간 태스크 그룹으로 구성된 주기적 실시간 태스크 그룹을 대상으로 구성되며,
    상기 수행가능성 분석 연산 대상은, 상기 수행 가능성 분석 대상보다 비교적 높은 우선순위를 가지는 비주기적 실시간 태스크를 포함하는 주기적 실시간 태스크 그룹 또는 주기적 실시간 태스크를 대상으로 구성되며,
    상기 수행 가능성 연산은,
    각 CPU에 허용된 실시간 자원에 대해 상기 수행 가능성 분석 연산 대상 에 해당하는 상기 비주기적 태스크와 상기 주기적 태스크가 선점하고 남은 실행시간이 상기 수행가능성 분석 대상이 요구하는 실행시간을 만족하는 경우 실행 가능으로 판단하며,
    상기 수행가능성 분석 대상의 CPU를 선점 가능한 태스크 또는 태스크 그룹은,
    상기 수행가능성 분석 연산 대상과, 상기 수행가능성 분석 대상의 집합 내에서 현재 수행가능성 분석 대상의 최소 우선순위보다 높은 최대 우선순위를 갖는 모든 주기적 실시간 태스크 그룹이며,
    상기 수행 가능성 분석 연산 대상이 선점하는 실행시간은 수학식
    Figure 112017016035063-pat00096
    (여기서,
    Figure 112017016035063-pat00097
    Figure 112017016035063-pat00098
    은 자연수로 각 태스크의 우선순위 크기를 높은 순으로 나타낸다. 즉, 가장 높은 우선순위를 갖는 태스크는
    Figure 112017016035063-pat00099
    으로 표현된다. 따라서,
    Figure 112017016035063-pat00100
    Figure 112017016035063-pat00101
    번째 우선순위를 갖는 태스크를 표현하며,
    Figure 112017016035063-pat00102
    값이 커질수록 상대적으로 낮은 우선순위를 갖는 태스크를 표현되며, 현재 수행 가능성 분석 대상이
    Figure 112017016035063-pat00103
    번째 우선순위를 갖는 경우 수행 가능성 분석 대상을
    Figure 112017016035063-pat00104
    으로 표현하며,
    Figure 112017016035063-pat00105
    Figure 112017016035063-pat00106
    의 주기를 나타내며,
    Figure 112017016035063-pat00107
    Figure 112017016035063-pat00108
    의 실행시간을 나타낸다. 수행 가능성 분석 대상보다 높은 우선순위를 갖는 태스크 그룹 또는 주기적 실시간 태스크 는
    Figure 112017016035063-pat00109
    와 같이 표현된다.
    Figure 112017016035063-pat00110
    의 주기는
    Figure 112017016035063-pat00111
    으로 나타내며,
    Figure 112017016035063-pat00112
    의 실행시간은
    Figure 112017016035063-pat00113
    로 나타낸다. 이때,
    Figure 112017016035063-pat00114
    는 1과
    Figure 112017016035063-pat00115
    사이의 자연수로 나타난다)에 의해 산출되는 것을 특징으로 하는 경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 방법.
KR1020160026111A 2016-03-04 2016-03-04 경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 방법 및 장치 KR101733534B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160026111A KR101733534B1 (ko) 2016-03-04 2016-03-04 경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 방법 및 장치
US15/440,052 US10296381B2 (en) 2016-03-04 2017-02-23 Method and system for analyzing task group schedulability for hard real-time scheduling

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160026111A KR101733534B1 (ko) 2016-03-04 2016-03-04 경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101733534B1 true KR101733534B1 (ko) 2017-05-24

Family

ID=59051191

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160026111A KR101733534B1 (ko) 2016-03-04 2016-03-04 경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 방법 및 장치

Country Status (2)

Country Link
US (1) US10296381B2 (ko)
KR (1) KR101733534B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190060436A (ko) 2017-11-24 2019-06-03 성균관대학교산학협력단 다중 사용자 환경에서 사용자 기반 리소스 스케쥴링 방법
KR101958112B1 (ko) * 2017-09-29 2019-07-04 건국대학교 산학협력단 태스크 스케줄링 장치 및 태스크 스케줄링 방법
CN110109743A (zh) * 2019-05-09 2019-08-09 中国航空工业集团公司西安航空计算技术研究所 一种实时进程调度方法
KR20210034195A (ko) * 2019-09-20 2021-03-30 인천대학교 산학협력단 실시간 시스템에서의 작업 할당 스케줄링이 가능한지 여부를 판정할 수 있는 실시간성 분석 장치 및 그 동작 방법
KR20210034189A (ko) * 2019-09-20 2021-03-30 인천대학교 산학협력단 실시간 시스템을 위한 실시간성 분석 장치 및 그 동작 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000047884A (ja) * 1998-07-28 2000-02-18 Toshiba Corp スケジューリング解析装置、スケジューリング解析方法及びスケジューリング解析用プログラムを記録した媒体

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8145760B2 (en) * 2006-07-24 2012-03-27 Northwestern University Methods and systems for automatic inference and adaptation of virtualized computing environments
TWI326818B (en) * 2006-12-15 2010-07-01 Inst Information Industry Dynamic voltage scheduling method, system thereof and record medium
TWI408935B (zh) * 2007-12-21 2013-09-11 Inst Information Industry 封包傳送排程系統、方法與記錄媒體
WO2011044686A1 (en) 2009-10-16 2011-04-21 Cogent Real-Time Systems Inc. System and method for providing real-time data
KR101901587B1 (ko) 2011-12-13 2018-10-01 삼성전자주식회사 연성 실시간 운영체제의 실시간성을 확보하는 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000047884A (ja) * 1998-07-28 2000-02-18 Toshiba Corp スケジューリング解析装置、スケジューリング解析方法及びスケジューリング解析用プログラムを記録した媒体

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"경성 비주기적 태스크들을 위한 온라인 스케줄링 알고리즘", 김진석, 석사학위 논문(2001)*
"다중화 탑재 제어 시스템을 위한 경성 실시간 운영체제의 설계 및 구현", 김현철, 석사학위 논문(2004)*

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101958112B1 (ko) * 2017-09-29 2019-07-04 건국대학교 산학협력단 태스크 스케줄링 장치 및 태스크 스케줄링 방법
KR20190060436A (ko) 2017-11-24 2019-06-03 성균관대학교산학협력단 다중 사용자 환경에서 사용자 기반 리소스 스케쥴링 방법
CN110109743A (zh) * 2019-05-09 2019-08-09 中国航空工业集团公司西安航空计算技术研究所 一种实时进程调度方法
CN110109743B (zh) * 2019-05-09 2023-07-21 中国航空工业集团公司西安航空计算技术研究所 一种实时进程调度方法
KR20210034195A (ko) * 2019-09-20 2021-03-30 인천대학교 산학협력단 실시간 시스템에서의 작업 할당 스케줄링이 가능한지 여부를 판정할 수 있는 실시간성 분석 장치 및 그 동작 방법
KR20210034189A (ko) * 2019-09-20 2021-03-30 인천대학교 산학협력단 실시간 시스템을 위한 실시간성 분석 장치 및 그 동작 방법
KR102252079B1 (ko) * 2019-09-20 2021-05-13 인천대학교 산학협력단 실시간 시스템을 위한 실시간성 분석 장치 및 그 동작 방법
KR102264205B1 (ko) * 2019-09-20 2021-06-10 인천대학교 산학협력단 실시간 시스템에서의 작업 할당 스케줄링이 가능한지 여부를 판정할 수 있는 실시간성 분석 장치 및 그 동작 방법

Also Published As

Publication number Publication date
US10296381B2 (en) 2019-05-21
US20170255488A1 (en) 2017-09-07

Similar Documents

Publication Publication Date Title
KR101733534B1 (ko) 경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 방법 및 장치
US10031774B2 (en) Scheduling multi-phase computing jobs
EP0961204A2 (en) Thread based governor for time scheduled process execution
US9015724B2 (en) Job dispatching with scheduler record updates containing characteristics combinations of job characteristics
US8595743B2 (en) Network aware process scheduling
US20120222043A1 (en) Process Scheduling Using Scheduling Graph to Minimize Managed Elements
US8434085B2 (en) Scalable scheduling of tasks in heterogeneous systems
CN106874084B (zh) 一种分布式工作流调度的方法、装置及计算机设备
US20170004019A1 (en) System and method for mobile augmented reality task scheduling
CN109976989B (zh) 跨节点应用性能监测方法、装置及高性能计算系统
JP2012511204A (ja) リソースを最適化するためのタスク再編成方法
Singh An algorithm to reduce the time complexity of earliest deadline first scheduling algorithm in real-time system
JP2003044295A (ja) スリープキュー管理
Liu et al. Preemptive hadoop jobs scheduling under a deadline
CN110119307B (zh) 数据处理请求的处理方法、装置、存储介质及电子装置
Ling et al. Blastnet: Exploiting duo-blocks for cross-processor real-time dnn inference
Thekkilakattil et al. The global limited preemptive earliest deadline first feasibility of sporadic real-time tasks
CA2631255A1 (en) Scalable scheduling of tasks in heterogeneous systems
Naik et al. A review of adaptive approaches to MapReduce scheduling in heterogeneous environments
US8973007B1 (en) Adaptive lock list searching of waiting threads
Benoit et al. Scheduling skeleton-based grid applications using PEPA and NWS
Qureshi et al. Maintaining the feasibility of hard real-time systems with a reduced number of priority levels
JP2000207248A (ja) 並列プログラムの挙動生成装置及び方法並びに並列プログラムの挙動生成用ソフトウェアを記録した記録媒体
Kang et al. Analysis and solution of non-preemptive policies for scheduling readers and writers
Singh et al. Mixed criticality scheduling of probabilistic real-time systems

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant