UNIX System Programming by Yang-Sae Moon
Page 1
Homework #6 (1/3)
다음을 수행한 후 , 화면 ( 혹은 파일 ) 을 출력하여 제출한다 .
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 및 redi- rection)
9) 20만초 쉬는 명령을 job ID 를 사용하여 종료시킨다 . (kill %jobID)
10) 현재의 프로세스 상태를 ps_result, job_result 에 각각 append 한다 . (ps –f, job 및 redi- rection)
프로세스 관리 , Compile & Makefile
UNIX System Programming by Yang-Sae Moon
Page 2
Homework #6 (2/3)
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
프로세스 관리 , Compile & Makefile
UNIX System Programming by Yang-Sae Moon
Page 3
Homework #6 (3/3)
3. 다음과 같은 파일 dependency 가 있을 때의 Makefile 을 작성한다 .
(main() 함수는 각각 표시된 파일에 있는 것으로 가정한다 .)
과제 제출 : 4 월 29 일 ( 수 ) - 이루리 제출
read_n_write
rnw1.o writeB.o
writeA.o readA.o readB.o
write_only read_only
write.h
rnw.h
rnw2.o
writeB.c writeA.c
main() rnw1.c rnw2.c read.h readB.c
main() readA.c
rnw_main.c main() rnw_main.o
프로세스 관리 , Compile & Makefile