다중 접속 서버 모델
🙉

다중 접속 서버 모델

Created
Jan 22, 2024 02:18 AM
Last edited time
Last updated January 23, 2024
Tags
CS
Language
URL

Intro::

서버와 클라이언트 간의 통신을 할때 다양한 모델이 존재한다. 이에 대해 알아보자.
 

Multi Process Server

부모 프로세스는 해당 클라이언트와 데이터를 송수신할 담당할 자식 프로세스를 생성한다. 자식 프로세스는 클라이언트와의 연결이 종료되면 종료된다. 하나의 프로세스가 클라이언트에 대해 통신을 전담하기에 대용량의 데이터를 전송하기에 유리하지만, 프로세스의 생성은 큰 비용이 든다는 단점이 있다.
 
notion image
 

Multi Thread Server

하나의 프로세스에서 각 클라이언트의 송수신을 담당하는 스레드를 생성한다. 스레드는 프로세스에 비해 생성비용이 적어 멀티 프로세스 방식의 서버보다 더 많은 클라이언트의 접속을 처리하는데 효과적이다. 하지만 스레드간의 교착상태나 race컨디션 등의 위험이 있다.
 
notion image
 

Multiplexing Server

프로세스를 생성하는 것은 메모리를 많이 사용하고, 또 프로세스 간의 통신이 필요한 상황에는 서버의 구현이 더 복잡해진다. 이러한 멀티 프로세스 서버의 대안들 중 하나가 바로 I/O Multiplexing 이다.
 
notion image
 

References::

Loading Comments...