11. 11 월 컴퓨터네트워크2 멀티태스킹


서버의 행동 중 socket(), bind(), listen()의 과정을 CreateTCPServerSocket()이란 함수로 묶고, accept()를 AcceptTCPConnection()으로, receive(), send()를 HandlingTCPClient()라는 함수로 묶어서 사용.


# 클라이언트당 프로세스

멀티태스킹을 위해 fork()를 이용하여 자식 프로세스를 생성한다. 이 자식 프로세스는 receive(), send()의 역할을 수행하며 Client는 자식프로세스에게 send()하게 된다. 자식 프로세스가 종료되어도 이 프로세스가 자동으로 사라지는 것이 아니라 waitpid() 호출을 통해 좀비프로세스를 수확해야 자원이 회수된다.

 

# 클라이언트당 쓰레드

접속하는 클라이언트당 프로세스를 생성하는 방법은 자원이 많이 사용된다. 운영체제에서는 메모리, 스택, 파일/소켓 식별자들 등을 부모 프로세스의 상태 전체를 복제해야하므로 클라이언트당 쓰레드의 방법으로 사용하는 것이 좋다.


# 제한 멀티태스킹

시스템 자원의 크기에 적합한 접속 클라이언트 수를 넘을 경우 시스템 전체 자원에 대해 과부하가 발생하게 된다. 이를 막기 위해 제한 멀티태스킹을 사용한다.

이건 다음 주에...







'Network' 카테고리의 다른 글

멀티태스킹(Multi tasking)  (0) 2013.11.11
신호(Signals)  (0) 2013.11.04
UDPEchoServer  (0) 2013.10.30
소켓옵션들  (0) 2013.10.28
tcp/ip 소켓 프로그래밍 함수 소개  (0) 2013.09.16

+ Recent posts

티스토리 툴바