작성
·
224
0
IOCP 는 각각의 I/O의 결과가 큰 공용 바구니인 Completion Port에 담겨 Recv,Send,Connect,Accept,Disconnect 를 각각 의 사과?라고 가정을하면 각각의 쓰레드들이 서로 바구니에 있는 사과들을 막 가져가면서 먹고 다 먹으면 또 바구니에 있는 다른 사과를 찾아서 먹는 식으로 이해를 해보고 있습니다. 이런 관점에서는 OS가 IO가 완료되면 그 결과(5종류의 사과들)를 Completion port에 넣어준다는게 이해가 되는데
Overlapped 모델은 쓰레드마다 별도로 바구니(APC 큐)를 가지고 있고 그러면 OS가 I/O 결과(5개의 사과들)들을 어떤 쓰레드 APC큐에 넣어주는것인지 궁금합니다. 현재 쓰레드들 중 APC 큐가 비어있는애를 우선적으로 찾아서 넣어주는것인지, 처리된 모든 I/O의 결과들이 결국은 APC큐가 비어있는 쓰레드 1개가 전부 몰빵해서 받는건지 궁금합니다.
결국 Overlapped 모델은 자기(쓰레드)가 요청한 결과를 자기만 받을 수 있는거고 IOCP는 다른쓰레드가 요청한 IO 역시 다른 쓰레드가 가져가서 처리할 수 있어서(일종의 멀티 플렉싱) 더 효과적인걸로 이해되네요