KR101083049B1 - 시뮬레이션 시스템 및 시뮬레이션 방법 - Google Patents

시뮬레이션 시스템 및 시뮬레이션 방법 Download PDF

Info

Publication number
KR101083049B1
KR101083049B1 KR1020100055555A KR20100055555A KR101083049B1 KR 101083049 B1 KR101083049 B1 KR 101083049B1 KR 1020100055555 A KR1020100055555 A KR 1020100055555A KR 20100055555 A KR20100055555 A KR 20100055555A KR 101083049 B1 KR101083049 B1 KR 101083049B1
Authority
KR
South Korea
Prior art keywords
schedule
time
simulation
scheduler module
executed
Prior art date
Application number
KR1020100055555A
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 KR1020100055555A priority Critical patent/KR101083049B1/ko
Application granted granted Critical
Publication of KR101083049B1 publication Critical patent/KR101083049B1/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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
    • 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/54Interprogram communication

Abstract

본 발명은 시뮬레이션 시스템 및 시뮬레이션 방법에 관한 것으로서, 시간 기반 방식 및 사건 기반 방식 중에 사용자가 원하는 방식으로 스케줄 수행 패턴을 입력받아서 시뮬레이션을 진행할 수 있으며, 동시에 수행되어야 하는 스케줄들을 멀티 쓰레드를 통해 동시에 수행할 수 있는 시뮬레이션 시스템 및 시뮬레이션 방법에 관한 것이다. 이러한 본 발명에 따른 시뮬레이션 시스템은, 시간 기반 방식 및 사건 기반 방식 중에 사용자가 원하는 방식으로 스케줄 수행 패턴(execution pattern)을 입력받는 사용자 인터페이스; 시간을 소정 간격씩 진행시키는 타이머 모듈; 상기 스케줄 수행 패턴으로부터 스케줄을 받아 저장하는 스케줄 저장부; 현재 사용가능한 쓰레드(thread)를 저장하고 관리하는 쓰레드 관리 모듈; 및 상기 스케줄 저장부에 저장된 스케줄 중에 현재 시뮬레이션 상태 또는 현재 시간에 따라 수행되어야할 스케줄을 결정한 후에 현재 사용 가능한 쓰레드를 사용하여 실행시키는 스케줄러 모듈; 을 포함하며, 상기 스케줄러 모듈이 현재 수행해야 하는 스케줄을 수행한 후에 상기 스케줄 저장부에는 상기 스케줄 수행 패턴에서 생성된 다음 스케줄이 입력되어 저장된다.

Description

시뮬레이션 시스템 및 시뮬레이션 방법{SIMULATION SYSTEM AND SIMULATION METHOD}
본 발명은 시뮬레이션 시스템 및 시뮬레이션 방법에 관한 것으로서, 시간 기반 방식 및 사건 기반 방식 중에 사용자가 원하는 방식으로 스케줄 수행 패턴을 입력받아서 하이브리드(hybrid) 시뮬레이션을 진행할 수 있으며, 동시에 수행되어야 하는 스케줄들을 멀티 쓰레드를 통해 동시에 수행할 수 있는 시뮬레이션 시스템 및 시뮬레이션 방법에 관한 것이다.
시뮬레이션은 어떠한 현상이나 장비의 동작을 컴퓨터로 가상으로 수행시키는 실험을 수행함으로써 실제 상황에서의 결과를 예측하는 것으로서, 시간과 비용면에 있어서 이점이 있어 널리 이용되고 있다.
시뮬레이션은 사용자에 의해 정의되는 스케줄 수행 패턴(schedule execution pattern)을 입력받아, 스케줄 수행 패턴으로부터 스케줄을 생성하여 제시간에 수행하는 방법으로 진행된다.
상기 스케줄 수행 패턴은 시간 기반 패턴과 사건 기반 패턴으로 분류된다.
상기 시간 기반 패턴은 정해진 작은 단위 시간을 전진시켜 매 시간 전진 사이에 하나의 스케줄을 생성하고 처리하는 방식이며, 상기 사건 기반 패턴은 스케줄을 스케줄링하여 스케줄을 제시간에 처리하고 다음 스케줄 발생시간까지 시간이 진행된 후에 스케줄링된 다음 스케줄을 제시간에 처리하는 방식이다.
상기와 같은 스케줄 수행 패턴 중에서 시간 기반 패턴은 모든 스케줄이 정해진 단위 시간 내에 끝나야 하며, 정해진 단위 시간 내에 두 가지의 스케줄이 발생할 시에도 모든 스케줄이 단위 시간 내에 끝나야 하므로, 스케줄을 수행하는데 있어서 복잡한 수식을 계산하는 컴퓨팅(computing)이 요구되는 경우에는 스케줄 수행 패턴의 전체적인 진행이 깨질 수 있게 된다.
그리고, 상기 사건 기반 패턴은 동일한 시간대에 두 개 이상의 스케줄이 동시에 진행될 때 처리하기 힘들고, 스케줄이 네트워크를 통해 입력되는 경우에는 현재 진행되고 있는 스케줄이 완료된 이후에 스케줄 입력되었음이 인지되므로 해당 스케줄을 처리하는 것이 쉽지 않은 문제점이 있어왔다.
본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 시간 기반 방식 및 사건 기반 방식 중에 사용자가 원하는 방식으로 스케줄 수행 패턴을 입력받아서 하이브리드 시뮬레이션을 진행할 수 있고, 동시에 수행되어야 하는 스케줄들을 멀티 쓰레드를 통해 동시에 수행할 수 있는 시뮬레이션 시스템 및 시뮬레이션 방법을 제공하는 것이다.
상기와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 시뮬레이션 시스템은, 시간 기반 방식 및 사건 기반 방식 중에 사용자가 원하는 방식으로 스케줄 수행 패턴(execution pattern)을 입력받는 사용자 인터페이스; 시간을 소정 간격씩 진행시키는 타이머 모듈; 상기 스케줄 수행 패턴으로부터 스케줄을 받아 저장하는 스케줄 저장부; 현재 사용가능한 쓰레드(thread)를 저장하고 관리하는 쓰레드 관리 모듈; 및 상기 스케줄 저장부에 저장된 스케줄 중에 현재 시뮬레이션 상태 또는 현재 시간에 따라 수행되어야할 스케줄을 결정한 후에 현재 사용 가능한 쓰레드를 사용하여 실행시키는 스케줄러 모듈; 을 포함하며, 상기 스케줄러 모듈이 현재 수행해야 하는 스케줄을 수행한 후에 상기 스케줄 저장부에는 상기 스케줄 수행 패턴에서 생성된 다음 스케줄이 입력되어 저장되는 것을 특징으로 한다.
상기와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 시뮬레이션 방법은, a) 사용자 인터페이스를 통해 시간 기반 방식 및 사건 기반 방식 중에 사용자가 원하는 방식으로 스케줄 수행 패턴(execution pattern)을 입력받는 단계; b) 타이머 모듈이 시간을 소정 간격 증가시키는 단계; c) 스케줄러 모듈은 스케줄 저장부에 저장된 스케줄 중에 현재 시뮬레이션 상태 또는 현재 시간에 따라 수행되어야할 현재 스케줄을 결정하는 단계; d) 상기 스케줄러 모듈은 수행되어야한다고 결정된 현재 스케줄을 현재 사용 가능한 쓰레드를 사용하여 실행시키는 단계; e) 상기 스케줄 수행 패턴에서 생성된 다음 스케줄을 스케줄 저장부에 저장하는 단계; 및 f) 시뮬레이션이 종료된 상태인지, 시뮬레이션 종료 시간이 되었는지, 시뮬레이션 종료 시간이 지났는지의 세 조건 중에 하나를 판단하여, 조건을 만족하지 않으면 상기 b) 단계부터 반복 수행하는 단계; 를 포함하는 것을 특징으로 한다.
상기와 같은 구성 및 방법을 가지는 본 발명은, 시간 기반 방식 및 사건 기반 방식 중에 사용자가 원하는 방식으로 스케줄 수행 패턴을 입력받아서 하이브리드 시뮬레이션을 진행할 수 있으며, 동시에 수행되어야 하는 스케줄을 멀티 쓰레드를 통해 동시에 수행할 수 있다.
도 1은 본 발명의 바람직한 실시예에 따른 시뮬레이션 시스템의 구성을 도시한 블록도.
도 2는 도 1의 시뮬레이션 시스템을 기능적인 면으로 구분하여 도시한 블록도.
도 3은 도 2의 시뮬레이션 시스템의 기능 클래스의 일 예를 도시한 블록도.
도 4는 본 발명의 바람직한 실시예에 따른 시뮬레이션 방법을 나타낸 순서도.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예에 따른 시뮬레이션 시스템 및 시뮬레이션 방법에 대하여 설명하면 다음과 같다.
먼저, 도 1과 도 2를 참조하여 본 발명의 바람직한 실시예에 따른 시뮬레이션 시스템에 대하여 설명하면 다음과 같다.
도 1을 참조하면, 본 발명의 바람직한 실시예에 따른 시뮬레이션 시스템은, 시간 기반 방식 및 사건 기반 방식 중에 사용자가 원하는 방식으로 스케줄 수행 패턴(execution pattern)을 입력받는 사용자 인터페이스(101); 시간을 소정 간격씩 진행시키는 타이머 모듈(102); 상기 스케줄 수행 패턴으로부터 스케줄을 받아 저장하는 스케줄 저장부(105); 현재 사용가능한 쓰레드(thread)를 저장하고 관리하는 쓰레드 관리 모듈(106); 및 상기 스케줄 저장부(105)에 저장된 스케줄 중에 현재 시뮬레이션 상태 또는 현재 시간에 따라 수행되어야할 스케줄을 결정한 후에 현재 사용 가능한 쓰레드를 사용하여 실행시키는 스케줄러 모듈(104); 을 포함한다. 그리고, 상기 스케줄러 모듈(104)이 현재 수행해야 하는 스케줄을 수행한 후에 상기 스케줄 저장부(105)에는 상기 스케줄 수행 패턴에서 생성된 다음 스케줄이 입력되어 저장된다.
삭제
삭제
상기와 같은 구성을 가지는 본 발명의 바람직한 실시예에 따른 시뮬레이션 시스템의 각 구성 요소에 대하여 상세히 설명하면 다음과 같다.
본 발명에 따른 시뮬레이션 시스템은 도 1에 도시한 바와 같이 타이머 인터페이스(101), 타이머 모듈(102), 사용자 인터페이스(103), 스케줄러 모듈(104), 스케줄 저장부(105), 쓰레드 관리 모듈(106) 및 스케줄 로그 모듈(107)을 포함하여 구성된다.
상기 타이머 인터페이스(101)는 시간 측정 방법 변경을 용이하도록 하기 위한 외부 타이머 입력 장치이며, 시간 측정 방법에 이용되는 시간 종류로서 논리적인 시간 및 물리적인 시간 등이 있으며, 상기 물리적인 시간은 GPS(global positioning system) 시간 및 윈도우 시스템 시간 등이 있다.
상기 타이머 모듈(102)은 시간을 정해진 타이머 간격씩 진행시킨다. 이때, 상기 타이머 모듈(102)은 타이머 인터페이스를 통해 입력된 시간 종류를 따른다.
상기 사용자 인터페이스(103)는 시간 기반 방식 및 사건 기반 방식 중에 사용자가 원하는 방식으로 정의된 스케줄을 입력받는다.
상기 스케줄 저장부(105)는 생성된 스케줄을 수행패턴에 맞추어 스케줄 큐(schedule queue)에 저장(enqueue)한다.
상기 쓰레드 관리 모듈(106)은 현재 사용가능한 쓰레드를 저장하고 관리하며, 동시에 수행 가능한 쓰레드의 개수 정보를 실행 전에 설정파일을 통해 사용자로부터 입력받는다.
상기 스케줄러 모듈(104)은 스케줄 저장부(105)의 스케줄 큐에 저장된 스케줄 중에 현재 시뮬레이션 상태 또는 현재 시간에 따라 수행되어야할 스케줄을 결정한 후에 꺼내어(dequeue), 그 스케줄을 현재 사용 가능한 쓰레드를 사용하여 실행시킨다. 이때, 현재 사용 가능한 쓰레드는 쓰레드 관리 모듈(106)로부터 공급받는다.
상기 스케줄러 모듈(104)이 현재 수행해야 하는 스케줄의 수행을 완료한 후에는 상기 스케줄 수행 패턴에서 생성된 다음 스케줄이 상기 스케줄 저장부(105)에 입력되어 저장되게 된다.
상기 스케줄러 모듈(104)은 현재 수행되고 있는 스케줄이 스케줄에 명시된 기간(duration) 정보보다 긴 시간이 소요되는 경우에 다음 스케줄은 현재 수행 중인 스케줄이 사용하고 있는 쓰레드가 아닌 다른 쓰레드를 사용하여 제시간에 수행되도록 한다.
다만, 상기와 같이 현재 수행되고 있는 스케줄이 스케줄에 명시된 기간(duration) 정보보다 긴 시간이 소요되더라도 현재 수행되고 있는 스케줄과 다음 스케줄이 선후 관계가 존재하면, 상기 스케줄러 모듈(104)은 다음 스케줄이 제시간에 수행되지 못하여 딜레이(delay)가 발생하더라도 수행 중인 스케줄과 다음 스케줄이 순서를 지켜 수행되도록 한다.
그리고, 상기 스케줄러 모듈(104)은 다수의 스케줄 각각이 서로 다른 쓰레드를 사용하여 수행되고 있는 경우에 서로 의존 관계가 있는 스케줄들에는 필요한 경우에 하나의 스케줄에 소정 시간 동안 프로세스 독점권(lock)을 부여한다. 이때, 하나의 스케줄에 소정 시간 동안 프로세스 독점권을 부여하는 것은, 서로 의존 관계가 있는 스케줄들이 서로의 수행 완료를 기다리는 데드락(deadlock)이나 순서 역전 등의 오류를 방지하기 위한 것이다.
상기 스케줄러 모듈(104)은 스케줄 저장부(105)의 스케줄 큐에 저장된 스케줄 중에 이전 시간에 수행되어야하지만 현재까지 수행되지 못한 미수행 스케줄은 무시(delay skip)하고 현재 시간에 수행되어야 할 스케줄만 실행시키거나, 현재 수행되어야 할 스케줄이 끝난 후 수행되지 못한 스케줄을 실행 가능한 순간이 되면 즉시 수행(execute ASAP)시키는 기능을 제공한다.
그리고, 상기 스케줄 로그 모듈(107)은 리포터 생성 장치로서, 수행된 스케줄에 대한 정보를 저장하여 사용자에게 제공하는 기능을 한다
상기 스케줄 로그 모듈(107)이 저장하는 정보는 스케줄의 실행 시작 시간, 실행 소요 시간 등을 포함한다.
상술한 바와 같이 본 발명에 따른 시뮬레이션 시스템은 구성적인 면에 있어서는 타이머 인터페이스(101), 타이머 모듈(102), 사용자 인터페이스(103), 스케줄러 모듈(104), 스케줄 저장부(105), 쓰레드 관리 모듈(106), 및 스케줄 로그 모듈(107)로 구분되지만, 기능적인 면에 있어서는 사용자가 원하는 방식(시간 기반 방식 및 사건 기반 방식)으로 정의되는 스케줄 수행 패턴(execution pattern)을 입력받는 제 1 기능(도 2의 ① 참조)과, 스케줄을 저장하고 관리하는 제 2 기능(도 2의 ② 참조), 및 스케줄을 제때에 실행시키는 제 3 기능(도 2의 ③ 참조)으로 구분될 수 있다.
도 2에는 본 발명에 따른 시뮬레이션 시스템을 기능적인 면으로 세 가지로 구분하여 블록도로 도시하였으며, 도 3에는 도 2의 시뮬레이션 시스템의 기능 클래스(class)의 일 예를 블록도로 도시하였다.
도 2를 참조하면, 상기 제 2 기능(②)은 스케줄 수행 패턴으로부터 스케줄을 받아서 스케줄 큐(schedule queue)에 저장(enqueue)하고, 스케줄 큐(schedule queue)에 저장된 스케줄을 출력하고, 스케줄 큐(schedule queue)에 저장된 스케줄에 대한 정보를 검색할 수 있고, 스케줄 큐(schedule queue)에 저장되는 스케줄을 소정 기준(예 :시간 우선 순위)에 의해 자체적으로 정렬할 수 있는 기능 등을 포함한다.
이와 같은 상기 제 2 기능 클래스(class)의 일 예는 도 3에 도시한 바와 같이 Schedule 클래스와 ScheduleManager 클래스를 포함한다.
도 2를 참조하면, 상기 제 3 기능은 현재 시간을 문의하는 시간 관리 기능과, 스케줄 큐(schedule queue)에 저장된 스케줄 중에 현재 시간에 실행해야할 스케줄이 있는지 감시하여 현재 시간에 실행해야할 스케줄이 있으면 해당 스케줄을 꺼내는(dequeue) 스케줄 처리 기능과, 스케줄 큐(schedule queue)로부터 꺼낸 스케줄을 실행하는 스케줄 실행 기능 등을 포함한다. 여기서, 상기 시간은 논리적인 시간 또는 물리적인 시간일 수 있으며, 물리적인 시간인 경우에는 GPS 시간 또는 윈도우 시스템 시간일 수 있다.
상기 제 3 기능 중에서 시간 관리 기능 클래스의 일 예는 도 3에 도시한 바와 같이 Timer 클래스와 TimerManager 클래스를 포함한다.
상기 Timer 클래스는 각 시간을 구현하며, 상기 TimeManager 클래스는 Timer를 관리하고 포괄적(generic)인 인터페이스의 역할을 한다.
상기 timer 클래스는 자체적인 쓰레드 생성을 통해 Tick함수를 호출하여 시간을 전진하는 기능과, 확장 가능한 Timer 클래스를 제공하는 기능을 포함하며, 외부에서는 일관된 인터페이스로 Timer를 관리하는 기능이 제공되어야 한다.
상기 Timer 클래스는 여러 가지 Timer의 부모 클래스로 추상화된 Timer를 제공하여 상속 가능하도록 하고, TimerManager 클래스는 외부로 Timer의 관리를 감싸서 인터페이스를 제공한다.
상기 Timer는 scheduler 구조체를 생성한 쓰레드에 의해 만들어지고, 이때 생성된 Timer 쓰레드는 스케줄을 감시하고 스케줄을 제시간에 스케줄 큐(schedule)에서 꺼내는(dequeue) 기능을 하는 함수를 작은 시간 간격으로 반복 호출한다. 즉, 상기 Timer 쓰레드는 스케줄러의 메인 쓰레드가 되는 것이다. 이는, 상기 제 3 기능 중에서 스케줄 처리 기능에 대응된다.
상기 제 3 기능 중에서 스케줄 실행 기능에서는, 스케줄을 실행하기 위한 쓰레드가 추가적으로 생성된다. 이때, 스케줄을 실행하기 위한 쓰레드는 동시성이 존재하는 스케줄들의 동시 처리를 위해서 다수의 쓰레드가 생성되어 사용될 수도 있다.
위에서 본 발명에 따른 시뮬레이션 시스템은 기능적인 면에 있어서 제 1 내지 제 3 기능으로 구분하여 설명하였지만, 제 1 내지 제 3 기능 외에도 추후에 다른 곳에서 특정 부분의 함수를 호출해주는 콜백(callback) 기능 등도 필요하다.
상기 콜백(callback) 기능 클래스의 일 예는 도 3의 Callback 클래스와 CallbackManager 클래스를 포함한다.
상기 Schedule 클래스에서는 스케줄이 할 일을 상기 콜백(callback) 기능을 통해 정의하며, 상기 Timer 쓰레드가 반복적으로 수행하는 scheduler 클래스의 내부 schedule 처리 함수도 상기 콜백(callback) 기능을 통해서 구현된다.
즉, 상기 콜백(callback) 기능은 특정 클래스의 함수를 넘겨받으면 그 함수를 추후에 콜백할 수 있는 정수의 핸들값을 넘겨주어서 핸들값으로 콜백(callback)할 수 있도록 한다.
이하, 도 4 및 도 1을 참조하여 본 발명의 바람직한 실시예에 따른 시뮬레이션 방법에 대하여 설명하면 다음과 같다.
먼저, 사용자 인터페이스(103)는 시간 기반 방식 및 사건 기반 방식 중에 사용자가 원하는 방식으로 스케줄 수행 패턴을 입력받는다. 이때, 쓰레드 관리 모듈(106)은 동시에 수행 가능한 쓰레드의 개수 정보를 사용자로부터 입력받을 수 있다.
다음으로, 타이머 모듈(102)은 시간을 정해진 타이머 간격만큼 전진시킨다.(S101) 이때, 상기 타이머 모듈(102)은 타이머 인터페이스(101)를 통해 입력된 시간 종류를 따른다.
상기 타이머 인터페이스(101)를 통해 입력되는 시간 종류는 논리적인 시간 및 물리적인 시간 등이 있으며, 상기 물리적인 시간은 GPS 시간 및 윈도우 시스템 시간 등이 있다.
다음으로, 스케줄러 모듈(104)은 스케줄 저장부(105)에 저장된 스케줄 중에 현재 시뮬레이션 상태 또는 현재 시간에 따라 현재 수행되어야할 현재 스케줄을 결정하고(S102), 수행되어야한다고 결정된 현재 스케줄을 현재 사용 가능한 쓰레드를 사용하여 실행시킨다(S103). 이때, 현재 사용 가능한 쓰레드는 쓰레드 관리 모듈(106)로부터 공급받는다.
상기 스케줄러 모듈(104)은 이전 스케줄이 스케줄에 명시된 기간(duration) 정보보다 긴 시간이 소요되어 현재에도 수행되고 있는 경우에, 현재 수행되어야한다고 결정된 현재 스케줄을 이전 스케줄이 사용하고 있는 쓰레드가 아닌 다른 쓰레드를 사용하여 제시간에 수행되도록 한다. 다만, 상기와 같이 이전 스케줄이 스케줄에 명시된 기간(duration) 정보보다 긴 시간이 소요되더라도 현재 수행되어야한다고 결정된 현재 스케줄과 이전 스케줄이 선후 관계가 존재하면, 상기 스케줄러 모듈(104)은 현재 수행되어야한다고 결정된 현재 스케줄이 제시간에 수행되지 못하여 딜레이(delay)가 발생하더라도 수행 중인 이전 스케줄과 현재 수행되어야한다고 결정된 현재 스케줄이 순서를 지켜 수행되도록 한다.
그리고, 상기 스케줄러 모듈(104)은 다수의 스케줄 각각이 서로 다른 쓰레드를 사용하여 수행되고 있는 경우에 서로 의존 관계가 있는 스케줄들에는 필요한 경우에 하나의 스케줄에 소정 시간 동안 프로세스 독점권(lock)을 부여한다. 이때, 하나의 스케줄에 소정 시간 동안 프로세스 독점권을 부여하는 것은, 서로 의존 관계가 있는 스케줄들이 서로의 수행 완료를 기다리는 데드락(deadlock)이나 순서 역전 등의 오류를 방지하기 위한 것이다.
상기 스케줄러 모듈(104)은 스케줄 저장부(105)의 스케줄 큐에 저장된 스케줄 중에 이전 시간에 수행되어야하지만 현재까지 수행되지 못한 미수행 스케줄은 무시(delay skip)하고 현재 시간에 수행되어야 할 스케줄만 실행시키거나, 현재 수행되어야 할 스케줄이 끝난 후 수행되지 못한 스케줄을 실행 가능한 순간이 되면 즉시 수행(execute ASAP)시키는 기능을 제공한다.
다음으로, 상기 스케줄러 모듈(104)이 현재 수행해야하는 스케줄의 수행을 완료한 후에는 스케줄 수행 패턴에서 생성된 다음 스케줄이 상기 스케줄 저장부(105)에 입력되어 저장된다.(S104)
다음으로, 상기 스케줄러 모듈(104)은 내부 상태를 천이한다. 즉, 이전 단계에서 현재 스케줄이라 정의되었던 스케줄을 이전 스케줄이라고 명시하는 등과 같은 작업을 수행한다.(S105)
다음으로, 상기 시뮬레이션이 종료된 상태인지, 시뮬레이션 종료 시간이 되었는지, 시뮬레이션 종료 시간이 지났는지의 세 조건 중에 하나를 판단하여(S106), 조건이 만족하지 않으면 위에서 설명한 다수의 단계 중에 타이머 모듈(102)이 시간을 정해진 타이머 간격씩 진행시키는 단계(S101)부터 반복 수행함으로써 시뮬레이션을 계속 진행하고, 반면에 조건이 만족하면 시뮬레이션을 종료한다.
101 : 타이머 인터페이스 102 : 타이머 모듈
103 : 사용자 인터페이스 104 : 스케줄러 모듈
105 : 스케줄 저장부 106 : 쓰레드 관리 모듈
107 : 스케줄 로그 모듈

Claims (15)

  1. 시뮬레이션을 수행하기 위한 스케줄 수행 패턴(execution pattern)으로부터 시간 기반 방식 및 사건 기반 방식 중에 사용자가 원하는 방식으로 정의된 스케쥴을 입력받는 사용자 인터페이스;
    시간을 소정 간격씩 진행시키는 타이머 모듈;
    상기 스케줄을 저장하는 스케줄 저장부;
    현재 사용가능한 쓰레드(thread)를 저장하고 관리하는 쓰레드 관리 모듈; 및
    상기 스케줄 저장부에 저장된 스케줄 중에 현재 시뮬레이션 상태 또는 현재 시간에 따라 수행되어야할 스케줄을 결정한 후에 현재 사용 가능한 쓰레드를 사용하여 실행시키는 스케줄러 모듈; 을 포함하며,
    상기 스케줄러 모듈이 현재 수행해야 하는 스케줄을 수행한 후에 상기 스케줄 저장부에는 상기 스케줄 수행 패턴에서 생성된 다음 스케줄이 입력되어 저장되는 것을 특징으로 하는 시뮬레이션 시스템.
  2. 제 1 항에 있어서, 상기 스케줄러 모듈은 현재 수행되고 있는 스케줄이 스케줄에 포함된 기간(duration) 정보보다 긴 시간이 소요되는 경우에 다음 스케줄은 현재 수행 중인 스케줄이 사용하는 쓰레드가 아닌 다른 쓰레드를 사용하여 제시간에 수행되도록 하는 것을 특징으로 하는 시뮬레이션 시스템.
  3. 제 2 항에 있어서, 다수의 스케줄 각각이 서로 다른 쓰레드를 사용하여 수행되고 있는 경우에 서로 의존 관계가 있는 스케줄들에는 필요한 경우에 하나의 스케줄에 소정 시간 동안 프로세스 독점권(lock)이 부여되는 것을 특징으로 하는 시뮬레이션 시스템.
  4. 제 2 항에 있어서, 상기 쓰레드 관리 모듈은 동시에 수행 가능한 쓰레드의 개수 정보를 사용자로부터 입력받는 것을 특징으로 하는 시뮬레이션 시스템.
  5. 제 1 항에 있어서, 현재 수행되고 있는 스케줄이 스케줄에 포함된 기간(duration) 정보보다 긴 시간이 소요되는 경우에, 상기 스케줄러 모듈은 현재 수행 중인 스케줄과 다음 스케줄이 선후 관계가 있는 경우에 현재 수행 중인 스케줄과 다음 스케줄이 순서를 지켜 수행되도록 하는 것을 특징으로 하는 시뮬레이션 시스템.
  6. 제 1 항에 있어서, 상기 스케줄러 모듈은 스케줄 저장부에 저장된 스케줄 중에 이전 시간에 수행되어야하지만 수행되지 못한 스케줄은 실행시키지 않고 현재 시간에 수행되어야할 스케줄을 실행시키는 것을 특징으로 하는 시뮬레이션 시스템.
  7. 제 6 항에 있어서, 상기 스케줄러 모듈은 스케줄 저장부에 저장된 스케줄 중에 이전 시간에 수행되어야하지만 수행되지 못한 스케줄은 실행 가능한 순간 즉시 수행하는 것을 특징으로 하는 시뮬레이션 시스템.
  8. a) 시뮬레이션을 수행하기 위한 스케줄 수행 패턴(execution pattern)으로부터 사용자 인터페이스를 통해 시간 기반 방식 및 사건 기반 방식 중에 사용자가 원하는 방식으로 정의된 스케줄을 입력받는 단계;
    b) 타이머 모듈이 시간을 소정 간격 증가시키는 단계;
    c) 스케줄러 모듈은 스케줄 저장부에 저장된 스케줄 중에 현재 시뮬레이션 상태 또는 현재 시간에 따라 수행되어야할 현재 스케줄을 결정하는 단계;
    d) 스케줄러 모듈은 수행되어야한다고 결정된 현재 스케줄을 현재 사용 가능한 쓰레드를 사용하여 실행시키는 단계;
    e) 상기 스케줄 수행 패턴에서 생성된 다음 스케줄을 생성하여 스케줄 저장부에 저장하는 단계; 및
    f) 시뮬레이션이 종료된 상태인지, 시뮬레이션 종료 시간이 되었는지, 시뮬레이션 종료 시간이 지났는지의 세 조건 중에 하나를 판단하여, 조건을 만족하지 않으면 상기 b) 단계부터 반복 수행하는 단계;
    를 포함하는 것을 특징으로 하는 시뮬레이션 방법.
  9. 제 8 항에 있어서, 상기 d) 단계에서 이전 스케줄이 스케줄에 포함된 기간(duration) 정보보다 긴 시간이 소요되어 현재에도 수행되고 있는 경우에, 스케줄러 모듈은 수행되어야한다고 결정된 현재 스케줄을 이전 스케줄이 사용하고 있는 쓰레드가 아닌 다른 쓰레드를 사용하여 제시간에 수행되도록 하는 것을 특징으로 하는 시뮬레이션 방법.
  10. 제 9 항에 있어서, 상기 d) 단계에서 다수의 스케줄 각각이 서로 다른 쓰레드를 사용하여 수행되고 있는 경우에 서로 의존 관계가 있는 스케줄들에는 필요한 경우에 하나의 스케줄에는 소정 시간 동안 프로세스 독점권(lock)이 부여되는 것을 특징으로 하는 시뮬레이션 방법.
  11. 제 9 항에 있어서, 상기 a) 단계의 전 또는 후에, 쓰레드 관리 모듈은 동시에 수행 가능한 쓰레드의 개수 정보를 사용자로부터 입력받는 것을 특징으로 하는 시뮬레이션 방법.
  12. 제 8 항에 있어서, 상기 d) 단계에서 이전 스케줄이 스케줄에 포함된 기간(duration) 정보보다 긴 시간이 소요되어 현재에도 수행되고 있는 경우에, 스케줄러 모듈은 수행되어야한다고 결정된 현재 스케줄이 이전 스케줄 다음으로 순서를 지켜 수행되도록 하는 것을 특징으로 하는 시뮬레이션 방법.
  13. 제 8 항에 있어서, 상기 d) 단계에서 스케줄러 모듈은 스케줄 저장부에 저장된 스케줄 중에 이전 시간에 수행되어야하지만 수행되지 못한 미수행 스케줄은 실행시키지 않고 현재 시간에 수행되어야할 스케줄을 실행시키는 것을 특징으로 하는 시뮬레이션 방법.
  14. 제 8 항에 있어서, 상기 c) 단계에서 스케줄러 모듈은 스케줄 저장부에 저장된 스케줄 중에 이전 시간에 수행되어야하지만 수행되지 못한 미수행 스케줄은 실행 가능한 조건이 되면 수행되어야할 현재 스케줄로 결정하는 것을 특징으로 하는 시뮬레이션 방법.
  15. 제 8 항에 있어서, 상기 e) 단계와 f) 단계 사이에는 스케줄러 모듈의 내부 상태를 천이하는 단계가 추가로 수행되는 것을 특징으로 하는 시뮬레이션 방법.
KR1020100055555A 2010-06-11 2010-06-11 시뮬레이션 시스템 및 시뮬레이션 방법 KR101083049B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100055555A KR101083049B1 (ko) 2010-06-11 2010-06-11 시뮬레이션 시스템 및 시뮬레이션 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100055555A KR101083049B1 (ko) 2010-06-11 2010-06-11 시뮬레이션 시스템 및 시뮬레이션 방법

Publications (1)

Publication Number Publication Date
KR101083049B1 true KR101083049B1 (ko) 2011-11-16

Family

ID=45397639

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100055555A KR101083049B1 (ko) 2010-06-11 2010-06-11 시뮬레이션 시스템 및 시뮬레이션 방법

Country Status (1)

Country Link
KR (1) KR101083049B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101418491B1 (ko) 2013-05-03 2014-07-14 한국항공우주산업 주식회사 스케쥴러를 이용한 다기종 무인기 검증을 위한 시뮬레이팅 시스템 및 그 제어방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100538727B1 (ko) 2002-03-07 2005-12-26 가부시끼가이샤 도시바 멀티 프로세서 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100538727B1 (ko) 2002-03-07 2005-12-26 가부시끼가이샤 도시바 멀티 프로세서 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
proc. of 11th IEEE RTAS'05, 2005, Yokoyama, T., An Aspect-Oriented Development Method for Embedded Control Systems with Time-Triggered and Event-Triggered Processing, pp.302-311

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101418491B1 (ko) 2013-05-03 2014-07-14 한국항공우주산업 주식회사 스케쥴러를 이용한 다기종 무인기 검증을 위한 시뮬레이팅 시스템 및 그 제어방법

Similar Documents

Publication Publication Date Title
Bertogna et al. Limited preemption EDF scheduling of sporadic task systems
CN106293919B (zh) 一种时间触发的嵌入式任务调度装置与方法
US8397235B2 (en) User tolerance based scheduling method for aperiodic real-time tasks
CN101258469B (zh) 信息处理设备
US20060268967A1 (en) Supplying instruction to operational stations
Diemer et al. Compositional performance analysis in python with pycpa
CN108319495B (zh) 任务处理方法及装置
Baruah The non-cyclic recurring real-time task model
CN102541642B (zh) 一种增强实时性能的任务管理方法
US20120246652A1 (en) Processor Management Via Thread Status
Cervin et al. Jitterbug and TrueTime: Analysis tools for real-time control systems
Günzel et al. Timing analysis of asynchronized distributed cause-effect chains
Yip et al. Relaxing the synchronous approach for mixed-criticality systems
Thekkilakattil et al. The global limited preemptive earliest deadline first feasibility of sporadic real-time tasks
CN112748993A (zh) 任务执行方法、装置、存储介质及电子设备
Guan et al. General and efficient response time analysis for EDF scheduling
Sirisakdiwan et al. Spark framework for real-time analytic of multiple heterogeneous data streams
KR101083049B1 (ko) 시뮬레이션 시스템 및 시뮬레이션 방법
Bril et al. Best-case response times and jitter analysis of real-time tasks
Wang et al. Real-time middleware for cyber-physical event processing
Hangan et al. RTMultiSim: A versatile simulator for multiprocessor real-time systems
Årzén et al. Implementation-aware embedded control systems
Pazzaglia et al. Simple and general methods for fixed-priority schedulability in optimization problems
Guo et al. Implementing mixed-criticality systems upon a preemptive varying-speed processor
Persya et al. Model based design of super schedulers managing catastrophic scenario in hard real time systems

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140818

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150911

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170911

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20191024

Year of fee payment: 9