• 제목/요약/키워드: 멀티스레드 소프트웨어

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

자바 메모리 모델을 이용한 멀티 스레드 자바 코드 검증 (Verification for Multithreaded Java Code using Java Memory Model)

  • 이민;권기현
    • 정보처리학회논문지D
    • /
    • 제15D권1호
    • /
    • pp.99-106
    • /
    • 2008
  • 최신의 컴파일러는 실행 속도를 높이기 위해서 최적화 작업을 수행한다. 그러나 최적화 작업 중에 프로그램 구문의 실행 순서가 바뀔 수 있다. 단일 스레드 소프트웨어 에서는 최적화가 실행 결과에 영향을 주지 않지만 멀티 스레드 소프트웨어에서는 최적화로 인해서 기존의 실행 과정을 계산하는 방법으로는 설명할 수 없는 실행 결과가 발생할 수 있다. 이 문제점을 해결하기 위해서 자바 메모리 모델이 제안되었다. 자바 메모리 모델은 구문의 재배치를 고려하여 멀티 스레드 소프트웨어의 가능한 실행 과정을 명세하고 있다. 현재 자바 메모리 모델은 자바의 표준 메모리 모델로 정의되어 있다. 하지만 대부분의 멀티스레드 소프트웨어 검증 도구는 자바 표준 메모리 모델인 자바 메모리 모델 대신에 순차 일관성메모리 모델만을 고려하고 있다. 순차 일관성 메모리모델에서는 구문의 재배치를 고려하지 않는다. 본 논문에서는 자바 메모리 모델을 이용한 소프트웨어 모델 체킹 기법을 설명한다. 이를 이용하여 기존 소프트웨어 검증 도구인 JavaPathFinder 에서 오류가 없다고 한 소프트웨어의 오류를 찾아내었다.

멀티코어 환경에서의 멀티스레드 기법을 이용한 메모리 할당 연산의 성능 평가를 위한 시뮬레이터 (A Simulator for Performance Evaluation of Multithreaded Memory Allocation Operation in Multi-Core Environment)

  • 김호영;황대대;한상혁;김영국
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2012년도 한국컴퓨터종합학술대회논문집 Vol.39 No.1(A)
    • /
    • pp.245-247
    • /
    • 2012
  • 최근 멀티코어 프로세서의 활용이 대중화되고 있다. 멀티코어 시스템에서는 소프트웨어가 동시에 여러 코어를 사용하여 동작을 수행 할 때 성능 향상 효과를 얻을 수 있다. 즉, 하나의 소프트웨어가 여러 코어를 동시에 사용할 수 있는 멀티스레드 프로그래밍 기법을 사용할 때 성능을 높일 수 있다. 이러한 환경에서 효율적인 메모리 할당은 데스크톱, 서버 및 과학 등과 같은 응용에 매우 중요하다. 하지만, 동적으로 메모리를 할당하는 것은 메모리 할당 연산과 반환 연산 및 어떤 스레드가 다른 스레드의 힙 영역에 접근하는 것을 처리하기 위한 동기화 문제로 인한 오버헤드가 발생하여 성능에 영향을 끼치는 문제가 발생하게 된다. 따라서 이와 같은 환경에서 실제로 성능에 어느 정도 영향을 끼칠 것인가를 측정할 수 있는 도구가 필요하다. 이에 멀티코어 환경에서 멀티스레드 기법을 사용하여 메모리 할당 연산이 성능에 어떠한 영향을 끼치는지를 측정 및 평가할 수 있는 시뮬레이터인 MAES(Memory Allocation Evaluation Simulator)를 설계하고 구현한다.

GPGPU를 위한 쉐이더 명령어기반 멀티 스레드 관리 기법 (Method of Multi Thread Management based on Shader Instruction for Mobile GPGPU)

  • 이광엽;박태룡
    • 전기전자학회논문지
    • /
    • 제16권4호
    • /
    • pp.310-315
    • /
    • 2012
  • 본 논문에서는 모바일환경에 최적화 된 멀티 스레드 모바일 GPGPU를 설계하고, 멀티 스레드로 구성된 모바일 프로세서에서의 효과적인 스레드 관리 기법을 검증한다. 스레드의 제어에는 별도의 하드웨어 없이 소프트웨어 명령어를 기반으로 설계하였다. 스레드 관리 기법의 검증은 차선 검출 알고리즘을 구현하여 nVidia의 CUDA Architecture와 설계한 GPGPU의 스레드 관리 효율을 비교 분석한다. 스레드 효율에서는 CUDA와 비교했을 때 최대 2배까지 높은 효율을 보인다.

SMT 해결기를 이용한 자바 메모리 모델 시뮬레이션 (Java Memory Model Simulation using SMT Solver)

  • 이태훈;권기현
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제15권1호
    • /
    • pp.62-66
    • /
    • 2009
  • 많은 컴파일러는 속도를 높이기 위해서 최적화를 수행한다. 최적화의 결과로 프로그램의 구문이 변경된다. 단일 스레드 소프트웨어에서는 변경된 구문이 영향을 받지 않지만 멀티스레드 소프트웨어에서는 변경된 구문 때문에 예상하지 못한 실행 결과가 발생할 수 있다. 멀티 스레드자바 소프트웨어는 스레드들 간에 메모리를 통한 상호작용을 자바 메모리 모델을 통해서 명세 한다. 자바 메모리 모델은 자바언어의 표준 메모리 모델이다. 하지만 현재까지 나와 있는 어떠한 자바 모델 체킹 도구도 자바 메모리 모델을 지원하지 않는다. 본 논문에서는 자바 메모리 모델을 지원하는 모델 체킹 도구를 개발하기 위해서 자바 메모리 모델을 지원하는 시물레이터를 많은 모델 체킹 도구에서 사용되는 SMT 기반으로 구현했다. SMT 기반 메모리 모델 시뮬레이터는 기존의 메모리 모델 시뮬레이터에서 몇분이 걸리는 계산 결과를 1초 이내에 계산하였다. 또한 이를 통해 기존 소프트웨어 모델 체킹에서 표현할 수 없는 실행 결과를 빠르게 표현할 수 있다.

소프트웨어 트랜잭셔널 메모리를 이용한 자료경합 치유 기술 설계 (A Design of Healing Data Races using Software Transactional Memory)

  • 최으뜸;하옥균;전용기
    • 한국컴퓨터정보학회:학술대회논문집
    • /
    • 한국컴퓨터정보학회 2016년도 제54차 하계학술대회논문집 24권2호
    • /
    • pp.3-4
    • /
    • 2016
  • 멀티스레드 프로그램의 수행 중에 발생할 수 있는 자료경합은 프로그래머가 의도하지 않은 비결정적 수행으로 인해 신뢰할 수 없는 프로그램의 결과를 발생시킨다. 이러한 자료경합의 디버깅을 위해서 시간 및 자원적 비용이 과도하게 발생하기 때문에 프로그램의 수행 중에 이를 용인하고 치유하는 것이 중요하다. 본 논문은 멀티스레드 프로그램을 대상으로 소프트웨어 트랜잭셔널 메모리(STM)를 사용하여 공유변수에 대한 트랜잭션 영역을 설정하고 공유변수에 대한 이벤트 충돌 유형에 따른 자료경합 치유기법을 설계한다. 최종적으로는 프로그램 수행 중에 자료경합을 치유하는 기법의 실현가능성을 확인한다.

  • PDF

멀티스레드 어플리케이션을 위한 실시간 성능모니터의 구현 (The Implementation of Real-time Performance Monitor for Multi-thread Application)

  • 김진혁;신광식;윤완오;이창호;최상방
    • 전자공학회논문지CI
    • /
    • 제48권3호
    • /
    • pp.82-90
    • /
    • 2011
  • 마이크로프로세서의 발전과 함께 멀티코어 시스템은 점차 보편화 되어가고 있다. 이러한 하드웨어 성능향상 패러다임의 변화로 인해 소프트웨어의 성능향상을 위해서는 기존의 싱글 스레드 어플리케이션들을 멀티 스레드 어플리케이션들로 교체하는 과정이 필수적이다. 멀티 스레드 어플리케이션 개발의 복잡성 때문에, 성능모니터링 도구는 어플리케이션의 성능 최적화를 지원하기에 유용한 도구로 사용된다. 기존의 성능모니터링 도구는 사용의 편의성이나 실시간성의 지원보다는 성능 측정 자체에 초점이 맞춰져 있다. 실시간 성능 모니터는 멀티 스레드 어플리케이션이 수행하는 동안 나타나는 문제점을 파악하는 것 뿐 아니라 실시간으로 어플리케이션의 동작 상태를 개발자가 확인 할 수 있기 때문에 단순한 성능 지표들만으로 문제점의 원인을 찾아내야하는 비 실시간 성능 모니터에 비해 효과적인 도구로 사용될 수 있다. 본 논문에서는 멀티코어 시스템을 위한 실시간 성능모니터링 도구인 RMPM(Real-time Multi-core Performance Monitor)를 제안하고 성능 측정 주기로 인한 오버헤드와 정확성 사이의 관계를 비교하여 최적의 측정 주기를 결정하였다. 제안한 성능모니터는 전체시스템의 CPU 사용량, 메모리 사용량, 네트워크 사용량 뿐아니라 시스템의 코어별, 어플리케이션의 스레드별 부하 분산상태를 나타낼 수 있다.

컴포넌트 기반 멀티 스레드 지원 초경량 운영체제 설계 및 구현 (Design and Implementation of Component Based Multi-Thread Lightweight Sensor OS)

  • 김태훈;서대홍;이승룡
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2005년도 춘계학술발표대회
    • /
    • pp.1753-1756
    • /
    • 2005
  • 센서 네트워크 환경에서 센서 노드에게 가장 큰 이슈는 저전력이다. 이러한 센서 노드에서 저전력화를 제공하는 것은 하드웨어 뿐만 아니라 소프트웨어에서도 중요하다. 유휴 시간에 마이크로 컨트롤러가 활성 상태로 대기 하는 대신 마이크로 컨트롤러가 제공하는 파워 슬립 모드를 이용하여 모든 주변 장치의 전원을 차단함으로서 저전력을 실현할 수 있다. 그러나 빈번한 슬립 모드 진입은 오히려 더 많은 전력을 소비하기 때문에 슬립 모드로 들어가는 시기와 나오는 시기를 적절하게 제어 하는 것은 쉬운 일이 아니다. 그러므로 본 논문에서는 타이머 인터럽트를 활용하여 슬립 모드 제어 정책을 포함하는 컴포넌트 기반의 멀티 스레드 지원 센서 OS를 구현하였다. 코드 크기의 최적화로 성능 향상을 꾀하였으며, 이로서 전력 소비도 줄일 수 있다. 또한, 컴포넌트 기반의 구조는 다양한 하드웨어를 쉽게 지원할 수 있으며, 응용 분야에 따라 다양한 어플리케이션을 쉽게 제작할 수 있도록 설계하였다.

  • PDF

항공기 소프트웨어의 원자성위배 자율수리 도구를 위한 안전한 인터리빙 정보를 생성하는 기법 (A Technique to Generate Information of Safe Interleavings for On-the-fly Atomicity Violation Repairing in Airborne Software)

  • 백형진;최으뜸;이건표;전용기
    • 한국컴퓨터정보학회:학술대회논문집
    • /
    • 한국컴퓨터정보학회 2019년도 제59차 동계학술대회논문집 27권1호
    • /
    • pp.11-12
    • /
    • 2019
  • 본 논문은 멀티스레드를 지원하는 항공기 소프트웨어에 적용될 수 있는 자율수리 도구의 문제의 해결방법을 제안하는 논문이다. 기존의 연구는 프로그램의 반복수행을 통해 안전한 인터리빙을 수집하여 프로그램의 동작을 제한한다. 하지만 테스트 단계에서 수집되지 않은 안전한 인터리빙을 잘못된 인터리빙으로 처리하여 수리를 수행함으로써 불필요한 오버헤드가 발생한다. 본 논문은 원자성위배 패턴을 사용하여 안전한 인터리빙을 예측하여 생성시키는 기법을 사용하여 수리기법에서 불필요한 수리로 인한 오버헤드를 감소하기 위한 안전한 인터리빙 정보를 생성하는 기법을 제안한다.

  • PDF

사고 발생에 대비한 OBD2 차량 운행 정보 블랙박스 (OBD2 Vehicle Operation Information Black Box System for Accident Preparedness)

  • 김준영;김준희;오형성;최재형;고경호;류명춘
    • 한국컴퓨터정보학회:학술대회논문집
    • /
    • 한국컴퓨터정보학회 2024년도 제69차 동계학술대회논문집 32권1호
    • /
    • pp.279-280
    • /
    • 2024
  • 본 논문에서는 주행 중 차량의 상태를 실시간으로 모니터링함과 동시에, 페달 조작 여부를 확인할 수 있는 영상 촬영 및 저장 시스템을 제안한다. 개발된 차량 운행 정보 블랙박스는 블루투스 OBD2 커넥터를 통해 차량의 PID 값을 식별하고 수집한다. 이 데이터는 비동기 방식으로 처리되며, 라즈베리파이와 7인치 터치 디스플레이를 이용해 운전자에게 한눈에 보일 수 있는 형태로 정보를 제공한다. 특히, 멀티스레드를 활용하여 ECU 정보를 페달 조작 여부 영상에 표시하는 동시에 녹화하고, CSV 파일로 SD 카드에 실시간으로 저장한다. 수집된 차량 데이터와 영상 데이터는 예기치 못한 사고 발생 시 운전자의 과실 비율 측정과 대처행동을 입증하는 데 중요한 역할을 할 것으로 기대되며, 차량 정비 시 참고 자료로 활용될 수 있다.

  • PDF

실시간 객체 지향 모델의 스케줄 가능성을 고려한 구현 자동화 (Auromated Schedulability-Aware Implementation of Real-Time Object-Oriented Models)

  • 김세화;조석제;홍성수
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2000년도 가을 학술발표논문집 Vol.27 No.2 (1)
    • /
    • pp.569-571
    • /
    • 2000
  • 객체지향 디자인 방법론과 이에 대한 CASE 툴은 실시간 소프트웨어 개발 분야에서 널리 사용되고 있다. 객체 지향 CASE 툴은 객체 지향 모델로부터 테스크들을 생성하는 단계를 거쳐야 한다. 그러나 객체와 테스크는 근본적으로 차이가 있으며, 또한 실시간 특성을 반영하도록 테스크를 구성하는 것은 매우 어려운 일이므로, 현재의 CASE 툴들은 개발자가 개체와 테스크의 매핑을 직접하도록 하고 있다. 본 논문은 실시간 객체지향 모델을 스케줄 가능성을 고려해 멀티 스레드 테스크로 자동적으로 매핑하는 방법을 제안하고 본 방법의 스케줄 가능성 케스트 방법을 제시한다. 본 논문에서 제안하는 방법은 실시간 객체 지향 모델에서 서로 다른 주기와 데드라인을 갖는 트랜젝션을 추출하고, 이를 스케줄 가능하도록 그룹화하여 스레드로 만드는 것이다.

  • PDF