KR101139610B1 - 데이터베이스화된 공유메모리를 이용한 공학적 분석용 프로그램들간의 동기화된 연계 방법 및 시스템 - Google Patents
데이터베이스화된 공유메모리를 이용한 공학적 분석용 프로그램들간의 동기화된 연계 방법 및 시스템 Download PDFInfo
- Publication number
- KR101139610B1 KR101139610B1 KR1020100073204A KR20100073204A KR101139610B1 KR 101139610 B1 KR101139610 B1 KR 101139610B1 KR 1020100073204 A KR1020100073204 A KR 1020100073204A KR 20100073204 A KR20100073204 A KR 20100073204A KR 101139610 B1 KR101139610 B1 KR 101139610B1
- Authority
- KR
- South Korea
- Prior art keywords
- storage space
- variable
- shared memory
- global
- storing
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/522—Barrier synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
본 발명에 따른 공학적 분석용 프로그램들간의 동기화된 연계 시스템은, 프로그램들의 소스코드들에서 정의하고 있는 전역변수들을 추출하는 전역변수 추출부; 전역변수들을 변수명에 따라 검색할 수 있도록 데이터베이스화하여 공유메모리에 저장하는 메모리 관리부; 소스코드들의 전역변수 선언영역을 제거한 뒤, 공유메모리 상에 저장공간을 할당받도록 원본 소스코드를 변경하여 각각의 프로그램에 대한 실행파일을 생성하는 번역부; 및 번역부에 의해 생성된 실행파일들을 실행하고 동기화된 시간간격으로 시간진행시키며, 각 프로그램의 상태를 결정하는 공유메모리 저장공간을 물리적 메모리에 저장 및 복원하는 코드 실행부를 구비한다.
Description
본 발명은 데이터베이스화된 공유메모리를 이용한 공학적 분석용 프로그램들간의 동기화된 연계 방법론 및 시스템에 관한 것이다. 보다 상세하게는, 복수 개의 공학적 분석용 프로그램들을 통합하여 복합적 분석용도로 사용하고자 하는 경우에, 각 프로그램들이 사용하는 모든 내부 변수들의 저장공간을 데이터베이스화된 공유 메모리의 공간으로 재할당함으로써, 프로그램들간 연계변수들의 입출력 및 각 프로그램들의 현재상태를 저장하고 완벽히 복원할 수 있으며, 시간 동기화된 통합 실행을 가능하게 하는 방법에 관한 것이다.
종래에 플랜트시스템 설계/안전분석 등에 사용되는 안전해석코드 등 단독 목
적을 위해 개발된 기존 코드들을 병합하여 통합된 전체 시스템의 거동을 분석하는 용도로 사용하기 위하여 통합이 이루어져야 할 때에는, 기존 코드들의 소스코드를 합쳐 하나의 대형 코드로 병합하거나, DLL(Dynamic Link Library) 방식 혹은 LIB(Static Library) 방식으로 함수를 호출하는 형태로 여러 코드간의 연계변수들의 값들을 교환하여 결합하는 방식을 취해왔다. 이러한 방식들은 프로그램들간의 연계변수들의 형태 및 종류를 사전에 미리 정의하여 함수 인자로 값을 전달하므로, 통합하고자 하는 프로그램의 수량이 증가할수록 프로그램 서로간의 연계변수가 증가하게 되고, 따라서 전달되는 함수의 종류 및 호출횟수가 기하급수적으로 증가하게 되며, 또한 연계변수가 변경됨에 따라 소스 코드의 변경이 필수적이므로, 반드시 소스를 변경하여 컴파일하는 과정을 겪어야 하는 등 통합개발 기간이 상당히 길어진다.
또한, 각 프로그램이 개전(Version-up)될 경우, 이를 반영하기 위해서는 이 같은 통합과정을 한번 더 겪어야 하는 어려움도 존재한다. 또한, 통합코드 실행시 특정 상황을 재연하기 위해서는, 물리적 메모리에 재시작(Restart)을 위한 선별된 변수들만을 기록하는 코드로 프로그램 소스를 수동으로 변경해야만 특정상황을 저장할 수 있어, 미리 정해진 시점이 외에는 프로그램 상태의 저장/복원이 원천적으로 불가능하며, 분석을 위한 그래픽 연계를 위해서도 연계변수를 외부로 전달하기 위해서는 프로그램 소스를 반드시 변경해야 하는 등 많은 문제점이 있다.
본 발명은 상기한 바와 같은 문제점을 해결하기 위하여 제안된 것으로서,
통합하고자 하는 공학적 분석용 프로그램들이 사용하는 모든 내부 변수들의 저장공간을 데이터베이스화된 공유메모리로 사용함으로써, 연계변수가 변경됨에 따른 프로그램 소스의 수정 없이 어떠한 연계변수도 입출력이 가능하도록 하며, 정의된 공유메모리를 하드디스크 같은 물리적 메모리에 저장하고, 물리적 메모리의 내용을 공유메모리로 복원하는 것만으로도 각 실행파일들의 현재 상태를 저장된 시점과 동일한 상태로 완벽하게 복원할 수 있도록 하며, 각 실행파일들이 시간적으로 동기화되면서도 독립된 실행을 보장하는 공학적 분석용 프로그램들간의 동기화된 연계 방법 및 그 시스템을 제공하는 것을 목적으로 한다.
본 발명에 따른 공학적 분석용 프로그램들간의 동기화된 연계 시스템은, 프로그램들의 소스코드들에서 정의하고 있는 전역변수들을 각종 정보와 함께 추출하는 전역변수 추출부; 상기 전역변수들을 키값(변수명)에 따라 검색할 수 있도록 데이터베이스화하여 공유메모리에 저장하는 메모리 관리부; 상기 소스코드들의 전역변수 선언영역을 제거한 뒤, 상기 공유메모리 상에 저장공간을 할당받도록 원본 소스코드를 변경하여 각각의 프로그램에 대한 실행파일을 생성하는 번역부; 및 상기 번역부에 의해 생성된 실행파일들을 실행하고 동기화된 시간간격으로 시간진행시키며, 각 프로그램의 상태를 결정하는 공유메모리 저장공간을 물리적 메모리에 저장 및 복원하는 코드 실행부를 구비한다.
특히, 상기 전역변수 추출부는, 상기 전역변수들을 파싱(parsing)하여 각 전역변수에 대한 디스크립션, 단위, 소속계통, 변수형태, 차수, 오프셋값, 및 변수명 중 하나 이상을 포함하는 정보를 특정 구조체 형식으로 생성하고, 생성된 정보를 상기 메모리 관리부에 전달하는 것을 특징으로 한다.
또한, 메모리 관리부에서는 전역변수 추출부에서 전달받은 전역변수들을 공유메모리 상의 저장공간을 재할당하기 위해, 체계화된 메모리 관리 로직을 가진 공유메모리로 구성하여, 전역변수들에 대한 정보를 구조체 형식으로 삽입, 삭제, 및 검색하는 기능 등 전역변수들에 대한 공유메모리 상의 데이터베이스 관리를 수행하는 것을 특징으로 한다.
또한, 상기 공유메모리의 헤더는, 상기 전역변수와 일대일 대응되는 구조체의 객체들이 상기 공유메모리 상에서 차지하는 저장공간 크기를 나타내는 정수 정보, 상기 공유메모리 상에서 전역변수의 현재값이 차지하는 저장공간의 크기를 나타내는 정수 정보, 및 상기 코드 실행부에서 실행시킬 실행파일들의 저장공간의 크기를 나타내는 정수 정보를 포함하고 있는 것을 특징으로 한다.
또한, 상기 공유메모리의 헤더는, 상기 전역변수와 일대일 대응되는 구조체의 객체들을 데이터베이스화하여 관리(조회, 삽입, 삭제 등)하기 위한 변수, 상기 전역변수와 일대일 대응되는 구조체의 객체들의 저장공간의 시작번지를 저장한 변수, 상기 전역변수들의 현재값 저장공간의 시작번지를 저장한 변수, 및 상기 실행파일들의 저장공간의 시작번지를 저장한 변수를 더 포함하는 것을 특징으로 한다.
또한, 상기 공유메모리는, 상기 전역변수와 일대일 대응되는 구조체의 객체들을 저장하기 위한 저장공간, 상기 전역변수들의 현재값들을 저장하기 위한 저장공간, 및 상기 실행파일들에 대한 정보를 저장하기 위한 저장공간을 구비하는 것을 특징으로 한다.
또한, 상기 메모리 관리부는, 상기 전역변수와 일대일 대응되는 구조체의 객체들을 삽입, 삭제, 및 조회하기 위한 관리 구조체를 정의하고, 상기 관리 구조체는, 등록된 총 전역변수 개수를 나타내는 변수, 데이터 검색을 위해 전역변수 전체의 중점이 되는 노드를 지칭하는 변수, 상기 전역변수와 일대일 대응되는 구조체의 객체들을 삽입, 삭제, 조회, 및 검색하기 위한 함수를 포함하는 것을 특징으로 한다.
또한, 상기 번역부는, 상기 원본 소스코드의 시간진행 구간반복문을 동기화 개체를 기다리게 하는 로직으로 변경하여, 상기 코드 실행부가 발생시키는 시간동기화 신호가 온(ON)되는 시점에 시간진행이 되도록 상기 실행파일을 생성하는 것을 특징으로 한다.
또한, 상기 번역부는, 상기 실행파일들에 대한 정보를 상기 공유메모리 상의 실행정보 구조체에 저장하고, 상기 실행정보 구조체는, 실행파일 이름이 저장되는 저장공간, 동기화 신호를 받을 동기화 개체 저장공간, 및 실행파일이 실행된 상태가 저장되는 저장공간을 포함하는 것을 특징으로 한다.
또한, 상기 코드 실행부는, 상기 실행파일 이름이 저장되는 저장공간, 동기화 신호를 받을 동기화 개체의 저장공간, 및 실행파일이 실행된 상태가 저장되는 저장공간에 등록된 객체들의 내용을 파악하여, 실행파일들의 동기화 실행에 이용하는 것을 특징으로 한다.
한편, 본 발명에 따른 공학적 분석용 프로그램들간의 동기화된 연계 방법은, 프로그램들의 소스코드들에서 정의하고 있는 전역변수들을 추출하는 단계; 상기 전역변수들을 변수명에 따라 검색할 수 있도록 데이터베이스화하여 공유메모리에 저장하는 단계; 상기 소스코드들의 전역변수 선언영역을 제거한 뒤, 상기 공유메모리 상에 저장공간을 할당받도록 원본 소스코드를 변경하여 각각의 프로그램에 대한 실행파일을 생성하는 단계; 및 상기 생성된 실행파일들을 실행하고 동기화된 시간간격으로 시간진행시키며, 각 프로그램의 상태를 결정하는 공유메모리 저장공간을 물리적 메모리에 저장 및 복원하는 단계를 포함한다.
특히, 상기 프로그램들의 소스코드들에서 정의하고 있는 전역변수들을 추출하는 단계는, 상기 전역변수들을 파싱(parsing)하여 각 전역변수에 대한 디스크립션, 단위, 소속계통, 변수형태, 차수, 오프셋값, 및 변수명 중 하나 이상을 포함하는 정보를 특정 구조체 형식으로 생성하는 단계를 포함하는 것을 특징으로 한다.
또한, 상기 전역변수들을 변수명에 따라 검색할 수 있도록 데이터베이스화하여 공유메모리에 저장하는 단계는, 상기 전역변수와 일대일 대응되는 구조체의 객체들을 삽입, 삭제, 및 조회하기 위한 관리 구조체를 정의하는 단계를 포함하는 것을 특징으로 한다.
또한, 상기 관리 구조체는, 등록된 총 전역변수 개수를 나타내는 변수, 데이터 검색을 위해 전역변수 전체의 중점이 되는 노드를 지칭하는 변수, 상기 전역변수와 일대일 대응되는 구조체의 객체를 삽입, 삭제, 조회, 및 검색하기 위한 함수를 포함하는 것을 특징으로 한다.
또한, 상기 소스코드들의 전역변수 선언영역을 제거한 뒤, 상기 공유메모리 상에 저장공간을 할당받도록 원본 소스코드를 변경하여 각각의 프로그램에 대한 실행파일을 생성하는 단계는, 상기 실행파일들에 대한 정보를 상기 공유메모리 상의 실행정보 구조체에 저장하는 단계를 포함하는 것을 특징으로 한다.
또한, 상기 실행정보 구조체는, 실행파일 이름이 저장되는 저장공간, 동기화 신호를 받을 동기화 개체 저장공간, 및 실행파일이 실행된 상태가 저장되는 저장공간을 포함하는 것을 특징으로 한다.
또한, 복수 개의 프로그램들을 통합하여 복합적 분석용도로 사용할 경우, 각 프로그램이 사용하는 모든 내부변수들의 저장공간을 데이터베이스화된 공유메모리로 재할당하여 정의된 공유메모리를 상기 물리적 메모리에 저장하고, 상기 물리적 메모리의 내용을 공유메모리로 복원하여 각 실행파일의 상태를 저장된 시점과 동일한 상태로 복원하는 단계를 더 포함하는 것을 특징으로 한다.
또한, 공학적분석용 프로그램에 대한 그래픽 프로그램과의 연계시, 상기 데이터베이스화된 공유메모리의 방식으로 내부 전역변수의 저장공간을 재할당하여 연계변수들의 현재값 추출 및 갱신을 하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명에 따르면 다음과 같은 효과를 기대할 수 있다.
복수 개의 공학적 분석용 프로그램을 통합하기 위해서, 종래의 소스코드를 직접 통합하여 대형 소스코드로 만들거나, DLL 방식 혹은 LIB 방식의 함수인자 교환형식으로 개발할 때의 엄청난 통합기간과 연계변수가 바뀜에 따른 수많은 코드 변경기간이 필요하였다. 그러나, 본 발명에서는 체계화된 공유메모리를 사용하여 모든 전역변수의 모든 정보를 공유함으로써, 많은 양의 연계전달 함수의 생성 및 연계함수 호출회수 증가에 따른 비효율성 증대, 그리고 연계변수들을 위한 수많은 소스 코드의 변경 등의 많은 단점들이 극복할 수 있어 통합개발 기간을 크게 단축시킬 수 있는 효과가 있다.
또한, 이전 방식의 직접 소스코드 통합에서는 프로그램의 실행 도중의 상태를 저장하기 위해서는 소스코드 상에서 특정 시점을 물리적 메모리에 기록하는 소스코드를 작성해야만 하며, 미리 정해진 시점 이외에는 프로그램 상태의 저장 및 복원하는 것이 원천적으로 불가능하였다. 하지만, 본 발명에 따르면 정의된 공유메모리를 하드디스크와 같은 물리적 메모리에 저장하고, 물리적 메모리의 내용을 공유메모리로 복원하는 것 만으로도, 각 실행파일의 현재 상태를 저장된 시점과 동일한 상태로 완벽하게 복원할 수 있어, 프로그램을 통한 공학적 분석 필요시 언제라도 프로그램의 상태를 저장할 수 있으며, 동기화 통합시스템을 이용하여 시스템 분석 작업시 큰 이점을 제공할 수 있다.
또한, 이전 방식의 직접 소스코드 통합에서는 수많은 시행착오를 겪은 후, 완성되는 통합 프로그램일지라도, 각각의 프로그램들이 개전(Verion-up)된 경우에는 이를 반영하기 위해서 기나긴 통합과정을 또 다시 반복해야만 했다. 하지만, 본 발명에 따르면 각 실행파일이 독립된 실행을 하면서도 시간 동기화를 할 수 있게 됨에 따라, 각 프로그램들을 독립되게 유지보수 및 개전된 코드로 통합을 할 수 있도록 하는 원천적인 방법을 제공할 수 있다.
또한, 종래의 소스코드 통합에 의한 방식은, 그래픽 연계 프로그램 개발시, 도시(Display)하기를 원하는 연계변수를 프로그램 소스 차원에서 연계변수 하나하나를 지정하여 직접 함수와 같은 연계방식으로, 내부 변수값을 외부에 공개해줘야만 했다. 하지만, 본 발명에 따르면, 표준화된 연계변수 삽입, 삭제, 조회, 및 검색 기능의 함수를 제공함으로써, 그래픽 도시 프로그램 등과 같은 기타 목적의 연계 프로그램 개발 시에도 대단히 편리한 기능을 제공할 수 있다.
도 1은 본 발명에 따른 데이터베이스화된 공유메모리를 이용한 공학적 분석용 프로그램들간의 동기화된 연계 시스템을 설명하기 위한 도면이다.
도 2는 본 발명에 따른 데이터베이스화된 공유메모리의 구조를 설명하기 위한 도면이다.
도 3 내지 도 7은 본 발명에서 사용되는 구조체들을 설명하기 위한 도면이다.
도 8 및 도 9는 본 발명에 따른 연계 시스템의 번역부에서의 원본 소스코드 변경예를 설명하기 위한 도면이다.
도 10은 본 발명에 따른 데이터베이스화된 공유메모리를 이용한 공학적 분석용 프로그램들간의 동기화된 연계 방법을 설명하기 위한 흐름도이다.
도 2는 본 발명에 따른 데이터베이스화된 공유메모리의 구조를 설명하기 위한 도면이다.
도 3 내지 도 7은 본 발명에서 사용되는 구조체들을 설명하기 위한 도면이다.
도 8 및 도 9는 본 발명에 따른 연계 시스템의 번역부에서의 원본 소스코드 변경예를 설명하기 위한 도면이다.
도 10은 본 발명에 따른 데이터베이스화된 공유메모리를 이용한 공학적 분석용 프로그램들간의 동기화된 연계 방법을 설명하기 위한 흐름도이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하, 본 발명에 따른 데이터베이스화된 공유메모리를 이용한 공학적 분석용 프로그램들간의 동기화된 연계 방법 및 시스템을 상세하게 설명하기로 한다.
도 1은 본 발명에 따른 데이터베이스화된 공유메모리를 이용한 공학적 분석용 프로그램들간의 동기화된 연계 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 본 발명에 따른 공학적 분석용 프로그램들간의 동기화된 연계 시스템은, 프로그램들의 구성 소스코드들이 사용하는 전역변수들을 각종 정보와 함께 추출하는 전역변수 추출부(100), 추출된 전역변수들을 변수명(Key값)에 따른 검색이 가능하도록 데이터베이스화하여 공유메모리에 논리적으로 저장하는 메모리 관리부(200), 프로그램 소스코드들의 전역변수 선언영역 부분을 제거하고, 대신 메모리 관리부(200)에서 제공하는 공유메모리 상에 저장공간을 할당받도록 원본 소스코드를 변경(7)하여 실행파일을 생성하는 번역부(300), 번역부(300)에 의해 생성된 실행파일(8)들을 실행하고, 동기화된 시간간격으로 시간진행시키며, 각 프로그램의 상태를 결정하는 공유메모리 저장공간을 물리적 메모리에 저장 및 복원하는 코드 실행부(400)를 구비한다.
도 1 내지 도 7을 참조하면, 전역변수 추출부(100)는 단일 프로그램을 구성하는 소스코드들(6)에서 정의하고 있는 모든 전역변수(혹은 Static 변수, new/malloc 등 Heap 변수)들을 파싱(parsing)하여, 전역변수에 대한 디스크립션(35,Description), 단위(36,Units), 소속 계통(37,System), 변수형태(38,Type), 차수(39,Dims), 변수 현재값을 저장하는 메모리번지에 대한 오프셋값(40,nOffset), 변수명(41,Name) 등 여러 정보들을 VAR_INFO 구조체(34) 형식으로 만들어, 이를 메모리 관리부(200)에게 전달하는 역할을 수행한다
메모리 관리부(200)는 전역변수 추출부(100)에서 전달받은 전역변수들을 공유메모리(5) 상의 저장공간에 재할당하기 위해, 도 2와 같이 체계화된 메모리 관리 로직을 가진 구조로 공유메모리(5)를 구성하여, 전역변수들에 대한 정보를 VAR_INFO 구조체(34) 형식으로 삽입한다. 그리고, 메모리 관리부(200)는 삭제 및 검색기능(29)을 수행하는 함수도 제공하여, 전역변수들에 대한 공유메모리(5)상에서의 데이터 베이스 관리를 수행하는 역할을 한다.
이를 위해, 공유메모리(5)는 도 2와 같은 메모리 구조를 가지며, 공유메모리(5)의 헤더는 SHARED_MEMORY_HEADER 구조체(15)로 시작한다.
보다 상세하게는, SHARED_MEMORY_HEADER 구조체(15)의, 처음 4바이트 공간(16)에는 전역변수와 1:1 대응되는 구조체인 ANODE의 객체(30)들이 공유메모리(5) 상에서의 저장공간(23) 크기를 나타내는 정수 정보(여기서는 nVarsSize 값에 해당)가 저장된다. 그리고, 다음 4바이트 공간(17)에는 공유메모리(5) 상에서의 전역변수의 현재값 저장공간(24)이 차지하는 크기를 나타낸는 정수 정보(여기서는 nValuesSize 값에 해당)가 저장된다. 그리고, 다음 4바이트 공간(18)에는 추후 설명할 코드 실행부(400)에서 실행시킬 실행파일(8)들의 정보저장공간(25)의 크기를 나타내는 정수 정보(여기서는 nExesSize 값에 해당) 저장된다.
또한, SHARED_MEMORY_HEADER 구조체(15)에는, ANODE 구조체(30) 객체들을 데이터베이스화하여 관리(조회/삽입/삭제)하기 위한 DataBaseManager 구조체(26)인 Vars 멤버변수(19), ANODE 객체(30)들의 저장공간(23)(크기:nVarsSize바이트)의 시작번지(20-1)를 저장한 pVars 포인터 멤버변수(21), 전역변수들의 현재값 저장공간(24)(크기:nValuesSize바이트)의 시작번지(21-1)를 저장한 pValues 포인터 멤버변수(21), 실행파일들의 정보 저장공간(25)(크기:nExesSize바이트)의 시작번지(22-1)를 저장한 pExes 포인터 멤버변수(22)가 구성요소로 저장된다.
그리고, 공유메모리(5)는 상기한 ANODE 객체(30)들의 저장공간(23)을 구비한다. 또한, 공유메모리(5)는 내부 전역변수들의 현재값 저장공간(24) 및 실행파일들(실행시킬 분석용 코드들의 개수만큼 존재)에 대한 정보 저장공간(25)을 구비한다.
공학적 분석용 프로그램들의 소스코드들(6)의 전역변수가 전역변수 추출부(100)에 의해 추출되면, 그 전역변수에 대한 정보가 VAR_INFO 구조체(34)의 필드로 채워진다. VAR_INFO 구조체(34)는 다음과 같은 필드로 구성된다.
- Description : 변수에 대한 Description 문자열 저장공간(35)
- Units : 변수에 대한 단위 저장공간(36)
- System : 변수가 속한 대표 시스템명 저장공간(37)
- Type : 변수의 (char/bool/short/int/real/double 등) 형 정보 저장공간(38)
- Dims : 변수의 차수 정보 저장공간(39)
- nOffset : 전역변수 현재값을 저장하기 위한 공간의 시작주소(101)에서 해당 변수의 값 저장공간까지의 오프셋 저장공간(40)
- Name : 변수명 문자열 저장공간(41)
ANODE 구조체(30)는 VAR_INFO 구조체(34)와 두 개의 ANODE 포인터변수(30)가 멤버변수로 존재하며, ANODE 포인터 멤버변수(31,32)는 데이터베이스의 이전(previous) 및 다음(next) Node 포인터에 해당하는 개념이다. 1개의 전역변수는 1개의 대응되는 ANODE 객체(30)를 가지게 된다.
또한, 본 발명에서는 ANODE 구조체(30)들을 논리적이고도 간결하게 삽입, 삭제, 및 조회하기 위해, DataBaseManager 구조체(26)를 정의한다. 여기서, DataBaseManager 구조체(26)는 청구범위에 기재된 '관리 구조체'에 해당된다.
DataBaseManager 구조체(26)는, 등록된 총 전역변수 개수(즉, 등록된 ANODE 객체의 개수)인 Count 멤버변수(27), 데이터 검색을 위해 전역변수 전체의 중점이 되는 노드를 지칭하는 ANODE 구조체 포인터인 ancestor 멤버변수(28), ANODE 구조체(30)를 삽입, 삭제, 조회, 및 검색하기 위한 Insert/Delete/Traverse/Search 멤버함수(29)들로 구성된다.
1개의 전역변수가 추출되어, 1개의 ANODE 구조체(30)정보가 취득되면, SHARED_MEMORY_HEADER 구조체(15)의 DataBaseManager 구조체(26)형인 Vars 멤버변수(19)의 Insert (29) 함수에 의해, ANODE 객체 저장공간(23)의 한 영역으로 ANODE 객체(30)가 삽입된다.
이때, ANODE 객체 저장공간(23)의 크기인 nVarsSize는 +sizeof(ANODE) 만큼 증가하고, pValues 번지주소값 (21,101) 역시 +sizeof(ANODE)만큼 증가하며, pValues 저장공간(24)의 크기인 nValuesSize 역시 +sizeof(전역변수의 데이터 Type) 만큼 증가하며, 실행 파일 정보가 저장되는 공간(25)인 pExes 포인터값(22,102) 역시 순연되어 증가한다.
또한, 후술할 번역부(300)에 의해 생성되는 실행파일(8)들에 대한 정보는 EXE_INFO 구조체(42)에 저장되는데, 멤버변수들은 다음과 같다. 여기서, EXE_INFO 구조체(42)는 청구범위에 기재된 '실행정보 구조체'에 해당된다.
'ExeName'는 경로를 포함한 실행파일 이름이 저장되는 저장공간(43)이고, 'hStart 멤버변수'는 동기화 신호를 받을 동기화 개체 저장공간(44)이며, 'Status 멤버변수'는 실행파일이 실행된 상태가 저장되는 저장공간(45)이다.
EXE_INFO 객체들의 저장공간(25)은 공유메모리(5)의 끝부분(즉, nValuesSize 바이트 뒤)에 위치하게 되는데, 이 공간(25)에 등록된 EXE_INFO 객체들은 코드 실행부(400)에 의한 동기화 실행에 이용된다.
상기한 논리구조를 가진 공유메모리(5)는 전체크기에 해당하는 sizeof(SHARED_MEMORY_HEADER) + nVarsSize + nValuesSize + nExeSize 바이트만 파악하고 있으면, 모든 전역변수 정보 및 현재 상태값을 검색 및 조회할 수 있을 뿐만 아니라, 공유메모리(5)의 전체 바이트를 하드디스크와 같은 물리적 메모리(12)에 저장만 해놓아도, 추후 특정 시점의 상태로 완벽하게 복귀할 수 있음을 의미하므로, 이를 후술할 코드 실행부(400)에서 이를 이용하여, 현재상태를 저장 및 복원할 수 있다.
번역부(300)는 각 프로그램 소스코드들(6)에서 전역변수(혹은 C 언어의 경우 new/malloc 등 Heap 변수)들의 선언영역(46)을 제거하고, 대신 메모리 관리 부(200)에서 제공하는 공유메모리 저장공간을 할당받도록 원본 소스를 구문 해석하여 소스자체를 변경(47)(Translation)한다.
또한, 번역부(300)는 프로그램의 시간진행(10)(Advancement) 구간반복문(48)을 동기화 개체를 기다리게 하는 로직(49)으로 변경하여, 코드 실행부(400)가 발생시키는 시간동기화 신호가 ON 되는 시점(11)에서만 시간진행(10)이 될 수 있도록 변경하고, 변경된 소스들을 컴파일(compiling)하여 실행파일들을 생성(linking)한다.
코드 실행부(400)는 공유메모리(5)상의 실행파일 정보 저장공간(25)에서 실행파일(8)들의 정보를 검색하여 동기화 실행을 하게 한다.
즉, 코드 실행부(400)는 공유메모리(5)의 pExes 포인터 멤버변수(22)의 저장값인 실행파일 정보 저장공간(25) 시작번지부터 공유메모리 끝단까지의 공간(크기:nExesSize 바이트)에 기록된 EXE_INFO(45) 객체들의 내용을 파악하여, 실행파일(8)들의 경로 및 파일명을 추출하여 실행파일(8)들을 실행시킨다. 이때, 실행파일(8)들은 WaitForSingleObject와 같은 동기화 대기함수(49)에 의해 대기(Waiting) 상태에서 동기화 신호를 대기하게 된다.
코드 실행부(400)에서 발생되는 동기화 신호를 받음으로써, 각 실행파일(8)들은 동기화 시간진행(10)이 된다. 이때 각 실행파일(8)들은 정해진 Δt(Time Advancement)만큼 진행(11-1)되고 난 뒤에는 또다시 동기화 대기함수에 의해 Waiting 상태에 진입하게 된다. 실행파일(8)에 대한 정보를 담고 있는 EXE_INFO 구조체(42)의 Status 멤버변수(45)는 해당 실행 파일(8)이 1회의 Time Advancement 작업을 마쳤는지의 상태를 나타내는데, 코드 실행부(400)에서 모든 EXE_INFO(42) 객체의 Status 멤버변수 정보를 주기적으로 파악하여 모든 실행파일(8)들이 1회 시간진행(Time Advancement)이 종료된 시점에서, 동기화 개체의 신호를 ON(11)으로 변경함으로써, 실행파일(8)들이 다음 Time Advancement를 진행할 수 있도록 한다. 이런 논리로 각 실행파일(8)들이 시간 동기화를 이루면서 실행될 수 있는 것이다.
또한, 코드 실행부(400)에서는 전술한 공유메모리(5)의 전체크기에 해당하는 sizeof(SHARED_MEMORY_HEADER) + nVarsSize + nValuesSize + nExesSize 바이트를 하드디스크같은 물리적 메모리(12,Physical Memory)에 기록함으로써, 기록할 당시의 모든 실행파일의 상태를 전부 저장할 수 있다. 뿐만 아니라, 물리적 메모리(12)의 내용을 공유메모리(5)로 복원하는 것만으로도 각 실행파일(8)들의 현재 상태를 저장된 시점과 동일한 상태로 완벽하게 복원할 수 있다.
전술한 바와 같은 본 발명에 따르면, 복수 개의 공학적 분석용 프로그램(6)을 통합하기 위해서, 종래의 소스코드를 직접 통합하여 대형 소스코드로 만들거나, DLL 방식 혹은 LIB 방식의 함수인자 교환형식으로 개발할 때의 엄청난 통합기간과 연계변수가 바뀜에 따른 수많은 코드 변경기간이 필요하였다. 그러나, 본 발명에서는 체계화된 공유메모리를 사용하여 모든 전역변수의 모든 정보를 공유함으로써, 많은 양의 연계전달 함수의 생성 및 연계함수 호출회수 증가에 따른 비효율성 증대, 그리고 연계변수들을 위한 수많은 소스 코드의 변경 등의 많은 단점들이 극복할 수 있어 통합개발 기간을 크게 단축시킬 수 있는 효과가 있다.
또한, 이전 방식의 직접 소스코드 통합에서는 프로그램의 실행 도중의 상태를 저장하기 위해서는 소스코드 상에서 특정 시점을 물리적 메모리에 기록하는 소스코드를 작성해야만 하며, 미리 정해진 시점 이외에는 프로그램 상태의 저장 및 복원하는 것이 원천적으로 불가능하였다. 하지만, 본 발명에 따르면 정의된 공유메모리(5)를 하드디스크와 같은 물리적 메모리(12)에 저장하고, 물리적 메모리(12)의 내용을 공유메모리(5)로 복원하는 것 만으로도, 각 실행파일(8)의 현재 상태를 저장된 시점과 동일한 상태로 완벽하게 복원할 수 있어, 프로그램을 통한 공학적 분석 필요시 언제라도 프로그램의 상태를 저장할 수 있으며, 동기화 통합시스템을 이용하여 시스템 분석 작업시 큰 이점을 제공할 수 있다.
또한, 이전 방식의 직접 소스코드 통합에서는 수많은 시행착오를 겪은 후, 완성되는 통합 프로그램일지라도, 각각의 프로그램들이 개전(Verion-up)된 경우에는 이를 반영하기 위해서 기나긴 통합과정을 또 다시 반복해야만 했다. 하지만, 본 발명에 따르면 각 실행파일(8)이 독립된 실행을 하면서도 시간 동기화를 할 수 있게 됨에 따라, 각 프로그램들을 독립되게 유지보수 및 개전된 코드로 통합을 할 수 있도록 하는 원천적인 방법을 제공할 수 있다.
또한, 종래의 소스코드 통합에 의한 방식은, 그래픽 연계 프로그램 개발시, 도시(Display)하기를 원하는 연계변수를 프로그램 소스 차원에서 연계변수 하나하나를 지정하여 직접 함수와 같은 연계방식으로, 내부 변수값을 외부에 공개해줘야만 했다. 하지만, 본 발명에 따르면, 표준화된 연계변수 삽입, 삭제, 조회, 및 검색 기능의 함수를 제공함으로써, 그래픽 도시 프로그램 등과 같은 기타 목적의 연계 프로그램 개발 시에도 대단히 편리한 기능을 제공할 수 있다.
도 10은 본 발명에 따른 데이터베이스화된 공유메모리를 이용한 공학적 분석용 프로그램들간의 동기화된 연계 방법을 설명하기 위한 흐름도이다.
본 발명에 따른 공학적 프로그램들간의 동기화된 연계 방법은, 프로그램들의 소스코드들에서 정의하고 있는 전역변수들을 추출하는 단계, 그 전역변수들을 변수명에 따라 검색할 수 있도록 데이터베이스화하여 공유메모리에 저장하는 단계, 그 소스코드들의 전역변수 선언영역을 제거한 뒤, 그 공유메모리 상에 저장공간을 할당받도록 원본 소스코드를 변경하여 각각의 프로그램에 대한 실행파일을 생성하는 단계, 그 생성된 실행파일들을 실행하고 동기화된 시간간격으로 시간진행시키며, 각 프로그램의 상태를 결정하는 공유메모리 저장공간을 물리적 메모리에 저장 및 복원하는 단계를 포함한다.
도 10을 참조하면, 먼저, 전역변수 추출부가 단일 프로그램을 구성하는 소스코드들에서 정의하고 있는 모든 전역변수(혹은 Static 변수, new/malloc 등 Heap 변수)들을 파싱하여, 변수에 대한 각종 정보들을 VAR_INFO 구조체(34) 형식으로 만들어, 이를 메모리 관리부에게 전달한다(S100).
다음으로, 메모리 관리부가 전역변수 추출부에서 전달받은 전역변수들을 변수명(Key값)에 따른 검색이 용이하도록 데이터베이스화하여 공유메모리에 논리적으로 저장한다(S110).
그리고, 번역부는 각 프로그램 소스코드들에서 전역변수(혹은 C 언어의 경우 new/malloc 등 Heap 변수)들의 선언영역을 제거하고, 대신 메모리 관리 부에서 제공하는 공유메모리 저장공간을 할당받도록 원본 소스를 구문 해석하여 소스자체를 변경한다(S120). 또한, 번역부는 프로그램의 시간진행 구간반복문을 동기화 개체를 기다리게 하는 로직으로 변경하여, 코드 실행부가 발생시키는 시간동기화 신호가 ON 되는 시점에서만 시간진행이 될 수 있도록 변경하고, 변경된 소스들을 컴파일하여 실행파일들을 생성한다(S130).
다음으로, 코드 실행부는 공유메모리상의 실행파일 정보 저장공간에서 실행파일들의 정보를 검색하여 동기화 실행을 하게 한다(S140). 이에, 코드 실행부에서 발생되는 동기화 신호를 받음으로써, 각 실행파일(8)들은 동기화 시간진행이 된다(S150).
마지막으로, 코드 실행부는 상기한 공유메모리의 전체크기에 해당하는 바이트를 하드디스크같은 물리적 메모리에 기록함으로써, 기록할 당시의 모든 실행파일의 상태를 전부 저장할 수 있고, 물리적 메모리의 내용을 공유메모리로 복원하는 것만으로도 각 실행파일들의 현재 상태를 저장된 시점과 동일한 상태로 완벽하게 복원할 수 있다(S160).
이상에서와 같이 도면과 명세서에서 최적의 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로, 본 기술 분야의 통상의 지식을 가진자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100:전역변수 추출부 200:메모리 관리부
300:번역부 400:코드 실행부
5:공유메모리 12:물리적 메모리
15:SHARED_MEMORY_HEADER 구조체
26:DataBaseManager 구조체 30:ANODE 객체
34:VAR_INFO 구조체 42:EXE_INFO 구조체
300:번역부 400:코드 실행부
5:공유메모리 12:물리적 메모리
15:SHARED_MEMORY_HEADER 구조체
26:DataBaseManager 구조체 30:ANODE 객체
34:VAR_INFO 구조체 42:EXE_INFO 구조체
Claims (17)
- 프로그램들의 소스코드들에서 정의하고 있는 전역변수들을 추출하는 전역변수 추출부;
상기 전역변수들을 변수명에 따라 검색할 수 있도록 데이터베이스화하여 공유메모리에 저장하는 메모리 관리부;
상기 소스코드들의 전역변수 선언영역을 제거한 뒤, 상기 공유메모리 상에 저장공간을 할당받도록 원본 소스코드를 변경하여 각각의 프로그램에 대한 실행파일을 생성하는 번역부; 및
상기 번역부에 의해 생성된 실행파일들을 실행하고 동기화된 시간간격으로 시간진행시키며, 각 프로그램의 상태를 결정하는 공유메모리 저장공간을 물리적 메모리에 저장 및 복원하는 코드 실행부를 구비하는, 공학적 분석용 프로그램들간의 동기화된 연계 시스템. - 청구항 1에 있어서,
상기 전역변수 추출부는,
상기 전역변수들을 파싱(parsing)하여 각 전역변수에 대한 디스크립션, 단위, 소속계통, 변수형태, 차수, 오프셋값, 및 변수명 중 하나 이상을 포함하는 정보를 특정 구조체 형식으로 생성하고, 생성된 정보를 상기 메모리 관리부에 전달하는 것을 특징으로 하는, 공학적 분석용 프로그램들간의 동기화된 연계 시스템. - 청구항 1에 있어서,
상기 공유메모리의 헤더는,
상기 전역변수와 일대일 대응되는 구조체의 객체들이 상기 공유메모리 상에서 차지하는 저장공간 크기를 나타내는 정수 정보, 상기 공유메모리 상에서 전역변수의 현재값이 차지하는 저장공간의 크기를 나타내는 정수 정보, 및 상기 코드 실행부에서 실행시킬 실행파일들의 저장공간의 크기를 나타내는 정수 정보를 포함하고 있는 것을 특징으로 하는, 공학적 분석용 프로그램들간의 동기화된 연계 시스템. - 청구항 3에 있어서,
상기 공유메모리의 헤더는,
상기 전역변수와 일대일 대응되는 구조체의 객체들을 데이터베이스화하여 관리하기 위한 변수, 상기 전역변수와 일대일 대응되는 구조체의 객체들의 저장공간의 시작번지를 저장한 변수, 상기 전역변수들의 현재값 저장공간의 시작번지를 저장한 변수, 및 상기 실행파일들의 저장공간의 시작번지를 저장한 변수를 더 포함하는 것을 특징으로 하는, 공학적 분석용 프로그램들간의 동기화된 연계 시스템. - 청구항 3에 있어서,
상기 공유메모리는,
상기 전역변수와 일대일 대응되는 구조체의 객체들을 저장하기 위한 저장공간, 상기 전역변수들의 현재값들을 저장하기 위한 저장공간, 및 상기 실행파일들에 대한 정보를 저장하기 위한 저장공간을 구비하는 것을 특징으로 하는, 공학적 분석용 프로그램들간의 동기화된 연계 시스템. - 청구항 3에 있어서,
상기 메모리 관리부는,
상기 전역변수와 일대일 대응되는 구조체의 객체들을 삽입, 삭제, 및 조회하기 위한 관리 구조체를 정의하고,
상기 관리 구조체는, 등록된 총 전역변수 개수를 나타내는 변수, 데이터 검색을 위해 전역변수 전체의 중점이 되는 노드를 지칭하는 변수, 상기 전역변수와 일대일 대응되는 구조체의 객체를 삽입, 삭제, 조회, 및 검색하기 위한 함수를 포함하는 것을 특징으로 하는, 공학적 분석용 프로그램들간의 동기화된 연계 시스템. - 청구항 1에 있어서,
상기 번역부는,
상기 원본 소스코드의 시간진행 구간반복문을 동기화 개체를 기다리게 하는 로직으로 변경하여, 상기 코드 실행부가 발생시키는 시간동기화 신호가 온(ON)되는 시점에 시간진행이 되도록 상기 실행파일을 생성하는 것을 특징으로 하는, 공학적 분석용 프로그램들간의 동기화된 연계 시스템. - 청구항 1에 있어서,
상기 번역부는,
상기 실행파일들에 대한 정보를 상기 공유메모리 상의 실행정보 구조체에 저장하고,
상기 실행정보 구조체는, 실행파일 이름이 저장되는 저장공간, 동기화 신호를 받을 동기화 개체 저장공간, 및 실행파일이 실행된 상태가 저장되는 저장공간을 포함하는 것을 특징으로 하는, 공학적 분석용 프로그램들간의 동기화된 연계 시스템. - 청구항 8에 있어서,
상기 코드 실행부는,
상기 실행파일 이름이 저장되는 저장공간, 동기화 신호를 받을 동기화 개체의 저장공간, 및 실행파일이 실행된 상태가 저장되는 저장공간에 등록된 객체들의 내용을 파악하여, 실행파일들의 동기화 실행에 이용하는 것을 특징으로 하는, 공학적 분석용 프로그램들간의 동기화된 연계 시스템. - 프로그램들의 소스코드들에서 정의하고 있는 전역변수들을 추출하는 단계;
상기 전역변수들을 변수명에 따라 검색할 수 있도록 데이터베이스화하여 공유메모리에 저장하는 단계;
상기 소스코드들의 전역변수 선언영역을 제거한 뒤, 상기 공유메모리 상에 저장공간을 할당받도록 원본 소스코드를 변경하여 각각의 프로그램에 대한 실행파일을 생성하는 단계; 및
상기 생성된 실행파일들을 실행하고 동기화된 시간간격으로 시간진행시키며, 각 프로그램의 상태를 결정하는 공유메모리 저장공간을 물리적 메모리에 저장 및 복원하는 단계를 포함하는, 공학적 분석용 프로그램들간의 동기화된 연계 방법. - 청구항 10에 있어서,
상기 프로그램들의 소스코드들에서 정의하고 있는 전역변수들을 추출하는 단계는,
상기 전역변수들을 파싱(parsing)하여 각 전역변수에 대한 디스크립션, 단위, 소속계통, 변수형태, 차수, 오프셋값, 및 변수명 중 하나 이상을 포함하는 정보를 특정 구조체 형식으로 생성하는 단계를 포함하는 것을 특징으로 하는, 공학적 분석용 프로그램들간의 동기화된 연계 방법. - 청구항 10에 있어서,
상기 전역변수들을 변수명에 따라 검색할 수 있도록 데이터베이스화하여 공유메모리에 저장하는 단계는,
상기 전역변수와 일대일 대응되는 구조체의 객체들을 삽입, 삭제, 및 조회하기 위한 관리 구조체를 정의하는 단계를 포함하는 것을 특징으로 하는, 공학적 분석용 프로그램들간의 동기화된 연계 방법. - 청구항 12에 있어서,
상기 관리 구조체는,
등록된 총 전역변수 개수를 나타내는 변수, 데이터 검색을 위해 전역변수 전체의 중점이 되는 노드를 지칭하는 변수, 상기 전역변수와 일대일 대응되는 구조체의 객체를 삽입, 삭제, 조회, 및 검색하기 위한 함수를 포함하는 것을 특징으로 하는, 공학적 분석용 프로그램들간의 동기화된 연계 방법. - 청구항 10에 있어서,
상기 소스코드들의 전역변수 선언영역을 제거한 뒤, 상기 공유메모리 상에 저장공간을 할당받도록 원본 소스코드를 변경하여 각각의 프로그램에 대한 실행파일을 생성하는 단계는,
상기 실행파일들에 대한 정보를 상기 공유메모리 상의 실행정보 구조체에 저장하는 단계를 포함하는 것을 특징으로 하는, 공학적 분석용 프로그램들간의 동기화된 연계 방법. - 청구항 14에 있어서,
상기 실행정보 구조체는,
실행파일 이름이 저장되는 저장공간, 동기화 신호를 받을 동기화 개체 저장공간, 및 실행파일이 실행된 상태가 저장되는 저장공간을 포함하는 것을 특징으로 하는, 공학적 분석용 프로그램들간의 동기화된 연계 방법. - 청구항 10에 있어서,
상기 저장 및 복원하는 단계에서의 복원은,
상기 저장된 물리적 메모리의 내용을 상기 공유메모리로 복원하여 각 실행파일의 상태를 저장된 시점과 동일한 상태로 복원함으로써 수행되는 것임을 특징으로 하는 공학적 분석용 프로그램들간의 동기화된 연계 방법.
- 삭제
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100073204A KR101139610B1 (ko) | 2010-07-29 | 2010-07-29 | 데이터베이스화된 공유메모리를 이용한 공학적 분석용 프로그램들간의 동기화된 연계 방법 및 시스템 |
EP10855369.4A EP2600256A4 (en) | 2010-07-29 | 2010-09-02 | SYNCHRONIZED CONNECTION METHOD AND SYSTEM BETWEEN TECHNICAL ANALYSIS PROGRAMS USING THE USE OF A COMMON MEMORY OF A DATABASE |
JP2013521667A JP5465358B2 (ja) | 2010-07-29 | 2010-09-02 | データベース化された共有メモリを利用した工学的分析用プログラム間の同期化された連係方法及びシステム |
CN201080068330.4A CN103080925B (zh) | 2010-07-29 | 2010-09-02 | 利用制作成数据库的共享内存的工程分析程序间的同步连接方法及系统 |
PCT/KR2010/005946 WO2012015097A1 (ko) | 2010-07-29 | 2010-09-02 | 데이터베이스화된 공유메모리를 이용한 공학적 분석용 프로그램들간의 동기화된 연계 방법 및 시스템 |
US13/812,167 US20130132341A1 (en) | 2010-07-29 | 2010-09-02 | Synchronized linking method and system between engineering analysis programs by using a shared memory of a database |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100073204A KR101139610B1 (ko) | 2010-07-29 | 2010-07-29 | 데이터베이스화된 공유메모리를 이용한 공학적 분석용 프로그램들간의 동기화된 연계 방법 및 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120011950A KR20120011950A (ko) | 2012-02-09 |
KR101139610B1 true KR101139610B1 (ko) | 2012-04-27 |
Family
ID=45530284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100073204A KR101139610B1 (ko) | 2010-07-29 | 2010-07-29 | 데이터베이스화된 공유메모리를 이용한 공학적 분석용 프로그램들간의 동기화된 연계 방법 및 시스템 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20130132341A1 (ko) |
EP (1) | EP2600256A4 (ko) |
JP (1) | JP5465358B2 (ko) |
KR (1) | KR101139610B1 (ko) |
CN (1) | CN103080925B (ko) |
WO (1) | WO2012015097A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101702912B1 (ko) * | 2016-11-03 | 2017-02-07 | (주) 이디티 | 프로세스 데이터 섹션을 이용한 공학용 분석코드 가상통합 구동시스템 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101425527B1 (ko) * | 2012-05-01 | 2014-07-31 | 한국수력원자력 주식회사 | 원자력발전소 훈련용 시뮬레이터의 실시간 중대사고 모의 시스템 및 그 방법 |
CN105740038B (zh) * | 2016-02-02 | 2019-04-23 | 浙江工业大学 | 一种面向物联网重编程的存储优化方法 |
CN106445467A (zh) * | 2016-09-28 | 2017-02-22 | 广东芬尼克兹节能设备有限公司 | 一种操作变量同步方法及系统 |
CN108205596B (zh) * | 2016-12-16 | 2021-06-08 | 中广核研究院有限公司 | 实现核电厂严重事故分析计算程序仿真功能的方法 |
US10453427B2 (en) * | 2017-04-01 | 2019-10-22 | Intel Corporation | Register spill/fill using shared local memory space |
CN112783912B (zh) * | 2021-02-03 | 2023-10-13 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030010217A (ko) * | 2001-07-26 | 2003-02-05 | 주식회사 모비츠 | 통합 중개 시스템에서의 어플리케이션 데이터 처리방법 |
WO2004114152A2 (en) | 2003-06-20 | 2004-12-29 | Axalto Sa | Databases synchronization |
KR20050090744A (ko) * | 2004-03-09 | 2005-09-14 | 주식회사 비즈모델라인 | 클라이언트와 서버간 동기화 기술을 이용한 개인화된상품정보 제공방법 |
KR20100004208A (ko) * | 2008-07-03 | 2010-01-13 | 삼성전자주식회사 | 단말 및 그의 db 동기화 방법 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2774770B2 (ja) * | 1994-05-19 | 1998-07-09 | 株式会社東芝 | デバッグ方式 |
AU2003270828A1 (en) * | 2002-09-18 | 2004-04-08 | Netezza Corporation | Asymmetric data streaming architecture having autonomous and asynchronous job processing unit |
US7200840B2 (en) * | 2002-10-24 | 2007-04-03 | International Business Machines Corporation | Method and apparatus for enabling access to global data by a plurality of codes in an integrated executable for a heterogeneous architecture |
JP2008102915A (ja) * | 2006-09-20 | 2008-05-01 | Toshiba Tec Corp | 情報処理装置及び情報処理プログラム |
JP5186307B2 (ja) * | 2008-08-27 | 2013-04-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | シミュレーション方法、システム及びプログラム |
US8561035B2 (en) * | 2009-09-03 | 2013-10-15 | International Business Machines Corporation | Method and system to discover possible program variable values by connecting program value extraction with external data sources |
-
2010
- 2010-07-29 KR KR1020100073204A patent/KR101139610B1/ko active IP Right Grant
- 2010-09-02 JP JP2013521667A patent/JP5465358B2/ja active Active
- 2010-09-02 WO PCT/KR2010/005946 patent/WO2012015097A1/ko active Application Filing
- 2010-09-02 EP EP10855369.4A patent/EP2600256A4/en not_active Withdrawn
- 2010-09-02 US US13/812,167 patent/US20130132341A1/en not_active Abandoned
- 2010-09-02 CN CN201080068330.4A patent/CN103080925B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030010217A (ko) * | 2001-07-26 | 2003-02-05 | 주식회사 모비츠 | 통합 중개 시스템에서의 어플리케이션 데이터 처리방법 |
WO2004114152A2 (en) | 2003-06-20 | 2004-12-29 | Axalto Sa | Databases synchronization |
KR20050090744A (ko) * | 2004-03-09 | 2005-09-14 | 주식회사 비즈모델라인 | 클라이언트와 서버간 동기화 기술을 이용한 개인화된상품정보 제공방법 |
KR20100004208A (ko) * | 2008-07-03 | 2010-01-13 | 삼성전자주식회사 | 단말 및 그의 db 동기화 방법 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101702912B1 (ko) * | 2016-11-03 | 2017-02-07 | (주) 이디티 | 프로세스 데이터 섹션을 이용한 공학용 분석코드 가상통합 구동시스템 |
Also Published As
Publication number | Publication date |
---|---|
US20130132341A1 (en) | 2013-05-23 |
CN103080925B (zh) | 2016-11-16 |
EP2600256A1 (en) | 2013-06-05 |
WO2012015097A1 (ko) | 2012-02-02 |
CN103080925A (zh) | 2013-05-01 |
JP2013533564A (ja) | 2013-08-22 |
JP5465358B2 (ja) | 2014-04-09 |
EP2600256A4 (en) | 2014-02-19 |
KR20120011950A (ko) | 2012-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101139610B1 (ko) | 데이터베이스화된 공유메모리를 이용한 공학적 분석용 프로그램들간의 동기화된 연계 방법 및 시스템 | |
CN105550296B (zh) | 一种基于spark-SQL大数据处理平台的数据导入方法 | |
Schäling | The boost C++ libraries | |
US8826225B2 (en) | Model transformation unit | |
US5911074A (en) | Process for manipulating data models used in software engineering | |
US11249758B2 (en) | Conditional branch frame barrier | |
CN101640587B (zh) | 数据同步方法及装置 | |
CN112463149B (zh) | 一种面向软件定义卫星的可复用代码库构建方法与装置 | |
CN110737437A (zh) | 一种基于代码集成的编译方法和装置 | |
CN112947896B (zh) | 一种基于有向图的组件依赖分析方法 | |
CN105843661B (zh) | 一种面向主机系统的代码重定位方法及其系统 | |
CN114816247A (zh) | 一种逻辑数据获取方法及装置 | |
Damiani et al. | Variability modules for java-like languages | |
CN109923527B (zh) | 可变类型建立器 | |
US9720660B2 (en) | Binary interface instrumentation | |
Kaki | Version Control Is for Your Data Too | |
Mota et al. | On using VeriFast, VerCors, Plural, and KeY to check object usage | |
KR101506656B1 (ko) | 애플리케이션 품질 관리를 위한 시스템 및 그 방법 | |
Harris et al. | Distributed caching via memcached | |
WO2018182454A1 (ru) | Способ разработки, хранения и использования компилированных в бинарное представление программ в таблицах баз данных | |
Watkins et al. | Brados: Declarative, programmable object storage | |
KR101702912B1 (ko) | 프로세스 데이터 섹션을 이용한 공학용 분석코드 가상통합 구동시스템 | |
Norelius | Reducing Serialization in Distributed Systems using Mergeable Serialized Replicated Data Types | |
KR100246541B1 (ko) | 병렬프로그램에서 성능 데이터 추출 방법 | |
CN118672644A (zh) | 一种国产操作系统环境下动态库兼容方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
N231 | Notification of change of applicant | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20150417 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20160401 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20170404 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20180403 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20190417 Year of fee payment: 8 |