• Title/Summary/Keyword: JVM 플랫폼

검색결과 38건 처리시간 0.024초

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

자바 언어를 위한 중간 언어 번역기 (Intermediate Language Translator for Jave Language)

  • 정지훈;박진기;이양선
    • 한국멀티미디어학회:학술대회논문집
    • /
    • 한국멀티미디어학회 2003년도 추계학술발표대회(하)
    • /
    • pp.537-540
    • /
    • 2003
  • 자바와 .NET 언어는 프로그래머들이 프로그램을 개발하는데 가장 널리 사용되고 있는 언어이다. 프로그래머가 작성한 자바 프로그램은 JVM 플랫폼에서는 실행이 되지만 .NET 플랫폼에서 실행이 되지 않고, 반대로 C#과 같은 .NET 언어로 작성한 프로그램은 .NET 플랫폼에서는 실행이 되지만 JVM 플랫폼에서 실행이 되지 않는다. 그러므로 자바 프로그래머는 .NET 플랫폼 환경에 맞추어 프로그래밍하지 못하고, .NET 프로그래머는 JVM 플랫폼 환경에 맞추어 프로그래밍하지 못하는 단점이 있다. 본 논문에서 연구한 Bytecode-to-MSIL 번역기는 위의 단점을 해결한 것이다. 먼저 자바로 작성된 프로그램을 컴파일하여 생성된 클래스 파일(*.class)로부터 Oolong 역어셈블러를 이용하여 Oolong 코드를 추출한다. 추출된 Oolong 코드를 본 논문에서 연구한 Bytecode-to-MSIL 번역기로 .NET의 중간언어인 MSIL 코드로 변환하여 .NET 어셈블러로 실행파일을 만들어 자바 언어로 구현된 프로그램이 .NET 환경에서도 실행될 수 있도록 한다. 따라서, 자바 프로그래머나 .NET 프로그래머는 JVM 이나 .NET 플랫폼 환경에 관계없이 프로그램을 작성하여 실행시킬 수 있다.

  • PDF

임베디드 자바가상머신을 위한 쓰레드 클래스 라이브러리 설계 및 구현 (Design and Implementation of Thread Class Library Based On Embedded Java Virtual Machine)

  • 정명조;차태성;조희남;백대현;이철훈
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2002년도 봄 학술발표논문집 Vol.29 No.1 (B)
    • /
    • pp.358-360
    • /
    • 2002
  • 자바 기술의 특성은 자바가상머신(Java Virtual Machine 이하 JVM)이 탑재되어 있다면 어떤 환경에서라도 동일하게 수행되는 플랫폼 독립성과 온라인 서비스 상에서 신뢰성이 없는 정보로부터 사용자를 보호해 주는 강력한 보안성, 객체 직렬화와 원격 메소드 호출을 통한 네트워크 mobility 로 요약할 수 있다. 이 특성 중에 플랫폼 독립성은 자바 기술의 가장 큰 장점이라 할 수 있다. 그러나 플랫폼 독립성이 보장되기 위한 전제 조건이 있는데 JVM을 어느한 플랫폼에 탑재하기 위해 플랫폼에 의존적인 부분(입출력, 쓰레드, 그랙픽등)을 JVM 계층과 클래스 라이브러리 계층에서 구현해야 한다는 것이다. 이런 점은 자바 기술의 본 소유회사인 SUN 사에서 제공하는 specification 에서도 제대로 다루어지지 않아서 실제로 JVM 개발자나 클래스 라이브러리 개발자에게 아주 힘든 작업을 요한다. 본 논문에서는 플랫폼에 의존적인 부분 중 쓰레드를 지원하기 위한 클래스 라이브러리를 구현하고자 한다.

  • PDF

임베디드 자바가상머신을 위한 가비지 콜렉션 설계 및 구현 (Design and Implementation of Garbage Collection Based On Embedded Java Virtual Machine)

  • 백대현;박희상;양희권;이철훈
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2002년도 가을 학술발표논문집 Vol.29 No.2 (1)
    • /
    • pp.406-408
    • /
    • 2002
  • 자바의 가장 중요한 특성 중 하나는 플랫폼 독립성이다. 즉, 자바가상머신(Java Virtual Machine: JVM)이 탑재된 모든 플랫폼에서 운영체제의 종류와 상관없이 Java로 작성된 프로그램을 수행시킬 수 있다는 것이다. 이를 위해서는 각각의 플랫폼에 맞는 JVM이 적재되어야 한다. 본 논문에서 구현하게 될 가비지 콜렉션은 JVM의 성능을 좌우하는 중요한 요소이다. 가비지 콜렉션을 구현할 때 이용되는 알고리즘에는 여러 가지가 있다. 본 논문은 stop-copy와 마크-회수 알고리즘에 대해서 설명하고, 마크-회수 알고리즘을 개선한 마크-회수 압축 알고리즘을 이용한 가비지 콜렉션의 설계 및 구현한 내용을 기술하고 있다.

  • PDF

자바 바이트코드의 .NET MSIL 중간언어 번역기 (Java Bytecode-to-.NET MSIL IL Translator)

  • 정지훈;박진기;이양선
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2003년도 추계학술발표논문집 (중)
    • /
    • pp.663-666
    • /
    • 2003
  • 자바는 썬 마이크로시스템즈사의 제임스 고슬링(James Gosling)에 의해 고안된 언어로 운영체제 및 하드웨어 플랫폼에 독립적인 차세대 언어로 최근에 가장 널리 사용하는 범용 프로그래밍 언어 중 하나이다. 자바 프로그램은 컴파일러에 의해 각 플랫폼에 독립적인 중간 코드 형태의 바이트코드로 변환된 클래스 파일로 생성되면 JVM(Java Virtual Machine)에 의해 실행된다. 마이크로소프트사의 .NET 플랫폼과 C# 언어는 프로그래머들의 요구를 충족시키고 썬사의 JVM 환경과 자바 언어에 대응하기 위해서 개발된 플랫폼과 언어이다. C#과 같은 .NET 언어는 컴파일러에 의해 MSIL(MicroSoft Intermediate Language) 코드로 번역되며 번역된 MSIL 코드는 .NET 플랫폼 환경에서 런타임 엔진인 CLR(Common Language Runtime)에 의해 실행이 된다. 자바로 작성된 프로그램은 JVM 플랫폼에서는 실행이 되지만 .NET 플랫폼에서 실행이 되지 않고, 반대로 C#과 같은 .NET 언어로 작성된 프로그램은 .NET 플랫폼에서는 실행이 되지만 JVM 플랫폼에서 실행이 되지 않는다. 이런 이유로 본 논문에서는 자바소스를 컴파일하여 생성된 클래스 파일에서 Oolong 코드를 생성하고 생성된 Oolong 코드를 .NET의 MSIL 코드로 변환하여 자바로 구현된 프로그램이 .NET 환경에서 실행되도록 하는 Bytecode-to-MSIL 번역기 시스템을 구현하였다. 따라서, 자바 프로그래머는 JVM이나 .NET 플랫폼 환경에 관계없이 프로그램을 작성하여 실행시킬 수 있다. 번역기 시스템의 구현을 정형화하기 위해 Oolong 코드의 명령어들을 문법으로 작성하였으며, PGS를 통해 생성된 어휘 정보를 가지고 스캐너를 구성하였으며, 파싱테이블을 가지고 파서를 설계하였다. 파서의 출력으로 AST가 생성되면 번역기는 AST를 탐색하면서 의미적으로 동등한 MSIL 코드를 생성하도록 시스템을 컴파일러 기법을 이용하여 모듈별로 구성하였다.

  • PDF

J2ME CDC 규격의 임베디드 자바플랫폼 개발 (Development of the Embedded Java Platform supporting J2ME CDC specification)

  • 원희선;김영호;김선자
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2004년도 가을 학술발표논문집 Vol.31 No.2 (3)
    • /
    • pp.103-105
    • /
    • 2004
  • 임베디드 자바플랫폼을 정의하는 J2ME는 컨피규레이션에 따라 크게 CLDC와 CDC로 구분된다. CLDC 자바 플랫폼은 저사양 휴대 단말 등에 탑재되어 널리 상용화되고 있으며, CLDC와 비교하여 CDC 자바 플랫폼은 자바2와 호환 가능한 완전한 JVM이 포함되고 고기능의 폭넓은 자바 API의 지원이 가능하므로 홈서버, 디지털 TV, 텔레매틱스 분야 및 고사양 모바일 단말 등에서 제공될 신규 서비스를 위한 자바 플랫폼으로 지목되고 있다. 본 논문에서는 클린룸으로 구현한 JVM과 GNU 프로젝트인 Classpath를 기반으로 구현한 PP 규격의 클래스 라이브러리를 통합한 CDC 자바 플랫폼 개발에 대해 기술한다.

  • PDF

.NET 언어를 위한 중간 언어 번역기 (An Intermediate Language Translator for .NET Languages)

  • 최성규;박진기;이양선
    • 한국멀티미디어학회:학술대회논문집
    • /
    • 한국멀티미디어학회 2003년도 추계학술발표대회(하)
    • /
    • pp.533-536
    • /
    • 2003
  • 자바는 썬 마이크로시스템즈사가 개발한 언어로서 현재 가장 널리 사용되는 프로그래밍 언어 중 하나이며, 컴파일러에 의해 플랫폼에 독립적인 바이트코드를 바이너리 형태로 가지고 있는 클래스 파일을 생성하면 JVM에 의해 어떠한 하드웨어나 운영체제에 상관없이 수행이 가능한 플랫폼 독립적인 언어이다. 마이크로소프트사는 .NET 플랫폼을 개발하면서 자바 언어에 대응하기 위해 C# 프로그래밍 언어를 만들었다. C#은 C/C+.의 강력함과 자바나 비주얼 베이직의 높은 생산성을 매우 효과적으로 결합한 프로그래밍 언어이다. C#은 컴파일 과정을 거치면 자바의 바이트코드와 같은 중간 언어인 MSIL코드를 갖는 파일을 출력하게 되는데, C# 이외에도 모든 .NET 언어들은 컴파일과정을 거치면서 MSIL 코드를 얻기 때문에 여러 .NET 언어들을 이용해서 하나의 응용 프로그램을 만들 수 있다. 본 논문에서는 임베디드 시스템에서의 적용을 위해 C#을 컴파일 하여 나오는 중간 언어 형태인 MSIL 코드를 자바의 중간 언어의 한 종류인 Oolong 코드로 변환해 줌으로서 C#으로 구현된 프로그램이 자바 플렛폼에서 JVM에 의해 실행되도록 하는 중간 언어 번역기를 구현하였다.

  • PDF

JVM 기반 스마트폰의 실시간성 지원 구조 (Implementation of Real-time Support in JVM-based Smartphone System)

  • 우영주;조정욱;서의성
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2011년도 한국컴퓨터종합학술대회논문집 Vol.38 No.1(A)
    • /
    • pp.506-509
    • /
    • 2011
  • Android는 스마트폰 시스템에서 사용되는 소프트웨어 플랫폼으로 JVM(Java Virtual Machine)을 기반으로 한다. JVM은 실시간성 지원을 고려하지 않은 기술이며 이를 기반으로 한 Android 또한 실시간성을 지원하기 위한 어떠한 방법도 가지고 있지 않다. 스마트폰 시스템을 통해 QoS를 보장하면서 멀티미디어 서비스를 제공하기 위해서는 JVM 기반의 시스템을 위한 실시간성 향상 기술이 필요하다. 본 연구에서는 기존의 안드로이드 시스템에 리눅스에서 제공하는 실시간 보장기능을 적용할 수 있도록 지원하는 크로스 레이어 구조를 제안한다. 이 구조를 통해 우리는 리눅스 커널에 존재하는 실시간 스케줄러를 사용하여 태스크가 실시간으로 실행될 수 있도록 지원한다. 또한 다양한 목적을 가진 어플리케이션이 공존하는 스마트폰 시스템에서 실시간성을 요구하는 어플리케이션에 대해 차별적으로 실시간성을 보장할 수 있다. 소프트 리얼타임 특성을 가지는 멀티미디어 태스크를 실시간 태스크로 실행하고 실제 스마트폰에서 실행시켰을 때 시스템에 높은 부하가 걸릴 때에도 합리적인 실시간 보장성을 얻을 수 있다. 음악을 재생한 실험에서는 1200개의 프로세스가 백그라운드 태스크로 실행되는 상황에서도 끊김을 느낄 수 없을 정도로 QoS를 보장성이 높은것을 확인 하였다. 본 연구에서 제안하는 실시간성 지원을 위한 크로스 레이어를 통해 스마트폰은 낮은 비용으로 기존의 어플리케이션을 변경하지 않으면서 실시간 특성을 지원할 수 있다.

JIT Code Generator 상의 스택할당 정책 적용에 관한 연구 (A study of the stack allocation policy on JIT Code Generator)

  • 김효남
    • 한국컴퓨터정보학회논문지
    • /
    • 제6권4호
    • /
    • pp.100-103
    • /
    • 2001
  • 자바프로그램의 실행속도를 빠르게 하는데 있어서 가장 좋은 방법은 빠른 자바가상머신(JVM : Java Virtual Machine)을 사용하는 것이다. 자바가상머신의 성능은 구현 차이에 따라 성능차이가 많이 난다. 자바가상머신을 구현하는데 있어서 가장 중요한 성능 향상의 기술은 JIT(Just-in-Time) 코드 생성기(Code Generator)이다. JIT 코드 생성기는 자바 바이트 코드를 플랫폼에 맞는 native machine code로 변환해 준다. 이 native code들은 자바가상머신에서 각 바이트 코드를 분석하는데 걸리는 시간을 단축할 수 있기 때문에 기존의 방식보다 빠르게 동작한다. 그러나 JIT 코드 생성기는 많은 레지스터를 사용하기 때문에 스택과 레지스터간의 traffic이 가중되는 문제가 있다. 그러므로 본 논문에서는 자바가상머신의 성능 향상을 위한 방안으로 효율적인 stack allocation 정책을 JIT 코드 생성기에 적용하여 레지스터와의 traffic을 감소시킬 수 있는 방안을 제시하였다.

  • PDF

내장형 자바 환경에서 Generational GC동작 특성 (Characteristics of Generational GC in an Embedded Java Environment)

  • 이종호;이인환
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2003년도 가을 학술발표논문집 Vol.30 No.2 (1)
    • /
    • pp.250-252
    • /
    • 2003
  • 현재 무선단말기를 비롯한 많은 내장형 기기에서 자바 플랫폼을 채택하고 있다. 내장형 기기는 제공되는 메모리 용량의 제약으로 인하여 J2ME 플랫폼을 주로 사용하고 있다. J2ME 플랫폼은 CDC와 CLDC 컨피큐레이션으로 나뉘며. CDC는 JAVA 어플리케이션의 수행에 있어서 JVM보다 적은 동적 수행 메모리를 요구하는 CVM을 채택하고 있다. CDC는 CLDC에 비하여 메모리의 제약이 상대적으로 적은 셋탑박스 등과 같은 내장형 기기에서 주로 사용된다. 본 논문에서는 J2ME 플랫폼의 VM중에 하나인 CVM상에서 어플리케이션 수행에 따른 Generational GC의 특성에 대하여 알아본다. 특히 오브젝트의 life time, 가비지 컬렉션 주기 pause time 및 young generation의 크기에 따른 동작 특성을 중점적으로 고찰한다.

  • PDF