소켓 프로그래밍(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서버의 네트워크 모듈로 다중 쓰레드 소켓폴링 모델을 적용하였다.
KSP Keywords
Multi-thread, Thread pool, socket programming
Copyright Policy
ETRI KSP Copyright Policy
The materials provided on this website are subject to copyrights owned by ETRI and protected by the Copyright Act. Any reproduction, modification, or distribution, in whole or in part, requires the prior explicit approval of ETRI. However, under Article 24.2 of the Copyright Act, the materials may be freely used provided the user complies with the following terms:
The materials to be used must have attached a Korea Open Government License (KOGL) Type 4 symbol, which is similar to CC-BY-NC-ND (Creative Commons Attribution Non-Commercial No Derivatives License). Users are free to use the materials only for non-commercial purposes, provided that original works are properly cited and that no alterations, modifications, or changes to such works is made. This website may contain materials for which ETRI does not hold full copyright or for which ETRI shares copyright in conjunction with other third parties. Without explicit permission, any use of such materials without KOGL indication is strictly prohibited and will constitute an infringement of the copyright of ETRI or of the relevant copyright holders.
J. Kim et. al, "Trends in Lightweight Kernel for Many core Based High-Performance Computing", Electronics and Telecommunications Trends. Vol. 32, No. 4, 2017, KOGL Type 4: Source Indication + Commercial Use Prohibition + Change Prohibition
J. Sim et.al, “the Fourth Industrial Revolution and ICT – IDX Strategy for leading the Fourth Industrial Revolution”, ETRI Insight, 2017, KOGL Type 4: Source Indication + Commercial Use Prohibition + Change Prohibition
If you have any questions or concerns about these terms of use, or if you would like to request permission to use any material on this website, please feel free to contact us
KOGL Type 4:(Source Indication + Commercial Use Prohibition+Change Prohibition)
Contact ETRI, Research Information Service Section
Privacy Policy
ETRI KSP Privacy Policy
ETRI does not collect personal information from external users who access our Knowledge Sharing Platform (KSP). Unathorized automated collection of researcher information from our platform without ETRI's consent is strictly prohibited.
[Researcher Information Disclosure] ETRI publicly shares specific researcher information related to research outcomes, including the researcher's name, department, work email, and work phone number.
※ ETRI does not share employee photographs with external users without the explicit consent of the researcher. If a researcher provides consent, their photograph may be displayed on the KSP.