• 제목/요약/키워드: 실행코드

검색결과 780건 처리시간 0.038초

IoT-Cloud 융합 가상기계 시스템을 위한 Ahead-of-Time 컴파일 시스템의 설계 (Design of Ahead-of-Time Compilation System for IoT-Cloud Fusion Virtual Machine System)

  • 최찬휘;손윤식;이양선
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2017년도 추계학술발표대회
    • /
    • pp.1183-1185
    • /
    • 2017
  • 사물인터넷 기술의 사용이 증가하고 있으나 장치 및 플랫폼의 종류가 다양하여 한 번 구현한 응용 프로그램을 재사용하기 어렵다. 사물인터넷 장치에서 가상기계를 사용하여 이러한 문제점을 해결할 수 있지만 가상기계의 응용 프로그램 실행 속도는 네이티브 코드에 비해 속도가 느려 가상기계의 실행 속도를 개선할 필요가 있다. AoT 컴파일은 바이트코드를 네이티브 코드로 사전에 컴파일하여 가상기계의 실행 속도를 향상시키는 기법이다. 본 논문에서는 IoT-Cloud 융합 가상기계 시스템을 위한 AoT 컴파일 시스템을 설계한다. 설계한 시스템은 사물인터넷과 클라우드의 융합 환경에 적합하며, 바이트코드 중 일부만을 네이티브 코드로 컴파일하므로 네이티브 코드 로드에 의한 가상기계의 메모리 부담이 적다.

루프 바이트코드의 정의를 통한 자바가상머신의 성능 개선 (A Definition of Loop Byteocode for Performance Improvement of Java Virtual Machine)

  • 이지현;윈희선;문경덕;김영국
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2002년도 추계학술발표논문집 (중)
    • /
    • pp.1387-1390
    • /
    • 2002
  • 자바가상머신은 플랫폼에 독립적인 실행을 위해서 바이트코드라고 하는 스택(stack) 기반의 가상 기계어를 사용하므로 실행 속도가 느리다는 단점이 있다. 특히 루프문을 포함하는 자바프로그램을 자바가상머신에서 수행 시키면 루프에 관련된 몇 개의 동일한 바이트코드가 루프의 실행 횟수만큼 반복적으로 인터프리트해서 수행하므로 상당한 성능 저하를 유발한다. 본 논문에서는 이런 비효율적인 성능상의 문제점을 개선하기 위해 루프를 수행하는 새로운 바이트코드를 정의 및 구현하고, 이를 실제 클래스 파일에 적용하기 위한 코드 변경 절차와 방법을 제시한다. 제안된 바이트코드를 사용해서 루프의 처리 속도를 개선할 경우, 클래스 파일의 크기를 줄일 수 있을 뿐만 아니라 간단한 성능 평가를 통해서 자바가상머신의 성능 개선 효과를 확인할 수 있다.

  • PDF

재목적 Oolong-to-SIL 중간 언어 번역기 (Retargetable Oolong-to-SIL IL Translator)

  • 권혁주;김영근;이양선
    • 한국멀티미디어학회:학술대회논문집
    • /
    • 한국멀티미디어학회 2004년도 춘계학술발표대회논문집
    • /
    • pp.310-313
    • /
    • 2004
  • 자바는 컴파일러에 의해 아키텍처 독립적인 바이트코드로 구성된 바이너리 형태의 클래스 파일을 생성하면 JVM에 의해 하드웨어와 운영체제에 상관없이 실행이 가능한 플랫폼 독립적인 언어로 현재 가장 널리 사용되는 범용 프로그램 언어중 하나이다. EVM(Embedded Virtual Machine)은 Microsoft사의 .NET 언어와 SUN사의 Java 언어등을 모두 수용할 수 있는 임베디드 시스템을 위한 가상기계이며, SIL(Standard Intermediate Language)은 EVM에서 실행되는 중간언어로 다양한 프로그래밍 언어를 수용하기 위해서 객체지향 언어와 순차적 언어를 모두 수용하기 위한 연산 코드 집합을 갖고 있다. 본 논문에서는 자바 프로그램을 EVM에서 실행 될 수 있도록 자바 프로그램을 컴파일하여 생성된 클래스 파일로부터 Oolong 코트를 추출하고 추출된 Oolong 코드를 EVM의 SIL 코드로 변환하는 Oolong-to-SIL 번역기 시스템을 구현하였다. 번역기 시스템을 정형화하기 위해 Oolong 코드의 명령어 등을 문법으로 작성하였으며, PGS를 통해 생성된 어휘 정보를 가지고 스캐너를 구성하였고, 파싱테이블을 가지고 파서를 설계하였다 파서의 출력으로 AST가 생성되면 번역기는 AST를 탐색하면서 의미적으로 동등한 SIL 코드를 생성하도록 번역기 시스템을 컴파일러 기법을 이용하여 모듈별로 구성하였다. 이와 같이 번역기를 구성함으로써 목적기계의 중간언어 형태에 따라 중간언어 번역기를 자동으로 구성할 수 있어 재목적성(Retargetability)을 높일 수 있다.

  • PDF

구문 트리를 이용한 자바 바이트코드에서 SIL로의 번역기 (Java Bytecode-to-SIL Translator using an Abstract Syntax Tree)

  • 김영근;권혁주;이양선
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2004년도 춘계학술발표대회
    • /
    • pp.519-522
    • /
    • 2004
  • 자바는 현재 가장 널리 사용되는 범용 프로그래밍 언어중 하나로 컴파일러에 의해 중간언어인 바이트코드로 변환되며 JVM(Java Virtual Machine)에 의해 실행되는 플랫폼 독립적인 언어이다. SIL(Standard Intermediate Language)은 Microsoft사의 .NET 언어와 SUN사의 Java 언어 등을 모두 수용할 수 있는 임베디드 시스템을 위한 중간언어로 가상기계인 EVM(Embedded Virtual Machine)에서 실행된다. 본 논문에서는 자바 프로그램을 컴파일하여 생성된 클래스 파일에서 Oolong 코드를 추출하고 추출된 Oolong 코드를 EVM의 SIL 코드로 변환하여 자바로 구현된 프로그램이 EVM에서 실행되도록 하는 Bytecode-to-SIL 번역기 시스템을 구현하였다. 그리고 본 번역기 시스템을 다른 플랫폼에 용이하게 설치하기 위한 재목적성(retargetability)을 위해 단일패스(one-pass)을 사용하는 기존의 번역기들과 달리 AST를 이용한 컴파일러 기법을 사용하여 AST가 가지고 있는 정보에 대해 최적화 작업을 수행하여 보다 효과적인 코드 변환을 할 수 있도록 설계하였다.

  • PDF

모델 기반 자동코드 생성기 개발 (A Development of Model Based Automatic Code Generation)

  • 이정우;최경희;정기현
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2010년도 춘계학술발표대회
    • /
    • pp.918-921
    • /
    • 2010
  • 본 연구에서는 Simulink Model(이하 Model)을 C Code 로 변환시켜주는 자동 코드 생성기, SimAutoCodeGenerator 를 제안하였다. Model 의 테스트케이스를 생성하기 위한 작업에서 반복적인 프로그램의 실행을 통한 테스터와의 다양한 피드백이 필요하다. 이때, Simulink는 이런 작업을 하는 데 있어서 적절한 정보를 제공하기 어려울 뿐만 아니라 테스트 케이스를 생성하는데 필요한, 실행 시 특정 시점으로 돌아가는 기능을 수행하기 위해서는 프로그램을 정지한 후 다시 실행해야하는 문제점을 가지고 있다. 본 연구에서는 이와같은 단점을 보완하기 위하여 Model 을 C 코드로 변환하였다. 생성된 C 코드는 Model 과의 일치성을 증명한 후 자동 테스트케이스 생성을 위한 프로그램에 쓰이게 될 것이다. 먼저 C 코드의 생성 메커니즘을 알아보고 생성된 C 코드와 Model 의 일치성을 증명하였다.

에이전트 코드와 상태 추적을 통한 이동에이전트의 보호 기법 (Mobile Agent Protection Scheme through Execution Tracing of Agent Code and Status)

  • 정창렬;고진광
    • 한국통신학회논문지
    • /
    • 제28권7C호
    • /
    • pp.743-750
    • /
    • 2003
  • 컴퓨터 기술의 확산과 더불어 분산 컴퓨팅 환경에서 이동에이전트 코드의 이동성은 유연성이 있어 인터넷상에서 분배된 애플리케이션들을 설치하는데 사용되고 있다. 동시에, 이동에이전트의 이동코드를 전송하고 멀리 떨어진 곳의 호스트로부터 수신할 수 있는 능력을 가지고 있어서 에이전트가 실행되는 호스트 시스템의 실행 환경은 에이전트의 코드와 이를 실행할 수 있는 실행 환경에 접근을 해야 함으로 악의적인 행위들로부터 에이전트의 위조, 변조, 잘못된 실행을 방지하기가 매우 어렵다. 따라서 본 논문은 암호화된 에이전트의 코드와 상태 추적을 통하여 여러 악의적인 행위로부터 에이전트를 보호할 수 있도록 하는 메카니즘을 제안한다 제안한 메카니즘을 통해 이동에이전트가 보호되는 과정을 통해서 안전성을 증명하였다.

중간 코드를 스택-기반 코드로의 변환기 (Translator for Stack-Based Codes from Intermediated Codes)

  • 김영국;고훈준;유원희
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2005년도 한국컴퓨터종합학술대회 논문집 Vol.32 No.1 (B)
    • /
    • pp.895-897
    • /
    • 2005
  • 자바의 문제점은 실행속도의 저하이다. 실행속도 저하의 해결 방법으로 네이티브 코드로 변환, JIT컴파일러, 바이트코드 최적화등의 연구가 되어 왔다. 그 중에 바이트코드 최적화 방법을 사용하는 CTOC(Class To Optimized Classes)에서 중간코드로 사용하는 3-주소 코드를 스택-기반 코드로 코드 확장 기법으로 변환 시 불필요한 store/load 코드가 생성된다. 따라서 본 논문은 불필요한 store/load 코드를 제거하기 위해서 부분 중복 코드 제거 후 불필요한 store/load문을 제거함으로서 불필요한 store/load 코드의 양을 줄이는 변환기를 제안하고, 거기에 대한 간단한 예를 들어 설명한다.

  • PDF

NOP 명령어 슬롯을 활용하는 VLIW 코드 생성기법 (A VLIW Code Generation Technique Utilizing NOP Instruction Slot)

  • 문현주;이승수;김석주;김석일
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2000년도 가을 학술발표논문집 Vol.27 No.2 (3)
    • /
    • pp.615-617
    • /
    • 2000
  • 본 논문에서는 VLIW 목적코드에 존재하는 NOP 명령어 슬롯에 의미있는 명령어를 중복 삽입하도록 함으로써 원래의 방법에서 존재하였던 자료의존관계를 해소하여 실행시간의 지연을 방지하는 기법을 연구하였다. 이 경우에 하나의 긴 명령어에 동일한 명령어가 둘 이상 포함될 수 있으므로 연산 관계에 이은 쓰기 단계에서 여러개의 명령어가 동일한 레지스터 파일의 주소에 쓰기를 함에 따른 충돌을 피할 수 없다. 본 논문에서는 연산처리 별로 쓰기 단계에서 연산 결과를 레지스터 파일에 쓰도록 허용할 것인지에 대한 정보를 명령어에 포함하는 TiPS 구조와 TiPS 구조에 적합한 목적코드 생성 알고리즘을 제안하였다. 목적코드 생성 알고리즘은 연산처리기별로 연속적으로 실행되는 명령어간의 자료의존관계를 해소하기 위하여 NOP 대신에 다른 연산처리기에서 실행할 명령어를 수행하도록 동일한 명령어를 복사하여 할당할 수 있다. 실험 결과, 명령어 복사 기법은 기존의 기법에 비하여 전체 실행 사이클을 크게 단축시킬 수 있음을 보여주었다.

  • PDF

JNI를 사용한 혼합형 실행 환경 (Mixed-mode execution environment using the JNI)

  • 김상훈
    • 정보학연구
    • /
    • 제5권4호
    • /
    • pp.35-44
    • /
    • 2002
  • 자바의 이전성은 해석 방식에 따른 비효율성을 낳는다. 또한 일반 응용 프로그램에서 자바의 표준 클래스 라이브러리는 플랫폼 의존적인 기능을 제공하지 못한다. 이러한 여러 가지 문제를 해결하기 위해 JNI, JIT, 오프라인 바이트코드 컴파일러가 제안되어왔다. 본 논문에서는 자바 가상기계가 네이티브 코드와 함께 실행되는 혼합형 실행 모델을 제시한다. 현 실행 모델과 번역기는 동적으로 바이트코드를 적재할 수 있는 능력이 주어지며 JNI의 수월한 사용을 제공한다. 본 시스템은 JIT 보다 효율적이며, JNI의 개념이 부족한 프로그래머가 쉽게 네이티브코드 작성할 수 있도록 한다.

  • PDF

악성코드 동적 분석을 위한 효율적인 다중실행경로 탐색방법 (Efficient Exploring Multiple Execution Path for Dynamic Malware Analysis)

  • 황호;문대성;김익균
    • 정보보호학회논문지
    • /
    • 제26권2호
    • /
    • pp.377-386
    • /
    • 2016
  • 악성코드의 수가 기하급수적으로 증가함에 따라 악성코드의 행위를 고속으로 분석하는 기술이 절실히 요구되고 있다. 또한, 정적 분석을 방해하는 실행압축과 가상화 같은 지능화된 코드 난독화 기법이 대부분의 악성코드에 적용되어 악성코드 동적 분석에 관한 연구가 다양하게 진행되고 있다. 그러나 동적 분석은 조건에 따라 다른 행위를 하는 악성코드를 분석하는 데 어려움이 있으며, 이를 해결하기 위한 기존의 연구들은 분석 속도가 느리거나 분석환경을 준비하는 데 많은 자원을 소모하는 문제를 가지고 있다. 본 논문은 단일 분석환경에서 악성코드의 다중실행경로를 고속으로 탐색하는 방법을 제안한다. 제안한 방법은 다중실행경로 분석이 병렬적으로 실행되도록 파이프라인화 하였고, 실험을 통해 2-코어 환경에서 29%, 4-코어 환경에서 70%의 성능향상과 지연노드에 영향 받지 않는 고속탐색이 가능함을 보였다.