https://pupuduck.tistory.com/78에서 select 함수를 통한 IO 멀티플렉싱을 다뤘습니다. select 함수는 대부분의 운영체제에서 작동한다는 큰 강점이 있습니다. 다만 select 함수는 두 가지 큰 문제점이 있는데, 첫 번째로 모든 파일 디스크립터를 대상으로 반복문을 돌려야 한다는 것이고, select 함수를 호출할 때마다 인자로 관찰대상에 대한 정보들을 매번 전달해야 합니다. 프로그램으로서, 운영체제에게 데이터를 매번 전달하는 것은 많은 부담이 따릅니다. 따라서 운영체제에게 관찰대상에 대한 정보를 한 번만 알려주고 관찰대상의 범위나 내용에 변경이 있을 때 변경 사항만 알려줄 필요가 있습니다. 이는 운영체제가 지원을 해줘야 작동이 가능한데, 이 지원하는 방식을 리눅스에서는 e..
select
멀티플렉싱이란 하나의 통신채널을 통해 둘 이상의 데이터를 전송하는데 사용되는 기술입니다. 앞서 사용한 멀티프로세스와 달리 프로세스를 생성하지 않고 다수의 클라이언트에게 서비스를 제공할 수 있습니다. 멀티플렉싱 서버를 구현함에 있어서 가장 대표적인 방법으로는 select 함수를 사용하는 것입니다. select 함수를 호출해서 결과를 얻기까지의 과정을 간단하게 정리하면 다음과 같습니다. 1-1 파일 디스크립터의 설정 1-2 검사의 범위 지정 1-3 타임아웃의 설정 2-1 select 함수의 호출 3-1 호출 결과 확인 위 과정을 순서대로 소개하겠습니다. 1-1 파일 디스크립터 설정 select 함수를 사용하면 여러 개의 파일 디스크립터를 모와서 동시에 이들을 관찰할 수 있고, 관찰할 수 있는 항목(=이벤트)..