Abstract
The objective of this study is to show practice example let student experience about concurrent servers based multi-processes and multi-thread among the principles of data communication in ICT(information and communications technology). For this, we first implement multi-process server(fork server) and multi-thread server(thread server), and multi-thread client(thread client), Secondly, for experimental environment, we developed small ethernet networks and measure data transfer time with relation to the number of users. Experimental results show that mean transfer time of thread server is less than that of fork server by 20~61 % on average. Furthermore, it is found that the difference of data transfer time between fork server and thread server is proportional to that of the number of users. Main reason of performance difference dues to the difference between process forking time and thread creation time. We can also find that context switching for process and thread affects the load of web server. Our presentation and experimental results can be applied to used as the educational practice materials with which student can experience data communication principles.
본 연구의 목적은 정보통신기술 영역의 데이터 통신 원리 중에서 다중프로세스 방식과 다중 쓰레드 방식의 병행서버에 대해 직접 체험할 수 있는 실습사례를 제시하는 데 있다. 이를 위해 먼저 다중 프로세스 방식인 포크 서버(fork server)와 다중 쓰레드 방식인 쓰레드 서버(thread server), 그리고 쓰레드 클라이언트(thread client)를 구현하였다. 다음에 실험환경으로서 이더넷(ethernet)을 이용한 소규모 네트워크를 구성하였으며 사용자 수에 따른 데이터 전송시간을 측정하였다. 데이터 전송시간을 측정한 결과, 쓰레드 서버가 포크 서버에 비해 약 20~61%의 전송시간 절감율을 보였으며 두 서버 모델 간 전송시간 차이는 사용자 인원수에 비례하였다. 두 서버 모델 간 발생하는 성능차이의 주된 원인은 프로세스 포크(fork)와 쓰레드 생성에 소요되는 시간이 다르기 때문이다. 아울러, 프로세스 간, 쓰레드 간 스케줄링에서 발생하는 문맥전환(context switching) 역시 웹 서버의 부하에 영향을 주는 것을 알 수 있었다. 본 연구를 통해 제시된 실습사례와 측정된 실험데이터는 학교현장에서 수업시간에 데이터통신 원리에 대해 직접 체험할 수 있는 교육적 실습자료로 활용될 수 있다.