K 개발자
프로세스 동기화 본문
좀비 프로세스
fork 함수로 자식 프로세스를 생성하면 부모 프로세스와 자식 프로세스는 순서에 관계없이 실행되고, 먼저 실행을 마친 프로세스는 종료한다.
그러나 부모 프로세스와 자식 프로세스 사이의 종료 절차가 제대로 진행되지 않을 때가 있다.
이때 좀비 프로세스zombie process 같은 불안정 상태의 프로세스가 발생하는데, 이를 방지하려면 부모 프로세스와 자식 프로세스를 동기화해야 한다.
프로세스 동기화
프로세스 동기화 : wait(3)
#include <sys/types.h>
#include <sys/wait.h>
pid_t wait(int *stat_loc);
// stat_loc : 상태 정보를 저장할 주소
특정 자식 프로세스와 동기화 : waitpid(3)
#include <sys/types.h>
#include <sys/wait.h>
pid_t waitpid(pid_t pid, int *stat_loc, int options);
// pid : 종료를 기다리는 PID, stat_loc : 종료 상태값을 저장할 주소, options : waitpid 함수의 리턴 조건
Comments