SELECT는
1. 애플리케이션은 요청이 들어오면 시스템 콜을 통해 OS에 소켓을 만듬 커널은 FD 반환
2. 애플리케이션은 FD배열 비트맵을 가지고 있음
3. select()를 통해 커널에게 이 배열을 감시해달라고 부탁
4. 이벤트가 발생하고 커널은 select()의 응답을 반환
5. 애플리케이션은 다시 FD배열 비트맵으로 select()를 실행
select 방식의 단점 : select를 호출할 때마다 관찰대상에 대한 정보를 매번 운영체제에게 전달해야한다.
epoll은
1. 상태 변화 확인을 위한 전체 파일 디스크립터 대상 반복문이 없다.
2. select에 대응하는 epoll_wait 함수 호출 시, 관찰 대상의 정보를 매번 전달할 필요가 없다.
select에서는 애플리케이션이 FD배열 비트맵을 만들었지만 epoll은 운영체제가 그 일을 담당한다.
epoll은 전체 FD배열을 운영체제에 전달하지 않고 epoll_ctl(DEL/SET)으로 해당 소켓만 알려주는 방식이다.
'운영체제 > IO' 카테고리의 다른 글
| I/O 멀티플렉싱 - 엣지 트리거, 레벨 트리거 (0) | 2026.05.05 |
|---|---|
| I/O 멀티플렉싱 - select (0) | 2026.05.05 |