Homework #6 (1/3) 다음을 수행한 후, 화면(혹은 파일)을 출력하여 제출한다. 프로세스 관리, Compile & Makefile 다음을 수행한 후, 화면(혹은 파일)을 출력하여 제출한다. 1. 다음 순서에 따라 수행하여 파일 ps_result를 만든다. 1) 10만초를 쉬는 명령을 background job으로 수행한다. (sleep 100000) 2) 20만초를 쉬는 명령을 foreground job으로 수행한다. (sleep 200000) 3) 20만초 쉬는 명령을 background job으로 전환한다. 4) 30만초를 쉬는 명령을 background job으로 수행한다. (sleep 300000) 5) 현재의 프로세스 상태를 ps 명령을 사용하여 ps_result에 받는다. (ps –f 및 redirection) 6) 현재의 프로세스 상태를 job 명령을 사용하여 job_result에 받는다. (job 및 redirection) 7) 10만초 쉬는 명령을 프로세스 ID를 사용하여 종료시킨다. (kill PID) 8) 현재의 프로세스 상태를 ps_result, job_result에 각각 append한다. (ps –f, job 및 redirection) 9) 20만초 쉬는 명령을 job ID를 사용하여 종료시킨다. (kill %jobID) 10) 현재의 프로세스 상태를 ps_result, job_result에 각각 append한다. (ps –f, job 및 redirection)
Homework #6 (2/3) 2. 다음 순서에 따라 수행하고, 그 과정의 화면을 캡쳐한다. 프로세스 관리, Compile & Makefile 2. 다음 순서에 따라 수행하고, 그 과정의 화면을 캡쳐한다. 1) /tmp 디렉토리에서 다음 파일을 자신의 디렉토리로 복사한다. /tmp/div_multi.c (혹은 ~ysmoon/tmp/div_multi.c) 2) 다운로드한 div_multi.c 파일을 컴파일하여 div_multi1 실행 파일을 만든다. 3) 상기 div_multi.c 파일을 최적화 컴파일하여 div_multi2 실행 파일을 만든다. (주의: 옵션 –O3 사용) 4) diff 명령어를 사용하여 div_multi1과 div_multi2가 다름을 확인한다. 5) 상기 div_multi1과 div_multi2의 수행 시간을 다음과 같이 측정한다. $ time div_multi1 $ time div_multi2
Homework #6 (3/3) Due Date: 10월 31일(수) 프로세스 관리, Compile & Makefile 3. 다음과 같은 파일 dependency가 있을 때의 Makefile을 작성한다. (main() 함수는 각각 표시된 파일에 있는 것으로 가정한다.) Due Date: 10월 31일(수) read_n_write rnw1.o writeB.o writeA.o readB.o readA.o write_only read_only write.h rnw.h rnw2.o writeB.c writeA.c main() rnw1.c rnw2.c read.h readB.c readA.c rnw_main.c rnw_main.o