동시에 여러개의 child_process를 만들려고 하는데요...
글쓴이: seongwon1 / 작성시간: 월, 2003/11/24 - 1:45오전
안녕하세요?
동시에 여러개의 child_process를 만들려고 합니다.
그래서 코드를
int i int pid[3] for(i = 0; i< 3; i++) pid[i] = fork();
이런식으로 사용을 해보려고 하는데요.
fork()를 통해 만들어진 각 프로세스의 아이디가 이 같은 경우엔 어떻게
되는 건가요? 그리고 각 프로세스를 제어하려면 어떤식으로 만들어야
되는지 참 막막하네요. 차일드 프로세스를 하나만 만들 경우에는 그냥 switch문
을 사용하면 되겠지만 이건 그렇게는 도저히 안될 것 같고
if문을 사용하자니 잘 모르겠고 말이죠.
특히 프로세스 대기 부분을 어떤식으로 구현해야 할지 정말 막막합니다.
프로세스 대기 부분을 세마포어로 만들면 될까요?
여러 고수님들의 도움 부탁드립니다.
좋은 하루 보내세요.[/code]
Forums:
fork() 함수 실행시 리턴값으로부모프로세스와 자식 프로세스를 구분
fork() 함수 실행시 리턴값으로
부모프로세스와 자식 프로세스를 구분합니다.
0이면 자식 프로세스 자신이고 0이상 값으면 부모 프로세스가 되겠네요.
저는 매트릭스 계산한다고 3개의 자식 프로세스가 필요해서
저런식으로 호출하고 wait()로 자식 프로세스가 종료될때까지 기다렸네요.
프로세스 제어
여러 프로세스를 제어하는 방법 중 하나를 소개합니다.
우선 여러 프로세스를 생성하면서 그 pid를 shared memory 방식으로
저장을 합니다.
그리고 생성한 프로세스들을 특정 시그널(SIGUSR1, SIGUSR2등)을 통해서만 실행할 수 있게 시그널 핸들러를 만들고, 필요시 시그널을 발생시키면 그 프로세스는 동작을 할수 있습니다.
또 주기적으로 프로세스들을 동작시키려면 timer를 하나 생성하고 그 주기마다
위에서 정해놓은 시그널을 발생시키면 되겠지요..
댓글 달기