KR101118036B1 - Api 변환 래퍼를 이용하여 리얼 코드와 연동할 수 있는 시뮬레이터 및 시뮬레이션 방법 - Google Patents

Api 변환 래퍼를 이용하여 리얼 코드와 연동할 수 있는 시뮬레이터 및 시뮬레이션 방법 Download PDF

Info

Publication number
KR101118036B1
KR101118036B1 KR1020100029524A KR20100029524A KR101118036B1 KR 101118036 B1 KR101118036 B1 KR 101118036B1 KR 1020100029524 A KR1020100029524 A KR 1020100029524A KR 20100029524 A KR20100029524 A KR 20100029524A KR 101118036 B1 KR101118036 B1 KR 101118036B1
Authority
KR
South Korea
Prior art keywords
simulation
real
real code
model
wrapper
Prior art date
Application number
KR1020100029524A
Other languages
English (en)
Other versions
KR20110109694A (ko
Inventor
김영구
Original Assignee
(주)솔빛시스템
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)솔빛시스템 filed Critical (주)솔빛시스템
Priority to KR1020100029524A priority Critical patent/KR101118036B1/ko
Publication of KR20110109694A publication Critical patent/KR20110109694A/ko
Application granted granted Critical
Publication of KR101118036B1 publication Critical patent/KR101118036B1/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
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

시뮬레이터가 개시된다. 상기 시뮬레이터는 각각이 다수의 레이어들(Layers)을 포함하는 적어도 하나의 시뮬레이션 모델(Simulation model), 리얼 코드 모델(Real Code Model)과 상기 적어도 하나의 시뮬레이션 모델을 조합하여 시뮬레이션 시나리오를 구성하고, 상기 시나리오에 기초하여 상기 리얼 코드 모델의 성능 분석을 위한 시뮬레이션을 수행하는 시뮬레이션 엔진, 및 리얼 시스템(Real System)에 적재되는 리얼 코드를 상기 적어도 하나의 시뮬레이션 모델에 포함된 적어도 하나의 레이어와 연동시키기 위하여, 상기 시뮬레이션 엔진의 API(Application Programming Interface)에 기초하여 상기 리얼 코드를 상기 시뮬레이션 엔진에서 실행 가능한 상기 리얼 코드 모델로 변환하여 상기 시뮬레이션 엔진에 링크시키는 래퍼(Wrapper)를 포함한다.

Description

API 변환 래퍼를 이용하여 리얼 코드와 연동할 수 있는 시뮬레이터 및 시뮬레이션 방법{SIMULATIOR AND SIMULATION METHOD CAPABLE OF INTERWORKING WITH REAL CODE USING APPLICATION PROGRAMMING INTERACE TRANSFORMING WRAPPER}
본 발명은 시뮬레이션 기술에 관한 것으로, 보다 상세하게는 리얼 코드(Real Code)에 대한 수정없이 리얼 코드에 대한 API 변환 래퍼를 이용하여 리얼 코드를 시뮬레이터와 서로 연동시킬 수 있는(즉, 리얼 코드에 대한 성능 평가를 할 수 있는) 시뮬레이션 기술에 관한 것이다.
시뮬레이터와 리얼 시스템 또는 리얼 코드를 연동하는 데에는 주로 IP/Ethernet 인터페이스를 통한 SITL(System In The Loop)이 이용된다. 도 1은 SITL을 이용하여 연동되는 시뮬레이터(200)와 리얼 시스템(100)의 블락도이다. 시뮬레이터(200)의 SITL(240)는 리얼 시스템(100)내의 리얼 코드, 즉 어플리케이션과 시뮬레이션 모델(250)간에 송수신되는 리얼 IP/Ethernet 패킷과 시뮬레이션 패킷을 상호 변환하여 전달함으로써 리얼 시스템과 시뮬레이터를 연동시키고 있다.
상기 과정을 순차적으로 좀 더 상세하게 살펴본다. 먼저, 상기 리얼 시스템(100)에서 특정 운영체계(120) 상에서 동작하는 리얼 코드, 즉, 어플리케이션(110)을 네트워크 인터페이스 카드(NIC: Network Interface Card, 130)를 통하여 상기 시뮬레이터(200)로 전송한다.
그러면 상기 시뮬레이터(200)의 네트워트 인터페이스 카드(210)는 리얼 패킷을 수신하며, 이때 상기 SITL(240)은 수신된 리얼 패킷중 필요한 패킷만을 선별한 후, 시뮬레이션 패킷으로 변환하여 시뮬레이션 모델(250)에 전달한다.
상기 시뮬레이터(200)내의 시뮬레이션 모델(250)에서 상기 리얼 시스템(100)내의 리얼 코드(110)으로 패킷을 전송할 때에는 상기 SITL(240)은 시뮬레이션 패킷을 리얼 패킷으로 변환하여 네트워크 인터페이스 카드(210)을 통해 전달한다.
도 1에 도시된 바와 같이, 상기 시뮬레이션 모델(250)은 물리 레이어(251), MAC(Media Access Control) 레이어(252), 네트워크 레이어(253), 전송 레이어(254), 및 어플리케이션 레이어(255)를 포함할 수 있다.
그러나, 도 1에 도시된 바와 같이 상기 리얼 시스템(100)내의 어플리케이션, 즉 리얼 코드(110)과 상기 시뮬레이션 모델(250)이 연동하는 구조에서는 상기 어플리케이션 레이어(255)는 실제로 존재하지 않고, 대신에 있는 리얼 시스템(100)내의 어플리케이션, 즉 리얼 코드(110)이 외부에서 역할을 대신하는 구조이다.
도 2는 SITL을 이용한 시뮬레이터와 리얼 시스템 간의 연동 구조들을 나타낸다. 도 2를 참조하면, SITL을 이용한 시뮬레이터(200)와 리얼 시스템(100)의 다양한 연동 구조들은 적합성 시험, 가상 교육, 상호 운용성 시험, 통신 품질 평가, 부하 시험, 및 용량/규모 시험 등에 이용될 수 있음을 알 수 있다.
이상에서 살펴본 SITL을 이용한 시뮬레이터(200)와 리얼 시스템(100) 사이의 연동 방법은 IP/Ethernet 인터페이스를 기반의 연동 방법이므로 IP 계층 이상의 프로토콜 및 어플리케이션을 연동하기에 용이하다. 그러나 상기 연동 방법에 따르면 리얼 코드를 시뮬레이션 모델(250)에 포함된 다수의 레이어들 중에서 특정 레이어(예컨대, MAC 레이어)에만 연동시킬 수 없다. 또한, 상기 연동 방법에 따르면 리얼 시스템(100)과 시뮬레이터(200)는 별도의 운영체계를 기반으로 구동되므로 양 시스템들에 대한 공통의 타임 관리가 필요한 타임 크리티컬(Time Critical)한 응용(예컨대, ms 단위의 MAC 타이밍 관리)에서는 사용되기 어려운 단점이 있다.
따라서 본 발명이 이루고자 하는 기술적인 과제는 리얼 코드의 변경없이 리얼 코드와 연동되며, 리얼 시스템에서는 타임 크리티컬한 응용 부분에 대한 시뮬레이션을 수행할 수 있는 시뮬레이터 및 시뮬레이션 방법을 제공하는 것이다.
상기 기술적 과제를 해결하기 위한 시뮬레이터는 적어도 하나의 시뮬레이션 모델(Simulation model), 시뮬레이션 엔진, 및 래퍼(Wrapper)를 포함할 수 있다. 상기 적어도 하나의 시뮬레이션 모델 각각은 다수의 레이어들(Layers)을 포함할 수 있다. 상기 시뮬레이션 엔진은 리얼 코드 모델(Real Code Model)과 상기 적어도 하나의 시뮬레이션 모델을 조합하여 시뮬레이션 시나리오를 구성하고, 상기 시나리오에 기초하여 상기 리얼 코드 모델의 성능 분석을 위한 시뮬레이션을 수행할 수 있다.
상기 래퍼는 리얼 시스템(Real System)에 적재되는 리얼 코드를 상기 적어도 하나의 시뮬레이션 모델에 포함된 적어도 하나의 레이어와 연동시키기 위하여, 상기 시뮬레이션 엔진의 API(Application Programming Interface)에 기초하여 상기 리얼 코드를 상기 시뮬레이션 엔진에서 실행 가능한 상기 리얼 코드 모델로 변환하여 상기 시뮬레이션 엔진에 링크시킬 수 있다.
상기 래퍼는 적어도 하나의 리얼 코드 파일 및 상기 적어도 하나의 리얼 코드 파일에 대응하는 상기 시뮬레이션 엔진의 API에 따른 적어도 하나의 래퍼 파일을 함께 컴파일하여 상기 리얼 코드 모델을 생성할 수 있다. 상기 적어도 하나의 래퍼 파일은 상기 리얼 시스템의 운영체계의 API에 따른 타이머 서비스, 메모리 관리 서비스, 테스크 서비스, 동기 서비스, 내부 프로세서 통신 중 적어도 하나를 수행하기 위한 리얼 코드 파일에 대응할 수 있다.
상기 래퍼는 상기 리얼 코드의 작성 프로그래밍 언어, 상기 리얼 시스템의 운영체계의 종류, 및 상기 시뮬레이션 엔진의 종류에 기초하여 상기 적어도 하나의 리얼 코드 파일을 상기 적어도 하나의 래퍼 파일로 매핑(Mapping)할 수 있다.
상기 기술적 과제를 해결하기 위한 시뮬레이션 방법은 래퍼에서, 리얼 시스템에 적재되는 리얼 코드를 적어도 하나의 시뮬레이션 모델에 포함된 적어도 하나의 레이어와 연동시키기 위하여, 시뮬레이션 엔진의 API(Application Programming Interface)에 기초하여 상기 리얼 코드를 상기 시뮬레이션 엔진에서 실행 가능한 리얼 코드 모델로 변환하여 상기 시뮬레이션 엔진에 링크시키는 단계; 상기 시뮬레이션 엔진에서, 상기 리얼 코드 모델과 각각이 다수의 레이어들을 포함하는 적어도 하나의 시뮬레이션 모델을 조합하여 시뮬레이션 시나리오를 구성하는 단계; 및 상기 시뮬레이션 엔진에서, 상기 시나리오에 기초하여 상기 리얼 코드 모델의 성능 분석을 위한 시뮬레이션을 수행하는 단계를 포함할 수 있다.
이때, 상기 래퍼는 적어도 하나의 리얼 코드 파일 및 상기 적어도 하나의 리얼 코드 파일에 대응하는 상기 시뮬레이션 엔진의 API에 따른 적어도 하나의 래퍼 파일을 함께 컴파일하여 상기 리얼 코드 모델을 생성할 수 있다. 상기 적어도 하나의 래퍼 파일은 상기 리얼 시스템의 운영체계의 API에 따른 타이머 서비스, 메모리 관리 서비스, 테스크 서비스, 동기 서비스, 내부 프로세서 통신 중 적어도 하나를 수행하기 위한 리얼 코드 파일에 대응할 수 있다.
상기 래퍼는 상기 리얼 코드의 작성 프로그래밍 언어, 상기 리얼 시스템의 운영체계의 종류, 및 상기 시뮬레이션 엔진의 종류에 기초하여 상기 적어도 하나의 리얼 코드 파일을 상기 적어도 하나의 래퍼 파일로 매핑(Mapping)할 수 있다.
본 발명의 실시예에 따른 시뮬레이션 방법은 컴퓨터로 읽을 수 있는 기록 매체에 저장된 상기 시뮬레이션 방법을 실행하기 위한 컴퓨터 프로그램을 실행함으로써 구현될 수 있다.
상술한 바와 같이 본 발명에 따른 시뮬레이터 및 시뮬레이션 방법은 리얼 코드에 대한 수정없이 리얼 시스템과 시뮬레이터를 연동시킬 수 있고, 시뮬레이션 모델의 특정 레이어만을 대상으로 한 리얼 시스템과 시뮬레이터 사이의 연동을 가능케 한다.
또한, 본 발명에 따른 시뮬레이터 및 시뮬레이션 방법에 따르면 리얼 코드와 시뮬레이션 모델은 시뮬레이터 엔진에서 관리하는 시뮬레이션 클락(Simulation Clock)을 기준으로 한 시간 관리(Time Management)에 기초하여 함께 구동되므로 리얼 시스템에서는 타임 크리티컬한 시뮬레이션을 시간에 구애받지않고 수행할 수 있다.
도 1은 SITL을 이용하여 연동되는 시뮬레이터와 리얼 시스템의 블락도이다.
도 2는 SITL을 이용한 시뮬레이터와 리얼 시스템 간의 연동 구조들을 나타낸다.
도 3은 래퍼를 이용하여 리얼 코드와 연동되는 본 발명의 실시예에 따른 시뮬레이터의 블락도이다.
도 4는 본 발명의 일실시예에 따른 시뮬레이터와 소프트웨어 개발환경에서 작성된 리얼 코드의 연동 관계를 나타낸다.
도 5는 도 3에 도시된 래퍼가 래퍼 파일들을 결정하는 과정을 나타낸다.
도 6은 도 3에 도시된 래퍼의 API 매핑의 일예를 나타낸다.
도 7은 본 발명의 실시예에 따른 시뮬레이션 방법을 포함하는 리얼 시스템과 시뮬레이터 사이의 통합 운용 과정을 나타내는 흐름도이다.
도 8은 OPNET의 프레임워크에 따라 제작된 시나리오 모델, 노드 모델, 및 프로세스 모델의 일예를 나타낸다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니된다.
본 발명의 개념에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시 예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예를 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 3은 래퍼를 이용하여 리얼 코드와 연동되는 본 발명의 실시예에 따른 시뮬레이터(300)의 블락도이다. 상기 시뮬레이터(300)는 리얼 코드를 그대로 사용하여 시뮬레이터(300)에 포함된 시뮬레이션 모델(330A, 330B, 330C)과 리얼 코드를 서로 연동시킬 수 있다.
도 3을 참조하면, 상기 시뮬레이터(300)는 운영 체계(310), 시뮬레이션 엔진(320), 시뮬레이션 모델들(330A, 330B, 330C), 래퍼들(340A, 340B)을 포함할 수 있다. 상기 시뮬레이션 엔진(320)은 상기 운영 체계(310) 위에서 상기 시뮬레이션 모델들(330A, 330B, 330C)의 동작을 제어하여 각종 시뮬레이션을 수행할 수 있다.
상기 시뮬레이션 엔진(320)의 동작을 좀 더 상세히 살펴보면, 상기 시뮬레이션 엔진(320)은 상기 래퍼들(340A, 340B)에서 생성되는 리얼 코드 모델(Real Code Model)과 상기 래퍼들(340A, 340B)을 조합하여 시뮬레이션 시나리오를 구성하고, 상기 시나리오에 기초하여 상기 리얼 코드 모델의 성능 분석을 위한 시뮬레이션을 수행할 수 있다.
상기 시뮬레이션 모델들(330A, 330B, 330C) 각각은 도 1에 도시된 시뮬레이션 모델(250)과 같이 다수의 레이어들(Layers, 미도시)을 포함할 수 있다. 상기 래퍼들(340A, 340B)은 리얼 시스템(Real System)에 적재되는 리얼 코드를 시뮬레이션 모델들(330A, 330B, 330C) 각각에 포함된 적어도 하나의 레이어와 연동시킬 수 있다.
예컨대, 래퍼들(340A, 340B)은 상기 시뮬레이션 엔진(320)의 API(Application Programming Interface)에 기초하여 상기 리얼 코드를 상기 시뮬레이션 엔진(320)에서 실행 가능한 상기 리얼 코드 모델로 변환하여 상기 시뮬레이션 엔진(320)에 링크시킬 수 있다. 좀 더 구체적으로 살펴보면, 상기 래퍼들(340A, 340B)은 상기 리얼 코드에 포함된 적어도 하나의 리얼 코드 파일 및 상기 적어도 하나의 리얼 코드 파일에 대응하는 상기 시뮬레이션 엔진의 API에 따른 적어도 하나의 래퍼 파일을 함께 컴파일하여 상기 리얼 코드 모델을 생성할 수 있다.
도 3에서 시뮬레이터(300)는 다수의 래퍼들(340A, 340B)을 포함하는 것으로 도시되었으나 본 발명의 범위가 이에 한정되는 것은 아니다. 예컨대, 상기 래퍼들(340A, 340B)은 하나의 래퍼로 구현될 수 있으며, 다수의 래퍼들(340A, 340B)은 그 내부에서 수행하는 기능 상의 차이로 구분된 개념일 수 있다. 또한, 도 3의 시뮬레이터(300)는 다수의 시뮬레이션 모델들(330A, 330B, 330C)을 포함하는 것으로 도시되었으나 본 발명의 범위가 이에 한정되는 것은 아니다.
이상에서 살펴본 바와 같이, 상기 시뮬레이터(300)의 상기 래퍼들(340A, 340B)은 리얼 코드를 수정없이 시뮬레이터(300) 내의 시뮬레이션 모델들(330A, 330B, 330C)과 연동시킬 수 있으며, 상기 래퍼들(340A, 340B)은 시뮬레이션 모델들(330A, 330B, 330C)의 단일 레이어만을 리얼 코드와 연동시킬 수 있음을 알 수 있다.
도 4는 본 발명의 일실시예에 따른 시뮬레이터와 소프트웨어 개발환경에서 작성된 리얼 코드의 연동 관계를 나타낸다. 참고로, 도 4에서 시뮬레이터(300)는 시뮬레이션 엔진으로 OPNET을 이용한다. 이하, 도 4를 참조하여, 상기 시뮬레이터와 상기 리얼 코드 사이의 연동 관계 형성 과정 내지 상기 시뮬레이터에서 수행되는 시뮬레이션 과정에 대하여 살펴본다.
개발자는 비쥬얼 스튜디오, 랩소디 등의 소프트웨어 개발 환경에서 C, C++, UML 등의 프로그래밍 언어를 이용하여 리얼 코드를 작성할 수 있다. 소프트웨어 개발 환경에서 작성된 리얼 코드는 OPNET 래퍼를 통하여 상기 시뮬레이터와 연동되어 특정 시뮬레이션 장비 모델(M&S 모델)에 적재된다.
통신 성능 분석을 위한 시뮬레이터는 개념 모델, 상세 모델, 및 특정 시뮬레이션 모델(M&S 모델)을 포함하는 장비 모델들을 시뮬레이션 수행 운용 시나리오 모델에 배치한다. 또한, 상기 시뮬레이터는 트래픽/IER 모델, 환경 모델, 전파 모델, 지형 모델, 이동성 모델 등을 포함하는 전장 통신 환경 모델을 상기 운용 시나리오 모델에 적용한다. 그런 다음, 시뮬레이션 엔진은 상기 운용 시나리오 모델에 기초하여 통신 성능 분석 시뮬레이션을 수행할 수 있다.
도 5는 도 3에 도시된 래퍼가 래퍼 파일들을 결정하는 과정을 나타낸다. 상기 래퍼는 상기 리얼 코드의 작성 프로그래밍 언어, 상기 리얼 시스템의 운영체계의 종류, 및 상기 시뮬레이션 엔진의 종류에 기초하여 리얼 코드 파일을 래퍼 파일로 매핑(Mapping)할 수 있다.
도 5를 참조하면, 상기 프로그래밍 언어는 C 또는 C++일 수 있으며, 상기 리얼 시스템의 운영 체계는 MS 윈도우 계열, Vx 웍스 계열일 수 있으며, 시뮬레이션 엔진은 OPNET, NS-2일 수 있음을 알 수 있다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니다.
매핑의 대상이 되는 래퍼 파일은 상기 리얼 시스템의 운영체계의 API에 따른 타이머 서비스(Timer Services), 메모리 관리 서비스(Memory Management Services), 테스크 서비스(Task Services), 동기 서비스(Synchronization Services), 내부 프로세서 통신(Inter-Process Communicaions) 중 적어도 하나를 수행하기 위한 리얼 코드 파일일 수 있다.
여기서, 리얼 코드와 본 발명에 따른 시뮬레이터(300)는 시뮬레이터 엔진에서 관리하는 시뮬레이션 클락(Simulation Clock)을 기준으로한 시간 관리(Time Management), 즉, 타이머 서비스를 기준으로 함께 구동될 수 있다. 그러므로 상기 시뮬레이터(300)는 리얼 시스템에서는 타임 크리티컬한 시뮬레이션을 시간에 구애받지않고 수행할 수 있다.
도 6은 도 3에 도시된 래퍼의 API 매핑의 일예를 나타낸다. 리얼 코드는 특정 프로그래밍 언어로 상기 리얼 시스템의 운영 체계의 API에 맞춰진 다수의 리얼 파일들을 포함하며, 특정 시뮬레이션 엔진의 API를 이용한 래퍼 파일들은 상기 다수의 리얼 파일들에 대응하는 다수의 래퍼 파일들을 포함한다.
도 6을 참조하면, 리얼 파일에 포함된 인자a 내지 인자c를 이용한 타이머 서비스 함수A는 타이머 서비스 래퍼 함수에서 인자x 내지 인자z를 이용한 타이머 서비스 함수X로 매핑되는 것을 알 수 있다.
한편, 본 발명의 실시예에 따른 리얼 시스템과 연동되는 시뮬레이터(300)의 구성 요소들 각각 또는 그들의 조합은 본 발명의 기술적 사상을 수행하기 위한 소프트웨어, 하드웨어, 또는 소프트웨어와 하드웨어의 결합에 의하여 구현될 수 있다.
또한, 본 발명의 실시예에 따른 시뮬레이터(300)의 구성요소들 각각, 구성요소들 각각의 일부, 또는 그들의 조합은 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP) 등과 같은 다양한 형태들의 패키지에 실장될 수 있다.
도 7은 본 발명의 실시예에 따른 시뮬레이션 방법을 포함하는 리얼 시스템과 시뮬레이터 사이의 통합 운용 과정을 나타내는 흐름도이다. 이하, 도 3, 도 4, 및 도 7을 참조하여 상기 통합 운용 과정을 살펴본다.
상기 통합 운용 과정은 리얼 코드 작성, 보완, 및 적용 단계(S70), 시뮬레이션 단계(S80), 및 시뮬레이션 모델 구현 단계(S90)를 포함한다. 리얼 코드 작성 단계는 소프트웨어 개발 환경에서 특정 운영 체계 환경을 고려하여 특정의 프로그래밍 언어를 이용하여 리얼 코드를 작성하는 단계(S71) 및 상기 작성된 리얼 코드를 컴파일하여 컴파일 오류를 수정하는 단계(S72)를 포함한다.
리얼 코드 보완 단계는 목표 성능 도달에 실패한 상기 시뮬레이션 단계(S80) 결과를 반영하여 리얼 코드를 보완하는 단계(S73) 및 상기 보완된 리얼 코드를 컴파일 하여 컴파일 오류를 수정하는 단계(S72)를 포함한다. 상기 리얼 코드 적용 단계는 상기 시뮬레이션 단계(S80)에서 확인된 성능이 목표 성능에 도달한 경우 리얼 코드를 리얼 시스템에 적재(Porting)하는 과정(S74)를 포함한다.
상기 시뮬레이션 단계는 리얼 코드를 작성한 프로그래밍 언어별, 리얼 시스템의 운영 체계별로 주요 API를 시뮬레이션 엔진별 API와 연동시키기 위한 래퍼 파일들을 작성하는 단계(S81), 컴파일 오류가 수정된 리얼 코드와 상기 래퍼 파인글을 함께 컴파일하여 시뮬레이션 엔진에서 시행 가능한 리얼 코드 모델을 생성하는 단계(S82), 상기 리얼 코드 모델과 상기 시뮤레이션 모델 구현 단계(S90)에서 생성되는 시뮬레이션 모델을 조합하여 시뮬레이션 시나리오를 구성하는 단계(S83), 리얼 코드 모델의 성능 분석을 위한 시뮬레이션을 수행하여 상기 리얼 코드 모델의 성능을 분석하는 단계(S84), 및 상기 리얼 코드 모델의 성능이 목표 성능에 도달하였는지를 판단하는 단계(S85)를 포함한다.
이때, 리얼 코드 모델을 작성하는 단계(S82)는 래퍼 내에서 리얼 파일들에 대한 적절한 API 변환 함수가 선택될 수 있도록 리얼 시스템의 운영 체계 종류, 리얼 코드를 작성한 프로그래밍 언어 종류, 시뮬레이션 엔진의 종류 등을 포함하는 컴파일 옵션을 수신하여 상기 리얼 코드 모델을 작성하는 단계(S82)에 적용하는 단계를 더 포함할 수 있다.
상기 시뮬레이션 모델 구현 단계(S90)는 특정 시뮬레이션 개발 환경에서 시뮬레이션 모델을 설계/구현하는 단계(S91) 및 상기 시뮬레이션 모델을 컴파일하여 컴파일 오류를 수정하는 단계(S92)를 포함할 수 있다.
본 발명의 실시예에 따른 시뮬레이션 방법을 포함하는 리얼 시스템과 시뮬레이터 사이의 통합 운용 과정은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있다. 본 발명의 실시예에 따른 시뮬레이션 방법을 포함하는 리얼 시스템과 시뮬레이터 사이의 통합 운용 과정은 컴퓨터로 읽을 수 있는 기록 매체에 저장된 본 발명의 실시예에 따른 시뮬레이션 방법을 포함하는 리얼 시스템과 시뮬레이터 사이의 통합 운용 과정을 실행하기 위한 컴퓨터 프로그램을 실행함으로써 구현될 수 있다.
컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 예컨대, 컴퓨터가 읽을 수 있는 기록매체에는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있다.
또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명의 실시예에 따른 시뮬레이션 방법을 포함하는 리얼 시스템과 시뮬레이터 사이의 통합 운용 과정을 구현하기 위한 기능적인 (functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
도 8은 OPNET의 프레임워크에 따라 제작된 시나리오 모델, 노드 모델, 및 프로세스 모델의 일예를 나타낸다. 상기 시나리오 모델은 전장 통신 성능 평가를 위한 시나리오 모델로 상기 시나리오 모델에는 이동성이 부여된 함선, 전투기, 헬기 등의 다수의 노드들이 배치된다. 상기 노드 모델은 상기 다수의 노드들 각각의 레이어 구조를 나타내며, 상기 프로세스 모델은 상기 다수의 노드들 각각의 레이어들 사이의 상태 및 상태 천이 과정을 나타낸다.
발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
300: 시뮬레이터 310: 운영체계
320: 시뮬레이션 엔진 330A, 330B, 330C: 시뮬레이션 모델
340A, 340B: 래퍼

Claims (9)

  1. 각각이 다수의 레이어들(Layers)을 포함하는 적어도 하나의 시뮬레이션 모델(Simulation model);
    리얼 코드 모델(Real Code Model)과 상기 적어도 하나의 시뮬레이션 모델을 조합하여 시뮬레이션 시나리오를 구성하고, 상기 시나리오에 기초하여 상기 리얼 코드 모델의 성능 분석을 위한 시뮬레이션을 수행하는 시뮬레이션 엔진; 및
    리얼 시스템(Real System)에 적재되는 리얼 코드를 상기 적어도 하나의 시뮬레이션 모델에 포함된 적어도 하나의 레이어와 연동시키기 위하여, 상기 시뮬레이션 엔진의 API(Application Programming Interface)에 기초하여 상기 리얼 코드를 상기 시뮬레이션 엔진에서 실행 가능한 상기 리얼 코드 모델로 변환하여 상기 시뮬레이션 엔진에 링크시키는 래퍼(Wrapper)를 포함하며,
    상기 리얼 코드 모델은 상기 시뮬레이션 엔진에서 실행 가능하도록 상기 래퍼에 의해 상기 리얼 코드로부터 변환되는 시뮬레이터 장치.
  2. 제1항에 있어서, 상기 래퍼는
    적어도 하나의 리얼 코드 파일 및 상기 적어도 하나의 리얼 코드 파일에 대응하는 상기 시뮬레이션 엔진의 API에 따른 적어도 하나의 래퍼 파일을 함께 컴파일하여 상기 리얼 코드 모델을 생성하는 것을 특징으로 하는 시뮬레이터 장치.
  3. 제2항에 있어서, 상기 적어도 하나의 래퍼 파일은
    상기 리얼 시스템의 운영체계의 API에 따른 타이머 서비스, 메모리 관리 서비스, 테스크 서비스, 동기 서비스, 내부 프로세서 통신 중 적어도 하나를 수행하기 위한 리얼 코드 파일에 대응하는 것을 특징으로 하는 시뮬레이터 장치.
  4. 제3항에 있어서, 상기 래퍼는
    상기 리얼 코드의 작성 프로그래밍 언어, 상기 리얼 시스템의 운영체계의 종류, 및 상기 시뮬레이션 엔진의 종류에 기초하여 상기 적어도 하나의 리얼 코드 파일을 상기 적어도 하나의 래퍼 파일로 매핑(Mapping)하는 것을 특징으로 하는 시뮬레이터 장치.
  5. 래퍼에서, 리얼 시스템에 적재되는 리얼 코드를 적어도 하나의 시뮬레이션 모델에 포함된 적어도 하나의 레이어와 연동시키기 위하여, 시뮬레이션 엔진의 API(Application Programming Interface)에 기초하여 상기 리얼 코드를 상기 시뮬레이션 엔진에서 실행 가능한 리얼 코드 모델로 변환하여 상기 시뮬레이션 엔진에 링크시키는 단계;
    상기 시뮬레이션 엔진에서, 상기 리얼 코드가 상기 시뮬레이션 엔진에서 실행 가능하도록 상기 래퍼에 의해 변환되는 상기 리얼 코드 모델과 각각이 다수의 레이어들을 포함하는 적어도 하나의 시뮬레이션 모델을 조합하여 시뮬레이션 시나리오를 구성하는 단계; 및
    상기 시뮬레이션 엔진에서, 상기 시나리오에 기초하여 상기 리얼 코드 모델의 성능 분석을 위한 시뮬레이션을 수행하는 단계를 포함하는 시뮬레이션 방법.
  6. 제5항에 있어서, 상기 래퍼는
    적어도 하나의 리얼 코드 파일 및 상기 적어도 하나의 리얼 코드 파일에 대응하는 상기 시뮬레이션 엔진의 API에 따른 적어도 하나의 래퍼 파일을 함께 컴파일하여 상기 리얼 코드 모델을 생성하는 것을 특징으로 하는 시뮬레이션 방법.
  7. 제6항에 있어서, 상기 적어도 하나의 래퍼 파일은
    상기 리얼 시스템의 운영체계의 API에 따른 타이머 서비스, 메모리 관리 서비스, 테스크 서비스, 동기 서비스, 내부 프로세서 통신 중 적어도 하나를 수행하기 위한 리얼 코드 파일에 대응하는 것을 특징으로 하는 시뮬레이션 방법.
  8. 제7항에 있어서, 상기 래퍼는
    상기 리얼 코드의 작성 프로그래밍 언어, 상기 리얼 시스템의 운영체계의 종류, 및 상기 시뮬레이션 엔진의 종류에 기초하여 상기 적어도 하나의 리얼 코드 파일을 상기 적어도 하나의 래퍼 파일로 매핑(Mapping)하는 것을 특징으로 하는 시뮬레이션 방법.
  9. 제5항 내지 제8항 중 어느 하나의 항에 기재된 시뮬레이션 방법을 실행하기 위한 코드를 저장하는 컴퓨터로 읽을 수 있는 기록 매체.
KR1020100029524A 2010-03-31 2010-03-31 Api 변환 래퍼를 이용하여 리얼 코드와 연동할 수 있는 시뮬레이터 및 시뮬레이션 방법 KR101118036B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100029524A KR101118036B1 (ko) 2010-03-31 2010-03-31 Api 변환 래퍼를 이용하여 리얼 코드와 연동할 수 있는 시뮬레이터 및 시뮬레이션 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100029524A KR101118036B1 (ko) 2010-03-31 2010-03-31 Api 변환 래퍼를 이용하여 리얼 코드와 연동할 수 있는 시뮬레이터 및 시뮬레이션 방법

Publications (2)

Publication Number Publication Date
KR20110109694A KR20110109694A (ko) 2011-10-06
KR101118036B1 true KR101118036B1 (ko) 2012-02-24

Family

ID=45026818

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100029524A KR101118036B1 (ko) 2010-03-31 2010-03-31 Api 변환 래퍼를 이용하여 리얼 코드와 연동할 수 있는 시뮬레이터 및 시뮬레이션 방법

Country Status (1)

Country Link
KR (1) KR101118036B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101194246B1 (ko) * 2012-03-21 2012-10-29 국방과학연구소 컴포넌트기반 통합 시뮬레이션 환경과 c/c++ 시뮬레이션 프로그램 연동 방법 및 연동 에이전트/인터페이스 설계 방법
CN103439953A (zh) * 2013-08-29 2013-12-11 中国船舶重工集团公司第七一一研究所 具有优化试验功能的单缸机试验测控系统和测控方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104899391B (zh) * 2015-06-18 2018-01-19 哈尔滨工程大学 一种j型铺管作业模型建模仿真方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100272095B1 (ko) 1996-07-30 2000-12-01 윤종용 실시간 운영체제의 커널 자동생성 시스템 및 방법
KR20080112833A (ko) * 2007-06-22 2008-12-26 재단법인서울대학교산학협력재단 디지털 시스템 설계 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100272095B1 (ko) 1996-07-30 2000-12-01 윤종용 실시간 운영체제의 커널 자동생성 시스템 및 방법
KR20080112833A (ko) * 2007-06-22 2008-12-26 재단법인서울대학교산학협력재단 디지털 시스템 설계 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101194246B1 (ko) * 2012-03-21 2012-10-29 국방과학연구소 컴포넌트기반 통합 시뮬레이션 환경과 c/c++ 시뮬레이션 프로그램 연동 방법 및 연동 에이전트/인터페이스 설계 방법
CN103439953A (zh) * 2013-08-29 2013-12-11 中国船舶重工集团公司第七一一研究所 具有优化试验功能的单缸机试验测控系统和测控方法

Also Published As

Publication number Publication date
KR20110109694A (ko) 2011-10-06

Similar Documents

Publication Publication Date Title
Singh et al. A survey of simulation in sensor networks
Herrera et al. The COMPLEX methodology for UML/MARTE Modeling and design space exploration of embedded systems
US9268551B2 (en) Runtime creation, assignment, deployment and updating of arbitrary radio waveform techniques for a radio waveform generation device
Guessi et al. Checking the architectural feasibility of systems-of-systems using formal descriptions
KR101118036B1 (ko) Api 변환 래퍼를 이용하여 리얼 코드와 연동할 수 있는 시뮬레이터 및 시뮬레이션 방법
Karsai et al. Model-driven architecture for embedded software: A synopsis and an example
Petroulakis et al. Patterns for the design of secure and dependable software defined networks
Risco‐Martín et al. xDEVS: A toolkit for interoperable modeling and simulation of formal discrete event systems
Viana et al. One step forward: Linking wireless self-organizing network validation techniques with formal testing approaches
Heinzemann et al. Automata-based refinement checking for real-time systems
Hariche et al. Embedded systems design using event-b theories
Radermacher et al. Generating execution infrastructures for component-oriented specifications with a model driven toolchain: A case study for marte's gcm and real-time annotations
Yin et al. Research on Formal Verification Technique for Aircraft Safety-Critical Software.
Hussein et al. An end-to-end framework for safe software development
Cortellessa et al. MOSES: MOdeling Software and platform architEcture in UML 2 for Simulation-based performance analysis
Triantafyllidis et al. ProMARTES: Accurate network and computation delay prediction for component-based distributed systems
Suresh Kumar et al. Abstracting IoT protocols using timed process algebra and SPIN model checker
Bernardeschi et al. Cross-level co-simulation and verification of an automatic transmission control on embedded processor
Lang Compositional verification using SVL scripts
Alloush et al. A domain-specific framework for creating early trusted underwater systems relying on enterprise architecture
Layeb et al. Metrics, platforms, emulators, and testnets for ethereum
Intana Formal engineering methodologies for wireless sensor network development with simulation
Bannour et al. Exploring IoT trickle-based dissemination using timed model-checking and symbolic execution
Olenev et al. Co-modeling of embedded networks using systemc and SDL: From theory to practice
Castro et al. M&S-based design of embedded controllers on network processors

Legal Events

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

Payment date: 20150109

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151127

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170210

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180404

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190225

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20191125

Year of fee payment: 9