Linux/Linux_programing

Socket - 04. 다중 프로세스 네트워크 프로그래밍

sosal 2009. 10. 23. 23:17
반응형
/*
 http://sosal.tistory.com/
 * made by so_Sal
 */



일반적으로 서버 프로그램은 불특정 다수의 클라이언트로부터
서비스 요청을 처리할 수 있는 다중 사용자 서버 (Multi-user server)로 개발됩니다.
다중 사용자 서버는 반복 처리 서버(Iterative Server)와 동시 처리 서버(Concurrent Server)로 개발될 수 있습니다.

반복 처리 서버는 개발하기 쉽고 이해하기 쉽지만,
사용자가 많아질 경우 클라이언트가 서비스를 위해 대기하는 시간이 길어질 수 있기 때문에
현실적으로 사용하기 어렵습니다.

동시 처리 서버는 다수의 클라이언트로부터 서비스 요청을 동시에 처리함으로써 서비스 제공을 보장합니다.
대표적인 모델은 다중프로세스와 다중 스레드 등이 존재합니다.

다중프로세스.
다수의 클라이언트로부터의 서비스 요청 처리를 위해 Linux 환경에서
독릭접인 task 단위를 두고(프로세스) CPU에 의한 Time Shareing 기법을 통해
다수의 클라이언트의 서비스 요청을 동시에 처리를 가능하게끔 합니다.

** system(), fork() , exec() 등 system계열의 함수에 대한 기본적인 이해가 있어야 합니다.
** 그에 대한 내용은 Linux-programing 챕터 system() 관련글 1,2,3번에 있습니다.



소스와 분석은 Program_source 카테고리에 존재합니다.
링크입니다.
Server source :: LINK_
Client  source :: LINK_