• 제목/요약/키워드: 멀티스레드

검색결과 103건 처리시간 0.021초

EJB에서의 멀티 쓰레드 디자인 (Multithread design of Enterprise Java Beans)

  • 이영지;김태윤
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2001년도 가을 학술발표논문집 Vol.28 No.2 (3)
    • /
    • pp.526-528
    • /
    • 2001
  • EJB는 Sun사에서 발표한 분산 객체 구조에 맞는 서버쪽 컴포넌트 아키텍쳐이다. EJB를 사용하면 다중 네트워크 환경에서 애플리케이tus의 디자인과 개발, 배포가 쉬워진다. 개발자는 하부 사항에 대해 신경쓰지 않고 상위 레벨에서 애플리케이션을 설계할 수 있다. EJB 1.1 명세서는 그러한 내용을 나타내고 있는 명세서이다. 하지만 이 명세에서는 멀티 스레드를 허용하지 않는다. 멀티 스레드는 프로그래밍에서 상당히 유용한 것으로 멀티 스레드를 사용하면 다른 오브젝트에 영향을 주지 않으면서 작업을 수행할 수 있는 등 여러 가지 이점이 많다. 본 논문에서는 이러한 이점을 살려서 명세서에 따르면서 멀티 스레드를 생성하는 방법에 대해 알아보고자 한다. 본 논문에서 제시하는 방법은 3가지이고 각각 장단점이 따른다 .

  • PDF

C++11 멀티스레드 프로그래밍을 위한 Lock-Free shared_ptr와 weak_ptr의 구현 (Implementation of Lock-Free shared_ptr and weak_ptr for C++11 multi-thread programming)

  • 구태균;정내훈
    • 한국게임학회 논문지
    • /
    • 제21권1호
    • /
    • pp.55-66
    • /
    • 2021
  • 고성능이 요구되는 게임 프로그래밍에서 멀티스레드 프로그래밍은 필수이다. 하지만 널리 사용되는 C++11의 shared_ptr와 weak_ptr는 멀티스레드 환경에서 오작동 및 성능 문제를 가지고 있다. 본 논문에서는 기존의 오작동 방지 방법보다 높은 성능을 가지는 Lock-Free shared_ptr와 weak_ptr를 제안한다. 제안하는 두 객체는 논블로킹 알고리즘을 이용하여 멀티스레드에서의 데이터 레이스를 방지하였으며, 8스레드 환경에서 실험한 결과 스레드 사이의 경쟁이 낮은 상황에서 기존의 방법보다 최대 7424% 향상되었고, 경쟁이 높은 상황에서 최대 3767% 향상된 성능을 보여준다.

멀티코어 환경에서의 멀티스레드 기법을 이용한 메모리 할당 연산의 성능 평가를 위한 시뮬레이터 (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)를 설계하고 구현한다.

멀티코어 환경에서의 확장성 향상을 위한 메모리 할당자 (Enhanced Memory Allocator for Scalability Improvement On Multicore)

  • 조영중;김인혁;엄영익
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2013년도 춘계학술발표대회
    • /
    • pp.164-165
    • /
    • 2013
  • 멀티프로세서에서 시스템의 병렬성을 향상시키기 위해서 멀티스레드 프로그램을 이용한다. 이러한 멀티스레드 프로그램은 스레드간 역할을 분담하여 작업을 진행하게 된다. 멀티스레드 프로그램에는 생산자-소비자 구조가 있다. 기존 메모리할당자들은 생산자-소비자 구조에 대한 연구가 진행되지 않고, 크리티컬 섹션이 긴 락을 사용하여 성능상에 문제가 있다. 우리는 이러한 문제점을 독특한 메모리 해제 방법을 통해 해결하였고, 실험을 통해 메모리 할당자의 속도가 향상되는 것을 검증하였다.

다중 스레드 뉴스 캐스팅 서버의 설계 및 구현 (Design and Implementation of the Multi-threaded News Casting Sever)

  • 김연정;조동섭
    • 한국멀티미디어학회:학술대회논문집
    • /
    • 한국멀티미디어학회 2003년도 춘계학술발표대회논문집
    • /
    • pp.118-121
    • /
    • 2003
  • 사용자가 원하는 뉴스를 보다 쉽고 빠르게 전송하고 전송 받을 수 있는 다중 스레드 뉴스 캐스팅 서버를 디자인하고 구현하였다. 뉴스 캐스팅 서버는 서버에 접속한 두 명의 뉴스 메이커가 자신들이 원하는 하나의 뉴스 그룹을 만들고 새로운 뉴스를 만들어서 서버를 통해 신속하게 그 뉴스 그룹에 속한 뉴스 캐스팅 클라이언트에게 브로드캐스팅한다. 뉴스 캐스팅 클라이언트는 이 정보를 받아 웹서버의 데이터 베이스에 전달한다. 웹서버는 사용자의 요청이 있을 때 새로운 뉴스를 전송하게 된다. 이 서버는 멀티 스레드의 가장 효과적인 연결 리스트를 이용하여 각 그룹파 사용자를 통합 관리하고 있으며 각 그룹은 스레드를 사용하여 생성해서 서버의 효율을 증가 시켰다.

  • PDF

멀티 스레드 프로그램의 자료경합 탐지를 위한 수행 중 감시 도구 (On-the-fly Monitoring Tool for Detecting Data Races in Multithread Programs)

  • 팽봉준;박세원;구인본;하옥균;전용기
    • 정보과학회 논문지
    • /
    • 제42권2호
    • /
    • pp.155-161
    • /
    • 2015
  • 멀티 스레드 프로그램의 수행 중에 발생하는 자료경합과 원자성 위배 등과 같은 동시성 오류는 스레드들의 비결정적 수행으로 인해 다양한 수행 순서를 고려해야 하고 재생산 또한 어렵기 때문에 디버깅하기 어렵고 귀찮은 오류로 잘 알려져 있다. 이러한 자료경합을 디버깅하기 위해서는 스레드의 수행 순서와 메모리 접근 및 동기화 정보 등과 같은 프로그램의 수행 중에 발생한 정보를 수집 및 분석해야 한다. 본 논문에서는 멀티 스레드 프로그램의 수행 중에 벡터 클록 시스템을 기반으로 스레드의 병행성과 접근사건들 간의 순서관계를 생성 및 유지함으로써 정확하면서도 효율적인 감시와 분석이 가능한 도구인 VcTrace를 제시한다. 제시된 감시 도구를 사용하여 멀티 스레드 기반의 응용 프로그램을 대상으로 수행 중 발생한 스레드와 접근사건 등의 정보를 감시 및 유지하고, 자료경합을 탐지하는 기술과 접목하여 실용성을 분석한다.

CC-NUMA 시스템을 위한 다중 스레드 프로세스의 CG 바인딩 (The CG Binding of Multi-Threaded Process for CC-NUMA System)

  • 김정녀;김해진;윤석한;이철훈
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 1999년도 가을 학술발표논문집 Vol.26 No.2 (3)
    • /
    • pp.155-157
    • /
    • 1999
  • 본 논문에서는 CC-NUMA 시스템인 고성능 멀티미디어 서버(MX Server)상에서 다중 스레드 프로세스의 CG(CPU Group) 바인딩 설계 및 구현 내용을 소개한다. 고성능 멀티미디어 서버의 컴퓨팅 서버용 운영체제인 COSMIX(cache COherent Shared Memory unIX)에서는 서버의 플랫폼에 알맞은 하드웨어 및 시스템 관련하여 CC-NUMA 시스템에 적합한 운영체제 기능을 설계하였다. 고성능 멀티미디어 서버에서는 데이터의 지역성을 고려하여 한 노드인 CG에 프로세스를 바인드 하는 기능이 있으나, 다중 스레드로 구성된 프로세스의 바인딩 기능은 없었다. Oracle8i와 같은 인터넷 DBMS에서는 하나의 프로세스내의 다중 스레드가 일정한 노드의 디스크를 점유하여 사용할 수 있으므로 이와 같은 다중 스레드의 프로세스를 해당 디스크가 있는 하나의 CG에 바인딩 하는 기능이 필요하다. 현재는 가용한 플랫폼이 없어서 MX Server 대신 PC 태스트베드인 CC-NUMA 시스템 시뮬레이션 환경에서 다중 스레드의 CG 바인딩 기능을 구현하고 그 시험을 완료하였다.

  • PDF

EJB 애플리케이션을 위한 멀티 쓰레드 구현 방법에 대한 연구 (Multithread design of Enterprise Java Beans)

  • 이영지;김태윤
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2001년도 추계학술발표논문집 (하)
    • /
    • pp.1557-1560
    • /
    • 2001
  • EJB는 Sun사에서 발표한 분산 객체 구조에 맞는 서버쪽 컴포넌트 아키텍처이다. EJB를 사용하면 다중 네트워크 환경에서 애플리케이션의 디자인과 개발, 배포가 쉬워진다. 개발자는 하부 사항에 대해 신경쓰지 않고 상위 레벨에서 애플리케이션을 설계할 수 있다. EJB 1.1 명세서는 그러한 내용을 나타내고 있는 명세서이다. 하지만 이 명세에서는 멀티 스레드를 허용하지 않는다. 멀티 스레드는 프로그래밍에서 상당히 유용한 것으로 멀티 스레드를 사용하면 다른 오브젝트에 영향을 주지 않으면서 작업을 수행할 수 있는 등 여러 가지 이점이 많다. 본 논문에서는 이러한 이점을 살려서 명세서에 따르면서 멀티 스레드를 생성하는 방법에 대해 알아보고자 한다 본 논문에서 제시하는 방법은 클라이언트 쪽에서 멀티 스레딩을 생성하는 방법, 콜백 서비스를 이용하는 방법, 메세징 서비스를 이용하는 방법 3가지이고 각각에는 장단점이 따른다. 따라서 실제 구현 시에는 각자의 요구 사항에 맞춰 알맞은 방법을 찾아야 한다.

  • PDF

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배까지 높은 효율을 보인다.

멀티 스레드를 이용한 영상 처리 속도 분석 (Analysis of Image Processing Speed Using Multi-Threads)

  • 허태성;장형규
    • 한국컴퓨터정보학회:학술대회논문집
    • /
    • 한국컴퓨터정보학회 2023년도 제68차 하계학술대회논문집 31권2호
    • /
    • pp.471-472
    • /
    • 2023
  • 본 논문에서는 멀티 쓰레드를 이용하여 UI에 영상을 표현할 때, 걸리는 시간 및 적정 사용 방법을 연구하였다. 영상처리는 오픈 API인 OpenCV를 사용하여 처리하였으며, 1~4개의 스레드로 영상을 다운로드하는 시간부터 GUI에 보여주는 시간까지를 계산하는 기능을 구현하여 영상을 다운로드하고, GUI에 넣어주어야 할 때 스레드의 개수가 퍼포먼스에 관여하는 처리속도를 알아볼 수 있다.

  • PDF