0201

학교

[컴퓨터 네트워크] Socket programming (Part 2) - (1)

1. I/O 멀티플렉싱 프로그래밍

[1] 다중 접속 서버

  • 다중 접속 서버

    • 여러 클라이언트에 대해 여러 개의 연결을 허용하고 동시에 서비스를 제공한다.

  • 멀티프로세스 기반 서버 (생략)

    • 여러 클라이언트를 위해 여러 개의 프로세스를 생성한다.

  • 멀티플렉싱 기반 서버

    • 여러 클라이언트를 위한 I/O 클라이언트 그룹화

  • 멀티스레드 기반 서버

    • 여러 클라이언트를 위해 여러 개의 스레드를 생성한다.

[2] 멀티프로세스 서버의 대안

  • 멀티프로세스 서버의 단점

    • 빈번한 프로세스 생성으로 성능 저하가 발생한다.

    • 여러 프로세스의 흐름을 고려해야 하므로 구현이 어렵다.

    • 프로세스 간 통신이 필요한 경우 서버 구현이 복잡해진다.

  • 멀티프로세스 서버의 대안

    • 하나의 프로세스가 여러 클라이언트에게 서비스를 제공한다.

    • 하나의 프로세스가 여러 소켓을 처리할 수 있는 방법이 필요하다.• I/O 멀티플렉싱이 필요하다.