Homework #10 (1/4) 프로그램을 작성하고, 프로그램과 실행 결과를 프린트하여 제출한다. 1. 부모가 자식 둘을 생성하고, 각 자식은 다시 손자 둘을 생성하는 프로그램을 작성하라. 부모는 자식 둘을 생성한 후, “I am a parent(pid). I created two children!”을 출력하고 종료한다. 각 자식은 손자 둘을 생성한 후, “I am a child(pid). I created two grandchildren!”을 출력하고 종료한다. 각 손자는 “I am a grandchild(pid). I do not creat any descendant!”를 출력하고 종료한다. 상기 문구에서 “pid”는 해당 프로세스의 Process ID를 출력하라는 의미이다.
Homework #10 (2/4) 2. 다음 프로그램 두 개(myprog1, myprog2)를 작성한 후, 지시에 따라 프로그램을 작성하라.
Homework #10 (3/4) 2. (계속) 작성하는 프로그램의 이름은 myexec 이다. myexec의 사용법은 “$ myexec [a|b]”이다. 즉, 입력으로 ‘a’ 혹은 ‘b’를 받는다. 파라메터로 ‘a’를 입력하면, “myprog1 15”를 수행하되, exec() 함수로는 execl()을 사용한다. 파라메터로 ‘b’를 입력하면, “myprog2 15”를 수행하되, exec() 함수로는 execlp()를 사용한다.
Homework #10 (4/4) Due Date: 11/25(수) 3. 시그널 SIGUSR1(10)과 SIGUSR2(12)을 받아 처리하는 프로그램을 작성한다. 프로그램은 기본적으로 무한 루프를 수행하면서, 시그널을 기다린다. SIGUSR1을 받으면, “Oops! SIGUSR1!”를 출력하되 죽지는 않는다. SIGUSR2를 받으면, “Ooooops! SIGUSR2!”를 출력하고 죽는다. Due Date: 11/25(수)