Microsoft I/O completion port (IOCP):
→Not Linux !!
POSIX Asynchronous I/O (AIO):
→Not yet supported on Linux, not fully supported by other Unix!
→Problems:
•Event completion is not transparent,
•Restricted to stream descriptors,
•Scalability,
•Soft real-time
작동방식은 약간 다르지만 기본적인 원리는 비슷한 epoll이 있습니다..
작동방식은 약간 다르지만 기본적인 원리는 비슷한 epoll이 있습니다..
솔라리스의 /dev/poll을 리눅스로 포팅한것으로써 사용할려면 2.4대에서는 패치를해야되며 2.5최신개발버젼에는 포함되어있습니다..
그외 BSD에선 kqueue라는걸씁니다..
감사합니다.
정말 큰 도움이 되었습니다.
비슷한 질문에 대한 답변인데 한번 읽어보시면 도움이 될것 같습니다.
비슷한 질문에 대한 답변인데 한번 읽어보시면 도움이 될것 같습니다.
http://bbs.kldp.org/viewtopic.php?t=4411&highlight=kqueue
우리 모두 리얼리스트가 되자. 그러나 가슴에 이룰 수 없는 꿈을 가지자
iocp와 /dev/poll, kqueue 완전히 다르지 않나요?
음.. iocp와 (/dev/poll, kqueue)는 완전히 다른 계념이지요..
iocp의 핵심은 비동기 입출력후에 통지를 가능하게 해주는 것인데
poll이나 kqueue는 select 처럼 멀티 플렉싱을 어떻게 효율적으로
하느냐의 개선안이지 iocp와는 다르다고 봅니다.
리눅스에서 iocp처럼 되는 모델은 존재하지 않구요
imb 쪽에서 nt와 비슷한 iocp를 본적이 있습니다.
http://publib.boulder.ibm.com/iseries/v5r1/ic2924/info/rzab6/rzab6asynchi0.htm
울랄라~ 호기심 천국~!!
http://www.ezdoum.com
POSIX AIO
POSIX AIO(Asynchronous I/O) 가 그런 비동기 I/O를 구현하는것으로 보입니다.
http://www.linux.ericsson.ca/ocg/Frederic_Rossi_Asynch_Event_Mech.pdf
http://www.linux.ericsson.ca/aem/
위의 문서와 싸이트를 참고하세요
아래는 위 문서에서 따온글
Existing asynchronous mechanisms
Microsoft I/O completion port (IOCP):
→Not Linux !!
POSIX Asynchronous I/O (AIO):
→Not yet supported on Linux, not fully supported by other Unix!
→Problems:
•Event completion is not transparent,
•Restricted to stream descriptors,
•Scalability,
•Soft real-time
와우~ 도움 많이 되네요..
올려 주신 자료들 요긴하게 참고하도록 하겠습니다 ^^
KLDP Q&A 게시판이 개발자 분들 수준이 아주 높으신 것 같습니다..
윈도우에서는 Overlapped I/O로 asynchronous I/O가
윈도우에서는 Overlapped I/O로 asynchronous I/O가 가능하고 IOCP를 통해 효율적이고 간단한 Thread Pooling이 가능합니다.
윈2000이상에 있는 BindIOCompletionCallback API를 쓰면 Thread Pooling 관리까지 자체 heuristic을 통해 해줍니다;;
POSIX.4의 aio나 kqueue나 epoll등으로 I/O처리까지는 효율적으로 할 수 있는 것 같은데요 그 후에 Thread Pooling을 통한 처리는 보통 어떻게 하나요?
저는 만들어서 씁니다.
흐흐 없으면 만들어서 써야겠죠.
오렐리 쓰레드 책 내용중에 tpool소스가 있는데
그거 적당히 수정해서 사용중인데 괜찮은거 같습니다.
책소개 & 예제파일
http://www.ezdoum.com/stories.php?story=02/05/09/0348890
하지만 직접 만들어 쓴다면 닷넷의 쓰레드 풀을 참고 하겠습니다.
닷넷에서 제공하는 쓰레드 풀의 인터페이스가 깔끔하더군요
그걸 흉내내서 구현해도 좋을듯 합니다.
(쓰레드 관련 컨디션처리나 잠금 관련도 깔끔했습니다.)
울랄라~ 호기심 천국~!!
http://www.ezdoum.com
댓글 달기