Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

codingfarm

프로세스 관리 - 개념, 관리 도구 본문

Linux/Ubuntu

프로세스 관리 - 개념, 관리 도구

scarecrow1992 2021. 3. 6. 01:29

1. 프로세스의 개념

  • 프로세스 : 현재 시스템에서 실행중인 프로그램
  • 다중 프로세스 시스템 : 여러 개의 프로세스가 동시에 실행되는 시스템

 

 

1.1 프로세스의 부모-자식 관계

  • 리눅스에서 모든 프로세스는 부모-자식 관계를 가진다.
  • systemd와 kthreadd를 제외한 모든 프로세스는 부모 프로세스를 지닌다. (이 둘은 리눅스 시스템 부팅시 스케줄러가 실행한다)
  • 자식 프로세스
    • 부모 프로세스에 의해 만들어지는 프로세스
    • 종료시 부모프로세스에게 종료 정보(exit status)를 돌려주고 종료된다.
      • ex) 사용자가 vi를 실행하면 셸이 vi 프로세스를 생성할 경우, 셸은 부모 프로세스가 되고 vi는 자식 프로세스가 된다. 사용자가 vi를 종료하면 다시 부모 프로세스인 셸로 돌아간다.

 

 

1.2 PID(process identification number)

  • 각 프로세스가 가지는 고유한 번호
  • 1번 부터 시작하고 프로세스가 실행되면 하나씩 증가하여 부여된다.
  • 리눅스 부팅시에 1번 systemd 프로세스와 2번 kthreadd 프로세스가 차례로 실행된다.
    • systemd : 나머지 모든 시스템 프로세스의 부모 프로세스
    • kthread : 모든 스레드의 부모 프로세스

 

 

1.3 프로세스의 종류

1. 데몬 프로세스(daemon process)

  • 평소에는 대기 상태로 있다가 서비스 요청이 들어오면 서비스를 제공하는 프로세스
  • ex : sshd(ssh 서버 데몬, 원격 접속 서비스를 제공)

 

2. 고아 프로세스(orphan process)

  • 부모 프로세스가 먼저 종료된 자식프로세스
  • 자신이 종료되었을때 돌아갈 프로세스가 없다.
  • 1번 프로세스가 고아프로세스의 새 부모프로세스가 되어 고아 프로세스가 작업을 마치고 종료될 수 있게 한다.

 

3. 좀비 프로세스(zombie process)

  • 종료했으므로 실제 실행되진 않지만 프로세스 테이블에 남아있는 프로세스
  • 종료 정보(exit status)를 부모 프로세스가 읽어가기를 기다리는 자식프로세스
  • 프로세스 목록에 defunct 프로세스라고 나오기도 한다.
  • 좀비 프로세스가 쌓이면 테이블의 용량이 부족해서 정상적인 프로세스가 실행되지 않을 수도 있다.
  • kill 명령으로 제거할 수 없다.
  • 좀비 프로세스를 제거할 방법은 다음과 같다.
    • SIGCHLD 시그널을 부모 프로세스에 보내어 부모 프로세스가 자식 프로세서를 정리하도록 해야한다.
    • 부모 프로세스 자체를 종료한다. 그러면 좀비 프로세스는 고아 프로세스가 되어 1번 프로세스에 의해 주기적으로 자식프로세스의 종료 정보를 확인하여 정리한다.

 


2. 프로세스 관리 명령

 

프로세스 관리 도구

  • ps 명령으로는 현재 프로세스 목록을 확인만 할 수 있다.
  • ps의 정보를 가공하여 사용자가 보기 편한 기능을 제공하는 도구가 있다.
    • top명령
    • 시스템 감시

 

top

  • 종료되지 않고 실시간으로 프로세스의 상태를 보여준다.

 

top 명령의 출력 정보

항목 의미 항목 의미
PID 프로세스 ID SHR 프로세스가 사용하는 공유 메모리의 크기
USER 사용자 계정 %CPU 퍼센트로 표시한 CPU 사용량
PR 우선순위 %MEM 퍼센트로 표시한 메모리 사용량
NI Nice 값 TIME+ CPU 누적 이용 시간
VIRT 프로세스가 사용하는 가상 메모리의 크기 COMMAND 명령 이름
RES 프로세스가 사용하는 메모리의 크기    

 

top 내부 명령

내부 명령 기능
ENTER, SPACE BAR 화면을 즉시 다시 출력한다.
h, ? 도움말 화면을 출력한다.
k 프로세스를 종료한다. 종료할 프로세스의 PID를 물어본다.
n 출력하는 프로세스의 개수를 바꾼다.
p CPU 사용량에 따라 정렬하여 출력하낟.
q top 명령을 종료한다.
M 사용하는 메모리의 크기에 따라 정렬하여 출력한다.
u 사용자에 따라 정렬하여 출력한다.

 

 

시스템 감시

  • ubuntu의 GUI인 GNOME에서 기본적으로 제공하는 도구
  • [프로그램 표시]-[유틸리티]-[시스템 감시]를 선택하여 동작시킬 수 있다.

 

 

'Linux > Ubuntu' 카테고리의 다른 글

프로세스 관리 - 작업 예약  (0) 2021.03.06
프로세스 - 포그라운드와 백그라운드  (0) 2021.03.06
특수 접근 권한 SetUID, SetGID  (0) 2021.03.05
입출력 방향 바꾸기  (0) 2020.11.15
shell  (0) 2020.11.04
Comments