KR100310291B1 - 단일 시스템에서의 병렬 프로그램 시뮬레이션 방법 - Google Patents

단일 시스템에서의 병렬 프로그램 시뮬레이션 방법 Download PDF

Info

Publication number
KR100310291B1
KR100310291B1 KR1019990061209A KR19990061209A KR100310291B1 KR 100310291 B1 KR100310291 B1 KR 100310291B1 KR 1019990061209 A KR1019990061209 A KR 1019990061209A KR 19990061209 A KR19990061209 A KR 19990061209A KR 100310291 B1 KR100310291 B1 KR 100310291B1
Authority
KR
South Korea
Prior art keywords
execution
block
distributed
statement
processor
Prior art date
Application number
KR1019990061209A
Other languages
English (en)
Other versions
KR20010057800A (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 KR1019990061209A priority Critical patent/KR100310291B1/ko
Publication of KR20010057800A publication Critical patent/KR20010057800A/ko
Application granted granted Critical
Publication of KR100310291B1 publication Critical patent/KR100310291B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 단일 시스템에서의 병렬 프로그램 시뮬레이션 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것으로, 각 프로세서의 운영체제가 지원하는 프로세스 생성 및 소멸 등과 같은 프로세스 관리 및 제어루틴을 각 실행블록에 연결시킴으로써, 병렬 프로그램을 단일 시스템에서 시뮬레이션할 수 있는 시뮬레이션 방법을 제공하기 위하여, 병렬 프로그램을 시뮬레이션하기 위한 단일 시스템에 적용되는 병렬 프로그램 시뮬레이션 방법에 있어서, 분산 병렬처리 기능을 각 실행블록에 연결시키고, 각 실행블록을 실행하는 제 1 단계; 상기 각 실행블록이 프로세서의 정보를 인식한 후, 상기 프로세서의 정보를 기준으로 프로세스 인스턴스 번호를 부여한 프로세스를 생성하는 제 2 단계; 상기 각 프로세스는 현재 실행코드가 분산처리 실행문인지를 확인하는 제 3 단계; 및 상기 제 3 단계의 확인결과에 따라, 분산처리 실행문에 대한 신호가 도착할 프로세스 인스턴스 번호를 이용하여, 신호가 도착할 실행블록의 프로세스 제어블록 자료구조를 찾아 분산처리 실행문을 처리하는 제 4 단계를 포함하며, 병렬 프로그램 시뮬레이션 등에 이용됨.

Description

단일 시스템에서의 병렬 프로그램 시뮬레이션 방법{METHOD FOR SIMULATING PARALLEL PROGRAM ON SINGLE SYSTEM}
본 발명은 병렬프로그램 시뮬레이션 방법에 관한 것으로, 특히 실시간 분산 시스템상에서 병렬로 실행되는 분산 병렬 프로세스의 실행을 단일 시스템에서 시뮬레이션할 수 있는 병렬 프로그램 시뮬레이션 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
일반적으로, 분산 병렬 프로그램은 다수의 프로세서 상에서 다수의 프로세스들이 상호간에 메시지를 송수신하며 병렬로 수행된다. 이때, 소켓 프로코콜(socket protocol) 또는 전역 신호를 사용한다.
소켓 프로토콜을 사용할 경우, 메시지를 송신하는 포트와 수신하는 포트를 미리 지정하고, 지정된 포트를 이용하여 다중 실행블록 실행을 가능하게 한다.
그러나, 상기한 바와 같은 분산 병렬 프로그램 시뮬레이션 방법은, 다수의 분산 프로세서 상에서 실행하던 실행 블록을 한 개의 프로세서 상에서 실행시킬 수 없으며, 한 개의 프로세서 상에서 실행하기 위해서는 전송 포트 및 프로세서 관련 정보를 변경하여 재 컴파일(compile)해야 하므로, 추가적인 작업이 필요한 문제가 있다.
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위해 안출된 것으로, 각 프로세서의 운영체제가 지원하는 프로세스 생성 및 소멸 등과 같은 프로세스 관리및 제어루틴을 각 실행블록에 연결시킴으로써, 병렬 프로그램을 단일 시스템에서 시뮬레이션할 수 있는 시뮬레이션 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.
도 1 은 본 발명이 적용되는 병렬 프로그램 시뮬레이션 장치의 일실시예 구성도.
도 2 는 본 발명이 적용되는 실행시간 지원 장치의 일실시예 구성도.
도 3 은 본 발명에 따른 단일 시스템에서의 병렬 프로그램 시뮬레이션 방법에 대한 일실시예 처리 흐름도.
* 도면의 주요 부분에 대한 부호의 설명
101 : 중앙처리장치 102 : 주기억장치
103 : 보조기억장치 104 : 입출력장치
200 : 공유메모리 202a, 202b : 프로세스 제어블록 자료구조
204a, 204b : 프로세스 스케쥴러
206a, 206b : 분산처리 실행문 처리기
상기 목적을 달성하기 위한 본 발명의 방법은, 병렬 프로그램을 시뮬레이션하기 위한 단일 시스템에 적용되는 병렬 프로그램 시뮬레이션 방법에 있어서, 분산 병렬처리 기능을 각 실행블록에 연결시키고, 각 실행블록을 실행하는 제 1 단계; 상기 각 실행블록이 프로세서의 정보를 인식한 후, 상기 프로세서의 정보를 기준으로 프로세스 인스턴스 번호를 부여한 프로세스를 생성하는 제 2 단계; 상기 각 프로세스는 현재 실행코드가 분산처리 실행문인지를 확인하는 제 3 단계; 및 상기 제 3 단계의 확인결과에 따라, 분산처리 실행문에 대한 신호가 도착할 프로세스 인스턴스 번호를 이용하여, 신호가 도착할 실행블록의 프로세스 제어블록 자료구조를 찾아 분산처리 실행문을 처리하는 제 4 단계를 포함한다.
또한, 본 발명은, 컴퓨터에, 분산 병렬처리 기능을 각 실행블록에 연결시키고, 각 실행블록을 실행하는 제 1 기능; 상기 각 실행블록이 프로세서의 정보를 인식한 후, 상기 프로세서의 정보를 기준으로 프로세스 인스턴스 번호를 부여한 프로세스를 생성하는 제 2 기능; 상기 각 프로세스는 현재 실행코드가 분산처리 실행문인지를 확인하는 제 3 기능; 및 상기 제 3 기능의 확인결과에 따라, 분산처리 실행문에 대한 신호가 도착할 프로세스 인스턴스 번호를 이용하여, 신호가 도착할 실행블록의 프로세스 제어블록 자료구조를 찾아 분산처리 실행문을 처리하는 제 4 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
도 1 은 본 발명이 적용되는 본 발명이 적용되는 병렬 프로그램 시뮬레이션 장치의 일실시예 구성도이다.
도 1 에 도시된 바와 같이, 본 발명이 적용되는 병렬 프로그램 시뮬레이션 장치는, 전체적인 동작을 제어하고 관리하는 중앙처리장치(101)와, 상기 중앙처리장치(101)에서 수행되는 프로그램을 저장하고 작업 수행중 이용되는 또는 작업 수행중에 발생되는 각종 데이터를 저장하는 주기억장치(102)와 보조기억장치(103) 및 사용자와의 데이터 입출력을 위한 입출력장치(104)를 포함한다.
그리고, 상기 보조기억장치(103)는 사용자 실행블록과 공유 라이브러리 블록에서 출력하는 결과가 저장되고, 상기 주기억장치(102)에 탑재되지 않은 파일과 도구들이 저장된다. 또한, 상기 입출력장치(104)는 일반적인 키보드, 디스플레이 장치 및 프린터 등을 포함한다. 여기서, 사용자 실행블록과 공유 프로시져(procedure)를 포함하는 공유 라이브러리 실행블록들은 상기 주기억장치(102)에 탑재되어, 상기 중앙처리장치(101)에서 수행되고, 상기 입출력장치(104)를 통해 출력 및 오류메세지가 입출력된다.
첨부된 도 2 는 본 발명이 적용되는 실행시간 지원 장치의 일실시예 구성도이다.
도면에 도시된 바와 같이, 본 발명이 적용되는 실행시간 지원 장치는, 각 실행블록에 의해 공유되는 공유메모리(200)와, 각 프로세스의 상태정보를 유지하는 프로세스 제어블록 자료구조(202a, 202b)와, 프로세스의 실행을 스케쥴링하는 프로세스 스케쥴러(204a, 204b)와, 프로세스를 제어하고 프로세스 사이의 메시지를 송수신하는 분산 실행문 처리기(206a, 206b)를 포함한다.
이제, 첨부된 도 3 을 참조하여 본 발명에 따른 분산 프로그램 시뮬레이션 방법에 대해 상세히 설명하면 다음과 같다.
도 3 은 본 발명에 따른 분산 프로그램 시뮬레이션 방법에 대한 일실시예 처리 흐름도이다.
먼저, 단일 시스템상에서 다수의 내장형 시스템용 실행블록을 실행시키기 위해 분산 병렬처리 기능을 지원하는 실행시간 지원 장치를 각 실행블록에 연결시키고(300), 각 실행블록이 프로세서의 정보를 인식한 후(302), 상기 각 실행블록이 프로세서의 정보를 기준으로 프로세스를 생성한다(304). 이때, 생성된 프로세스는 인스턴스(instance) 번호를 부여받는데, 상기 인스턴스 번호는 8자리의 16진수 숫자로 구성되며, 앞의 4자리는 프로세서의 고유번호를 나타낸다.
그리고, 각 프로세스는 실행코드의 종료유무를 확인하여(306), 종료이면, 시뮬레이션을 종료하고, 아니면, 현재 실행코드가 분산처리 실행문인가를 판단한다(308).
상기 판단결과(308), 현재 실행코드가 분산처리 실행문이면, 상기 분산처리 실행문 처리기(206a, 206b)에서 해당 분산처리 실행문을 수행하고(312), 상기 실행코드의 종료유무를 확인하는 과정(306)부터 반복 수행하며, 현재 실행코드가 일반 실행문이면, 일반 실행문을 수행하고(310), 상기 실행코드의 종료유무를 확인하는(306)과정을 반복 수행한다. 여기서, 각 실행블록이 실행될 때, 해당 블록에 연결된 실행시간 지원 장치는 각 프로세스 제어블록 자료구조(202a, 202b)를 공유메모리(200)에 작성한다. 그리고, 임의의 프로세서에서 생성된 프로세스가 다른 프로세서에서 생성된 프로세스로 메시지를 보낼 경우, 분산처리 실행문은 신호가 도착할 프로세스 인스턴스 번호의 앞 4자리를 이용하여, 신호가 도착할 실행블록의 프로세스 제어블록 자료구조를 찾는다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 한정되는 것이 아니다.
상기와 같은 본 발명은, 각 프로세서의 운영체제가 지원하는 프로세스 생성 및 소멸 등과 같은 프로세스 관리 및 제어루틴을 각 실행블록에 연결시켜 병렬 프로그램 시뮬레이션을 단일 시스템에서 수행함으로써, 다수의 프로세서가 갖추어진 시스템에서만 시뮬레이션이 가능하던 분산 병렬 프로그램을 단일 시스템에서도 효과적으로 시험할 수 있고, 목적 시스템이 갖추어져 있지 않은 시스템 개발 초기단계의 병렬 프로그램의 실행 및 시험이 가능하므로 프로그램의 생산성 및 개발기간을 크게 단축할 수 있는 효과가 있다.

Claims (2)

  1. 병렬 프로그램을 시뮬레이션하기 위한 단일 시스템에 적용되는 병렬 프로그램 시뮬레이션 방법에 있어서,
    분산 병렬처리 기능을 각 실행블록에 연결시키고, 각 실행블록을 실행하는 제 1 단계;
    상기 각 실행블록이 프로세서의 정보를 인식한 후, 상기 프로세서의 정보를 기준으로 프로세스 인스턴스 번호를 부여한 프로세스를 생성하는 제 2 단계;
    상기 각 프로세스는 현재 실행코드가 분산처리 실행문인지를 확인하는 제 3 단계; 및
    상기 제 3 단계의 확인결과에 따라, 분산처리 실행문에 대한 신호가 도착할 프로세스 인스턴스 번호를 이용하여, 신호가 도착할 실행블록의 프로세스 제어블록 자료구조를 찾아 분산처리 실행문을 처리하는 제 4 단계
    를 포함하는 병렬 프로그램 시뮬레이션 방법.
  2. 컴퓨터에,
    분산 병렬처리 기능을 각 실행블록에 연결시키고, 각 실행블록을 실행하는 제 1 기능;
    상기 각 실행블록이 프로세서의 정보를 인식한 후, 상기 프로세서의 정보를기준으로 프로세스 인스턴스 번호를 부여한 프로세스를 생성하는 제 2 기능;
    상기 각 프로세스는 현재 실행코드가 분산처리 실행문인지를 확인하는 제 3 기능; 및
    상기 제 3 기능의 확인결과에 따라, 분산처리 실행문에 대한 신호가 도착할 프로세스 인스턴스 번호를 이용하여, 신호가 도착할 실행블록의 프로세스 제어블록 자료구조를 찾아 분산처리 실행문을 처리하는 제 4 기능
    을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1019990061209A 1999-12-23 1999-12-23 단일 시스템에서의 병렬 프로그램 시뮬레이션 방법 KR100310291B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990061209A KR100310291B1 (ko) 1999-12-23 1999-12-23 단일 시스템에서의 병렬 프로그램 시뮬레이션 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990061209A KR100310291B1 (ko) 1999-12-23 1999-12-23 단일 시스템에서의 병렬 프로그램 시뮬레이션 방법

Publications (2)

Publication Number Publication Date
KR20010057800A KR20010057800A (ko) 2001-07-05
KR100310291B1 true KR100310291B1 (ko) 2001-09-28

Family

ID=19628858

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990061209A KR100310291B1 (ko) 1999-12-23 1999-12-23 단일 시스템에서의 병렬 프로그램 시뮬레이션 방법

Country Status (1)

Country Link
KR (1) KR100310291B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8781808B2 (en) 2005-10-10 2014-07-15 Sei Yang Yang Prediction-based distributed parallel simulation method
WO2007043786A1 (en) * 2005-10-10 2007-04-19 Seiyang Yang Dynamic-based verification apparatus for verification from electronic system level to gate level, and verification method using the same

Also Published As

Publication number Publication date
KR20010057800A (ko) 2001-07-05

Similar Documents

Publication Publication Date Title
US5881270A (en) Method for flexible simulation modeling of multi-component systems using a global mailbox to facilitate communication between discrete component models
US5960182A (en) Hardware-software co-simulation system, hardware-software co-simulation method, and computer-readable memory containing a hardware-software co-simulation program
CN111859834B (zh) 一种基于uvm的验证平台开发方法、系统、终端及存储介质
CN109597653A (zh) Bios与bmc命令交互的方法、bios及bmc
US20070226542A1 (en) Simulated message generation for simulation testing of a node operation
US6279104B1 (en) Debugging system for parallel processed program and debugging method thereof
KR100310291B1 (ko) 단일 시스템에서의 병렬 프로그램 시뮬레이션 방법
CN103678099A (zh) 一种实现硬件平台与软件平台通讯的方法以及装置
CN111176663B (zh) 应用程序的数据处理方法、装置、设备及存储介质
US9910810B1 (en) Multiphase I/O for processor-based emulation system
JP2005108082A (ja) デバイスドライバのインターフェース方法
US7506319B2 (en) Generating a model of software in execution
US10409624B1 (en) Data array compaction in an emulation system
Zozulya et al. Algorithmization of the software testing system based on finite automata.
CN113704040A (zh) 一种微处理器内存可靠性测试方法
JP2007080049A (ja) 組み込み用プログラム生成方法、組み込み用プログラム開発システム、及び情報テーブル部
CN112422331A (zh) 运维操作节点监控方法及相关设备
JP2001256048A (ja) データ処理装置のシミュレーション
CN116126366B (zh) 芯片输入输出接口配置方法,装置,介质及电子设备
JP5067705B2 (ja) 異常系テスト支援装置、異常系テスト支援方法、及びプログラム
JP2008299763A (ja) 分散オブジェクト開発ツール
KR0154573B1 (ko) 칠 시뮬레이션 환경에서의 프로세스간 통신 방법
KR20010009140A (ko) 내장 시스템 소프트웨어를 테스트하기 위한 시스템 및 방법
JPH03135630A (ja) 命令スケジューリング方式
JPH11238042A (ja) 分散シミュレーション制御装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee