• 제목/요약/키워드: JNI Code

검색결과 7건 처리시간 0.02초

자바 바이트코드로부터 JNI를 사용한 C 코드의 변환 (Translation of Java Bytecode into C code with the JNI)

  • 권혜은;김상훈
    • 정보학연구
    • /
    • 제4권1호
    • /
    • pp.1-7
    • /
    • 2001
  • 자바 프로그램은 플랫폼 독립적이라는 장점을 갖는 반면에 그의 실행이 가상 기계를 통하여 이루어지기 때문에 실행 시간의 비효율성을 가진다. 이러한 문제를 극복하기 위해 just-in-time(JIT) 컴파일러, 오프라인 바이트코드 컴파일러와 같은 다양한 해결 방법이 제안되어 왔다. 그러나 JIT 컴파일러는 실행시간에 바이트코드로부터 네이티브 코드로의 번역이 일어나므로 실행시간 부담을 가진다. 그리고 순수 오프라인 바이트코드 컴파일러는 동적 클래스 적재(dynamic class loading)의 어려움을 가진다. 본 논문에서는 동적으로 바이트코드를 적재학 수 있는 능력을 유지하면서, JIT 보다 더 효율적 실행이 가능한 방법을 제안한다. 또한 기존의 bytecode-to-C 번역기와는 달리, 우리의 번역기는 자바 네이티브 인터페이스(JNI)를 사용함으로서 JDK 실행 환경과의 완벽한 호환성을 유지한다. 본 연구의 결과로 바이트코드를 JNI를 사용한 C 코드로 변환하기 위한 번역기를 설계하고 구현하였다.

  • PDF

자바와 C/C++의 혼합 프로그래밍 (Java and C/C++ Mixed Programming)

  • 김상훈
    • 한국멀티미디어학회논문지
    • /
    • 제13권10호
    • /
    • pp.1514-1524
    • /
    • 2010
  • 표준 자바 클래스 라이브러리는 용용 프로그램에 의해 요구되는 플랫폼 의존적인 기능을 수행하지 못한다. 따라서 플랫폼 의존적인 기능을 포함한 자바 응용 프로그램은 JNI를 사용한 네이티브 함수를 호출하여 부족한 기능을 수행하여야 한다. 네이티브 언어 프로그래머는 다양한 자바 객체와 연결하고 사용 후 이를 해지해야하는 작업을 명시적으로 기술해야 한다. 이러한 번거로운 작업을 피하기 위한 방법을 본 논문에서 제안하고자 한다. 순수 자바 클래스에서 네이티브 메소드는 코드 블록을 가질 수 없다. 자바 네이티브 메소드가 네이티브 코드로 작성된 몸채를 가질 수 있도록 함으로써 프로그래머는 JNI를 의식하지 않고 프로그래밍하는 것이 가능하다. 이를 위해 네이티브 환경의 자바 클래스인 네이티브 클래스라는 개념, 그리고 자바 클래스와 네이티브 클래스 간에 제어와 자료의 교환을 지원하는 중재기를 두어 해결하였다.

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

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

  • PDF

안드로이드 기반 상하좌우 방향의 동작 제스처를 선택할 수 있는 응용 프로그램 구현 (Implementation of Android-Based Applications that can Select Motion Gestures In Up, Down, Left, and Right Directions)

  • 전영남
    • 한국전자통신학회논문지
    • /
    • 제18권5호
    • /
    • pp.945-952
    • /
    • 2023
  • 본 논문에서는 안드로이드 플랫폼 기반의 GRS칩 구동 JNI 코드 응용 SW 설계 안드로이드 플랫폼 기반 동작 제스처 프레임 모듈 설계 제작하였다. 안드로이드 기반 모듈 설계, 안드로이드 기반 모듈 구현, 안드로이드 기반 기능 모듈 구현 설계로 응용애플리케이션 기반 네트워크 지원 API 기술 제안한 직렬 데이터 수신 모듈 설계를 하였다. 안드로이드 OS의 애플리케이션을 통해 무선 통신 디바이스로부터 데이터를 수신하기 위한 직렬 통신 드라이버, 라이브러리, 프레임워크의 클래스와 같은 안드로이드 애플리케이션을 통해 센서의 데이터 정보를 확인할 수 있었다. 또한 안드로이드에서의 어플리케이션들은 자바를 이용하여 좌우상하 4방향의 동작 제스처를 판단할 수 있는 응용 SW를 구현하였다.

자바 네이티브 메소드 생성 시스템 (Java Native Method Generating System)

  • 김도영;김상훈
    • 정보학연구
    • /
    • 제3권2호
    • /
    • pp.13-21
    • /
    • 2000
  • 자바 네이티브 메소드는 시간 소모적인 작업의 효율적 실행, 플랫폼 종속적인 작업의 수행, 라이브러리의 재사용 등을 위해 제안되었다. 실행 속도 향상을 위해 네이티브 메소드를 사용한다면, 네이티브 메소드 구현에 자바 언어가 아닌 컴파일 방식의 다른 언어를 사용해야한다. 또한 자바 네이티브 인터페이스의 개념을 습득해야한다. 이러한 부담을 경감시키기 위해 렬 논문에서는 자바 메소드를 네이티브 메소드로 자동 변환하여 주는 자바 네이티브 메소드 생성 시스템을 제안하였다. 또한 본 시스템은 JNI의 개념을 요구하지 않기 때문에 C 언어로 네이티브 메소드를 작성하려는 프로그래머에게 편의를 제공한다.

  • PDF

프로그래밍 언어의 다원성과 상호운영성의 실증적 분석 (An Empirical Study of Diversity and Interoperability of Programming Languages)

  • 고봉석;이병철
    • 정보과학회 컴퓨팅의 실제 논문지
    • /
    • 제23권5호
    • /
    • pp.304-309
    • /
    • 2017
  • 둘 이상의 프로그래밍 언어로 상호 작용하는 프로그램을 작성하고 사용하는 경우가 증가하고 있으나 그 무결점성을 확보하기는 어렵다. 프로그램 오류의 원인과 결과가 서로 다른 언어의 코드와 데이터에 존재할 경우 오류 제거의 난이도가 높아지고 Java Native Interface(JNI) 및 Python/C와 같은 프로그램 언어 인터페이스를 잘못 사용하여 새로운 종류의 프로그램 오류가 발생하기 때문이다. 프로그램 언어 상호 작용 오류를 해결하기 위한 프로그램 분석 기법과 도구가 활발히 연구 개발되었으나 이들을 평가하기 위한 프로그램 언어, 프로그램 언어 인터페이스 및 오류들의 실재성에 대한 고찰이 부족한 상황이다. 본 논문에서는 적지 않은 사용자를 가지는 우분투 소프트웨어 생태계 내에서 프로그래밍 언어의 다원성과 상호운영성을 실증적으로 조사하여 다중 언어 프로그래밍 연구의 실재성과 연구의 타당성을 실제 데이터 기반으로 확립하고자 한다.

Adaptable I/O System based I/O Reduction for Improving the Performance of HDFS

  • Park, Jung Kyu;Kim, Jaeho;Koo, Sungmin;Baek, Seungjae
    • JSTS:Journal of Semiconductor Technology and Science
    • /
    • 제16권6호
    • /
    • pp.880-888
    • /
    • 2016
  • In this paper, we propose a new HDFS-AIO framework to enhance HDFS with Adaptive I/O System (ADIOS), which supports many different I/O methods and enables applications to select optimal I/O routines for a particular platform without source-code modification and re-compilation. First, we customize ADIOS into a chunk-based storage system so its API semantics can fit the requirement of HDFS easily; then, we utilize Java Native Interface (JNI) to bridge HDFS and the tailored ADIOS. We use different I/O patterns to compare HDFS-AIO and the original HDFS, and the experimental results show the design feasibility and benefits. We also examine the performance of HDFS-AIO using various I/O techniques. There have been many studies that use ADIOS, however our research is expected to help in expanding the function of HDFS.