• 제목/요약/키워드: 다중 쓰레드

검색결과 88건 처리시간 0.025초

자바 언어를 이용한 소켓폴링 서버구현 (Implementing Socket Polling Server in Java)

  • 손강민;강태근;함호상
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2002년도 추계학술발표논문집 (상)
    • /
    • pp.115-118
    • /
    • 2002
  • 소켓 프로그래밍(socket programming) 인터페이스를 지원하는 C/C++, perl, python 과 같은 언어들은 폴링(polling) 기능을 갖는 select() 함수를 제공한다. 이 select()함수를 이용할 경우, 단일 쓰레드(또는 프로세스)로 다중의 클라이언트 요청을 처리할 수 있다. 최근 네트워크 프로그래밍 분야에서 주목받는 자바 언어의 경우, 최신 JDK 1.4 의 비동기 입출력 패키지에서 select()함수를 제공하고 있으나, JDK 1.3을 포함한 그 이하의 버전에서는 아직까지 이 함수를 제공하지 않고 있다. 일반적으로 다중 쓰레드를 이용하여 소켓서버 응용프로그램을 개발할 경우, 코드가 단순해지고 응답이 빠른 장점이 있는 반면에 네트워크 연결이 증가할수록 다수의 쓰레드를 관리하는 일이 CPU에 큰 부담이 된다. 반면에 소켓폴링(socket polling)을 사용할 경우, 이러한 연결 유지에 대한 부담이 줄어드는 대신, 다중 쓰레드를 이용하는 방법에 비하여 구현이 어렵다. 본 논문에서는 다양한 시뮬레이션 환경에서 세가지 소켓 프로그래밍 모델에 대하여 그 성능을 비교평가 하였다. 이 세가지 모델은 단순 다중 쓰레드 모델(typical multi-thread model), 단일 쓰레드 소켓폴링 모델(socket polling with single-thread model), 다중 쓰레드 소켓폴링 모델(socket polling with multi-threadmodel)이다. 본 논문에서는 다중 쓰레드 소켓폴링 모델을 제안하고 JDK 1.3.1을 이용하여 구현하였다. 이 모델의 경우 복잡한 구조에도 불구하고 단순 다중 쓰레드 모델와 유사하거나 더 나은 성능을 보여주었다. 또한 동일한 용량의 쓰레드 풀(thread pool)을 사용하더라도 단순 다중 쓰레드 모델보다 더 많은 수의 클라이언트를 수용할 수 있는 장점이 있다. 이러한 결과를 바탕으로 본 연구팀에서 수행중인 MoIM-Messge서버의 네트워크 모듈로 다중 쓰레드 소켓폴링 모델을 적용하였다.

  • PDF

네트워크 프로세서를 위한 다중 쓰레드 스케줄링 (Multi-thread Scheduling for the Network Processor)

  • 임강빈;박준구;정기현;최경희
    • 정보처리학회논문지C
    • /
    • 제11C권3호
    • /
    • pp.337-344
    • /
    • 2004
  • 본 논문은 다중 프로세서(Multiprocessor) 기반 다중 쓰레드(Multithreaded) 구조의 네트워크 프로세서를 이용한 패킷 치리 시스템에서 패킷을 보다 고속으로 처리하기 위한 쓰레드 스케줄링 기법을 제안한다 이를 위하여 스케줄링과 관련한 인자를 실험을 통하여 얻고, 패킷 내용 및 다중 쓰레드 아키텍쳐를 표현하는 인자를 포함하도록 설계하였다. 시뮬레이터를 이용한 실험을 통하여 제안된 스케줄링 기법이 제공하는 처리율 및 부하 분산 정도가 다른 스케줄링 기법과 비교하여 효율적임을 증명하였다.

병행 자바 프로그램 슬라이싱을 위한 다중쓰레드 종속성 그래프의 개선에 대한 연구 (A Study on Enhancement of Multithreaded Dependence Graphs for Concurrent Java Program Slicing)

  • 류희열;김은정
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2002년도 추계학술발표논문집 (하)
    • /
    • pp.2055-2058
    • /
    • 2002
  • 병행 자바 프로그램의 슬라이싱 방법은 Jianjun Zhao에 의해 제안된 다중 쓰레드 종속성 그래프를 이용하여 Susan Horwitz, Thomas Reps, David Binkly가 제안한 2단계 마킹 알고리즘을 적용하여 슬라이스를 계산한다. 다중 쓰레드 종속성 그래프를 이용하는 방법은 쓰레드동기화 문장들 사이의 동기화 종속성과 서로 다른 쓰레드에 존재하는 공유객채들 사이의 통신 종속성 관계를 표현하여 병행 자바 프로그램의 슬라이스를 계산할 수 있는 것이다. 그러나 프로그램 종속성 그래프를 기반으로 하기 때문에 클래스 맴버 변수들에 대한 formal_in, formal_out, actual_in, actual_out정점들의 추가로 그래프의 복잡도가 증가하고 또한 부정확한 슬라이스 계산을 위한 다중 쓰레드 종속성 그래프를 개선하여 제안한다. 제안하는 개선된 다중 쓰레드 종속성 그래프는 주어진 슬라이싱 기준에 대한 2단계 마킹 알고리즘을 적용한 결과 정확한 슬라이스 계산과 복잡도 개선을 확인하였다.

  • PDF

아파치 웹 서버에서의 다중 쓰레드 풀 활용 기법 분석 (Analysis of Multi-thread Fool Utilization Scheme on the Apache Web Server)

  • 전흥석;이승원;강현규
    • 한국정보과학회논문지:시스템및이론
    • /
    • 제32권1호
    • /
    • pp.21-28
    • /
    • 2005
  • 웹 서버 혹은 웹 애플리케이션 서버는 급증하는 웹 사용자들의 요구에 효율적으로 대처하기 위하여 일반적으로 다중 쓰레드 모델을 적용하고 있다. 그러나 이러한 다중 쓰레드 모델이 새로운 웹 환경의 특정한 상황에서 다중 프로세스 모델에 비해 오히려 더 나쁜 성능을 보이는 경우가 있다. 본 논문에서는 이러한 문제를 해결하기 위하여 두 가지 접근 방법을 통해 다중 쓰레드 모델의 성능 저하에 대한 원인을 분석한다. 그 중 첫 번째로, 다양한 응용 환경에서의 다중 쓰레드 모델과 프로세스 모델을 비교한다. 두 번째로는 효율성을 위하여 일반적으로 제공되는 프로세스/쓰레드 풀 모델에서 동적인 지시자들의 설정값에 의한 영향을 분석한다. 본 논문에서는 자체 제작한 웹 클라이언트 시뮬레이터와 아파치 엘 서버 2.0을 연동하여 이러한 실험들을 진행하고 결과 및 분석 내용을 제시한다.

학습 기반의 동적 쓰레드 풀 기법을 적용한 웹 서버의 설계 및 구현 (Design and Implementation of a Web Server Using a Learning-based Dynamic Thread Pool Scheme)

  • 유서희;강동현;이권용;박성용
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제16권1호
    • /
    • pp.23-34
    • /
    • 2010
  • 네트워크의 발전에 따라 사용자들이 늘어나게 되면서 웹 서버들은 동시에 접속하는 다수 사용자의 서비스 요청을 처리할 수 있는 다중 쓰레드 기법을 활용하고 있다. 고정된 쓰레드 풀 기법은 고정적인 시스템 자원을 점유해야 하는 문제점이 있다. 반면에 동적으로 쓰레드 풀 기법인 워터마크 쓰레드 풀기법은 사용자의 요청량에 따라 쓰레드 수를 적절하게 조절하지만, 지정한 최대값을 넘는 요청량에 대해서는 응답이 제때에 이루이지지 않는 단점이 있다. 따라서 본 논문에서는 다양한 요청량이 존재하는 다중 쓰레드 환경의 서버 프로그래밍을 위한 학습 기반의 동적 쓰레드 풀 기법을 적용한 웹 서버를 제안한다. 제안하는 기법은 쓰레드 풀을 사용하는 웹 서버 중 아파치(Apache) worker 다중 처리 모듈(Multi processing Module)에 AR(Auto Regressive) 기법을 통해 다음 주기의 작업 요청량을 예측하고 사전에 쓰레드를 생성한다. 기존 기법과 달리, 일정주기의 증감 추세가 없는 작업 요청량에도 필요한 쓰레드의 수를 정확하게 설정하기 위해 최근접 이웃(K-Nearest Neighbor) 알고리즘을 사용하여 작업 요청량에 따른 쓰레드의 수를 사전에 학습한다. 필요한 쓰레드의 수를 설정하기 위해 사전에 학습 되어진 개체들과 비교하여 유사한 개체를 선택하여 예측된 작업 요청량에 따른 쓰레드의 수를 결정하고 쓰레드를 생성한다. 본 논문에서는 필요한 쓰레드의 수를 동적으로 변경함으로써 사용자 응답 시간을 빠르게 하고, 사용자의 요청량에 맞게 쓰레드 수를 관리함으로써 시스템 자원의 활용도를 높일 수 있다.

iORB 객체 호출을 위한 다중쓰레드 방식의 Basic Object Adapter (BOA) 구현 (The Implementation of Multi-Threaded Basic Object Adapter to Invoke Server Object on iORB)

  • 이권일;남궁한
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 1999년도 가을 학술발표논문집 Vol.26 No.2 (3)
    • /
    • pp.215-217
    • /
    • 1999
  • CORBA 2.0 규격에 따라 구현돈 인터넷 Java ORB인 iORB는 Common Object Request Broker Architecture (CORBA) 객체 호출을 위한 Basic Object Adapter (BOA)를 클라이언트와 서버 객체 사이의 연결 설정과 요청 처리를 분리한 다중 쓰레드 방식으로 제공하고 있다. 본 논문은 다중 쓰레드 방식을 지원하는 iORB의 BOA 설계 및 구현에 관한 것이다.

  • PDF

다중 쓰레드 환경에서 웹 크롤러의 성능 분석 (Performance Analysis of Web-Crawler in Multi-thread Environment)

  • 박정우;김준호;이원주;전창호
    • 한국컴퓨터정보학회:학술대회논문집
    • /
    • 한국컴퓨터정보학회 2008년도 제39차 동계학술발표논문집 16권2호
    • /
    • pp.473-476
    • /
    • 2009
  • 본 논문에서는 다중 쓰레드 환경에서 동작하는 웹 크롤러를 구현하고 성능을 분석한다. 이 웹 크롤러의 특징은 검색시간을 단축하기 위하여 크롤링, 파싱 및 페이지랭킹, DB 저장 모듈을 서로 독립적으로 다른 작업을 수행하도록 구현한 것이다. 크롤링 모듈은 웹상의 데이터를 수집하는 기능을 제공한다. 그리고 파싱 및 페이지랭크 모듈은 수집한 데이터를 파싱하고, 웹 페이지의 상대적인 중요도를 수치로 계산하여 페이지랭크를 지정한다. DB 연동 모듈은 페이지랭크 모듈에서 구한 페이지랭크를 데이터베이스에 저장한다. 성능평가에서는 다중 쓰레드 환경에서 쓰레드 수와 웹 페이지의 수에 따른 검색 시간을 측정하여 그 결과를 비교 평가한다.

  • PDF

효과적인 자바 다중 쓰레드 병렬처리를 이용한 네트워크 가상환경의 구현 (Implementation of Networked Virtual Environment by Using Effective Java Multi-Thread Parallelism)

  • 김우열;박종구
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2004년도 춘계학술발표대회
    • /
    • pp.829-832
    • /
    • 2004
  • 대단위(large-scale) 가상현실 시스템이나 가상현실 시스템의 구성요소가 네트워크(일반적인 통신망)를 통하여 분산되어 있는 경우를 네트워크 가상현실 시스템(Net-VE : Networked Virtual Environment)이라 한다. 가상현실의 환경을 분산 처리하는 경우 가상현실 시각의 공유방법, 분산시스템의 구성방법, 저속 혹은 고속통신망을 통한 대량의 데이터를 전송하는 방법, 가상현실 내의 이용자의 상호작용 방법, 데이터 공유방법, 분산처리 방법 등 가상현실 기술에 부가하여 통신망기술, 프로토콜 공학, 분산 처리기술 등 다양한 주변 기술이 필요하다. 따라서 본 논문에서는 더 유연성 있고 모듈러한 네트워크 가상 환경을 구축하는데 있어 효율적인 객체 지향 프로그래밍 기술인 자바의 다중 쓰레드 병렬처리 기법을 사용하고자 한다. 자바의 쓰레드 구조를 사용함으로써 네트워크 가상환경에서 여러 클라이언트에서 요청하는 데이터를 네트워크를 통한 지연에 대한 효과적인 대안으로서 자바의 다중 쓰레드 병렬처리 기법을 제안하고자 한다.

  • PDF

다중쓰레드 프로그래밍을 위한 분산공유메모리 관리 기법 (Distributed Shared Memory Scheme for Multi-thread programming)

  • 서대화
    • 한국정보처리학회논문지
    • /
    • 제3권4호
    • /
    • pp.791-802
    • /
    • 1996
  • 본 논문에서는 대규모 다중처리기 시스템에서 다중쓰레드를 지원하는 기법에 관하여 다룬다. 분산공유메로리에서의 주소번역표 관리, 블록 일관성 유지 방법, 그리고 블록 대치 정책에 대하여 쓰레드 프로그래밍 환경에 적합한 새로운 기법을 제안한다. 이 기법은 분산공유메모리에서 일반적으로 발생하는 문제점들인 거짓 공유, 불필요한 중복, 블록 바운싱, 그리고 주소 엘리어싱 등을 효율적으로 해결한다. 그리고 응용프 로그램의 투명성을 제공하고, 시스템의 확장과 구현 용이하도록 해주며, 다중쓰레드 환경을 사용자에서 제공한다.

  • PDF

정보통신기술 실습사례: 병행서버모델의 데이터 전송시간 측정 (Educational Practice Example of Information and Communications Technology: Measurement of Data Transfer Time for Concurrent Server Model)

  • 손명락;이용진
    • 대한공업교육학회지
    • /
    • 제33권1호
    • /
    • pp.265-281
    • /
    • 2008
  • 본 연구의 목적은 정보통신기술 영역의 데이터 통신 원리 중에서 다중프로세스 방식과 다중 쓰레드 방식의 병행서버에 대해 직접 체험할 수 있는 실습사례를 제시하는 데 있다. 이를 위해 먼저 다중 프로세스 방식인 포크 서버(fork server)와 다중 쓰레드 방식인 쓰레드 서버(thread server), 그리고 쓰레드 클라이언트(thread client)를 구현하였다. 다음에 실험환경으로서 이더넷(ethernet)을 이용한 소규모 네트워크를 구성하였으며 사용자 수에 따른 데이터 전송시간을 측정하였다. 데이터 전송시간을 측정한 결과, 쓰레드 서버가 포크 서버에 비해 약 20~61%의 전송시간 절감율을 보였으며 두 서버 모델 간 전송시간 차이는 사용자 인원수에 비례하였다. 두 서버 모델 간 발생하는 성능차이의 주된 원인은 프로세스 포크(fork)와 쓰레드 생성에 소요되는 시간이 다르기 때문이다. 아울러, 프로세스 간, 쓰레드 간 스케줄링에서 발생하는 문맥전환(context switching) 역시 웹 서버의 부하에 영향을 주는 것을 알 수 있었다. 본 연구를 통해 제시된 실습사례와 측정된 실험데이터는 학교현장에서 수업시간에 데이터통신 원리에 대해 직접 체험할 수 있는 교육적 실습자료로 활용될 수 있다.