• 제목/요약/키워드: debugging

검색결과 341건 처리시간 0.029초

경량 동적 코드 변환 기법을 이용한 동적 인스트루멘테이션 기법 설계 및 구현 (Design and Implementation of a Dynamic Instrumentation Framework based on Light-weight Dynamic Binary Translation)

  • 김지홍;이동우;김인혁;엄영익
    • 정보과학회 논문지
    • /
    • 제41권11호
    • /
    • pp.892-899
    • /
    • 2014
  • 동적 인스트루멘테이션 기법은 동적 코드 변환 기법을 사용하여 프로그램의 수행 흐름을 흐트러뜨리지 않으면서 분석 코드를 삽입하는 구현 기법으로 사용되고 있다. 기존의 동적 코드 변환 기법은 머신 코드 스트림을 중간 코드 형태로 파싱하고, 이를 일반적인 컴파일러 기법에 적용함으로써 코드를 변환한다. 이러한 방식의 코드 변환 과정에서 수반되는 높은 변환 오버헤드는 응답성이 높은 사용자 프로그램에 적용을 어렵게 한다. 본 논문에서는 변환 과정의 경량화를 통해 변환 오버헤드를 줄임으로써, 높은 동적 코드 변환 성능을 가지는 경량 동적 코드 변환 기법을 제안하고, 이를 기반으로 하는 동적 인스트루멘테이션 프레임워크를 제안한다. 제안 기법은 테이블 기반의 새로운 동적 주소 변환 기법으로 코드를 변환하고, 더불어 자주 실행되는 라이브러리 함수에 대해 변환 과정에 대해서는 주소 변환만을 함으로써 변환 오버헤드를 줄이는 변환 우회 기법을 이용한다. 기존 동적 코드 변환 기법과의 비교를 통해 2%~65%의 성능 향상을 확인하였다.

광역조건식에 의한 공유자원 접근오류 검색 (Detecting Shared Resource Usage Errors with Global Predicates)

  • 이은정;윤기중
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제26권12호
    • /
    • pp.1445-1454
    • /
    • 1999
  • 광역 조건식의 계산은 분산 프로그램의 수행을 테스트 또는 디버깅하기 위한 방법으로 활 발히 연구되고 있다. 이제까지 주로 연구된 광역조건식은 AND 또는 OR 광역 조건식 등이 있는데, 특히 AND 광역 조건식은 분산 프로그램의 동시적 조건을 표현하는데 유용하여 효율적인 검색 알고리즘이 활발히 연구되었다. 분산프로그램의 수행오류로서 공유자원의 배타적 접근조건은 가장 중요하고 일반적인 경우라 할 수 있다. 본 논문에서는 XOR 연산을 이용하여 공유자원 프로그램의 오류 검색을 위한 광역조건식을 기술하는 방식에 대해 제안하였다. XOR 연산을 이용한 광역 조건식은 연산자 중 많아야 하나의 지역조건식만이 참일 때 전체 조건식이 참이 되는데 이러한 성질은 여러 프로세스 중 한번에 하나만이 공유자원에 배타적으로 접근할 수 있는 조건을 표현하는데 매우 유용하다. n 개의 프로세스로 이루어진 분산프로그램에서 한개의 공유자원에 대한 배타적 접근 조건을 기술하기 위해서 AND로 연결된 광역조건식을 이용하면 O(n2)개의 광역 조건식이 필요한데 반해 XOR 연산으로는 하나의 조건식으로 나타낼 수 있다. 더구나 XOR 연산을 이용한 광역조건식은 최근 소개된 겹치는 구간의 개념을 활용하면 매우 간단하게 검색할 수 있다. 본 논문에서는 겹치는 구간을 찾는 검색 알고리즘을 소개하고 증명하였다.Abstract Detecting global predicates is an useful tool for debugging and testing a distributed program. Past research has considered several restricted forms of predicates, including conjunctive or disjunctive form of predicates. Especially, conjunctive predicates have attracted main attention not only because they are useful to describe simultaneous conditions in a distributed program, but also because it is possible to find algorithms to evaluate them within reasonable time bound. Detecting errors in accessing shared resources are the most popular and important constraints of distributed programs. In this paper, we introduced an exclusive OR predicates as a model of global predicates to describe shared resource conditions in distributed programs. An exclusive OR predicate holds only when at most one operand is true, which is useful to describe mutual exclusion conditions of distributed programs where only one process should be allowed to access the shared resource at a time. One exclusive OR predicate is enough to describe mutual exclusion condition of n processes with one shared resource, while it takes O(n2) conjunctive predicates. Moreover, exclusive OR condition is easily detectable using the concept of overlapping intervals introduced by Venkatesan and Dathan. An off-line algorithm for evaluating exclusive OR global predicates is presented with a correctness proof.

A Design of Software Receiver for GNSS Signal Processing

  • 최승현;김재현;신천식;이상욱;김재훈
    • 한국위성정보통신학회논문지
    • /
    • 제2권2호
    • /
    • pp.48-52
    • /
    • 2007
  • 최근들어 하드웨어방식의 GPS 수신기를 소프트웨어 방식의 Software-Defined Radio(SDR)기법으로 구성하는 연구가 활발히 진행되고 있다. 이러한 소프트웨어 기반의 GPS 수신기는 기존의 하드웨어 방식으로 처리하는 신호획득부와 추적부를 마이크로 프로세서를 통해 소프트웨어 기법으로 처리하는 것을 말한다. 본 논문에서는 이러한 소프트웨어 기법을 이용하여 GPS 수신기를 설계하며 PC 기반에서 시뮬레이션을 통해 신호획득부, 추적부, 메시지 복조부를 설계하고 검증한다. 또한 의사거리 오차를 도출하기 위하여 신호 획득부와 추적부에 대해 효율적인 알고리즘을 제안하고 최종적으로L1 주파수대역의 여러 위성을 통해 수신된 채널간의 상대적 지연을 통해 의사거리를 계산한다. 본 논문에서 제시된 수신기기법은 향후 개발목표인 GPS/Galileo 복합시스템의 개발요소에 포함될 것이며 규격 및 성능을 검증할 방법을 제시할 뿐만 아니라 다양한 디버깅 환경을 제공함으로써 개발단계에 매우 유용하게 적용될 것이다.

  • PDF

Core-A를 위한 효율적인 On-Chip Debugger 설계 및 검증 (Design and Verification of Efficient On-Chip Debugger for Core-A)

  • 허경철;박형배;정승표;박주성
    • 대한전자공학회논문지SD
    • /
    • 제47권4호
    • /
    • pp.50-61
    • /
    • 2010
  • 최근 SoC 가 주목받으면서 검증이 더욱 중요해졌다. SoC 설계 추세는 구조 및 RTL(Register Transistor Logic) 레벨의 HW(Hardware) 설계 및 내장형 프로세서에서 수행 될 SW(Software) 개발을 동시에 진행하는 HW/SW 통합 설계이다. 테크놀로지가 DSM(Deep-Submicron)으로 가면서 SoC 내부 상태를 확인하는 것은 매우 어려운 일이 되었다. 이와 같은 이유 때문에 SoC 디버거는 매우 어려운 분야이며 디버깅에 매우 많은 시간이 소모된다. 즉 신뢰성이 있는 디버거 개발이 필요하다. 본 논문에서는 JTAG을 기반으로 하는 하드웨어 디버거 OCD를 개발하였다. OCD는 Core-A를 대상으로 하여 개발 된 것이다. 개발된 OCD는 Core-A에 내장하여 SW 디버거와 연동하여 검증까지 마치고 디버거로서의 기능 및 신뢰성을 확인하였다. Core-A에 내장한 OCD는 약 14.7%의 오버헤드를 보이며 OCD의 2% gate count를 차지하는 DCU를 수정함으로써 다른 프로세서에도 쉽게 적용할 수 있는 디버거 유닛으로 사용할 수 있다.

FPGA를 이용한 시퀀스 제어용 32비트 마이크로프로세서 설계 (The Design of 32 Bit Microprocessor for Sequence Control Using FPGA)

  • 양오
    • 대한전자공학회논문지SD
    • /
    • 제40권6호
    • /
    • pp.431-441
    • /
    • 2003
  • 본 논문은 FPGA를 이용하여 시퀀스 제어용 32비트 마이크로프로세서를 설계하였다. 이를 위해 VHDL을 이용하여 톱-다운 방식으로 마이크로프로세서를 설계하였으며, 고속처리의 문제점을 해결하기 위해 프로그램 메모리부와 데이터 메모리부를 분리하여 설계함으로써 인스트럭션을 페치 하는 도중에 시퀀스 명령을 실행할 수 있는 Harvard 구조로 설계하였다. 또한 마이크로프로세서의 명령어들을 시퀀스제어에 적합하도록 RISC형태의 32 비트 명령어로 고정하여 명령어의 디코딩 시간과 데이터 메모리의 인터페이스 시간을 줄였다. 특히 설계된 마이크로프로세서의 실시간 디버깅 기능을 구현하기 위해 싱글 스텝 런, 일정 프로그램 카운터 브레이크, 데이터 메모리와 일치시 정지 기능 등을 구현함으로써 구현된 프로세서의 디버깅을 쉽게 하였다. 또한, 시퀀스제어에 적합한 펄스명령, 스텝 콘트롤 명령, 마스터 콘트롤 명령 등과 같은 비트 조작 명령과, BIN형과 BCD형 산술명령, 배럴 쉬프트명령 등을 구현하였다. 이와 같은 기능들을 FPGA로 구현하기 위하여 자이링스(Xilinx)사의 V600EHQ240(60만 게이트)과 Foundation 4.2i를 사용하여 로직을 합성하였다. Foundation 합성툴 환경에서 시뮬레이션과 실험에서 성공적으로 수행되었다. 본 논문에서 구현된 시퀀스 제어용 마이크로프로세서의 우수성을 보이기 위해 시퀀스제어용 명령어를 많이 가지고 있는 Hitachi사의 마이크로프로세서인 H8S/2148과 성능을 비교하여 본 논문에서 설계된 시퀀스 제어용 프로세서가 우수함을 확인하였다.

ARM용 내장형 소프트웨어의 정적인 수행시간 분석 도구 (Static Timing Analysis Tool for ARM-based Embedded Software)

  • 황요섭;안성용;심재홍;이정아
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제11권1호
    • /
    • pp.15-25
    • /
    • 2005
  • 내장형 시스템에서 응용 프로그램을 구동시킬 때는 일련의 태스크들의 집합을 수행하여야 한다. 이러한 태스크들은 특정 하드웨어로 구현 될 수도 있고, 특정 프로세서에서 구동되는 소프트웨어로 구현될 수도 있다. 내장형 시스템에서 응용 프로그램을 구동시키기 위하여 하드웨어/소프트웨어의 자원 선택 및 작업 분할이 필요하게 되고 이때 하드웨어 및 소프트웨어의 성능 예측이 이용된다. 하드웨어 성능 예측과 달리 소프트웨어 성능 예측은 구동 환경과 밀접한 관계가 있으며, 하드웨어 소프트웨어 통합 설계를 위하여 최적 및 최악의 수행 시간 경계를 예측하는 것은 중요한 문제이다. 수행 시간 경계의 엄격한 예측은 저 비용의 프로세서를 사용할 수 있게 하며, 시스템 비용을 낮추는데 도움을 준다. 본 논문에서는 ARM용 내장형 시스템을 고려하여, loop문의 반복 횟수 경계 값과 프로그램의 추가적인 경로 호출 정보를 이용하여, 수행 시간의 경계를 최대한 실제 값에 접근하도록 예측하는 도구를 개발하였다. 개발된 도구는 현재 i960과 m68k 아키텍처를 지원하는 "Cinderella"라는 시간 분석 도구를 기본 도구로 활용하고 있다. ARM 프로세서를 지원하기 위하여 제어흐름과 디버깅 정보를 추출할 수 있는 ARM ELF 목적 파일 모듈을 추가하고, ARM 명령어 집합을 처리할 수 있는 모듈을 기존 도구에 추가하였다. 여러 가지 벤치마크 프로그램을 대상으로 실시한 실험 결과, 임의의 입력 데이타를 이용하고 수행 횟수를 고려한 ARMulator의 수행 시간이 구현된 도구에서의 정적인 수행 시간 예측 경계 값으로 들어오는 것을 확인할 수 있었다.

내부적 비결정성을 가진 공유 메모리 병렬 프로그램에서 잠재적 경합탐지를 위한 전처리기 (A Preprocessor for Detecting Potential Races in Shared Memory Parallel Programs with Internal Nondeterminism)

  • 김영주;정민섭;전용기
    • 정보처리학회논문지A
    • /
    • 제17A권1호
    • /
    • pp.9-18
    • /
    • 2010
  • OpenMP와 같은 공유 메모리 기반의 병렬 프로그램에서 발생하는 경합은 프로그래머가 의도하지 않은 비결정적인 수행 결과를 초래하므로 반드시 탐지되어야한다. 이러한 경합의 존재를 수행 중에 검증하는 기존의 기법들은 내부적 비결정성이 존재하지 않는 프로그램에 대해서만 가능하다. 하지만 이 조건을 만족하지 못한다면 경합검증을 위해서 각 임계구역마다 적어도 N! 만큼의 프로그램 수행이 필요하다. 여기서 N은 탐지 대상 프로그램이 가진 최대 병렬성을 의미한다. 본 논문에서는 프로그램 슬라이싱을 이용하여 내부적 비결정성을 가진 프로그램에 존재하는 비결정적 접근사건을 정적으로 분석하고, 이 정보를 이용하여 한번의 수행으로 실제 경합뿐만 아니라 잠재적 경합까지 탐지할 수 있는 경합 전처리기를 제안한다. 제안된 도구는 OpenMP 병렬 프로그램에서 발생할 수 있는 비결정적 접근사건들에 대해서 항상 결정적으로 감시할 수 있으므로 임계구역 가진 프로그램 모델에 적용할 수 있는 어떠한 경합탐지 프로토콜을 사용하더라도 경합 검증이 가능하다. 본 도구의 실험적 증명을 위해서 비결정성이 포함된 합성 프로그램, 공인된 벤치마크 프로그램인 OpenMP Microbenchmark, NAS Parallel Benchmark, 그리고 OpenMP 응용 프로그램을 이용하여 제안된 도구의 정확성을 보인다.

프로그램의 오염 정보 추적을 위한 동적 오염 분석의 이론 및 구현 (Theory and Implementation of Dynamic Taint Analysis for Tracing Tainted Data of Programs)

  • 임현일
    • 정보처리학회논문지:컴퓨터 및 통신 시스템
    • /
    • 제2권7호
    • /
    • pp.303-310
    • /
    • 2013
  • 컴퓨팅 환경에서 소프트웨어가 차지하는 역할이 커지면서 소프트웨어 보안은 더욱 중요한 문제가 되고 있다. 동적 오염 분석은 프로그램 실행 중에 신뢰할 수 없는 소스로부터 유래된 오염된 데이터의 이동을 추적하고 관리하는 분석 방법이다. 이 분석 방법은 소프트웨어의 보안 검증 뿐만 아니라 소프트웨어의 동작을 이해하고, 예상하지 못한 오류에 대한 테스팅 및 디버깅 등에서 활용할 수 있다. 기존에 이와 관련한 연구에서는 동적 오염 분석을 이용한 분석 사례를 보여주고 있지만, 동적 오염 분석에서 오염된 정보 전파 과정 및 동작 과정에 대해서 체계적이고 논리적으로 기술하지 못하고 있다. 본 논문에서는 이런 분석 과정을 이론적으로 기술함으로써 오염된 정보의 전파 과정을 어떻게 추적할 수 있는지 논리적으로 보여주고, 이를 응용할 수 있는 이론적 모델을 제시하고 있다. 본 논문에서 기술한 이론적 모델에 대해서 분석기를 구현하고 프로그램에 대한 분석 결과를 통해서 모델의 정확성을 검증한다. 그리고, 프로그램에 나타나는 오염 정보들의 전파 과정을 보이고 결과를 검증한다. 본 이론적 모델은 동적 오염 분석에서 자료 흐름의 분석 과정을 이해하고 이를 활용하는 분석 방법을 설계하거나 구현하는 기반 지식으로 활용될 수 있을 것이다.

LOGO를 이용한 프로젝트 학습에서 나타난 초등 수학영재 학생들의 전략적 사고 (The Strategic Thinking of Mathematically Gifted Elementary Students in LOGO Project Learning)

  • 류희찬;장인옥
    • 대한수학교육학회지:수학교육학연구
    • /
    • 제20권4호
    • /
    • pp.459-476
    • /
    • 2010
  • 본 연구의 목적은 LOGO를 이용한 프로젝트 학습에서 나타난 초등 수학영재 학생들의 전략적 사고 유형을 분석하여 LOGO 학습과 고등 사고 활동과의 연관성을 구체적으로 밝힘으로써 영재교육 프로그램으로서 LOGO 활용에 대한 새로운 방향을 제시하고 LOGO 교수-학습의 효과적인 접근 방안을 모색하는데 있다. LOGO 프로그래밍을 계획하는 과정에서는 기존의 지식과 절차를 활용하는 유추적 사고, 변수를 이용한 일반화, 여러 가지 명령어의 기능을 통합하여 활용하는 통합적 사고, 문제 해결을 위해 기존 명령어를 평가하는 비판적 사고, 현재의 상황을 새로운 관점에서 이해하고 응용하는 발전적 사고, 여러 가지 해결 방법을 구상하는 유연한 사고 등의 전략적 사고가 관찰되었다. 오류 수정 과정에서 나타난 전략은 명령어의 문법적인 지식, 그림과 절차를 대조하는 방법, 절차를 분해하는 분석적 사고, 도형-분석적 추론, 시각적 추론, 경험적 추론 등이 나타났다.

  • PDF

효율적인 자바언어 학습을 위한 인터넷기반 자율학습시스템의 구현 (An Internet-based Self-Learning Educational System for Efficient Learning of Java Language)

  • 김동식;이동엽
    • 공학교육연구
    • /
    • 제8권1호
    • /
    • pp.71-83
    • /
    • 2005
  • 본 논문에서는 자바 언어를 학습하는데 있어 효율성을 증가시키기 위해 인터넷 기반 자율학습시스템이 제안되었다. 제안된 자율학습시스템은 JWP(Java Web Player)라고 불리며 Java Web Start 기술을 활용하여 웹상에서 실행이 가능한 자바 애플리케이션 프로그램이다. 또한 본 논문에서는 컴퓨터 언어를 학습하는데 있어 3가지 중요한 일련의 과정인 개념학습과정, 프로그래밍 실습과정, 그리고 학습 성취도 평가과정을 Java Web Start 기술을 이용하여 JWP에 통합하였다. 제안된 시스템은 학습과정을 교육공학적인 측면에서 멀티미디어 요소를 강화하였기 때문에 학습자가 흥미를 가지고 자발적으로 학습을 할 수 있도록 설계되었다. 더욱이 JWP 에는 효율적인 자바 언어 학습을 위해 학습내용에 대한 설명이 음성으로 출력되며, 이때 이와 관련된 이미지와 텍스트들이 동기화되어 동시에 화면에 표시된다. 더욱이 소스파일의 코딩, 에디팅, 실행 그리고 디버깅 등을 쉽게 할 수 있는 컴파일러가 삽입되어 있어 편리한 자바 언어 실습환경을 제공한다. 마지막으로 각 단원별 돌발퀴즈와 마무리 테스트를 통하여 학습자가 자신의 학습상황을 체크하여 반복학습을 할 수 있도록 유도하였다.