리눅스 멀티프로세서 관련 질문드려요
안녕하세요~
학부생인데 리눅스 멀티프로세 관련 과제중인데 아직 감이 안잡혀서 도움을 청합니다 ㅠ
일단 소스파일 2개 (prate.c, pmanipulator.c)로 구현합니다.
명세는 다음과 같습니다.
커맨드 창에 3개의 파라미터 -> prate <-p percentage> -d플래그 그리고 이라고 실행시키면
prate는 1. fork() 자식 프로세스를 생성하고
자식 프로세스는 exec pmanipulator 실행한다.
(한번에 생성될 수 있는 최대 프로세스 갯수는 5개)
2. wait() 함수 사용
자식 프로세스가 종료하면,
-d옵션에 따라 자식 프로세스의 결과를 기록한다.
3. number_of_process 수만큼(1, 2반복)
4. 최종 결과(percentage)를 출력한다.
pmanipulator는 1. percentage에 따라 success 또는 failure를 리턴한다.
입니다.
경우에 따라,
pmanipulator에게 percentage, -d 넘겨주고,
pmanipulator에서 success/fail 출력하는 것도 가능합니다.
예)> prate -p 30 -d 4
PID 8686 returned failure
PID 8787 returned success
PID 6868 returned failure
PID 9868 returned failure
Created 4 process
success : 25 %
failure : 75 %
----------------------------
제 질문은요
(1)
1. 에서 자식프로세서에서 pmanipulator를 어떻게 실행시키는건지 모르겠습니다.
execl("pmanipulator.c") ?? 이런식인가요?....
어떻게 실행시키는지 알고 싶습니다.
(2)
prate에서 fork로 자식프로세스를 만들고 자식프로세스가 죽으면 WEXITSTATUS 함수로
부모프로세서에게 success 또는 failure를 리턴한다. 이것을 number_of_process만큼 반복문으로 구성하면
되는 건가요??
(3)
부모프로세서에서 fork 호출후 자식프로세서에서 execl pmanipulator를 실행하는데 이 때 부모프로세서에서
자식의 execl pmanipulator에게 값을 넘겨주려면 어떻게 해야하나요?
---------------------
리눅스 멀티프로세서는 처음이라 궁금한게 많습니다. ㅠ 꼭 도움 부탁드릴게요. 감사합니다 !
댓글 달기