본문 바로가기

[+] Information/[-] Network

[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] 좀비 프로세스 예제(zombie.c, wait.c, waitpid.c) /* zombie.c */ #include #include #include int main(int argc, char **argv) { pid_t pid; int data=10; pid=fork(); if(pid 더보기
[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.c) /* fork.c */ #include #include #include int main(int argc, char **argv) { pid_t pid; int data=10; pid=fork(); if(pid==-1) printf("fork 실패, 프로세스 id : %d \n", pid); printf("fork 성공, 프로세스 id : %d \n", pid); if(pid==0) /* 자식 프로세스라면 */ data+=10; else /* 부모 프로세스라면 */ data-=10; printf("data : %d \n", data); return 0; } 더보기
[2009/06/23] fork 함수에 의한 프로세스의 생성 1. fork 함수 호출을 통한 프로세스의 생성 - fork 함수 호출을 통한 프로세스의 생성은 복사에 의한 생성이다. #include #include pid_t fork(void); 더보기