• 제목/요약/키워드: 컴파일러 개발

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

자바 Ahead-of-Time 컴파일러에서의 효율적인 예외처리 방법 (Efficient Exception Handling in Java Ahead-of-Time Compilation)

  • 정동헌;박종국;이재목;배성환;문수묵
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2005년도 가을 학술발표논문집 Vol.32 No.2 (1)
    • /
    • pp.823-825
    • /
    • 2005
  • 자바는 이식성과 보안의 장점으로 인하여 내장형 시스템에서 널리 사용되고 있으나 인터프리터를 통한 바이트코드의 수행으로 인하여 성능이 저하되는 문제를 포함하고 있다. 이를 해결하기 위한 한 방법으로 수행시간 전에 바이트코드를 기계어 코드로 미리 번역하여 수행시간에는 기계어 코드가 수행되도록 하는 Ahead-of-Time 컴파일러 (AOTC)가 사용되고 있다. 특히 바이트코드를 C코드로 변환한 다음 기존의 컴파일러를 이용하여 기계어 코드를 생성하는 방식을 많이 택하고 있다. 본 논문에서는 AOTC에서 효율적인 예외처리 (exception handling) 기법을 제안한다. 기존의 AOTC 에서는 예외를 발생하는 메쏘드와 예외를 처리하는 메쏘드가 다른 경우 setjmp/longjmp를 이용하여 예외처리를 수행하고 있으나 우리는 메쏘드 호출 후의 예외 검사를 통해 예외처리를 수행한다. 우리는 제안된 예외처리 방법은 Sun의 CDC 가상 머신을 위해 개발된 AOTC 에 구현되었으며 SPECjvm98 벤치마크에서의 실험을 통해 setjmp/longjmp 방식에 비해 $1.3\%$에서 $154\%$까지의 성능향상이 가능함이 확인되었다.

  • PDF

드라이버 고장 분리를 위한 바이너리 수준 동적 컴파일러 (Binary-level Dynamic Compiler for Driver Fault Isolation)

  • 이동우;김정한;엄영익
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2011년도 한국컴퓨터종합학술대회논문집 Vol.38 No.1(B)
    • /
    • pp.401-404
    • /
    • 2011
  • 운영체제와 같은 대규모 프로그램은 확장을 용이하게 하기 위해 장치 드라이버를 모듈 구조를 통해 동작시킨다. 그러나 이러한 드라이버 모듈은 커널과 분리되어 개발되기 때문에 상대적인 취약성을 가지고 있다. 이러한 취약성으로 인해 발생한 고장은 드라이버뿐만 아니라 커널 전체에 오류를 야기해 시스템의 안정성을 저하시키는 요인이 된다. 이러한 문제를 해결하기 위해 안전하지 않은 드라이버를 커널로부터 격리하고자 하는 논의가 진행되었고, 이후 많은 연구를 통해 여러 가지 접근 방식을 통한 해결방법이 제안되었다. 그러나 기존의 방법은 드라이버 소스코드의 수정이 필요하거나 드라이버 요청에 대한 응답속도가 매우 느린 현실적인 제약이 있었다. 본 논문에서는 기존방법의 한계를 극복하는 동적 컴파일러를 이용한 고장 분리 기법을 제안한다. 본 제안 기법은 기존 드라이버를 그대로 사용가능하며 기존 기법의 분리 정책을 모두 적용할 수 있다. 리눅스 커널에 본 제안기법을 적용하여 동적 컴파일러의 성능을 측정하고 본 제안 기법의 특성을 기존 기법과 비교함으로써 본 제안기법이 매우 적은 부하만으로 장치 드라이버의 고장 분리가 가능함을 확인하였다.

프로그램 선언부를 위한 심벌테이블에서 C 프로그램 역번역기의 설계 및 구현 (Design and Implementation of C Program Detranslator from Symbol Table for Program Declaration Part)

  • 권혁주;김영근;이양선;오세만
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2005년도 춘계학술발표대회
    • /
    • pp.553-556
    • /
    • 2005
  • ANSI C 언어는 UNIX 시스템에서 뿐만 아니라 DOS 환경에서 수행되는 C 컴파일러와 각종 지원 도구가 개발되어 보급됨으로써 오늘날 널리 사용되는 범용 프로그래밍 언어 중 하나이다. EVM(Embedded Virtual Machine)은 ANSI C 언어와 SUN사의 Java 언어 등을 모두 수용할 수 있는 임베디드 시스템을 위한 가상 기계이며, SIL(Standard Intermediate Language)은 EVM에서 실행되는 중간언어로 다양한 프로그래밍 언어를 수용하기 위해서 객체지향 언어와 순차적 언어를 모두 수용하기 위한 연산 코드 집합을 갖고 있다. EVM을 위한 ANSI C 컴파일러는 ANSI C 언어를 받아 들여 EVM의 중간 언어인 SIL 코드를 출력한다. ANSI C 컴파일러에서 어휘 분석과 구문 분석 과정에서 인식되는 명칭에 대해서 그 속성들을 수집하고 이용한다. 이 속성들은 명칭이 명시적으로 혹은 묵시적으로 정의되는 곳에서 심벌 테이블에 수집된다. 본 논문에서는 수집된 정보가 올바르게 되었는지 확인하기 위하여 심벌 테이블에 있는 정보를 다시 ANSI C 언어로 복원시키는 역변역기(detranslator)를 구현하였다.

  • PDF

론웍스 네트워크의 자가 진단을 지원하는 흠 제어 네트워크 구성 관리 서버의 구조

  • 이창은;박준희;손영성;문경덕
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2003년도 봄 학술발표논문집 Vol.30 No.1 (C)
    • /
    • pp.142-144
    • /
    • 2003
  • 본 논문에서는 홈 자동화 네트워크으로 가장 각광을 받고있는 론웍스(Lonworks) 시스템을 구성 관리하는 홈 서버 플랫폼의 새로운 구조를 제안한다. Echelon사에서 제안하는 Lonworks 시스템의 구성관리 도구로서의 LonMaker는 자체적으로 개발한 LNS (Lonworks Network Service)라고 하는 비 표준화된 구성 관리 기술을 통해서 네트워크를 관리하도록 지원하며, 상기한 LNS를 인프라로 활용하는 도구로서, LNS는 빌딩 혹은 가정 내에 Lonworks 네트워크로 연결되어 있는 디바이스들에 대한 정보를 DB화하여 구축된 자료를 기반으로 하여 디바이스들간에 연동이 가능하도록 지원한다. 그러나 고가이며, 구성 관리를 한 디바이스 개수당 가격을 별도로 지불해야 하는 로열티가 있고, 이 역시도 하드웨어 제약사양인 뉴런칩(Neuron Chip)을 사용해야 한다는 점에서 개발자로 하여금 많은 부담을 주고 있다. 이에 본 논문에서는 홈 자동화 네트워크 개발 시에 노드 구조를 각 응용목적에 맞도록 보다 유연성 있게 구현할 수 있도록 하는 네트워크 구성 관리 기능을 갖춘 흠 서버 플랫폼을 제안한다 제안된 흠 서버 플랫폼을 통해 제어 네트워크의 다양화와 고성능 처리의 장점을 얻을 수 있었고, 기존의 고가의 론웍스 LonMaker 소프트웨어를 사용하지 않고도 단지 리눅스 상의 무료 컴파일러인 gcc 컴파일러를 통해 홈 서버 노드를 구성할 수 있으므로 시스템 개발에 대한 비용을 많이 줄일 수 있으며, 리눅스 OS를 사용하는 홈 자동화 홈 서버 시스템으로의 파급효과가 클 것이다.

  • PDF

고성능 로직 시뮬레이터(HSIM) 구현 (HSIM: Implementation of the Highly Efficient Logic SIMulator)

  • 박장현;이기준;김보관
    • 한국정보처리학회논문지
    • /
    • 제2권4호
    • /
    • pp.603-610
    • /
    • 1995
  • 본 논문에서는 함수 기능에서 로직 게이트 기능까지 시뮬레이션 가능한 고성능의 로직 시뮬레이터(HSIM) 개발에 대해서 논한다. 개발된 로직 시뮬레이터는 입력부, 시 뮬레이터 본체, 출력부로 구성되어 있으며, 입력부에는 네트 리스트 컴파일러, 부품 정보 컴파일러가 포함된다. 시뮬레이터 본체에는 시뮬레이션 속도를 높이기 위한 각종 기술과 시뮬레이터의 중심 부분인 시뮬레이션 엔진 등이 소속되어 있다. 출력부에는 시뮬레이션 결과를 분석하는 파형 분석기가 있다. 개발된 시뮬레이터 본체의 주요 특 징은 점진적 로더를 사용하여 컴파일된 부품 기능들을 시뮬레이션 엔진에서 직접 로드 하여 시뮬레이션을 수행한다. 이렇게 한 결과 기존의 유릿 딜레어 event-driven interpretive 시뮬레이터와 비교했을 때 55% 이상 속도가 빠른 효과적인 성능 향상을 달성했다.

  • PDF

Just-In-Time 컴파일러를 이용한 파이썬 기반 지구동역학 코드 가속화 연구 (Boosting the Performance of Python-based Geodynamic Code using the Just-In-Time Compiler)

  • 박상진;안수정;소병달
    • 지구물리와물리탐사
    • /
    • 제24권2호
    • /
    • pp.35-44
    • /
    • 2021
  • 파이썬은 다른 정적 언어(예, C, C++, FORTRAN 등)에 비해 실행 속도가 느리기 때문에 대규모 반복이 필요한 지구동역학 코드를 작성하는데 적합하지 않은 것으로 인식되어 왔다. 그러나 파이썬의 계산 속도를 향상시키기 위해 Just-In-Time (JIT) 컴파일 등과 같은 많은 고속화 수단이 개발되었다. 우리는 파이썬을 기반으로 JIT 컴파일러에 최적화된 맨틀 유동 지구동역학 코드를 개발했다. 코드는 지구동역학 분야에서 널리 사용되는 PIC (Particle-In-Cell) 방법과 유한요소법을 결합하여 맨틀 대류를 수치 모사하며, 코드의 신뢰성을 정량적으로 평가하기 위해 잘 알려진 2차원 맨틀 대류 문제를 벤치마킹했다. 수치 모사 결과, 제곱근 평균 제곱 속도와 넛셀 수가 이전 연구와 거의 일치함을 확인했다. JIT 컴파일러를 적용한 코드는 적용하지 않았을 경우와 대비해 계산 속도가 PIC 방법에서 최대 258배, 전체 행렬 조립 과정에서 최대 30배 향상했다. 따라서, 이번 연구는 파이썬의 계산 성능이 JIT 등의 가속기를 이용하여 충분히 향상되며, 많은 지구 동역학 문제를 해결하는데 활용될 수 있음을 제시하였다.

eFlowC : 네트워크 관리를 위한 패킷 처리 언어 (eFlowC: A Packet Processing Language for Network Management)

  • 고방원;유재우
    • 한국컴퓨터정보학회논문지
    • /
    • 제19권1호
    • /
    • pp.65-76
    • /
    • 2014
  • 본 연구는 패킷 처리를 위한 고급 프로그래밍언어 eFlow를 제안하고 이를 지원하는 개발환경을 구현한다. 또한 개발자들이 가장 익숙하고 배우기 쉬운 C 언어를 기반으로 하여 C 언어의 문법과 의미를 유지하면서, 패킷 처리에 불필요한 기능들을 제거하고 패킷 처리에 필요한 패킷 데이터, 데이터베이스 및 스트링 바이트 정보 검사, 이벤트 처리 등을 수행하기 위한 고급 프로그래밍 언어를 설계하고, 기존의 언어나 컴파일러 기술을 적용하면서 패킷 처리를 위해 필요한 언어의 기능과 컴파일 과정을 설명한다. X11 등과 같은 DPIC 장비에 활용하기 위해 이식성과 확장성을 고려한 가상 기계인 eFVM을 설계하고, 이를 위한 컴파일러와 시뮬레이터 및 디버거와 같은 개발 환경을 갖추어 실제 많이 사용되고 있는 다양한 응용 프로그램을 실험하여 제안한 언어의 효용성을 평가하고 있다. 패킷 처리를 위해 갖추어야 할 고급 언어의 기능과 형식 및 그 의미를 정의한 연구가 거의 없이 이루어진 실험에 의의가 있다.

컴파일러 기술을 이용한 원전용 제어 프로그램의 시뮬레이터 설계 (Design of A PLC Program Simulator for Nuclear Plant Using Compiler Technology)

  • 이완복;노창현
    • 한국시뮬레이션학회논문지
    • /
    • 제15권1호
    • /
    • pp.11-17
    • /
    • 2006
  • 본 논문에서는 원전 계측제어시스템 구축을 위해 개발된 원전용 PLC 시뮬레이터의 설계 사항에 관해 소개한다. 원전용 계측제어시스템은 원전이라는 특수한 환경과 제약으로 말미암아, 일반적인 시뮬레이터 개발보다 엄격한 요건을 만족해야 한다. 이러한 요건으로는 다양한 테스팅을 통하여 제어 프로그램의 안정성을 보장할 수 있어야 하며, 다수의 계측제어 프로그램들을 고속으로 동시에 실행할 수 있어야 한다. 본 논문에서는 이러한 문제점들을 극복하고자 PLC 제어 프로그램의 컴파일러를 제작하여 C 코드 변환을 하게 된다. 제안한 방법에서는 검증용 상용 도구를 변환된 코드에 적용해 제어 프로그램의 안정성 평가를 할 수 있으며, Compiled-Code 시뮬레이션 기법을 이용하여 고속으로 실행 가능한 시뮬레이터를 자동으로 생성할 수 있다는 장점이 있다.

  • PDF

전력 소비 최적화를 위한 전역 최적화 기술 (Global Optimization Techniques for Power Consumption Optimization)

  • 김성진;윤종희;고광만
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2012년도 한국컴퓨터종합학술대회논문집 Vol.39 No.1(A)
    • /
    • pp.282-284
    • /
    • 2012
  • 임베디드 분야에서 전력 에너지 소비 문제는 시스템을 설계하는데 있어서 매우 중요한 이슈가 되고 있다. 특히 휴대성이 강조되는 모바일 장치의 제한된 전력을 효율적으로 이용하기 위해서 하드웨어적인 관리 못지않게 소프트웨어적인 관리 기술의 필요성이 강조되고 있으며 전력 소비 관리를 위한 최적화된 컴파일러 기법이 연구되고 있다. 이 논문에서는 모바일 장치에서 구동되는 어플리케이션의 전력 에너지 소비를 줄이기 위한 전역 코드 스케줄링 기법을 제시한다. 이를 위해, 재목적 소프트웨어 개발 도구인 EXPRESSION의 컴파일러인 EXPRESS의 코드 최적화 기법을 이용하여 전력 에너지 효율적인 전역 코드 스케줄링 모델을 설계하고 성능평가 방법을 제시한다.

Bytecode로부터 목적 기계 코드 생성 규칙 기술에 관한 연구 (A Study on the Target Code Generation Rule Description from Bytecode)

  • 고광만
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2001년도 춘계학술발표논문집 (하)
    • /
    • pp.1033-1036
    • /
    • 2001
  • 컴파일러 후단부 개발시 중간 코드로부터 목적기계 코드를 생성하기 위해서는 각각의 중간 코드 명령어를 목적기계 코드로 치환하는 방법과 다양한 중간 코드 패턴에 대한 목적기계 코드 생성 규칙을 기술하는 방법으로 구분된다. 특히, 컴파일러 후단부 전체를 재구성하지 않고 중간 코드로부터 목적기계 코드를 생성하는 정형화된 규칙을 이용하면 다양한 목적기계 코드를 효율적으로 생성할 수 있다. 본 논문은 Bytecode로부터 정형화된 코드 생성 규칙을 이용하여 Pentium기계에 대한 코드 생성이 가능하도록 코드 생성 규칙 기술 모델을 제시하며 실질적으로 목적기계 코드 생성시에 참조 가능한 정보를 생성하는 코드-생성기 생성기를 연구한다 본 연구를 통해서 Bytecode로부더 다양한 목적기계 코드를 생성할 수 있는 정형화된 코드 생성 규칙 기술 방법을 얻을 수 있다.

  • PDF