BlockingSocket1 (IOModel)Epoll 멀티플렉싱 io 모델의 select는 아무래도 한계가 뚜렸했다. 매 순간 해당 소켓이 이벤트를 받았는지 직접 확인해 줘야 했고 커널로 감시하고자 하는 FD의 모음을 넘겨야 했다. 만약 해당 FD_SET을 처음 한번 등록하고 우리는 FD의 추가,삭제만 해주고 커널에 넘겨주지 않아도 알아서 관리해서 이벤트가 통지된 FD들만 따로 알려주면 어떨까? 이것이 바로 리눅스에서 제공하는 epoll이다. 1. epoll 과정 먼저 epoll_create(epoll 인스턴스의 사이즈)를 통해 커널이 따로 관리하는 파일디스크립터의 저장소(epoll인스턴스)를 만든다. 해당 함수의 반환은 epoll인스턴스의 fd 넘버이다. 그 후 관찰대상이 되는 fd를 등록하는 과정으로 epoll_ctl(epoll인스턴스, 추가할지 삭제할.. 2020. 10. 5. 이전 1 다음