C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[6778] Re:[질문]:Re:Builder 서버 소켓의 용량은?
박지훈.임프 [cbuilder] 2293 읽음    2001-04-12 21:07
임펠리테리입니다.

아래분이 말씀하셨다시피 유닉스에서는 fork를 써서 프로세스를 새로 생성합니다만, 윈도우즈에서는 보통 쓰레드를 만듭니다. 유닉스계열과 윈도우즈계열의 특징 차이라고 할까, 유닉스에서는 프로세스가 더 안정적이고 많이 쓰이지만, 윈도우즈에서는 쓰레드가 더 안정적이고 많이 쓰입니다. 이유를 다 설명하려면 넘 길구요.

그런데 이 쓰레드는 프로세스와 달리 물리적인 갯수의 한계가 있습니다. 잘 알려져 있지는 않습니다만. 한 프로세스당 생성할 수 있는 쓰레드의 갯수는, 그 프로세스에서 총 사용하는 메모리의 양에 따라 더 작아질 수도 있습니다만, 대략 2000개가 조금 넘습니다. (이것은 윈도우즈 커널에서 각 쓰레드에 스택을 할당하는 방법상의 문제입니다.) 그래서 대략 2000개가 좀 넘어가면 메모리부족으로 더이상 쓰레드가 생성되지 않는 시점이 발생합니다.

또 한가지. 일반적으로 인스턴트 메신저의 경우, 버디리스트 등 서버로부터 꼭 받아야 할 정보 외에는, 클라이언트끼리 직접 통신을 합니다. 만약 인스턴트 메신저에서 바로 옆 직원에게 메시지를 보내기 위해 서버를 거친다면 미국에 서버가 있는 경우 미국까지 패킷이 돌아서 올거고, 그럼 엄청나게 느려질 뿐 아니라 아무리 서버를 증설해도 서버가 부하를 감당하지도 못합니다. 그래서, 서버로부터 자신이 등록한 친구들의 주소 등의 정보를 받아놓고, 그 주소로 직접 메시지를 날리는 방법이 일반적이지요.

그럼 참고하시길...


최해술 님이 쓰신 글 :
: 답변감사합니다. 한가지 더 알고 싶어서요
: 그럼 한 서버에서 동시에 생성할 수 있는 fork의 수는 얼마나 되나요?
: 서버가 한대 있고 나머지 클라이언트가 서버를 통해 채팅을 하게 된다면
: 모든 클라이언트에 대해서 fork가 생성될것 같은데 PC의 프로세스란 것이 한계가 있는것으로 알고 있거든요
:

+ -

관련 글 리스트
6763 Builder 서버 소켓의 용량은? 최해술 2152 2001/04/12
6769     Re:Builder 서버 소켓의 용량은? ^^; 2306 2001/04/12
6771         [질문]:Re:Builder 서버 소켓의 용량은? 최해술 2250 2001/04/12
6778             Re:[질문]:Re:Builder 서버 소켓의 용량은? 박지훈.임프 2293 2001/04/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.