KR101733339B1 - 사이버 물리 시스템을 위한 보안 제약 사항을 포함하는 실시간 스케줄링 장치 및 방법 - Google Patents

사이버 물리 시스템을 위한 보안 제약 사항을 포함하는 실시간 스케줄링 장치 및 방법 Download PDF

Info

Publication number
KR101733339B1
KR101733339B1 KR1020160006626A KR20160006626A KR101733339B1 KR 101733339 B1 KR101733339 B1 KR 101733339B1 KR 1020160006626 A KR1020160006626 A KR 1020160006626A KR 20160006626 A KR20160006626 A KR 20160006626A KR 101733339 B1 KR101733339 B1 KR 101733339B1
Authority
KR
South Korea
Prior art keywords
task
time
tasks
scheduling
real
Prior art date
Application number
KR1020160006626A
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 KR1020160006626A priority Critical patent/KR101733339B1/ko
Application granted granted Critical
Publication of KR101733339B1 publication Critical patent/KR101733339B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

사이버 물리 시스템을 위한 보안 제약 사항을 포함하는 실시간 스케줄링 장치 및 방법을 개시한다. 실시간 스케줄링 방법은 복수의 태스크들 각각에 대한 보안 레벨을 식별하는 단계; 상기 보안 레벨에 따라 상기 복수의 태스크들에 대한 우선 순위를 결정하는 단계; 상기 우선 순위에 기초하여 상기 복수의 태스크들을 스케줄링하는 단계를 포함하고, 상기 스케줄링하는 단계는 상기 복수의 태스크들에 대해 제1 태스크보다 보안 레벨이 높은 제2 태스크의 실행 결과를 제1 태스크가 이용하지 못하도록, 제2 태스크의 실행 결과를 삭제하는 플러시 태스크를 제2 태스크의 작업들 사이에 할당할 수 있다.

Description

사이버 물리 시스템을 위한 보안 제약 사항을 포함하는 실시간 스케줄링 장치 및 방법{REAL-TIME SCHEDULING APPARATUS AND METHOD FOR CYBER PHYSICAL SYSTEMS INCORPORATING SECURITY CONSTRAINT}
본 발명은 사이버 물리 시스템을 위한 보안 제약 사항을 포함하는 실시간 스케줄링 장치 및 방법에 관한 것으로, 보다 구체적으로는 복수의 태스크들을 스케줄링 할 때, 플러시 태스크(flush task)의 비용을 고려하여 스케줄링하는 장치 및 방법에 관한 것이다.
임베디드 시스템은 특정한 기능을 수행할 수 있도록 설계되었고, 현재 임베디드 시스템은 컴퓨팅 및 제어 기술이 발전해 온 것처럼 매우 복잡한 구조로 진화해 왔다. 이러한 사이버 물리 시스템은 고성능, 실시간, 그리고 높은 수준의 안정성 및 보안성을 동시에 충족할 필요가 있다.
사이버 물리 시스템(Cyber Physical System, CPS)은 여러 물리적 장치를 제어하는 컴퓨터 시스템이다. 무인 비행기는 사이버 물리 시스템의 한 예일 수 있다. 왜냐하면 무인 비행기는 장애물을 피하기 위해 경로를 탐색하는 장치, 비행을 유지하기 위한 제어 장치, 추진 속도를 조정하는 장치, 비디오 스트림을 처리하기 위한 장치 등과 같이 다양한 물리적 장치를 조작하기 때문이다.
사이버 물리 시스템은 이와 같은 장치들을 실시간 스케줄링 알고리즘을 이용하여 적시에 수행할 수 있다.
많은 사이버 물리 시스템들은 보안에 민감한 데이터를 조작한다. 이러한 사이버 물리 시스템의 보안 성능을 향상시키는 것은 사이버 물리 시스템을 설계하는 가장 중요하면서도 어려운 문제이다. 비록 일반적인 목적의 PC와 관련된 연구들은 많이 존재해 왔지만 이와 같이 사이버 물리 시스템에 기밀성, 무결성 보호 및 가용성을 제공하는 기술들에 대한 효과적인 접근 방법은 없는 실정이다.
사이버 물리 시스템에서 시기 적절한 작업의 실행은 전형적으로 리얼-타임 스케줄링에 의존하는 것처럼, 기존의 보안 기술들을 사이버 물리 시스템에 직접 적용하는 것은 사이버 물리 시스템에서 실시간성을 손상시킬 수 있다.
따라서, 사이버 물리 시스템의 보안에 있어서, 실시간 요구 사항을 만족시키는 것은 사이버 물리 시스템의 설계에 고려되어야 하는 근본적인 문제이다.
이와 같은 이슈를 해결하기 위하여 기존의 기술들은 실시간성에 보안 제약을 추가하기 위한 접근을 제안하였다. 특히, 일부 연구들은 최단 마감 우선 스케줄링(Earliest Deadline First, EDF)을 향상시켜 실시간 기한을 충족하면서 보안 레벨을 극대화하는 것에 초점을 맞추었다.
이러한 접근은 다른 기술들과 비교하여 많은 장점들을 가진다. 이러한 기술들은 소프트웨어를 기반으로 한 접근이기 때문에 하드웨어를 기반으로 한 접근에 비해 효율적으로 사용하기가 쉽다. 이때, 이러한 기술들은 서로 다른 보안 수준의 실시간 작업 사이에서 정보의 유출 문제가 발생할 수 있다.
따라서, 서로 다른 보안 수준의 실시간 작업 사이에서 정보의 유출 문제를 해결하면서 사이버 물리 시스템의 실시간성을 충족할 수 있는 기술들이 요구되고 있다.
본 발명은 사이버 물리 시스템을 위한 보안 제약 사항을 포함하는 실시간 스케줄링 장치 및 방법에 관한 것으로, 보다 구체적으로는 플러시 태스크(flush task)의 비용을 고려하여 복수의 태스크들을 스케줄링하는 장치 및 방법에 관한 것이다.
본 발명의 일실시예에 따른 실시간 스케줄링 방법은 복수의 태스크들 각각에 대한 보안 레벨을 식별하는 단계; 상기 보안 레벨에 따라 상기 복수의 태스크들에 대한 우선 순위를 결정하는 단계; 상기 우선 순위에 기초하여 상기 복수의 태스크들을 스케줄링하는 단계를 포함하고, 상기 스케줄링하는 단계는 상기 복수의 태스크들에 대해 제1 태스크보다 보안 레벨이 높은 제2 태스크의 실행 결과를 제1 태스크가 이용하지 못하도록, 제2 태스크의 실행 결과를 삭제하는 플러시 태스크를 제2 태스크의 작업들 사이에 할당할 수 있다.
상기 결정하는 단계는 복수의 태스크들 각각에 대해 보안 레벨이 높을수록 낮은 우선 순위를 할당할 수 있다.
상기 스케줄링하는 단계는 제1 태스크에서 제1 작업이 실행되는 시작 시점을 확인하는 단계; 상기 제1 작업이 실행되는 시작 시점 및 상기 플러시 태스크의 실행 시간에 기초하여 상기 제2 태스크에 대해 릴리스된 제2 작업의 시작 시점을 결정하는 단계를 포함하고, 상기 제1 작업은 상기 제2 태스크에서 제2 작업이 릴리스된 시점 이후에 제1 태스크에서 최초로 실행되는 작업일 수 있다.
상기 스케줄링하는 단계는 상기 제1 태스크에 대해 제1 작업이 실행되는 시점 및 상기 제2 태스크에 대해 제2 작업이 릴리스된 시점 간의 시간 차이보다 상기 플러시 태스크의 실행 시간이 작을 경우, 상기 릴리스된 제2 작업을 실행하고 상기 제1 작업이 실행되는 시점 이전에 플러시 태스크를 할당할 수 있다.
상기 스케줄링하는 단계는 상기 제1 태스크에 대해 제1 작업이 실행되는 시점 및 제2 태스크에 대해 제2 작업이 릴리스된 시점 간의 시간 차이보다 상기 플러시 태스크의 실행 시간이 클 경우, 상기 릴리스된 제2 작업의 실행을 상기 제1 태스크에 대해 제1 작업이 실행되는 시점 및 제2 태스크에 대해 제2 작업이 릴리스된 시점 간의 시간 차이에 따라 딜레이할 수 있다.
본 발명의 일실시예에 따른 실시간 스케줄링 방법은 복수의 태스크들의 보안 레벨을 고려하여 상기 복수의 태스크들의 처리 순서를 결정하는 단계; 상기 복수의 태스크들의 작업과 플러시 태스크를 고려하여 상기 복수의 태스크들 각각에 대해 스케줄링하는 단계를 포함하고, 상기 스케줄링하는 단계는 제1 보안 레벨을 가지는 제1 태스크를 스케줄링한 후 제1 보안 레벨보다 높은 제2 보안 레벨을 가지는 제2 태스크를 스케줄링하며, 상기 제2 태스크의 작업들은, 제1 태스크의 작업들에 대한 시작 시점과 플러시 태스크의 실행 시간을 고려하여 제2 태스크의 실행 구간 동안 할당될 수 있다.
상기 결정하는 단계는 복수의 태스크들의 보안 레벨이 높을수록 낮은 우선 순위를 할당할 수 있다.
본 발명의 일실시예에 따른 실시간 스케줄링 장치는 복수의 태스크들 각각에 대한 보안 레벨을 식별하는 식별부; 상기 보안 레벨에 따라 상기 복수의 태스크들에 대한 우선 순위를 결정하는 결정부; 상기 우선 순위에 기초하여 상기 복수의 태스크들을 스케줄링하는 스케줄링부를 포함하고, 상기 스케줄링부는 상기 복수의 태스크들에 대해 제1 태스크보다 보안 레벨이 높은 제2 태스크의 실행 결과를 제1 태스크가 이용하지 못하도록, 제2 태스크의 실행 결과를 삭제하는 플러시 태스크를 제2 태스크의 작업들 사이에 할당할 수 있다.
상기 결정부는 복수의 태스크들 각각에 대해 보안 레벨이 높을수록 낮은 우선 순위를 할당할 수 있다.
상기 스케줄링부는 제1 태스크에서 제1 작업이 실행되는 시작 시점을 확인하고, 상기 제1 작업이 실행되는 시작 시점 및 상기 플러시 태스크의 실행 시간에 기초하여 상기 제2 태스크에 대해 릴리스된 제2 작업의 시작 시점을 결정하며, 상기 제1 작업은 상기 제2 태스크에서 제2 작업이 릴리스된 시점 이후에 제1 태스크에서 최초로 실행되는 작업일 수 있다.
상기 스케줄링부는 상기 제1 태스크에 대해 제1 작업이 실행되는 시점 및 상기 제2 태스크에 대해 제2 작업이 릴리스된 시점 간의 시간 차이보다 상기 플러시 태스크의 실행 시간이 작을 경우, 상기 릴리스된 제2 작업을 실행하고 상기 제1 작업이 실행되는 시점 이전에 플러시 태스크를 할당할 수 있다.
상기 스케줄링부는 상기 제1 태스크에 대해 제1 작업이 실행되는 시점 및 제2 태스크에 대해 제2 작업이 릴리스된 시점 간의 시간 차이보다 상기 플러시 태스크의 실행 시간이 클 경우, 상기 릴리스된 제2 작업의 실행을 상기 제1 태스크에 대해 제1 작업이 실행되는 시점 및 제2 태스크에 대해 제2 작업이 릴리스된 시점 간의 시간 차이에 따라 딜레이할 수 있다.
본 발명의 일실시예에 따르면 플러시 태스크(flush task)의 비용을 고려하여 복수의 태스크들을 스케줄링 함으로써 보안 제약 사항을 포함하는 사이버 물리 시스템을 제공할 수 있다.
도 1은 본 발명의 일실시예에 실시간 스케줄링 장치의 개념도를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 실시간 스케줄링 장치가 수행하는 스케줄링 방법을 플로우챠트로 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 플러시 태스크 예약(flush task reservation)이 동작하는 2가지 방법을 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 테이블 1에 정의된 파라미터를 가지는 태스크들이 실시간 스케줄링 장치에 따라 스케줄링 되는 방법을 도시한 도면이다.
도 5는 본 발명의 일실시예에 따른 플러시 태스크 예약을 이용한 실시간 스케줄링 장치에 의해 스케줄링된 태스크들의 간섭 관계와 기존의 스케줄링 알고리즘이 적용된 플러시 태스크 할당을 비교한 결과를 도시한 도면이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~사이에"와 "바로~사이에" 또는 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예에 실시간 스케줄링 장치의 개념도를 도시한 도면이다.
실시간 스케줄링 장치(100)는 서로 다른 보안 레벨을 가지는 복수의 태스크들 사이에서 정보의 유출을 방지하면서도 실시간성을 충족할 수 있도록 복수의 태스크들을 스케줄링할 수 있다.
구체적으로 실시간 스케줄링 장치(100)는 서로 다른 보안 레벨을 가지는 복수의 태스크(140~160)들 사이의 스케줄링 방법을 제공할 수 있다. 예를 들어, 두 개의 리얼-타임(real-time) 태스크(140, 150)를 고려한 간단한 예를 가정할 수 있다. 이때, 제1 태스크(140)는 제2 태스크(150)에 비해 낮은 보안 레벨을 가진다고 가정하자. 그렇다면 실시간 스케줄링 장치(100)는 제1 태스크(140)를 제2 태스크(150) 보다 높은 우선 순위를 가지도록 처리할 수 있다.
즉, 실시간 스케줄링 장치(100)가 제1 태스크(140)와 제2 태스크(150)를 스케줄링 할 때, 제1 태스크(140)를 우선 순위로 스케줄링 한다는 것을 의미할 수 있다.
예를 들어, 무인 항공기(unmanned aerial vehicle, UAV)의 비행 제어 모듈은 무인 항공기에서 핵심적인 기능을 제공하기 때문에 높은 보안 레벨을 가질 수 있다. 이와는 달리 무인 항공기의 센싱 모듈은 비행 제어 모듈에 비해 비교적 낮은 보안 레벨을 가질 수 있다.
따라서, 실시간 스케줄링 장치(100)는 비행 제어 모듈에 비해 낮은 보안 레벨을 가지는 센싱 모듈(제1 태스크)에 높은 우선 순위를 할당하고, 비행 제어 모듈(제2 태스크)은 센싱 모듈에 비해 낮은 우선 순위를 할당할 수 있다.
실시간 스케줄링 장치(100)는 할당된 우선 순위에 따라 제1 태스크(140)와 제2 태스크(150)를 스케줄링할 수 있으며, 스케줄링 결과에 따라 제1 태스크(140)와 제2 태스크(150)는 각각 할당된 복수의 작업(job)들을 실행할 수 있다.
이때 보안 레벨이 높은 제2 태스크의 처리 결과는 제2 태스크에 비해 보안 레벨이 낮은 제1 태스크의 처리 결과보다 중요한 정보일 수 있다. 즉, 보안 레벨이 높은 비행 제어 모듈의 처리 결과는 무인 항공기의 진로나 비행 자세를 자동적으로 조정할 수 있다는 점에서 무인 항공기의 핵심적인 정보를 포함할 수 있다. 이에 비해 보안 레벨이 낮은 센싱 모듈의 처리 결과는 비행 제어 모듈의 처리 결과에 비해 중요성이 떨어질 수 있다.
따라서, 제2 태스크의 처리 결과 발생하는 정보를 제1 태스크가 이용하는 것은 정보의 유출 문제를 발생시킬 수 있기 때문에 위험할 수 있다. 왜냐하면 제1 태스크는 제2 태스크에 비해 보안 레벨이 낮기 때문에 그만큼 정보의 유출 가능성도 높아지기 때문이다.
따라서, 실시간 스케줄링 장치(100)는 낮은 보안 레벨을 가지는 태스크들에 의해 정보가 유출되는 것을 방지하기 위한 스케줄링 방법이 필요하다.
기존의 고정된 우선 순위 스케줄링 알고리즘을 이용하여 상기 두 개의 태스크들(140, 150)을 스케줄링하면, 제1 태스크보다 보안 레벨이 높은 제2 태스크는 제1 태스크의 실행 이후에 즉시 실행될 가능성이 높다.
실시간 스케줄링 장치(100)가 스케줄링 하는 복수의 태스크들은 각각의 작업(job)들을 실행할 때 캐시 메모리와 같은 공유 자원들을 이용할 수 있다. 보안 레벨이 낮은 제1 태스크의 작업이 실행된 이후 보안 레벨이 높은 제2 태스크의 작업이 실행되는 경우는 정보의 유출 문제가 발생하지 않는다.
그러나 보안 레벨이 높은 제2 태스크의 작업이 실행된 이후 제2 태스크의 작업의 실행 결과에 대한 별도의 처리 과정 없이 보안 레벨이 낮은 제1 태스크의 작업이 즉시 실행되는 경우, 제1 태스크를 통해 정보의 유출 문제가 발생할 수 있다.
왜냐하면 제1 태스크가 실시간 스케줄링 장치(100)에 의해 스케줄링 된 작업을 실행하기 위해 공유 자원인 캐시 메모리를 검사하는 경우, 제1 태스크는 캐시 메모리에 여전히 남아있는 제2 태스크의 처리 결과에 대한 민감한 정보를 획득할 수 있기 때문이다.
다시 말하자면, 복수의 태스크들은 작업을 수행하기 위해 캐시 메모리와 같은 공유 자원을 이용할 수 있고, 각각의 태스크들은 실시간 스케줄링 장치(100)에 의해 스케줄링된 작업을 실행하는 과정에서 캐시 메모리에 해당 작업과 관련된 정보를 남길 수 있다.
만약 제2 태스크의 작업이 실행된 이후 제2 태스크에 비해 보안 레벨이 낮은 제1 태스크의 작업이 실행되는 경우, 제1 태스크는 스케줄링된 작업을 실행하기 위해 공유 자원인 캐시 메모리를 이용할 수 있다. 이 과정에서 만약 제2 태스크의 작업이 실행되면서 캐시 메모리에 남겨진 정보가 삭제되지 않았다면 제1 태스크는 스케줄링된 작업을 실행하면서 캐시 메모리를 검사하여 제2 태스크의 작업과 관련된 정보를 획득할 수 있다.
따라서, 다른 태스크들의 의해 미리 사용된 공유 자원들의 상태를 플러싱(flushing)하는 것은 해당 공유 자원들이 가진 취약점에 대한 많은 공격들을 사전에 방지할 수 있는 해결책이 될 수 있다.
다시 말하자면, 제1 태스크가 스케줄링된 작업을 실행하기 전에 캐시 메모리와 같은 공유 자원에서 제2 태스크의 작업과 관련된 정보를 플러싱(비움)으로써 제1 태스크가 제2 태스크의 작업과 관련된 정보에 접근하는 것을 방지할 수 있다.
만약 공유 자원이 캐시 메모리인 경우, 제2 태스크가 작업을 실행함으로써 공유된 캐시 메모리에 남겨진 제2 태스크의 작업과 관련된 정보를 삭제하기 위해 수행하는 플러시 태스크는 얼마간의 실행 시간이 필요할 수 있다.
즉, 플러시 태스크는 이전에 할당된 태스크에 의해 발생된 정보를 삭제하여 이후에 할당되는 태스크가 이전에 할당된 태스크에 의해 발생된 정보에 접근하지 못하도록 하는 작업을 의미할 수 있다.
만약 공유 자원이 디스크인 경우, 플러시 태스크는 해당 디스크의 이전 상태의 노출을 피하기 위하여 헤드를 일부 초기 위치로 이동 시킬 수 있다. I/O 버스 또한 하나의 예가 될 수 있다. 새로운 태스크가 호출되었을 때, I/O 버스는 이전 태스트에 대한 정보를 가져올 수 있다.
이와 같은 경우, 타이밍 딜레이(timing delay)가 이전 태스크의 완료를 위해 사용될 수 있다. 이때, 타이밍 딜레이는 플러시 태스크가 실행되는 실행 시간을 의미할 수 있다. 일반적으로 공유 자원에 플러시 태스크 메커니즘을 적용하는 것은 타이밍 오버헤드(timing overhead)를 요구하고, 실시간 스케줄링 장치(100)는 효과적인 스케줄링과 스케줄링 가능성 분석을 위하여 이와 같은 오버헤드(overhead)를 알아야 한다.
<플러시 태스크 메커니즘>
실시간 스케줄링 장치(100)가 제공하는 실시간 스케줄링과 스케줄링 가능성은 정보 유출 문제를 다루기 위해 보안 제약을 적용할 수 있다. 즉, 제1 태스크가 스케줄되기 전에, 타이밍 딜레이가 제2 태스크의 실행 이후에 공유 자원들의 상태를 플러싱하는데 사용될 수 있다. 다시 말하면 실시간 스케줄링 장치(100)는 제1 태스크가 스케쥴링된 작업을 실행하기 전에 제2 태스크가 스케줄링된 작업을 실행하면서 공유 자원들에 남겨진 제2 태스크의 작업과 관련된 정보를 플러싱하기 위해 타이밍 패널티를 사용할 수 있다.
이러한 제약 조건을 만족시키기 위해, 실시간 스케줄링 장치(100)는 제2 태스크의 작업이 실행된 후, 그리고 제1 태스크의 작업이 실행되기 전의 모든 전이 과정에서 일정한 실행 시간이 소비되는 플러시 태스크를 할당할 수 있다.
이때, 할당되는 플러시 태스크는 가장 높은 우선 순위를 가질 수 있고, 이후 실행되는 태스크가 최근 사용된 공유 자원에 존재하는 이전 태스크의 작업에 대한 정보들에 접근할 수 없도록 공유 자원에 존재하는 정보들을 플러싱 할 수 있다.
그러나 이와 같은 방식의 플러시 태스크 할당은 우선 순위가 높은 태스크의 작업이 실행되는 것을 방해할 수 있다. 위에서 언급한 바와 같이 플러시 태스크는 가장 높은 우선 순위를 가질 수 있다. 따라서 제2 태스크의 작업이 실행된 이후 플러시 태스크가 할당되었을 때, 플러시 태스크의 실행 시간보다 짧은 시간 이후 제1 태스크의 작업이 실행된다면 제1 태스크의 작업은 플러시 태스크에 의해 간섭을 받을 수 있다.
본 발명에서 제시하는 실시간 스케줄링 장치(100)는 LSF(Lowest Security-level First)를 이용하여 복수의 태스크들 각각에 대해 보안 레벨이 높을수록 낮은 우선 순위를 할당할 수 있다.
실시간 스케줄링 장치(100)는 제1 태스크에 비해 낮은 우선 순위를 가지는 제2 태스크의 작업이 릴리스 되었을 때, 이후 제1 태스크에 대한 최초의 작업을 인식하고, 인식된 제1 태스크에 대한 최초의 작업을 고려하여 플러시 태스크를 할당할 수 있다. 이와 같이 실시간 스케줄링 장치(100)가 플러시 태스크를 할당하는 메커니즘을 플러시 태스크 예약(flush task reservation)으로 정의할 수 있다.
도 2는 본 발명의 일실시예에 따른 실시간 스케줄링 장치가 수행하는 스케줄링 방법을 플로우챠트로 도시한 도면이다.
단계(210)에서 실시간 스케줄링 장치(100)는 복수의 태스크들 각각에 대한 보안 레벨을 식별할 수 있다. 위에서 언급한 바와 같이 사이버 물리 시스템은 복수의 물리적 장치를 제어하는 컴퓨터 시스템일 수 있다. 이때, 사이버 물리 시스템을 구성하는 복수의 물리적 장치는 그 중요도에 따라 서로 다른 보안 레벨을 가질 수 있다. 예를 들어, 해당 물리적 장치가 사이버 물리 시스템에서 중요한 기능을 수행한다면 높은 보안 레벨을 가질 수 있고, 그렇지 않다면 낮은 보안 레벨을 가질 수 가질 수 있다. 실시간 스케줄링 장치(100)는 이와 같이 사이버 물리 시스템의 물리적 장치에 해당하는 복수의 태스크들 각각의 보안 레벨을 식별할 수 있다. 구체적으로 실시간 스케줄링 장치(100) 내의 식별부(110)가 해당 기능을 수행할 수 있다.
단계(220)에서 실시간 스케줄링 장치(100)는 식별부(110)에 의해 식별된 복수의 태스크들 각각에 대한 보안 레벨에 따라 복수의 태스크들에 대한 우선 순위를 결정할 수 있다.
이때, 실시간 스케줄링 장치(100)는 LSF(Lowest Security-level First)를 이용하여 복수의 태스크들 각각에 대해 보안 레벨이 높을수록 낮은 우선 순위를 할당할 수 있다. 구체적으로 실시간 스케줄링 장치(100) 내의 결정부(120)가 해당 기능을 수행할 수 있다.
단계(230)에서 실시간 스케줄링 장치(100)는 결정부(120)를 통해 결정된 복수의 태스크들 각각의 우선 순위에 기초하여 복수의 태스크들을 스케줄링할 수 있다. 실시간 스케줄링 장치(100)는 복수의 태스크들 중 가장 높은 우선 순위를 가지는 태스크에 대한 복수의 작업들을 스케줄링할 수 있다.
이후, 실시간 스케줄링 장치(100)는 스케줄링된 높은 우선 순위를 가지는 태스크에 대한 작업들과 플러시 태스크를 실행하는데 필요한 시간을 고려하여 낮은 우선 순위를 가지는 태스크에 대한 작업들을 스케줄링할 수 있다.
구체적으로 실시간 스케줄링 장치(100)가 플러시 태스크를 할당하는 방법은 도 3을 통해 설명하도록 한다.
도 3은 본 발명의 일실시예에 따른 플러시 태스크 예약(flush task reservation)이 동작하는 2가지 방법을 도시한 도면이다.
실시간 스케줄링 장치(100)는 플러시 태스크가 할당되는 태스크와 해당 태스크 보다 우선 순위가 높은 태스크에서 실행되는 작업 간의 관계에 따라 2가지 방법으로 플러시 태스크를 할당할 수 있다.
도 3은 서로 다른 보안 레벨을 가지는 태스크들(
Figure 112016006133835-pat00001
,
Figure 112016006133835-pat00002
) 사이에서 실시간 스케줄링 장치(100)가 플러시 태스크를 할당하는 방법을 설명하고 있다. 이때, 태스크(
Figure 112016006133835-pat00003
)이 태스크(
Figure 112016006133835-pat00004
)보다 낮은 보안 레벨을 가진다. 즉, 태스크(
Figure 112016006133835-pat00005
)이 태스크(
Figure 112016006133835-pat00006
)보다 높은 우선 순위를 가진다.
먼저, 시점 t에서 태스크(
Figure 112016006133835-pat00007
)에 대한 작업(
Figure 112016006133835-pat00008
)이 바로 릴리스 되거나 어떤 높은 우선 순위를 가지는 작업으로부터 선점된 이후에 작업(
Figure 112016006133835-pat00009
)의 실행이 재개될 때, 태스크(
Figure 112016006133835-pat00010
)에 대한 최초의 작업(
Figure 112016006133835-pat00011
)은 시점 t'에서 릴리스 된다고 가정하자. 이때, 시점 t'는 시점 t보다 크고
Figure 112016006133835-pat00012
는 플러시 태스크의 실행 시간을 의미한다.
(I)
Figure 112016006133835-pat00013
만약 도 3의 (a)와 같이 태스크(
Figure 112016006133835-pat00014
)에 대한 최초의 작업(
Figure 112016006133835-pat00015
)이 실행되는 시점 및 태스크(
Figure 112016006133835-pat00016
)에 대한 작업(
Figure 112016006133835-pat00017
)이 릴리스되는 시점 간의 시간 차이가 플러시 태스크의 실행 시간보다 작은 경우, 실시간 스케줄링 장치(100)는 릴리스된 작업(
Figure 112016006133835-pat00018
)를 실행하고, 작업(
Figure 112016006133835-pat00019
)이 실행되는 시점 이전에 플러시 태스크(
Figure 112016006133835-pat00020
)를 할당할 수 있다.
이를 통해 실시간 스케줄링 장치(100)는 보안 레벨이 높은 태스크(
Figure 112016006133835-pat00021
)의 작업(
Figure 112016006133835-pat00022
)가 실행되면서 캐시 메모리와 같은 공유 자원에 남겨진 정보를 플러싱함으로써 상기 정보가 보안 레벨이 낮은 태스크(
Figure 112016006133835-pat00023
)에 유출되는 것을 방지할 수 있다.
(II)
Figure 112016006133835-pat00024
만약 도 3의 (b)와 같이 태스크(
Figure 112016006133835-pat00025
)에 대한 최초의 작업(
Figure 112016006133835-pat00026
)이 실행되는 시점 및 태스크(
Figure 112016006133835-pat00027
)에 대한 작업(
Figure 112016006133835-pat00028
)이 릴리스되는 시점 간의 시간 차이가 플러시 태스크의 실행 시간보다 작은 경우, 실시간 스케줄링 장치(100)는 태스크(
Figure 112016006133835-pat00029
)에 대한 작업(
Figure 112016006133835-pat00030
)의 실행을 딜레이할 수 있다.
이때, 실시간 스케줄링 장치(100)는 태스크(
Figure 112016006133835-pat00031
)에 대한 최초의 작업(
Figure 112016006133835-pat00032
)이 실행되는 시점 및 태스크(
Figure 112016006133835-pat00033
)에 대한 작업(
Figure 112016006133835-pat00034
)이 릴리스되는 시점 간의 시간 차이에 따라 태스크(
Figure 112016006133835-pat00035
)에 대한 작업(
Figure 112016006133835-pat00036
)의 실행을 딜레이할 수 있다.
위에서 언급한 바와 같이 실시간 스케줄링 장치(100)는 태스크(
Figure 112016006133835-pat00037
)에 대한 작업(
Figure 112016006133835-pat00038
)이 실행되면서 공유 자원에 남겨진 정보를 태스크(
Figure 112016006133835-pat00039
)이 이용할 수 없도록 플러시 태스크(
Figure 112016006133835-pat00040
)를 할당할 수 있다. 그러나 할당된 플러시 태스크(
Figure 112016006133835-pat00041
)를 실행하는데 필요한 시간 보다 태스크(
Figure 112016006133835-pat00042
)에 대한 최초의 작업(
Figure 112016006133835-pat00043
)이 실행되는 시점 및 태스크(
Figure 112016006133835-pat00044
)에 대한 작업(
Figure 112016006133835-pat00045
)이 릴리스되는 시점 간의 시간 차이가 작은 것을 볼 수 있다.
만약 실시간 스케줄링 장치(100)가 태스크(
Figure 112016006133835-pat00046
)에 대한 작업(
Figure 112016006133835-pat00047
)의 실행 이후에 즉시 플러시 태스크(
Figure 112016006133835-pat00048
)를 할당한다면, 할당된 플러시 태스크(
Figure 112016006133835-pat00049
)에 의해 태스크(
Figure 112016006133835-pat00050
)에 대한 최초의 작업(
Figure 112016006133835-pat00051
)이 간섭 받을 수 있다. 이는 플러시 태스크의 스케줄링 우선 순위가 가장 높기 때문이다.
이와 같은 플러시 태스크가 동작하는 두 가지 경우에 대해 실시간 스케줄링 장치(100)는 보안 제약을 만족시킬 수 있다. 이때, 높은 우선 순위를 가지는 태스크(
Figure 112016006133835-pat00052
)에 대한 작업(
Figure 112016006133835-pat00053
)은 실시간 스케줄링 장치(100)에 할당되는 플러시 태스크(
Figure 112016006133835-pat00054
)로부터 어떠한 간섭도 없이 실행될 수 있다.
플러시 태스크 예약을 사용하는 실시간 스케줄링 장치(100)와는 달리, 기존의 스케줄링 알고리즘에 따른 기존 스케줄러는 플러시 태스크 예약에 대해 그리디(greedy) 접근을 적용한다. 즉, 기존의 스케줄러는 가장 최근에 종료된 작업이 이후에 스케줄링되는 작업 보다 높은 보안 레벨을 가지는 경우 즉시 플러시 태스크가 할당될 수 있다.
즉, 릴리스되어 실행 종료된 태스크의 작업이 이후에 스케줄링되는 태스크의 작업 보다 높은 보안 레벨을 가지는 경우, 기존의 스케줄러는 이후에 스케줄링되는 태스크의 작업에 대한 고려 없이 무조건으로 플러시 태스크를 호출할 수 있다.
이와 같은 간단한 메커니즘은 플러시 태스크가 해당 플러시 태스크가 할당된 태스크 보다 높은 우선 순위를 가지는 태스크에 대한 간섭을 유발할 수 있는 원인이 된다. 왜냐하면 기존의 스케줄러에 의한 플러시 태스크의 할당은 보다 높은 우선 순위를 가지는 태스크들의 작업들이 릴리스되는 시점에 대한 고려 없이 할당되기 때문이다.
만약 도 3의 (b)의 경우에 대해 기존의 스케줄러를 이용하면, 태스크(
Figure 112016006133835-pat00055
)에 대한 최초의 작업 작업(
Figure 112016006133835-pat00056
)의 실행은, 비록 작업(
Figure 112016006133835-pat00057
)이 태스크(
Figure 112016006133835-pat00058
)에 대한 작업(
Figure 112016006133835-pat00059
)보다 높은 우선 순위를 가지더라도, 작업(
Figure 112016006133835-pat00060
)의 실행 이후에 할당된 플러시 태스크(
Figure 112016006133835-pat00061
)에 의해 방해를 받을 수 있다.
따라서, 기존의 스케줄러에 따른 스케줄링 정책은 낮은 우선 순위를 가지는 작업의 행위에 의해 보다 높은 우선 순위를 가지는 작업의 실행이 영향을 받을 수 있다.
도 4는 본 발명의 일실시예에 따른 테이블 1에 정의된 파라미터를 가지는 태스크들이 실시간 스케줄링 장치에 따라 스케줄링 되는 방법을 도시한 도면이다.
이때, 실시간 스케줄링 장치(100)가 실행하는 플러시 태스크의 실행 시간(
Figure 112016006133835-pat00062
)은 2이다. 보안 레벨 또는 표 1에 기록된 순서에 따르면, 태스크(
Figure 112016006133835-pat00063
)는 태스크들 중 가장 높은 우선 순위를 가지고 태스크(
Figure 112016006133835-pat00064
)는 태스크들 중 가장 낮은 우선 순위를 가진다.
[표 1]
Figure 112016006133835-pat00065
도 4에서 볼 수 있듯이, 제1 플러시 태스크(
Figure 112016006133835-pat00066
)는 태스크(
Figure 112016006133835-pat00067
)의 제1 작업(
Figure 112016006133835-pat00068
)이 릴리스 되었을 때 태스크(
Figure 112016006133835-pat00069
)의 시간 1에서 예약된다. 그리고, 제1 플러시 태스크(
Figure 112016006133835-pat00070
)는 작업(
Figure 112016006133835-pat00071
)에 간섭을 피하기 위하여 시간 4에서 할당된다. 왜냐하면 태스크(
Figure 112016006133835-pat00072
)의 제2 작업(
Figure 112016006133835-pat00073
)는 시간 6에서 릴리스 될 예정이기 때문이다.
플러시 태스크 예약 정책이 적용됨에 따라, 태스크(
Figure 112016006133835-pat00074
)에서 태스크(
Figure 112016006133835-pat00075
)로의 정보 유출을 방지하기 위한 모든 플러시 태스크(
Figure 112016006133835-pat00076
)는 태스크(
Figure 112016006133835-pat00077
)의 모든 작업들의 실행에 대한 간섭 없이 할당될 수 있다.
태스크(
Figure 112016006133835-pat00078
)는 태스크들 중 가장 낮은 우선 순위를 가지고 있으므로, 모든 플러시 태스크들(
Figure 112016006133835-pat00079
Figure 112016006133835-pat00080
)은 태스크들(
Figure 112016006133835-pat00081
Figure 112016006133835-pat00082
)에 대한 작업들의 릴리스 시간을 고려해야 한다.
작업(
Figure 112016006133835-pat00083
)에서 작업(
Figure 112016006133835-pat00084
)로의 정보 유출을 방지하기 위하여, 플러시 태스크가 할당되어야 한다. 왜냐하면 보다 낮은 보안 레벨을 가지는 작업(
Figure 112016006133835-pat00085
)가 시간 6에서 릴리스될 예정이기 때문이다.
그러나 실시간 스케줄링 장치(100)는 플러시 태스크(
Figure 112016006133835-pat00086
)을 할당할 필요가 없다. 왜냐하면 플러시 태스크(
Figure 112016006133835-pat00087
)이 이미 시간 4에서 할당되었기 때문이다. 시간 4에서 할당된 플러시 태스크(
Figure 112016006133835-pat00088
)는 작업(
Figure 112016006133835-pat00089
)에서 작업(
Figure 112016006133835-pat00090
)로의 정보 유출을 방지할 수 있다.
이것은 도 3의 (a)의 특별한 경우에 해당할 수 있다. 시간 13에서 작업(
Figure 112016006133835-pat00091
)은 실행될 준비가 되어 있지만 작업(
Figure 112016006133835-pat00092
)의 실행은 연기될 수 있다. 왜냐하면 만약 시간 13에서 작업(
Figure 112016006133835-pat00093
)가 실행될 경우, 실시간 스케줄링 장치(100)는 작업(
Figure 112016006133835-pat00094
)에서 작업(
Figure 112016006133835-pat00095
)으로의 정보 유출을 방지하기 위하여 작업(
Figure 112016006133835-pat00096
)의 실행 전에 플러시 태스크(
Figure 112016006133835-pat00097
)를 할당하여야 하기 때문이다. 그러나, 이와 같이 할당된 플러시 태스크(
Figure 112016006133835-pat00098
)가 실행되면 보다 높은 우선 순위를 가지는 작업(
Figure 112016006133835-pat00099
)이 간섭 받게 된다.
따라서, 이러한 간섭을 피하기 위하여 실시간 스케줄링 장치(100)는 작업(
Figure 112016006133835-pat00100
)의 실행을 딜레이하고 시간 15에서 재개할 수 있도록 스케줄링 할 수 있다. 이것은 도 3의 (b)의 경우에 대한 예이다.
도 4에서와 같이, 모든 작업들은 플러시 태스크 예약에 대한 메커니즘 덕분에 해당 작업들 보다 낮은 우선 순위를 가지는 작업들과 그에 대한 작업들과 관련된 플러시 태스크들의 실행으로부터 간섭을 받지 않을 수 있다.
도 5는 본 발명의 일실시예에 따른 플러시 태스크 예약을 이용한 실시간 스케줄링 장치에 의해 스케줄링된 태스크들의 간섭 관계와 기존의 스케줄링 알고리즘이 적용된 플러시 태스크 할당을 비교한 결과를 도시한 도면이다.
여기서 태스크들(
Figure 112016006133835-pat00101
,
Figure 112016006133835-pat00102
,
Figure 112016006133835-pat00103
,
Figure 112016006133835-pat00104
)의 우선 순위는
Figure 112016006133835-pat00105
과 같다. 이때,
Figure 112016006133835-pat00106
Figure 112016006133835-pat00107
Figure 112016006133835-pat00108
에 비해 우선 순위가 높다는 것을 의미한다.
이때, 태스크들은 LSF 스케줄링 알고리즘에 의해 스케줄링 된다고 가정하자. 플러시 태스크(
Figure 112016006133835-pat00109
)는 태스크(
Figure 112016006133835-pat00110
)에서 태스크(
Figure 112016006133835-pat00111
)로의 정보 유출을 방지하기 위해 태스크(
Figure 112016006133835-pat00112
)의 작업과 태스크(
Figure 112016006133835-pat00113
)의 작업 사이의 할당되는 작업을 의미한다.
점선으로 그려진 타원은 간섭 관계를 나타낼 수 있다. 즉, 스케줄링 우선 순위에 따라 같은 타원 안에 포함된 각각의 개체들이 서로를 간섭할 수 있다.
다시 말하자면, 타원 밖에 존재하는 개체들은 타원 안에 존재하는 개체들에 간섭할 수 없다는 것을 의미한다. 게다가 각각의 개체들의 스케줄링 우선 순위에 따라 해당 개체를 포함하는 타원 안에 존재하는 다른 개체들에 의해 간섭을 받을 수 있다.
도 5의 (a)에서와 같이 기존의 플러시 태스크 호출의 경우, 모든 태스크들은 해당 태스크보다 높은 우선 순위를 가지는 태스크들과 모든 종류의 플러시 태스크(
Figure 112016006133835-pat00114
)들에 의해 간섭을 받는다.
예를 들어, 태스크(
Figure 112016006133835-pat00115
)의 경우 다른 태스크들에 의해 간섭을 받지 않는다. 왜냐하면 다른 태스크들이 선점 스케줄링 알고리즘에 따라 스케줄링 되며 태스크(
Figure 112016006133835-pat00116
)는 태스크들 중에 가장 높은 우선 순위를 가지기 때문이다.
그러나 태스크(
Figure 112016006133835-pat00117
)의 실행은 태스크(
Figure 112016006133835-pat00118
)보다 높은 우선 순위에 따라 실행되는 모든 종류의 플러시 태스크에 의해 방해 받을 수 있다. 이것은 보다 높은 우선 순위의 작업에 대한 릴리스 시간을 고려하여 플러시 태스크를 호출하는 실시간 스케줄링 장치(100) 와는 달리 기존 스케줄러는 플러시 태스크가 그리디(greedy)한 방식으로 호출되기 때문이다.
그러나, 도 5의 (b)와 같은 플러시 태스크 예약이 적용된 경우, 모든 태스크들은 오직 자신 보다 높은 우선 순위를 가지는 태스크들과 그 태스크들과 관련된 플러시 태스크들에 의해서만 간섭을 받는다. 예를 들어, 플러시 태스크 예약이 적용된 태스크(
Figure 112016006133835-pat00119
)는 오직 태스크(
Figure 112016006133835-pat00120
)와 플러시 태스크(
Figure 112016006133835-pat00121
)에 의해서만 간섭을 받을 뿐 다른 태스크들과 플러시 태스크들에 의해서는 간섭 받지 않는다.
플러시 태스크 예약이 적용된 정책 덕분에, 플러시 태스크(
Figure 112016006133835-pat00122
)를 제외한 모든 플러시 태스크들은 태스크(
Figure 112016006133835-pat00123
)의 작업들이 릴리스 되는 것과 관련 없이 호출되어 예약될 수 있다.
도 5의 (b)에서와 같이 이와 같은 특성은 모든 태스크들에 적용될 수 있다. 따라서, 실시간 스케줄링 장치(100)는 모든 작업들이 해당 작업들 보다 낮은 우선 순위를 가지는 작업들의 행위와 낮은 우선 순위를 가지는 작업들과 관련된 플러시 태스크의 실행으로부터 간섭 받지 않는 것을 보장할 수 있다.
선점된 시스템에서 가장 강력한 스케줄링 가능성에 대한 분석들은 높은 우선 순위에 대한 작업들은 낮은 우선 순위를 가지는 작업들의 행위에 의해 영향을 받아 않아야 한다는 특징에 기초할 수 있다. 따라서 이러한 기술들은 보안 제약을 포함하는 스케줄링 알고리즘에 직접적으로 적용될 수 없다.
따라서, 기존의 스케줄링 가능성에 대한 분석 테스트들은 아주 간단한 방식으로 플러시 태스크 호출의 개수에 한정될 수 있다. 이와는 달리 플러시 태스크 예약을 이용하는 LSF를 이용한 스케줄링 방법은 선점된 시스템의 특징을 예약함으로써 이러한 문제를 해결할 뿐 아니라 보안 제약을 포함하는 실시간 스케줄링 장치(100)에 대한 강력한 스케줄링 가능성 분석을 적용할 수 있게 도와준다.
<실시간 스케줄링 장치에 의한 LSF 스케줄링 가능성 분석의 의미>
각각의 태스크(
Figure 112016006133835-pat00124
)는 오직 자신 보다 높은 우선 순위를 가지는 태스크들과 상기 자신 보다 높은 우선 순위를 가지는 태스크들 사이의 플러시 태스크 호출에 대한 간섭을 고려할 필요가 있다. 따라서, 각각의 우선 순위 i에서의 하이퍼주기(hyperperiod)는
Figure 112016006133835-pat00125
으로 정의 될 수 있다.
이때,
Figure 112016006133835-pat00126
는 태스크(
Figure 112016006133835-pat00127
)와 같거나 높은 우선 순위를 가지는 태스크들의 집합이고,
Figure 112016006133835-pat00128
Figure 112016006133835-pat00129
의 최소공배수(the least common multiple)이다. 이때,
Figure 112016006133835-pat00130
는 각각의 태스크들이 해당 태스크에 대한 작업(job)을 릴리스하는 주기를 의미할 수 있다. 태스크(
Figure 112016006133835-pat00131
)는 레벨 i에서의 하이퍼주기 동안
Figure 112016006133835-pat00132
번 작업을 릴리스한다. 이때,
Figure 112016006133835-pat00133
는 아래 식 1과 같이 표현된다.
식 1
Figure 112016006133835-pat00134
예를 들어, 태스크(
Figure 112016006133835-pat00135
)이 작업(job)을 릴리스하는 주기는 3, 태스크(
Figure 112016006133835-pat00136
)가 작업을 릴리스하는 주기는 4, 태스크(
Figure 112016006133835-pat00137
)가 작업을 릴리스하는 주기는 5이고, 해당 작업들의 우선 순위는 태스크(
Figure 112016006133835-pat00138
)이 가장 높고, 태스크(
Figure 112016006133835-pat00139
)이 가장 낮다고 가정하자.
그렇다면, 태스크(
Figure 112016006133835-pat00140
)의 하이퍼주기는 우선 순위가 낮은 태스크(
Figure 112016006133835-pat00141
)나 태스크(
Figure 112016006133835-pat00142
)으로부터의 간섭을 고려할 필요가 없기 때문에 태스크(
Figure 112016006133835-pat00143
)의 주기인 3이 될 수 있다.
이와는 달리 태스크(
Figure 112016006133835-pat00144
)의 하이퍼주기는 우선 순위가 높은 태스크(
Figure 112016006133835-pat00145
)으로부터 갑섭을 고려할 필요가 있다. 따라서, 태스크(
Figure 112016006133835-pat00146
)의 주기인 3과 태스크(
Figure 112016006133835-pat00147
)의 주기인 4의 최소공배수인 12가 될 수 있다.
마찬가지 방법으로 태스크(
Figure 112016006133835-pat00148
)의 하이퍼주기는 우선 순위가 높은 태스크(
Figure 112016006133835-pat00149
)과 태스크(
Figure 112016006133835-pat00150
)의 간섭을 고려하여 태스크(
Figure 112016006133835-pat00151
)의 주기인 3, 태스크(
Figure 112016006133835-pat00152
)의 주기인 4 및 태스크(
Figure 112016006133835-pat00153
)의 주기인 5의 최소공배수인 60이 될 수 있다.
이때, 각각의 태스크에 대한 하이퍼주기를 구하는 이유는 각 태스크들의 행동 패턴을 확인하기 위해서이다. 예를 들어, 태스크(
Figure 112016006133835-pat00154
)의 경우, 하이퍼주기인 시간 0에서 60까지 발생한 정보를 이용하여 다음 60에서 120까지의 정보가 추론될 수 있다.
Figure 112016006133835-pat00155
는 각각의 작업(
Figure 112016006133835-pat00156
)의 상태를 표현하는 순서 집합으로 정의된다. 이때, 이미 실행되었거나 연기되는 시간 유닛(time unit)은 "e"로 정의되고 소비(consumption)로 불린다. 여전히 사용 가능한 시간 유닛은 "a"로 정의되고, 플러시 태스크 호출을 위한 시간 유닛은 "f"로 정의된다.
예를 들어, {e, e, e, a, a, f, f, e, e, e, e, e, a, a}는 메소이드(mesoid)이다. 여기서 첫번째 3개의 시간 유닛 "e,e,e"은 이미 실행되었거나 연기되었음을 의미하고, 다음 2개의 시간 유닛 "a,a"은 이용가능함을 의미한다. 이어지는 2개의 시간 유닛 "f,f"은 호출된 플러시 태스크가 실행되는 시간을 의미하고, 이어지는 5개의 시간 유닛 "e,e,e,e,e"은 이미 실행되었거나 연기되었음을 의미한다. 마지막으로 이어지는 2개의 시간 유닛"a,a"은 이용가능함을 의미한다.
즉, 다시 말해서, 메소이드(mesoid)는 해당 레벨에서 작업이 릴리스 되는 주기를 의미할 수 있다. 예를 들어, 도 4의 태스크(
Figure 112016006133835-pat00157
)를 보면, 7개의 시간 유닛 간격으로 작업들이 릴리스 되는 것을 확인할 수 있다. 즉, 첫 번째 작업이 릴리스되고 두 번째 작업이 릴리스 되는 사이의 시간 유닛들의 시퀀스가 해당하는 태스크(
Figure 112016006133835-pat00158
)의 제1 메소이드에 해당할 수 있다.
상기 예시와 같이 제1 메소이드를 표현하면
Figure 112016006133835-pat00159
는 {a, e, a, a, f, f, a}가 될 수 있다. 즉, 첫 번째 시간 유닛은 이용가능하기 때문에 a로 표시하고, 이어지는 두 번째 시간 유닛은 작업(
Figure 112016006133835-pat00160
)이 실행되었기 때문에 e로 표시할 수 있다. 이어지는 2 개의 시간 유닛은 이용가능하기 때문에 a로 표시하고, 그 뒤에 이어지는 2개의 시간 유닛은 플러시 태스크(
Figure 112016006133835-pat00161
)이 실행되었기 때문에 f로 표시할 수 있다. 마지막 시간 유닛 역시 이용가능하기 때문에 a로 표시할 수 있다.
이때, 소비(consumption)는 기수를 괄호 안의 표기하여 (c)와 같이 표현할 수 있으며, 이때, 기수는 자연수이다. 그리고, 소비에 대한 (c)를 구분하기 위하여 플러시 태스크의 실행 시간은 [r]과 같이 표현할 있다.
또한, 이용가능한 타임 유닛의 시퀀스(sequence)를 자연수를 이용하여 열거할 수 있다. 이러한 자연수들 각각은 유효성(availability)으로 불린다. 상기 내용에 기초하여 이전의 14-mesiod{e, e, e, a, a, f, f, e, e, e, e, e, a, a}는 {(3), 1, 2, [2], (5), 3, 4}로 고쳐 쓸 수 있다. 이를 해석하면, 14-mesoid는 2 개의 소비{(3), (5)}, 태스크 실행 시간 [2], 그리고 4개의 이용 가능한 타임 유닛{1, 2, 3, 4}을 가진다는 것을 알 수 있다.
각각의
Figure 112016006133835-pat00162
는 각각의 작업에 대한 상태를 표현하기 때문에 하이퍼주기(
Figure 112016006133835-pat00163
) 안에는
Figure 112016006133835-pat00164
개의
Figure 112016006133835-pat00165
-mesoid가 존재한다. 이때, 태스크(
Figure 112016006133835-pat00166
)가 스케줄 되기 전에
Figure 112016006133835-pat00167
의 시퀀스는
Figure 112016006133835-pat00168
과 같이 정의 된다. 예를 들어,
Figure 112016006133835-pat00169
의 시퀀스는 {{(5), 1, 2, [1], (2), 3}{1, [1], (3), 2, [1], (3), 3}}으로 정의 될 수 있다.
이때,
Figure 112016006133835-pat00170
의 셀(cell)은 식 2와 같이 인접한 두 소비(consumption) 사이에 존재하는 타임 유닛의 집합으로 정의된다.
식 2
Figure 112016006133835-pat00171
여기서 자연수 m에 대해서,
Figure 112016006133835-pat00172
Figure 112016006133835-pat00173
의 m 번째 셀을 의미한다.
태스크(
Figure 112016006133835-pat00174
)의 유니버스(universe)
Figure 112016006133835-pat00175
Figure 112016006133835-pat00176
의 모든 이용가능한 타임 유닛으로 구성된 집합을 의미한다. 이전 11-mesoid의 예인 {{(5), 1, 2, [1], (2), 3}{1, [1], (3), 2, [1], (3), 3}}에 대해서,
Figure 112016006133835-pat00177
은 {1, [1], (3), 2, [1], (3), 3}에 해당하고,
Figure 112016006133835-pat00178
는 {1, 2, 3}의 값을 가질 수 있다.
Figure 112016006133835-pat00179
는 제1 작업(
Figure 112016006133835-pat00180
)과 제2 작업(
Figure 112016006133835-pat00181
)의 실행 시간이 3을 초과해서는 안된다는 것을 보여준다. 만약 그렇지 않으면 태스크(
Figure 112016006133835-pat00182
)는 스케줄링 될 수 없다.
Figure 112016006133835-pat00183
는 태스크(
Figure 112016006133835-pat00184
)가 스케줄링 된 이후에 태스크(
Figure 112016006133835-pat00185
)의
Figure 112016006133835-pat00186
에 대한 시퀀스를 의미한다.
Figure 112016006133835-pat00187
에서
Figure 112016006133835-pat00188
를 생성하는 과정과
Figure 112016006133835-pat00189
에서
Figure 112016006133835-pat00190
를 생성하는 과정은 이후에 자세히 설명된다.
요약해서, 모든 태스크(
Figure 112016006133835-pat00191
)에 대해 아래의 식 3을 획득할 수 있다.
식 3
Figure 112016006133835-pat00192
이때,
Figure 112016006133835-pat00193
Figure 112016006133835-pat00194
모두
Figure 112016006133835-pat00195
를 포함한다.
<두 개의 태스크에 대한 LSF 스케줄링 가능성 분석>
N 개의 태스크에 대해 스케줄링 가능성 분석에 대한 프로세스를 일반화하기 위하여 먼저 두 개의 태스크를 이용하여 분석 시퀀스를 제공한다.
태스크(
Figure 112016006133835-pat00196
)은
Figure 112016006133835-pat00197
로 정의되고, 태스크(
Figure 112016006133835-pat00198
)는
Figure 112016006133835-pat00199
로 정의된다. 이때,
Figure 112016006133835-pat00200
이고, 이는 태스크(
Figure 112016006133835-pat00201
)가 태스크(
Figure 112016006133835-pat00202
)보다 높은 보안 레벨을 가지는 것을 의미한다.
LSF를 이용하면 태스크(
Figure 112016006133835-pat00203
)는 낮은 보안 레벨을 가지고 있기 때문에 높은 우선 순위가 할당될 수 있다.
태스크(
Figure 112016006133835-pat00204
)가 가장 높은 우선 순위를 가지고 있기 때문에 태스크(
Figure 112016006133835-pat00205
)의 각각의 작업(
Figure 112016006133835-pat00206
)는
Figure 112016006133835-pat00207
내의 유효성을 가지는 어떠한 타임 유닛도 소비할 수 있지만 결코 선점되지는 않는다. 즉, 태스크(
Figure 112016006133835-pat00208
)의 각각의 작업(
Figure 112016006133835-pat00209
)은 우선 순위가 가장 높기 때문에 각각의 작업(
Figure 112016006133835-pat00210
)이 실행되는 중간에 다른 태스크들의 작업들에 의해 실행권한을 빼앗기지 않는다는 것을 의미한다.
태스크(
Figure 112016006133835-pat00211
)의 각각의 작업(
Figure 112016006133835-pat00212
)는 어떠한 간섭도 받지 않기 때문에, 태스크(
Figure 112016006133835-pat00213
)의 각각의 작업(
Figure 112016006133835-pat00214
)에 대한 반응 시간(response time)은
Figure 112016006133835-pat00215
과 같다. 이때, 반응 시간은 각각의 태스크(task)에 대한 하나의 작업(job)이 릴리스되어 실행이 완료될 때까지 걸리는 시간을 의미할 수 있다. 즉, 태스크(
Figure 112016006133835-pat00216
)의 각각의 작업(
Figure 112016006133835-pat00217
)의 실행은
Figure 112016006133835-pat00218
만큼의 타임 유닛이 소비(consumption)되고,
Figure 112016006133835-pat00219
에 해당하는 타임 유닛이 유효성을 가지는 결과를 발생시킨다.
이때,
Figure 112016006133835-pat00220
은 태스크(
Figure 112016006133835-pat00221
)의 작업(
Figure 112016006133835-pat00222
)을 실행함에 있어서, 최악의 경우 요구되는 실행 시간을 의미할 수 있다.
따라서, 태스크(
Figure 112016006133835-pat00223
)의
Figure 112016006133835-pat00224
는 하기의 식 4와 같이 표현된다.
식 4
Figure 112016006133835-pat00225
다음 단계는 태스크(
Figure 112016006133835-pat00226
)로부터 태스크(
Figure 112016006133835-pat00227
)으로의 정보 유출을 방지하기 위해 호출된 플러시 태스크(
Figure 112016006133835-pat00228
)의 비용을 고려하여 태스크(
Figure 112016006133835-pat00229
)를 스케줄링 하는 것이다.
Figure 112016006133835-pat00230
의 생성 과정은
Figure 112016006133835-pat00231
으로 구성된다. 상기 구조는 두 가지 단계로 실행되는데 이는 유전(inheritance) 단계와 플러시 태스크 예약 단계이다.
유전(inheritance) 단계에서,
Figure 112016006133835-pat00232
내의 모든 유효성을 가지는 타임 유닛들이 순환 방법을 통해
Figure 112016006133835-pat00233
의 타임 유닛으로 채워지게 하기 위하여
Figure 112016006133835-pat00234
Figure 112016006133835-pat00235
의 타임 유닛들을
Figure 112016006133835-pat00236
번 물려받는다.
다시 말해서,
Figure 112016006133835-pat00237
내의
Figure 112016006133835-pat00238
타임 유닛이
Figure 112016006133835-pat00239
내의
Figure 112016006133835-pat00240
타임 유닛으로 채워진다. 이때,
Figure 112016006133835-pat00241
이고,
Figure 112016006133835-pat00242
는 1보다 크거나 같고,
Figure 112016006133835-pat00243
내의 타임 유닛들의 개수 보다 작거나 같을 수 있다.
Figure 112016006133835-pat00244
를 구성한 이후, 각각의
Figure 112016006133835-pat00245
(
Figure 112016006133835-pat00246
)에 해당하는 유니버스(universe)
Figure 112016006133835-pat00247
를 결정할 수 있다.
Figure 112016006133835-pat00248
로부터
Figure 112016006133835-pat00249
를 생성하는 과정은 다음의 예와 같다. 이때, 두 개의 태스크(
Figure 112016006133835-pat00250
)과 태스크(
Figure 112016006133835-pat00251
)의 세트를 고려할 수 있으며,
Figure 112016006133835-pat00252
이고,
Figure 112016006133835-pat00253
이다.
이를 통해 하기의 식 5를 획득할 수 있다.
식 5
Figure 112016006133835-pat00254
Figure 112016006133835-pat00255
이므로,
Figure 112016006133835-pat00256
는 이전에 표현된
Figure 112016006133835-pat00257
의 유전되는 타임 유닛들의 메커니즘을 이용하여 3개의
Figure 112016006133835-pat00258
시퀀스로 구성된다.
상기 메커니즘에 기초하여 하기의 식 6을 획득할 수 있다.
식 6
Figure 112016006133835-pat00259
셀(cell)의 정의를 이용하면
Figure 112016006133835-pat00260
는 하기의 식7과 같이 표현될 수 있다.
식 7
Figure 112016006133835-pat00261
태스크(
Figure 112016006133835-pat00262
)에서 태스크(
Figure 112016006133835-pat00263
)으로의 모든 전이 과정에서 정보가 유출되는 것을 방지하기 위하여 플러시 태스크 예약 단계가 수행될 수 있다. LSF를 이용한 스케줄링과 플러시 태스크 예약 메커니즘의 결합은 플러시 태스크의 실행이 각각의 셀(cell)의 오른쪽 코너(conner)에서 완료되는 것을 보장한다. 또한, LSF를 이용한 스케줄링과 플러시 태스크 예약 메커니즘의 결합은 태스크(
Figure 112016006133835-pat00264
)의 각 작업의 실행이 태스크(
Figure 112016006133835-pat00265
)에서 태스크(
Figure 112016006133835-pat00266
)으로의 전이 과정에서 플러시 태스크의 호출 없이 셀(cell)의 왼쪽 코너(conner)에서 시작되는 것을 보장한다.
이것은 플러시 태스크 예약을 이용하는 실시간 스케줄링 장치(100)가 높은 우선 순위를 가지는 태스크는 반드시 낮은 보안 레벨을 가지는 것을 보장하고, 플러시 태스크가 높은 우선 순위를 가지는 태스크에 대한 간섭을 피하기 위하여
Figure 112016006133835-pat00267
에서 호출되는 것을 보장하기 때문이다.
플러시 태스크 예약 단계가 수행된 이후,
Figure 112016006133835-pat00268
Figure 112016006133835-pat00269
는 하기의 식 8과 같이 표현될 수 있다.
식 8
Figure 112016006133835-pat00270
상기
Figure 112016006133835-pat00271
에서 해당하는 유니버스(universe)
Figure 112016006133835-pat00272
는 하기의 식 9와 같이 표현될 수 있다.
식 9
Figure 112016006133835-pat00273
이제, 태스크(
Figure 112016006133835-pat00274
)의 각각의 작업(
Figure 112016006133835-pat00275
)은 어떠한 정보의 유출 및 높은 우선 순위를 가지는 태스크들의 실행을 방해하는 플러시 태스크의 호출 없이 실행될 수 있다.
각각의 유니버스
Figure 112016006133835-pat00276
(
Figure 112016006133835-pat00277
)에서 유효성을 가지는
Figure 112016006133835-pat00278
의 양는 작업(
Figure 112016006133835-pat00279
)의 실행에 의해 소비될 수 있다. 태스크(
Figure 112016006133835-pat00280
)의
Figure 112016006133835-pat00281
작업에 대한 반응 시간(
Figure 112016006133835-pat00282
)은 높은 우선 순위를 가지는 태스크들의 소비와 작업(
Figure 112016006133835-pat00283
)의 실행이 끝나기 전에 직면한 플러시 태스크의 실행을 합함으로써 계산된다.
Figure 112016006133835-pat00284
이고, 태스크(
Figure 112016006133835-pat00285
)의 제1 작업(
Figure 112016006133835-pat00286
)이 높은 우선 순위를 가지는 작업의 실행으로부터 간섭 받는 유일한 작업이기 때문에, 작업들(
Figure 112016006133835-pat00287
)의 반응 시간은
Figure 112016006133835-pat00288
Figure 112016006133835-pat00289
이다.
그러면 태스크(
Figure 112016006133835-pat00290
)의 반응 시간 (
Figure 112016006133835-pat00291
)의 최악의 경우는 하기 식 10와 같이 표현될 수 있다.
식 10
Figure 112016006133835-pat00292
최악의 반응 시간(
Figure 112016006133835-pat00293
)가 계산됨에 따라, 태스크(
Figure 112016006133835-pat00294
)는 하기의 식 11의 조건에 따라서만 스케줄링 될 수 있다.
식 11
Figure 112016006133835-pat00295
식 10와 식 11에 기초하여, 최악의 반응 시간(
Figure 112016006133835-pat00296
)은 3이다. 그리고 최악의 반응 시간(
Figure 112016006133835-pat00297
)인 3은 식 11에 표현된 스케줄링 가능성 조건을 만족시킨다. 따라서, 태스크(
Figure 112016006133835-pat00298
)는 스케줄링 가능하다는 것을 확인할 수 있다.
<두 개 이상의 태스크에 대한 LSF 스케줄링 가능성 분석>
두 개의 태스크 이상에 대해서,
Figure 112016006133835-pat00299
로부터 추론된
Figure 112016006133835-pat00300
는 하기의 식 12과 같이 표현될 수 있다.
식 12
Figure 112016006133835-pat00301
두 개를 초과하는 태스크들에 대한 분석 테스트 알고리즘은 이전 섹션에서 제공한 것과 비슷한 메커니즘에 의해 수행될 수 있다. 플러시 태스크 예약을 이용한 실시간 스케줄링 장치(100)의 특성 덕분에, 태스크(
Figure 112016006133835-pat00302
)에 대한 테스트는 낮은 우선 순위를 가지는 태스크들의 실행과 해당하는 낮은 우선 순위를 가지는 태스크들과 관련된 플러시 태스크의 행위를 고려하지 않을 수 있다.
표 2에서와 같은 알고리즘 1은 스케줄링 가능성에 대한 테스트를 자세히 보여준다. 가장 높은 우선 순위를 가지는 태스크(
Figure 112016006133835-pat00303
)는 결코 선점되지 않기 때문에, 루프(loop)는 제2 우선 순위를 가지는 태스크(
Figure 112016006133835-pat00304
)의 인덱스로부터 출발한다. LSF 스케줄러는 먼저 레벨 i에서의 하이퍼주기 및 하이퍼주기 내의 인스턴스(instance)의 개수를 계산한다.
이후 실시간 스케줄링 장치(100)는
Figure 112016006133835-pat00305
를 구성하는
Figure 112016006133835-pat00306
를 생성할 수 있다. 이때,
Figure 112016006133835-pat00307
의 모든 타임 유닛들은 이용가능한 유효성을 가질 수 있다.
Figure 112016006133835-pat00308
의 시퀀스는 유전 단계와 플러시 태스크 예약 단계를 이용하여
Figure 112016006133835-pat00309
로부터 도출된다.
이후 실시간 스케줄링 장치(100)는
Figure 112016006133835-pat00310
내의 유효성을 가지는 타임 유닛들로부터 유니버스
Figure 112016006133835-pat00311
(
Figure 112016006133835-pat00312
)를 쉽게 결정할 수 있다.
Figure 112016006133835-pat00313
가 구성된 이후, 태스크(
Figure 112016006133835-pat00314
)의 스케줄링 가능성은 식 10을 이용하여 테스트된다. 만약 태스크(
Figure 112016006133835-pat00315
)가 스케줄링이 가능하다면, 태스크(
Figure 112016006133835-pat00316
)의 스케줄링 가능성 테스트를 위하여
Figure 112016006133835-pat00317
Figure 112016006133835-pat00318
의 시퀀스와 유니버스
Figure 112016006133835-pat00319
내의 소비 가능한
Figure 112016006133835-pat00320
의 실행양에 기초하여 생성될 수 있다. 만약 모든 태스크들이 스케줄링 가능성 조건을 만족한다면, 해당하는 태스크 세트는 스케줄링 가능하다.
LSF 스케줄링 가능성에 대한 분석은 작업 당 테스트이므로, 해당 분석의 시간 복잡도는 각각의 태스크들의 우선 순위 i에서의 하이퍼주기 내의 작업들의 개수를 포함한다. 각각의 작업에 대해 높은 우선 순위를 가지는 작업들로부터의 간섭 양과 플러시 태스크 호출을 정확히 계산하기 위하여, 미리 이용가능한 타임 유닛들의 개수와 위치를 고려할 필요가 있다.
이후 실시간 스케줄링 장치(100)는 잠재적인 플러시 태스크 호출의 개수가 높은 우선 순위를 가지는 태스크들의 개수와 일치하기 때문에 각각의 메소이드(mesiod)에서 높은 우선 순위를 가지는 작업들의 개수를 고려할 수 있다.
따라서, LSF 스케줄링 가능성에 대한 분석의 복잡성은
Figure 112016006133835-pat00321
으로 표현될 수 있다. 여기서,
Figure 112016006133835-pat00322
는 작업들의 개수,
Figure 112016006133835-pat00323
는 레벨 i에서 하이퍼주기 내의 높은 우선 순위를 가지는 복수의 작업들, 그리고
Figure 112016006133835-pat00324
는 각각의 태스크의 메소이드(mesoid) 시퀀스에서 타임 유닛들의 개수를 의미할 수 있다.
[표 2]
Figure 112016006133835-pat00325
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
100 : 실시간 스케줄링 장치
110 : 식별부
120 : 결정부
130 : 스케줄링부

Claims (12)

  1. 실시간 스케줄링 장치가 수행하는 실시간 스케줄링 방법에 있어서,
    상기 실시간 스케줄링 장치의 식별부가 복수의 태스크들 각각에 대한 보안 레벨을 식별하는 단계;
    상기 실시간 스케줄링 장치의 결정부가 상기 보안 레벨에 따라 상기 복수의 태스크들에 대한 우선 순위를 결정하는 단계; 및
    상기 실시간 스케줄링 장치의 스케줄링부가 상기 우선 순위에 기초하여 상기 복수의 태스크들을 스케줄링하는 단계
    를 포함하고,
    상기 스케줄링하는 단계는,
    상기 복수의 태스크들에 대해 제1 태스크보다 보안 레벨이 높은 제2 태스크의 실행 결과를 제1 태스크가 이용하지 못하도록, 제2 태스크의 실행 결과를 삭제하는 플러시 태스크를 제2 태스크의 작업들 사이에 할당하는 실시간 스케줄링 방법.
  2. 제1항에 있어서,
    상기 결정하는 단계는,
    복수의 태스크들 각각에 대해 보안 레벨이 높을수록 낮은 우선 순위를 할당하는 실시간 스케줄링 방법.
  3. 제1항에 있어서,
    상기 스케줄링하는 단계는,
    상기 실시간 스케줄링 장치의 스케줄링부가 제1 태스크에서 제1 작업이 실행되는 시작 시점을 확인하는 단계;
    상기 실시간 스케줄링 장치의 스케줄링부가 상기 제1 작업이 실행되는 시작 시점 및 상기 플러시 태스크의 실행 시간에 기초하여 상기 제2 태스크에 대해 릴리스된 제2 작업의 시작 시점을 결정하는 단계
    를 포함하고,
    상기 제1 작업은,
    상기 제2 태스크에서 제2 작업이 릴리스된 시점 이후에 제1 태스크에서 최초로 실행되는 작업인 실시간 스케줄링 방법.
  4. 제3항에 있어서,
    상기 스케줄링하는 단계는,
    상기 제1 태스크에 대해 제1 작업이 실행되는 시점 및 상기 제2 태스크에 대해 제2 작업이 릴리스된 시점 간의 시간 차이보다 상기 플러시 태스크의 실행 시간이 작을 경우, 상기 릴리스된 제2 작업을 실행하고 상기 제1 작업이 실행되는 시점 이전에 플러시 태스크를 할당하는 실시간 스케줄링 방법.
  5. 제3항에 있어서,
    상기 스케줄링하는 단계는,
    상기 제1 태스크에 대해 제1 작업이 실행되는 시점 및 제2 태스크에 대해 제2 작업이 릴리스된 시점 간의 시간 차이보다 상기 플러시 태스크의 실행 시간이 클 경우, 상기 릴리스된 제2 작업의 실행을 상기 제1 태스크에 대해 제1 작업이 실행되는 시점 및 제2 태스크에 대해 제2 작업이 릴리스된 시점 간의 시간 차이에 따라 딜레이하는 실시간 스케줄링 방법.
  6. 실시간 스케줄링 장치가 수행하는 실시간 스케줄링 방법에 있어서,
    상기 실시간 스케줄링 장치의 결정부가 복수의 태스크들의 보안 레벨을 고려하여 상기 복수의 태스크들의 처리 순서를 결정하는 단계;
    상기 실시간 스케줄링 장치의 스케줄링부가 상기 복수의 태스크들의 작업과 플러시 태스크를 고려하여 상기 복수의 태스크들 각각에 대해 스케줄링하는 단계
    를 포함하고,
    상기 스케줄링하는 단계는,
    제1 보안 레벨을 가지는 제1 태스크를 스케줄링한 후 제1 보안 레벨보다 높은 제2 보안 레벨을 가지는 제2 태스크를 스케줄링하며,
    상기 제2 태스크의 작업들은, 제1 태스크의 작업들에 대한 시작 시점과 플러시 태스크의 실행 시간을 고려하여 제2 태스크의 실행 구간 동안 할당되는 실시간 스케줄링 방법.
  7. 제6항에 있어서,
    상기 결정하는 단계는,
    복수의 태스크들의 보안 레벨이 높을수록 낮은 우선 순위를 할당하는 실시간 스케줄링 방법.
  8. 복수의 태스크들 각각에 대한 보안 레벨을 식별하는 식별부;
    상기 보안 레벨에 따라 상기 복수의 태스크들에 대한 우선 순위를 결정하는 결정부;
    상기 우선 순위에 기초하여 상기 복수의 태스크들을 스케줄링하는 스케줄링부
    를 포함하고,
    상기 스케줄링부는,
    상기 복수의 태스크들에 대해 제1 태스크보다 보안 레벨이 높은 제2 태스크의 실행 결과를 제1 태스크가 이용하지 못하도록, 제2 태스크의 실행 결과를 삭제하는 플러시 태스크를 제2 태스크의 작업들 사이에 할당하는 실시간 스케줄링 장치.
  9. 제8항에 있어서,
    상기 결정부는,
    복수의 태스크들 각각에 대해 보안 레벨이 높을수록 낮은 우선 순위를 할당하는 실시간 스케줄링 장치.
  10. 제8항에 있어서,
    상기 스케줄링부는,
    제1 태스크에서 제1 작업이 실행되는 시작 시점을 확인하고, 상기 제1 작업이 실행되는 시작 시점 및 상기 플러시 태스크의 실행 시간에 기초하여 상기 제2 태스크에 대해 릴리스된 제2 작업의 시작 시점을 결정하며, 상기 제1 작업은 상기 제2 태스크에서 제2 작업이 릴리스된 시점 이후에 제1 태스크에서 최초로 실행되는 작업인 실시간 스케줄링 장치.
  11. 제10항에 있어서,
    상기 스케줄링부는,
    상기 제1 태스크에 대해 제1 작업이 실행되는 시점 및 상기 제2 태스크에 대해 제2 작업이 릴리스된 시점 간의 시간 차이보다 상기 플러시 태스크의 실행 시간이 작을 경우, 상기 릴리스된 제2 작업을 실행하고 상기 제1 작업이 실행되는 시점 이전에 플러시 태스크를 할당하는 실시간 스케줄링 장치.
  12. 제10항에 있어서,
    상기 스케줄링부는,
    상기 제1 태스크에 대해 제1 작업이 실행되는 시점 및 제2 태스크에 대해 제2 작업이 릴리스된 시점 간의 시간 차이보다 상기 플러시 태스크의 실행 시간이 클 경우, 상기 릴리스된 제2 작업의 실행을 상기 제1 태스크에 대해 제1 작업이 실행되는 시점 및 제2 태스크에 대해 제2 작업이 릴리스된 시점 간의 시간 차이에 따라 딜레이하는 실시간 스케줄링 장치.
KR1020160006626A 2016-01-19 2016-01-19 사이버 물리 시스템을 위한 보안 제약 사항을 포함하는 실시간 스케줄링 장치 및 방법 KR101733339B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160006626A KR101733339B1 (ko) 2016-01-19 2016-01-19 사이버 물리 시스템을 위한 보안 제약 사항을 포함하는 실시간 스케줄링 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160006626A KR101733339B1 (ko) 2016-01-19 2016-01-19 사이버 물리 시스템을 위한 보안 제약 사항을 포함하는 실시간 스케줄링 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101733339B1 true KR101733339B1 (ko) 2017-05-08

Family

ID=60164294

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160006626A KR101733339B1 (ko) 2016-01-19 2016-01-19 사이버 물리 시스템을 위한 보안 제약 사항을 포함하는 실시간 스케줄링 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101733339B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210094932A (ko) * 2020-01-22 2021-07-30 단국대학교 산학협력단 실시간 기기에서의 보안성 강화 기술의 스케줄 가능성 검증 장치 및 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100298212B1 (ko) 1997-12-17 2001-08-07 이계철 우선순위역전현상을해결하기위한실시간태스크스케쥴링방법
KR100988395B1 (ko) 2003-02-18 2010-10-18 마이크로소프트 코포레이션 태스크 스케줄링 방법, 태스크 스케줄링 지원 장치, 코프로세싱 스케줄러에 관련하여 사용하기 위한 코프로세서, 및 컴퓨터 판독가능 저장 매체

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100298212B1 (ko) 1997-12-17 2001-08-07 이계철 우선순위역전현상을해결하기위한실시간태스크스케쥴링방법
KR100988395B1 (ko) 2003-02-18 2010-10-18 마이크로소프트 코포레이션 태스크 스케줄링 방법, 태스크 스케줄링 지원 장치, 코프로세싱 스케줄러에 관련하여 사용하기 위한 코프로세서, 및 컴퓨터 판독가능 저장 매체

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210094932A (ko) * 2020-01-22 2021-07-30 단국대학교 산학협력단 실시간 기기에서의 보안성 강화 기술의 스케줄 가능성 검증 장치 및 방법
KR102307445B1 (ko) 2020-01-22 2021-09-30 단국대학교 산학협력단 실시간 기기에서의 보안성 강화 기술의 스케줄 가능성 검증 장치 및 방법

Similar Documents

Publication Publication Date Title
US9207977B2 (en) Systems and methods for task grouping on multi-processors
US9465663B2 (en) Allocating resources in a compute farm to increase resource utilization by using a priority-based allocation layer to allocate job slots to projects
Giannopoulou et al. Mapping mixed-criticality applications on multi-core architectures
US11150951B2 (en) Releasable resource based preemptive scheduling
US20140281088A1 (en) System and method for deterministic time partitioning of asynchronous tasks in a computing environment
Zhao et al. Design optimization for AUTOSAR models with preemption thresholds and mixed-criticality scheduling
Pazzaglia et al. Optimizing the functional deployment on multicore platforms with logical execution time
Golchin et al. Boomerang: Real-time i/o meets legacy systems
KR20170023280A (ko) 멀티코어 프로세서 시스템 및 상기 시스템에서의 공유 캐시 관리 방법
US9229716B2 (en) Time-based task priority boost management using boost register values
Senoussaoui et al. Contention-free scheduling of PREM tasks on partitioned multicore platforms
Chetto Real-time systems scheduling 1: fundamentals
Giannopoulou et al. DOL-BIP-Critical: a tool chain for rigorous design and implementation of mixed-criticality multi-core systems
Afshar et al. Resource sharing among prioritized real-time applications on multiprocessors
CA2985665C (en) System and method for multi-level real-time scheduling analyses
KR101733339B1 (ko) 사이버 물리 시스템을 위한 보안 제약 사항을 포함하는 실시간 스케줄링 장치 및 방법
KR100981017B1 (ko) 정적 태스크 정의 기능을 가진 시스템을 위한 우선순위 재정의 및 대기큐 관리 방법과 상기 방법을 실행하는 시스템
Beckert et al. Response time analysis for sporadic server based budget scheduling in real time virtualization environments
Zeng et al. Optimizing stack memory requirements for real-time embedded applications
Nagalakshmi et al. Criticality-cognizant clustering-based task scheduling on multicore processors in the avionics domain
US11138043B2 (en) System and methods for contingency budgeting for time-partitioned systems
Kim et al. Mixed-criticality on multicore (MC2): A status report
Möstl et al. Work-in-progress: Timing diversity as a protective mechanism
Tong et al. Supporting read/write applications in embedded real-time systems via suspension-aware analysis
Karanam Improving Reliability and Latency of High Critical Tasks in Mixed Criticality Systems through Task Rescheduling

Legal Events

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