유닉스 이론과 실습 / (Report) - 8장 연습문제
Posted 2007/11/09 20:06, Filed under: 학과수업들/유닉스 이론과 실습1. 유닉스의 프로세스에는 어떤 종류가 있는지 설명하시오.
ㆍ데몬(daemon) 프로세스 : 유닉스 커널에 의해 실행되고 특정 서비스를 제공
ㆍ부모(process) 프로세스 : 다른 프로세스를 만드는 프로세스
ㆍ자식(child) 프로세스 : 부모 프로세스에 의해 만들어지는 프로세스
ㆍ고아(orphan) 프로세스 : 결과를 돌려주기 전에 부모 프로세스가 먼저 종료되어 버린 자식 프로세스
ㆍ좀비(zombie) 프로세스 : 이미 사용 중인 모든 자원을 반납했지만 부모 프로세스로부터
작업 종료에 대한 승인을 받지 못한 상태의 프로세스
2. guest 사용자가 실행시킨 프로세스를 모두 찾기 위해 사용할 수 있는
명령에는 무엇이 있는지 설명하시오.
ps : 프로세스 정보를 볼 수 있는 대표적인 명령어로, 프로세스 정보를 보여줌
-e : 시스템에서 실행 중인 모든 프로세스 정보 출력
-f : 각 프로세스에 대한 자세한 정보 출력
ps -ef | grep guest
3. 포그라운드 작업과 백그라운드 작업의 차이를 설명하시오.
포그라운드 방식으로 작업을 하면 명령을 한 번에 하나씩 실행시키므로 동시에 여러 개의
프로세스를 실행시킬 수 없다. 반면, 백그라운드 처리는 동시에 여러 개의 프로세스를 실행
시킬 수 있다. 백그라운드 방식으로 명령을 실행시키면 명령의 처리와 관계없이 곧바로
프롬프트가 출력되어 사용자는 다른 작업을 계속할 수 있다.
4. 현재 실행 중인 포그라운드 작업을 백그라운드 작업으로 전환시키는
방법을 아래 예를 사용해 설명해보시오.
bg [%작업번호] : 해당 작업을 백그라운드 작업으로 전환
실행 중인 포그라운드 작업을 ^Z 명령으로 잠시 중단 시키고,
bg 명령으로 백그라운드로 작업을 전환한다.
5. 현재 실행 중인 백그라운드 작업을 포그라운드 작업으로 전환시키는
방법을 아래 예를 사용해 설명하시오.
fg %1
6. who 명령과 w 명령의 차이점을 설명하시오.
ㆍwho : 사용자의 단말기 번호, 로그인한 시간 정보를 보여줌
ㆍw : 시스템 정보와 사용자 정보를 함께 보여줌
※ 다음 질문에 맞는 적당한 명령을 ps -f 명령의 결과가 아래와 같을 때,
7번~9번 물음에 답하시오.
7. 프로세스의 부모-자식 관계를 설명하시오.
부모(process) 프로세스 : 다른 프로세스를 만드는 프로세스
자식(child) 프로세스 : 부모 프로세스에 의해 만들어지는 프로세스
PPID : 부모 프로세스 번호
PID : 프로세스 번호
15701 → 15710(ksh) → 15721(sh) → 15761(vi test.c)
15761(vi test.c)의 부모 프로세스는 15721(sh)
15721(sh)의 부모 프로세스는 15710(ksh)
15710(ksh)의 부모 프로세스는 15701
8. vi test.c 프로세스를 강제로 종료시키는 과정을 순서대로 설명하시오.
kill : 인자로 지정한 프로세스에게 시그널을 전달
-9 : 프로세스를 강제로 종료 (시그널)
kill -9 15761
9. sh 프로세스와 vi test.c 프로세스를 함께 종료시키기 위한 가장
간단한 명령은 무엇이며, 그 이유를 설명하시오.
kill : 인자로 지정한 프로세스에게 시그널을 전달
-9 : 프로세스를 강제로 종료 (시그널)
kill -9 15721
15721(sh)의 자식 프로세스는 15761(vi test.c) 이므로
부모 프로세스인 15721(sh)를 강제로 종료하면 자식 프로세스인
15761(vi test.c)도 함께 종료된다.
10. 아래와 같이 백그라운드로 실행 중인 작업이 3개가 있다.
이중 3번 작업을 종료시키는 명령을 기술하시오.
kill %3
11. find / -name test 명령이 로그아웃한 다음에도 계속 동작하도록
실행시키는 명령을 기술하시오.
nohup 명령 & : 로그아웃을 한 뒤에도 백그라운드 작업을 계속 실행시킨다.
nohup find /-name test &
ㆍ데몬(daemon) 프로세스 : 유닉스 커널에 의해 실행되고 특정 서비스를 제공
ㆍ부모(process) 프로세스 : 다른 프로세스를 만드는 프로세스
ㆍ자식(child) 프로세스 : 부모 프로세스에 의해 만들어지는 프로세스
ㆍ고아(orphan) 프로세스 : 결과를 돌려주기 전에 부모 프로세스가 먼저 종료되어 버린 자식 프로세스
ㆍ좀비(zombie) 프로세스 : 이미 사용 중인 모든 자원을 반납했지만 부모 프로세스로부터
작업 종료에 대한 승인을 받지 못한 상태의 프로세스
2. guest 사용자가 실행시킨 프로세스를 모두 찾기 위해 사용할 수 있는
명령에는 무엇이 있는지 설명하시오.
ps : 프로세스 정보를 볼 수 있는 대표적인 명령어로, 프로세스 정보를 보여줌
-e : 시스템에서 실행 중인 모든 프로세스 정보 출력
-f : 각 프로세스에 대한 자세한 정보 출력
ps -ef | grep guest
3. 포그라운드 작업과 백그라운드 작업의 차이를 설명하시오.
포그라운드 방식으로 작업을 하면 명령을 한 번에 하나씩 실행시키므로 동시에 여러 개의
프로세스를 실행시킬 수 없다. 반면, 백그라운드 처리는 동시에 여러 개의 프로세스를 실행
시킬 수 있다. 백그라운드 방식으로 명령을 실행시키면 명령의 처리와 관계없이 곧바로
프롬프트가 출력되어 사용자는 다른 작업을 계속할 수 있다.
4. 현재 실행 중인 포그라운드 작업을 백그라운드 작업으로 전환시키는
방법을 아래 예를 사용해 설명해보시오.
$ find / -name test
^Z 또는 stop [%작업번호] : 포그라운드 작업을 잠시 중단bg [%작업번호] : 해당 작업을 백그라운드 작업으로 전환
실행 중인 포그라운드 작업을 ^Z 명령으로 잠시 중단 시키고,
bg 명령으로 백그라운드로 작업을 전환한다.
5. 현재 실행 중인 백그라운드 작업을 포그라운드 작업으로 전환시키는
방법을 아래 예를 사용해 설명하시오.
$ jobs
[1] + 실행 중 sleep 100
fg [%작업번호] : 해당 작업을 포그라운드 작업으로 전환[1] + 실행 중 sleep 100
fg %1
6. who 명령과 w 명령의 차이점을 설명하시오.
ㆍwho : 사용자의 단말기 번호, 로그인한 시간 정보를 보여줌
ㆍw : 시스템 정보와 사용자 정보를 함께 보여줌
※ 다음 질문에 맞는 적당한 명령을 ps -f 명령의 결과가 아래와 같을 때,
7번~9번 물음에 답하시오.
$ ps -f
UID PID PPID C STIME TTY TIME CMD
user1 15761 15721 0 18:14:17 pts/1 0:00 vi test.c
user1 15721 15710 0 18:14:09 pts/1 0.00 sh
user1 15710 15701 0 18:12:59 pts/1 0.00 -ksh
UID PID PPID C STIME TTY TIME CMD
user1 15761 15721 0 18:14:17 pts/1 0:00 vi test.c
user1 15721 15710 0 18:14:09 pts/1 0.00 sh
user1 15710 15701 0 18:12:59 pts/1 0.00 -ksh
7. 프로세스의 부모-자식 관계를 설명하시오.
부모(process) 프로세스 : 다른 프로세스를 만드는 프로세스
자식(child) 프로세스 : 부모 프로세스에 의해 만들어지는 프로세스
PPID : 부모 프로세스 번호
PID : 프로세스 번호
15701 → 15710(ksh) → 15721(sh) → 15761(vi test.c)
15761(vi test.c)의 부모 프로세스는 15721(sh)
15721(sh)의 부모 프로세스는 15710(ksh)
15710(ksh)의 부모 프로세스는 15701
8. vi test.c 프로세스를 강제로 종료시키는 과정을 순서대로 설명하시오.
kill : 인자로 지정한 프로세스에게 시그널을 전달
-9 : 프로세스를 강제로 종료 (시그널)
kill -9 15761
9. sh 프로세스와 vi test.c 프로세스를 함께 종료시키기 위한 가장
간단한 명령은 무엇이며, 그 이유를 설명하시오.
kill : 인자로 지정한 프로세스에게 시그널을 전달
-9 : 프로세스를 강제로 종료 (시그널)
kill -9 15721
15721(sh)의 자식 프로세스는 15761(vi test.c) 이므로
부모 프로세스인 15721(sh)를 강제로 종료하면 자식 프로세스인
15761(vi test.c)도 함께 종료된다.
10. 아래와 같이 백그라운드로 실행 중인 작업이 3개가 있다.
이중 3번 작업을 종료시키는 명령을 기술하시오.
$ jobs
[1] + 실행 중 sleep 100
[2] - 실행 중 find / -name test
[3] 실행 중 sleep 300
kill : 인자로 지정한 프로세스에게 시그널을 전달[1] + 실행 중 sleep 100
[2] - 실행 중 find / -name test
[3] 실행 중 sleep 300
kill %3
11. find / -name test 명령이 로그아웃한 다음에도 계속 동작하도록
실행시키는 명령을 기술하시오.
nohup 명령 & : 로그아웃을 한 뒤에도 백그라운드 작업을 계속 실행시킨다.
nohup find /-name test &
Response :
0 Trackback
,
0 Comment
Trackback URL : http://mysilpir.net/trackback/274



