[네트워크 프로그래밍] 열혈 TCP/IP 17장 정리(select보다 나은 epoll)
이번 챕터에서는 epoll에 대해 학습하였습니다.
select는 크게 2가지 단점이 있었습니다.
1. select 호출 후 모든 fd를 순회하며 변화가 있는지 없는지 탐색해야 한다.
2. select 호출마다 인자로 모든 fd를 전달해야 한다.
이 점을 개선한 방식이 epoll 방식 입니다.
소켓은 운영체제 것이라고 하였는데, 이때 epoll 함수는 소켓의 fd를 운영체제에게 알린 후, 그 소켓에 변경이 있다면 운영체제가 epoll을 통해 프로세스에게 알리는 방식 입니다.
하지만 select도 나름의 강점을 가지는데, 서버 접속자 수가 적고 다양한 운영체제에 호환성 있는 로직을 작성해야 할 경우가 그것 입니다.
epoll은 또한 레벨 트리거 방식과 엣지 트리거 방식이 있습니다.
레벨 트리거는, epoll로 수신한 데이터를 read 할때마다 이벤트가 등록되는 방식 입니다.
엣지 트리거는, epoll로 수신한 데이터를 read 할때(여러번 있다면 단 1번)등록되는 방식 입니다.
[참고] 윤성우의 열혈 TCP/IP 소켓 프로그래밍
댓글
댓글 쓰기