2013-11-24 3 views
0

"n"개의 자식 프로세스를 생성해야하며 임의의 초 수면을 대기시켜야하며, 자식 프로세스가 완료되면 부모 프로세스가 조언해야합니다. 문제는 각 하위 프로세스가 차례대로 실행되므로 병렬로 작업해야한다는 것입니다. (코드에서 나는 불과 3 자녀를 만드는거야.) 당신이 다음 한자식 프로세스를 포크와 병렬로 실행하십시오.

for(x=1;x<=3;x++) 
{ 
    pid=fork(); 
    n++; 
    srand(time(NULL)); 
    if(pid) 
    { 
    w=wait(&status);  
    printf("Process %d finished in %d seconds (Dad:%d cuenta %d)\n", 
      w, WEXITSTATUS(status), getppid(), n); 
    ... 
    } 

를 시작하기 전에 당신이 그들을에서 실행하려면 각 프로세스가 완료 될 때까지 당신은 명시 적으로 기다리고

#include<stdio.h> 
#include<stdlib.h> 
#include<unistd.h> 
#include<sys/types.h> 
#include<sys/wait.h> 

int main(void) 
{ 
pid_t pid; 
int x,zeit,status,w,n=0; 

for(x=1;x<=3;x++) 
{ 
pid=fork(); 
    n++; 
    srand(time(NULL)); 
    if(pid) 
    { 

    w=wait(&status); 

    printf("Process %d finished in %d seconds (Dad:%d cuenta %d)\n",w,WEXITSTATUS(status),getppid(),n); 

    } 
    else 
    { 
    int n; 
    zeit=rand()%3+1; 
    sleep(zeit); 
    exit(zeit); 

    } 

} 
exit(0); 
return 0; 
} 

답변

2

병렬이라면 3 가지 다른 프로세스를 만들어야하고 에서 시작하여을 완료하기 전에 기다려야합니다.

관련 문제