gyeong3un2

[유닉스 이론과 실습] 8장 연습문제 본문

유닉스 기초/[유닉스 이론과 실습] 연습문제

[유닉스 이론과 실습] 8장 연습문제

ʕっ•ᴥ•ʔっ 프론트엔드 개발하는 쿼카 2021. 5. 7. 01:44

01. 다음 중 프로세스에 대한 설명으로 옳은 것을 모두 고르시오.

 

     ① 실행 중인 프로그램이다.

     ② 모든 프로세스는 부모 프로세스를 가진다.

     ③ 프로세스 사이에는 부모-자식 관계가 존재한다.

     ④ 사용자는 프로세스를 실행시킬 수 없다.

 

더보기

정답 : ①,

- 프로세스는 현재 실행 중인 프로그램으로, 유닉스의 운영에 필요한 다양한 기능을 수행하는 시스템 프로세스와 사용자가 실행한 사용자 프로세스가 있다.

- 고아 프로세스 : 결과를 돌려주기 전에 부모 프로세스가 먼저 종료되어 버린 자식 프로세스

 


 

 

02. 프로세스의 종류와 설명이 틀리게 짝지어진 것을 고르시오.

 

     ① 부모 프로세스 - 다른 프로세스를 생성한 프로세스

     ② 자식 프로세스 - 부모 프로세스가 생성한 프로세스

     ③ 좀비 프로세스 - 부모 프로세스가 먼저 종료된 자식 프로세스

     ④ 데몬 프로세스 - 특정 서비스를 제공하는 프로세스

 

더보기

정답 :

- 좀비 프로세스 : 부모프로세스가 종료처리를 하지 않은 프로세스로, 종료가 되었음에도 할당된 시스템 자원이 회수되지 않은 상태

- 고아 프로세스 : 실행도중에 부모 프로세스가 먼저 종료되어 버린 자식 프로세스로, 고아 프로세스는 1번 프로세스를 새로운 부모로 가진다.

 


 

03. ps 명령으로 확인할 수 없는 정보는 무엇인가?

 

     ① 차지하는 메모리 크기

     ② 사용한 CPU 시간

     ③ PID

     ④ 실행된 단말기 정보

 

더보기

정답 : ① 차지하는 메모리 크기

 


 

04. 다음 중 사용자 정보를 보는 명령이 아닌 것을 고르시오.

 

     ① users

     ② su

     ③ who

     ④ whoami

 

더보기

정답 : ② su

- users : 사용자의 사용자명만 보여줌

- su : 다른 사용자나 root 사용자로 전환함

- who : 사용자명과 단말기 번호, 로그인한 시간 정보를 보여줌

- whoami : BSD 계열의 명령으로, 사용자명만 출력함

- who am i : 사용자명, 단말기 번호, 로그인한 시간 정보를 출력함

 


 

05. 갑자기 시스템이 느려져서 그 원인을 찾으려고 한다. 그 방법으로 가장 적절한 것을 고르시오.

 

     ① 시스템의 CPU, 메모리 사용량을 보기 위하여 top 명령을 실행하였다.

     ② prstat -a 명령을 이용하여 각 사용자별 메모리와 CPU 사용량을 확인한 후 사용량이 특별히 높은 사용자의 작업을 따로 확인하였다.

     ③ kill 명령을 이용하여 실행 중인 프로세스를 모두 종료시켰다.

     ④ 백그라운드로 실행한 모든 작업을 fg 명령을 이용하여 포그라운드로 전환하였다.

 

더보기

정답 :

 


 

06. 유닉스의 프로세스에는 어떤 종류가 있는지 설명하시오.

 

더보기

정답 : 데몬 프로세스, 부모 프로세스, 자식 프로세스, 고아 프로세스, 좀비 프로세스가 있다.

 


 

07. 유닉스의 고아 프로세스와 좀비 프로세스의 차이를 설명하시오.

 

더보기

정답 : 고아 프로세스는 실행 도중에 부모 프로세스가 먼저 종료되는 것이고, 좀비 프로세스는 부모 프로세스가 종료처리를 하지 않은 프로세스이다.

 


 

08. user1 사용자가 실행시킨 프로세스를 모두 찾기 위해 사용할 수 있는 명령에는 무엇이 있는지 설명하시오.

 

더보기

정답 : ps -u user1, ps -ef | grep user1, pgrep -l -u user1

 


 

09. user1 사용자가 실행시킨 모든 프로세스의 실행 날짜를 알아보려고 한다. ps 명령의 어느 옵션을 조합하여 사용하면 되는지 설명하시오.

 

더보기

정답 : ps -ef | grep user1

 


 

10. pgrep 명령을 사용하여 현재 실행 중인 모든 bash를 검색한 결과와 ps 명령을 사용하여 현재 실행 중인 모든 bash를 검색한 결과를 비교하여 차이점을 설명하시오.

 

더보기

정답 : pgrep은 프로세스 번호만 찾고 PS는 현재 실행 중인 프로세스에 대한 정보를 출력한다.

 


 

11. 포그라운드 작업과 백그라운드 작업의 차이를 설명하시오.

 

더보기

정답 : 포그라운드 작업은 사용자가 명령을 입력한 후 결과가 출력될 때까지 기다려야 하는 경우이고, 백그라운드 작업은 명령의 처리와 관계없이 곧바로 프롬프트가 출력되어 사용자는 작업을 계속할 수 있도록 한다.

 


 

12. 어떤 경우에 백그라운드 작업을 유용하게 사용할 수 있을지 설명하시오.

 

더보기

정답 : 명령의 처리시간이 오래 걸리는 경우 백그라운드 작업으로 실행시켜놓고 다른 작업을 계속할 수 있다.

 


 

13. 현재 실행 중인 포그라운드 작업을 백그라운드 작업으로 전환시키는 방법을 다음 예를 사용해 설명하시오.

 

     $ find  /  -name  test

 

더보기

정답 : ① [Ctrl] + z로 작업을 중지시킨다.  ② bg 명령으로 작업을 백그라운드 작업으로 전환시킨다.

 


 

14. 현재 실행 중인 백그라운드 작업을 포그라운드 작업을 전환시키는 방법을 아래 예를 사용해 설명하시오.

 

     $ jobs

     [1] +  실행 중  sleep  100

 

더보기

정답 : fg %1

 


 

15. find / -name unix 명령이 로그아웃한 다음에도 계속 동작하도록 실행시키는 명령은 무엇인지 답하시오.

더보기

정답 : nohup  find  /  -name  unix  &

 


 

16. who 명령과 w 명령의 차이점을 설명하시오.

 

더보기

정답 : who 명령은 시스템을 사용하고 있는 사용자의 정보를 출력하는 것이고, w 명령은 로그인한 사용자 정보와 현재 작업의 정보를 출력한다.

 


 

17. 시스템이 부팅한 날짜와 시간을 알기 위한 명령은 무엇인지 답하시오.

더보기

정답 : who -b

- who : 시스템을 사용하고 있는 사용자의 정보를 출력한다.

- (-b) : 마지막으로 재부팅한 날짜와 시간 출력

 


 

18. ps f명령의 결과가 아래와 같을 때, 프로세스의 부모-자식 관계를 설명하시오.

     $ 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:14:59     pts/ 1    0:00      -ksh

 

더보기

정답 : 15701 > 15710(-ksh) > 15721(sh) > 15761(vi test.c)

 


 

19. 18번에서 실행 중인 프로세스 중 vi test.c프로세스를 강제로 종료시키는 과정을 순서대로 설명하시오.

더보기

정답 : ① kill 15761로 종료시킨다., ② kill 15761로 종료가 안되면 kill -9 15761로 -9(강제종료 시그널)를 사용한다.

 


 

20. 다음과 같이 백그라운드로 실행 중인 작업이 3개가 있다. 이 중 3번 작업을 종료시키는 명령을 기술하시오.

     $ jobs

     [1] +  Running sleep  100

     [2] -   Running find  /  -name  unix

     [3] Running sleep  300

 

더보기

정답 : kill %3

 


 

21. user2 사용자가 user1 사용자로 전환하려고 한다. su user1 su  user1의 차이를 설명하시오.

더보기

정답 : su user1을 사용하면 사용자는 전환하지만 디렉토리 위치는 변하지 않는다. 하지만 su - user1을 사용하면 전환하는 사용자의 초기화 파일을 실행시켜 작업 디렉토리도 바뀐다.