• 제목/요약/키워드: 자바클래스파일

검색결과 74건 처리시간 0.025초

내장형 실시간 시스템에서의 실시간 쓰레드와 자바 쓰레드간의 동기화 (Synchronization between Real-time threads and Java threads in embedded real-time systems.)

  • 임종구;박성호;강순주
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2002년도 봄 학술발표논문집 Vol.29 No.1 (B)
    • /
    • pp.439-441
    • /
    • 2002
  • 내장명 실시간 시스템을 위한 프로그래밍의 방법으로. 플랫폼에 의존적이며 실시간성이 고려되어야 하는 태스크는 실시간 쓰레드를 이용하고, GUI나 인터넷통신과 같은 실시간성이 고려되지 않는 태스크는 자바 쓰레드를 이용해서 프로그래밍하는 것이 편리하다. 이런 경우, 서로 다른 이들 쓰레드간에 동기화를 위한 방법이 필요하게 된다. 따라서, 본 논문에서는 실시간 쓰레드와 자바 쓰레드간의 동기화를 위만 방법을 제시하고 이를 위한 API(Application Programming Interface)를 설계 및 구현한다 즉, 실시간 운영체제인 RT-Linux상에서 수행되는 실시간 쓰레드들이 RT-FIFO와 네이티브 IPC(Inter-process communication) 메커니즘을 사용해 자바 쓰레드들과 동기화 되어질 수 있게 구현한 것이다. 구현된 이 네이티브 IPC API들은 재사용 가능한 공유 라이브러리와 클래스파일로 제작되어 활용될 수도 있다.

  • PDF

자바클래스 파일을 생성하는 C컴파일러 설계 (Design of C Compiler to Generate Java Class File)

  • 최원호;정민수;김도우;진민;윤기송
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 1999년도 가을 학술발표논문집 Vol.26 No.2 (1)
    • /
    • pp.418-420
    • /
    • 1999
  • 기존의 고급 언어들로 작성된 응용 프로그램들은 인터넷이나 다른 플랫폼(Platform)에서 수행되는 것이 어렵다. 본 논문에서는 자바의 플랫폼 독립적인 특성을 C언어와 같은 고급 언어에 적용해 보고자 한다. 즉 C 언어로 작성된 원시 코드(Source code)를 컴파일러를 이용해서 자바 가상 기계가 인식할 수 있는 목적 코드인 바이트 코드(Bytecode)로 변환하여 자바 가상 기계(Java Virtual Machine)가 탑재되어 있는 어떠한 플랫폼에서도 수행할 수 있도록 하는 것이다. 따라서, 본 논문에서는 C 언어로 작성된 응용 프로그램을 이기종 플랫폼 상에서 실행 가능하도록 바이트 코드를 생성하는 컴파일러를 설계하고자 한다.

  • PDF

내장형 자바를 위한 클래스 파일의 바이트 코드 압축 (Bytecode Compression Method for Embedded Java System)

  • 이영민;맹혜선;강두진;김신덕;한탁돈
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 1999년도 가을 학술발표논문집 Vol.26 No.2 (1)
    • /
    • pp.424-426
    • /
    • 1999
  • 본 논문에서는 추후 여러 내장형 기기들을 대체하게 될 내장형 자바가상머신에서 효율적으로 메모리를 사용하기 위해 바이트코드 압축 방법을 제시하고 있다. 이 압축 방법은 기본 코드 블록을 내장형 자바가상머신에서 사용하지 않는 명령어군과 한 바이트의 인덱스를 이용하여 사전을 구축하고, 사전에 등록되어 있는 반복되는 기본 코드 블록들을 이 두 바이트로 대체함으로써 압축하는 것이다. 그러나, 압축하는데 있어서 압축효율 뿐만 아니라 바이트 코드의 수행 속도도 고려하여야 하므로 압축으로 인한 수행 오버헤드를 최소화하여 수행시간에 영향을 적게 주도록 압축 방법을 단순화하여 설계하였다. 본 논문에서 제시하고 있는 압축 방법을 사용하여 실제 사용되는 자바 API(Application Programming Interface)들을 압축함으로써 메모리에 적재되는 바이트 코드를 최대 36%까지 줄이는 결과를 얻어낼 수 있다.

  • 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

SMT-Solver 를 사용한 자바바이트코드의 배열 오버플로우 검증 (A Verification of Array Overflow in Java Bytecode using SMT-Solver)

  • 이상협;김제민;박준석;유원희
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2011년도 춘계학술발표대회
    • /
    • pp.261-264
    • /
    • 2011
  • 자바프로그램 검증은 안전하고 정확한 프로그램을 만들기 위한 필수적인 조건이지만 자바언어로 작성된 프로그램은 바이트코드로 작성되어 있는 클래스 파일로 배포되기 때문에 바이트코드에 대한 검증이 필요하다. 하지만 자바 바이트코드는 가독성이 떨어져 중간언어로 변환을 하고 그 중간코드에서 검증에 필요한 조건들을 작성 해야 한다. 이 논문에서는 새로 정의된 중간언어인 BIRS을 통해 컴파일시 검증이 되지 않는 배열 오버플로우에 대한 정적검증을 설명하고 검증 절차에 필요한 명제의 정의와 검증 시 사용되는 SMT-Solver 인 Z3 의 사용법에 대하여 서술하였다.

소프트웨어의 행위를 이해하기 위한 가상 실행에 관한 연구 (A Study on Virtual Execution To Understand the Behavior of Software)

  • 정양재;이문근
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2000년도 가을 학술발표논문집 Vol.27 No.2 (1)
    • /
    • pp.436-438
    • /
    • 2000
  • 다양한 실행 경로가 존재하는 실시간 시스템을 이해하기 위해 시스템의 정적 정보와 함께 동정 정보가 사용자에게 적절히 제공되어야 한다. 본 논문은 정적 정보와 동적 정보를 표현하기 위해 SRL(System Representation Language)을 사용한다. 정적 정보는 SRL 노드를 분석해서 얻고 동적 정보는 SRL을 실행함으로 얻는다. SRL의 가상 실행은 시스템 독립적인 자바 가상 기계를 통해 이루어진다. 가상 실행은 순방향뿐만 아니라 역방향으로도 이루어진다. SRL 실행 라이브러리는 순.역방향 실행을 위해 SRL 각 구문의 의미 규칙에 맞게 정의하며 자바 가상 기계를 통해 실행되는 클래스 파일로 컴파일된다. 메모리에 로딩된 SRL은 SRL 실행 라이브러리를 동적으로 호출하여 가상 실행을 이룬다. 동적 실행을 통해 추출된 동적 정보는 SRL에 포함된다.

  • PDF

내장형 시스템을 위한 자바 AOTC의 설계와 구현 (Design and Implementation of Java AOTC for Embedded System)

  • 박종국;정동헌;배성환;이재목;문수묵
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2005년도 가을 학술발표논문집 Vol.32 No.2 (1)
    • /
    • pp.772-774
    • /
    • 2005
  • 우리는 내장형 시스템에서 자바의 성능 문제를 해결하기 위해 수행시간 이전에(ahead-of-time) 자바 바이트코드를 기계어 코드로 변환하는 AOTC를 개발하였다. 우리가 개발한 AOTC는 자바 클래스 파일을 읽어서 C코드로 변환한 후에 이를 C컴파일러로 컴파일하는 방식으로 동작한다. 이러한 방법으로 짧은 기간안에 하드웨어 아키텍처에 종속적이지 않으면서도 안정적인 고성능의 자바 실행 환경을 구축할 수 있었다. 본 논문에서는 AOTC의 전체 구조에서부터 C코드를 생성하는 방법 및 예외 처리와 쓰레기 수집기(GC)를 지원하기 위한 방법들에 대해서 다룬다. 또한 C컴파일러에 의한 최적화의 한계를 극복하기 위해 자바에 특화된 최적화를 AOTC에 포함하였는데 이에 대해서도 설명한다. 우리의 AOTC를 Sun Microsystems의 J2ME CDC VM인 CVM위에 적용해본 결과 벤치마크에 따라서 평균 $5\~14$배의 성능 향상을 관찰 할 수 있었다.

  • PDF

자바 리플렉션 기반의 안드로이드 API 난독화를 위한 자동 변환 도구의 설계 및 구현 (Design and Implementation of An Auto-Conversion Tool for Android API Obfuscation Based on Java Reflection.)

  • 이주혁;박희완
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2014년도 춘계학술발표대회
    • /
    • pp.487-490
    • /
    • 2014
  • 리플렉션은 자바 프로그램을 실행하여 객체 내부의 모든 요소를 조사하거나 호출 혹은 조작할 수 있는 자바 언어의 한 기능이다. 한 클래스 내부의 메소드에 리플렉션을 적용하여 호출하게 되면 String형의 메소드 이름으로 간접 호출하기에 정적 분석 도구의 API 호출 탐지를 방해하게 되어 분석결과의 정확도를 떨어뜨릴 수 있고, 또한 일반적인 호출보다 복잡한 절차를 거치게 되어 소스 자체의 난독화 효과를 갖게 된다. 또한 디컴파일러의 역공학 분석을 어렵게 만드는 장점도 있다. 이 특성을 이용한다면 안드로이드 환경에서 특정 API를 은닉하여 개인정보를 누출하도록 악용하거나 디컴파일러 이용을 방지하는 데 활용될 수 있다. 본 연구에서는 안드로이드 환경에서 직접 설계한 도구와 표본 앱을 이용하여 API 메소드에 리플렉션을 적용하고, 원본 소스와 리플렉션 후 디컴파일된 소스를 비교하여 API 호출이 리플렉션을 통해서 은닉 가능함을 보여준다.

JVM 플랫폼에서 .NET 프로그램을 실행하기 위한 MSIL-to-Bytecode 번역기의 설계 및 구현 (Design and Implementation of the MSIL-to-Bytecode Translator to Execute .NET Programs in JVM Platform)

  • 이양선;황대훈;나승원
    • 한국멀티미디어학회논문지
    • /
    • 제7권7호
    • /
    • pp.976-984
    • /
    • 2004
  • 마이크로소프트사는 .NET 플랫폼을 개발하면서 자바 언어에 대응하기 위해 C# 프로그래밍 언어를 만들었다. C#과 같은 .NET 언어로 작성된 프로그램은 컴파일 과정을 거치면서 MSIL 코드를 출력하기 때문에 .NET 플랫폼에서는 실행이 되지만 JVM 플랫폼에서는 실행이 되지 않는다. 자바는 썬 마이크로시스템즈사가 개발한 언어로서 현재 가장 널리 사용되는 프로그래밍 언어 중 하나이며, 컴파일러에 의해 플랫폼에 독립적인 바이트코드를 바이너리 형태로 가지고 있는 클래스 파일을 생성하면 JVM에 의해 하드웨어나 운영체제에 상관없이 실행이 가능한 플랫폼 독립적인 언어이다. 본 논문에서는 .NET 언어로 작성된 프로그램을 컴파일 하여 생성된 MSIL 코드를 자바의 중간 언어인 바이트코드 코드로 변환해 줌으로서 .NET 언어로 구현된 프로그램이 .NET 플랫폼 없이 자바의 플랫폼인 JVM에 의해 실행되도록 하는 MSIL-to-Bytecode 번역기를 설계하고 구현하였다. 이와 같은 작업이 프로그래머로 하여금 프로그래밍 언어의 제약 없이 응용 프로그램을 개발할 수 있는 환경을 제공한다.

  • PDF

파일 시스템이 지원되지 않는 실시간 운영체제에서의 KVM 설계 및 구현 (Design and Implementation of KVM on Real-Time Operation System without File System)

  • 조희남;양희권;성영락;이철훈
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2003년도 가을 학술발표논문집 Vol.30 No.2 (1)
    • /
    • pp.253-255
    • /
    • 2003
  • 오늘날 많은 가전제품들은 다양화. 쌍방성, 효율성, 개방성등 정보화 시대의 주요 특징들과 접목되어 생산되고 있으며, 이중 모바일 제품군(Low End)은 각광받는 주류 제품이라 할 수 있다. 그러나 대부분의 모바일 제품들은 그 특성상 파일 시스템을 지원하지 못하고 있기에, 본 논문에서 모바일 제품의 운영체제로서 파일 시스템이 지원되지 않는 실시간 운영체제(RTOS- Real Time Operation System)를 선택하여 가상머쉰(VM-Virtual Machine)을 설계 및 구현하였다. 위의 지원을 위해 자바 클래스 파일을 C 언어 형태로 변환하여 VM 과 직접적으로 링크하는 방법인 프리링킹(Prelinking), 프리로딩(Preloading) 혹은 로마이징(ROMizing)이라고 알려져 있는 기법을 도입하였다.

  • PDF