Select 모델 - 장점) 윈도우/리눅스 공통으로 사용할 수 있기 때문에 이식성이 높다. - 단점) 성능 최하 (매번 등록 비용), 64개 제한 WSAEventSelect 모델 - 장점) 비교적 뛰어난 성능, MFC 소켓 클래스에서 내부적으로 사용하는 모델이므로, 학습해두면 MFC 소켓 클래스의 내부 동작을 이해하고자 할 때 도움이 된다. - 단점) 64개 제한, 단일 윈도우 프로시저에서 일반 윈도우 메시지와 소켓 메시지를 처리해야 하므로 성능 저하의 요인이 된다. Overlapped (이벤트 기반) - 장점) 성능 - 단점) 64개 제한 Overlapped (콜백 기반) - 장점) 성능 - 단점) 모든 비동기 소켓 함수에서 사용 가능하진 않음 (accept). 빈번한 Alertable Wait으로 인..
입출력 모델중에서 가장 뛰어난 성능을 제공합니다. 핵심은 **입출력 완료 포트(I/O completion port)**라는 윈도우 운영체제가 제공하는 구조를 이해하고 활용하는 것입니다. 이것은 비동기 입출력 결과와 이 결과를 처리할 스레드에 관한 정보를 담고 있는 구조로, Overlapped 모델(콜백)에서 소개한 APC 큐와 비슷한 개념입니다. 실행 함수 CreateIoCompletionPort 처음 CP 생성시 HANDLE 반환 등록할 소켓 생성된 CP HANDLE key값 사용 코어 갯수(0) GetQueuedCompletionStatus WSARecv WSASend CP 결과 처리를 GetQueuedCompletionStatus APC → Completion Port로 변환(쓰레드마다 있지 않고 ..
실행 함수(비동기 + 논-블로킹) WSASend 비동기 입출력 소켓 WSABUF 배열의 시작 주소 + 개수 보내고/받은 바이트 수 상세 옵션인데 0 WSAOVERLAPPED 구조체 주소값 입출력이 완료되면 OS가 호출할 콜백 함수 void CompletionRoutin() 오류 발생 시 0 아닌 값 전송 바이트 수 비동기 입출력 함수 호출 시 넘겨준 WSAOVERLAPPED 구조체의 주소값 0 비동기 입출력 함수 완료되면, 쓰레드마다 있는 APC큐(Asynchronous procedure call queue)에 일감이 쌓임. APC큐는 비동기 입출력 결과 저장을 위해 운영체제가 각 스레드에 할당하는 메모리 영역입니다. Overlapped (Completion Routine 코드 작동 방식) 비동기 입출력..
- Total
- Today
- Yesterday
- 개발
- 지뢰찾기
- 인제대학교
- Select모델
- 알고리즘
- 야경
- STL
- 워셜알고리즘
- Dreamhack
- 더블버퍼링
- queue
- 자료구조
- 학교
- 링크드 리스트
- 고양이
- 시스템보안
- 정보보안
- 레지스터
- 컨퍼런스
- 백준
- 멀티쓰레드
- 보안
- BFS
- 드림핵
- c++
- 스레드풀
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |