|
http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=1921 [복사]
① 멀티프로세스 - 자식프로세스를 새로 생성하여 일부분의 작업을 지시하여 서버 구현.
② 멀티플렉싱 - select함수 또는 epoll함수를 이용해 하나의 프로세스로 서버 구현.
select함수는 Level Trigger이다.
epoll함수는 기본적으로 Level Trigger이나, Edge Trigger는 설정시 사용가능하다.
Level Trigger는 입력버퍼에 데이터가 남아있으면 전부 이벤트를 발생시키고,
Edge Trigger는 입력버퍼에 데이터가 있으면 한번의 이벤트만 발생시킴.
③ 멀티쓰레드 - 프로세스 대신 쓰레드를 이용해 일부분의 작업을 지시하여 서버 구현.
멀티프로세스 대신에 멀티쓰레드를 이용하는 이유
♠ 프로세스
- 프로세스 생성은 부담스러운 작업과정을거친다.
- 두 프로세스 사이에서의 데이터 교환을 위해 별도의 IPC기법을 이용해야 한다.
- 컨텍스트 스위칭(Context Switching)에 따른 부담은 프로세스 생성방식의 가장 큰 부담이다.
♠ 쓰레드
- 쓰레드의 생성 및 컨텍스트 스위칭은 프로세스의 생성 및 컨텍스트 스위칭보다 빠르다.(쓰레드 = 경량화된 프로세스)
- 쓰레드 사이에서의 데이터 교환에는 특별한 기법이 필요치 않다.
- 스택영역만을 분리시킴으로써 데이터영역과 힙을 이용해서 데이터를 교환할 수 있다.
|
Hit : 11052 Date : 2012/01/11 10:03
|