DirectPlay8에 대하여 대략적으로 살펴보았습니다
효율적인 차이는 아직 알아내지 못했으나 인터페이스에서의 이전
버젼과의 가장 큰 차이는 네트웍 구조에 있어 좀 더 구체적으로
구현되어 있다는것 입니다.
이전 버젼은 기본적으로 single thread형태로 구성되어 있어
어플리케이션메세지와 소켓메세지를 한 메세지 프로시저에서
처리함으로써 병목현상을 야기했었습니다.
그래서 사용자들은 이를 막기위해 수신 담당하는 thread와
받은 메세지를 dispatch하는 부분을 직접 만들어줘야했었지요
그에 비해 DP8에서는 이를 지원하기위해 multi-thread 형태로
구성되어 있으며 내부적으로 thread pooling 을 구현해 놓은것으로
보입니다.
아시는 분은 아시겠지만, thread pooling이란 스레드를 여러개
띄워놓고 요청이 있을시 잠자는 스레들 깨워 요청을 처리하겠끔
하는것인데요
Window계열에서는 2000에서 I/O Completion Port라는 방식을 써서
스레드풀링을 구현하는 것이 가장 좋은 네트웍모델이라 알려져 있고
DP8은 이를 지원합니다.
이전버젼에서 DP의 Recevie 함수를 주기적으로 돌려 소켓메세지를
받았던것과는 달리 DP8에서는 Recevie라는 함수자체가 사라져 있구요
대신 Thread가 깨워지면 실행하게될 Callback을 정의합니다.
peer-to-peer와 Server-client 토폴로지에 따라 각각 최적화된
인터페이스를 씁니다.
이번엔 직접 socket프로그래밍을 하는 것과 얼마나 효율적 차이가
있을지 궁금한데. 일단은 DirectPlay의 사용자층도 조금씩 늘어갈 것
같은 예감입니다.
틀린부분이나 의견있으시면 Re달아주세요..
HiDy
'내발자국[동호회]' 카테고리의 다른 글
| [A] ASE의 TM_ROW (0) | 2001.01.06 |
|---|---|
| 사회생활 (0) | 2000.12.08 |
| [답변] 2091 추가 (0) | 2000.12.07 |
| [답변] 2091 SetEvent (0) | 2000.12.07 |
| 내가 아는 어떤 아름다움은 (0) | 2000.11.28 |