epoll은 감시 집합을 커널에 보관하고 ready list만 돌려준다
select/poll처럼 매번 전체 fd 배열을 넘기지 않고, 등록된 관심 이벤트 중 준비된 항목만 받는다.
1 epoll_create감시 객체 생성커널 쪽 registry 준비
2 epoll_ctl ADDfd와 관심 이벤트 등록read/write/edge 조건 저장
3 epoll_waitready list 수신준비된 이벤트만 사용자 공간으로
4 handler짧게 처리버퍼를 비우거나 queue 갱신
5 MOD/DEL관심 변경 또는 제거수명 종료 fd 정리
방식
매 호출 비용
잘 맞는 상황
select
전체 fd set 재전달
작은 fd 수와 단순 예제
poll
배열 전체 검사
fd 번호 제한은 덜하지만 선형 비용
epoll
등록 후 ready list 중심
많은 동시 연결과 sparse readiness