본문 바로가기

서버 프로그래밍

[2009/06/24] 시그널 핸들링과 좀비 프로세스 1. 시그널(Signal) 핸들링 - 시그널이란? 1) 시스템 내의 특정상황 발생을 알리기 위해서 커널이 전달하는 신호. - 시그널 핸들러 1) 적절한 처리를 해 주는 함수. - 시그널 핸들링 1) 시그널이 발생 함에 따라 이에 대한 적절한 처리를 해 주는 것. 2. 시그널(Signal)의 종류 3. signal 함수를 이용한 시그널 핸들링 - signal 함수 1) 시그널과 시그널 핸들러를 연결해 주는 기능을 한다. #include void (*signal(int signum, void(*func)(int)))(int); 3. sigaction 함수를 이용한 시그널 핸들링 - sigaction 함수 1) 시그널과 시그널 핸들러를 연결해 주는 기능을 한다. #include int sigaction(int.. 더보기
[2009/06/24] 프로세스 & 좀비 프로세스 1. 좀비 프로세스(zombie process) - 좀비 프로세스란? 1) 프로세스 종료 후 메모리상에서 사라지지 않는 프로세스 - 좀비 프로세스의 생성 이유 1) 자식 프로세스는 부모 프로세스에게 실행 결과에 대한 값을 반환해야 한다. 2. 좀비 프로세스의 소멸1 - 소멸 방법 1) 부모 프로세스에서 자식 프로세스의 반환 값을 요구한다. - wait 함수의 사용 1) 장점 : 사용하기 간단하다. 2) 단점 : 무한 대기 상태에 빠질 수 있다. #include #include pid_t wait(int *status) 3. 좀비 프로세스의 소멸2 - 소멸 방법 1) 부모 프로세스에서 자식 프로세스의 반환 값을 요구한다. - waitpid 함수의 사용 1) wait 함수가 지니고 있는 무한 대기 상태의 문.. 더보기
[2009/06/23] fork 함수에 의한 프로세스의 생성 1. fork 함수 호출을 통한 프로세스의 생성 - fork 함수 호출을 통한 프로세스의 생성은 복사에 의한 생성이다. #include #include pid_t fork(void); 더보기
[2009/06/23] 멀티태스킹을 위한 프로세스의 이해 1. 다중 접속 서버의 구현 방법들 - 프로세스 생성을 통한 멀티태스킹(Multitasking) 서버의 구현. - select 함수에 의한 멀티플렉싱(Multiplexing) 서버의 구현. - 쓰레드를 기반으로 하는 멀티쓰레딩(Multithreading) 서버의 구현. 2. 프로세스에 대한 이해 - 프로세스란 실행되고 있는 프로그램의 기본 단위이다. - 생성된 프로세스는 운영체제의 의해 할당된 고유한 ID를 지닌다. - 하나의 프로그램 내에서 여러 개의 프로세스가 동시에 실행 될 수 있다. 더보기
[2009/06/22] Nagle 알고리즘에 대한 이해 1. Nagle 알고리즘에 대한 이해. - 네트워크상의 패킷 수를 줄이기 위해 제안된 알고리즘. - ACK를 수신해야만 다음 전송을 진행하는 알고리즘. 2. Nagle 알고리즘의 장점과 단점. - 장점 : 네트워크의 효율성이 높아진다.(적은 패킷의 양) - 단점 : 전송 속도가 느리다(ACK 수신 후 패킷 전송) - 생각해 볼 문제 : Nagle 알고리즘의 중단이 데이터 전송 속도를 무조건 향상시켜 주는 것은 아니다. 3. TCP_NODELAY - Nagle 알고리즘을 Disable 시키기 위한 옵션의 변경. - TCP 소켓은 생성시 기본적으로 Nagle 알고리즘 적용 더보기