Linux

8. 프로세스 관리 (Process Management)

jih0ssang 2023. 9. 18. 16:48


프로세스 관리
    ◆ Program(Disk)
    ◆ Process (Memory)
    ◆ Thread(Instruction)


 
(1) 유형

◆ Foreground : 
◇ 터미널 대화식 명령 실행
◇ 실행 --> 종료
◇ fg  %jobID


◆ Background : 
◇ 시스템 실행 비대화식 프로세스  ->  데몬(Daemon) -> 데몬프로세스 -> 서비스(Service)
◇ 계속적으로 실행되는
◇ 명령어& : 백그라운드 실행
◇ sleep 100&
◇ bg  %jobID

 


(2) 상태

◆ 부모 프로세스
◆ 자식 프로세스
    ◇ 고아 프로세스
    ◇ 좀비 프로세스

exit status
exit code
return code


 종료 코드
  ◆ echo $?
  ◇ 0 :정상종료
  ◇ 양수: 비정상 종료

 

 

(3) 시그널(Signal)
  kill 명령은 시그널을 전송


◆ kill -num
num에는..
◇ 1 - SIGHUP(Hangup): 터미널과 연결 끊김. like 로그아웃
◇ 2 - SIGINT(Interrupt): Ctrl-c 
◇ 9 - SIGKILL(Kill): 강제종료(무시X)
◇ 15 - SIGTERM(Terminate): 정상종료 (무시 가능)
◆ kill  -n  PID번호  (default PID=15)
◆ pkill 명령 :의도치않게 프로세스 종료될 수 있음 (권장X) 
pkill -N <패턴>

 

 

 

(4) 우선순위(Priority)

   top 
◆ PID
◆ USER
◆ PR: Priority 우선순위
◆ NI: Nice (-20 ~19 ) 높을수록 우선순위 ↓
◆ VIRT: Virtual Memory
◆ RES: Residence Memory 실제 메모리가 상주하고 있는 공간의 용량
◆ SHR: Shared Memory 공유하는 메모리 영역 용량
◆ S:  프로세스 상태
    ◇ R : 실행/실행 가능한 상태
    ◇ S : IDLE 유휴상태
    ◇ D: 인터럽트(중지) 없는 유휴상태
    ◇ T: 중지 또는 추적
    ◇ Z: 좀비
   
◆ %CPU : cpu사용률
◆ %MEM :memory사용률
◆ TIME+  :cpu마지막으로 사용한 시간
◆ COMMAND : 명령어

■ shift + t : CPU 사용시간으로 정렬
■ shift + p : CPU 사용률 기준 정렬 
■ shift + m : 메모리 사용률 기준 정렬 
■ kill : kill
■ u : user
■ 스페이스바 : refresh (새로고침)
■ m : memory info toggle (바 형태로 얼마만큼 사용하고 있는지 확인 가능)
■ t : cpu info toggle  (CPU의 모양을 바꿔줌)

◆ uptime
    16:32:19   up   48 min,        2 users,     load average: 0.06,  0.03,  0.05
 ◇ top의 첫번째 줄은 uptime(명령어)로도 볼 수 있음.
 ◇ 16:32:19   시작시간
 ◇ 48 min  - uptime= 얼마동안 부팅 되었는가?
 ◇ load average(부하평균=컴퓨터 성능) :  0.38,  0.24,  0.16
                                                       1m    5m    15m (지금으로부터 1분전. 5분전. 15분전)
                                                      <----------  부하가 늘고 있다? 

1.00=100% (CPU를 100% 사용하고 있다.) 

but 만약 CPU가 4개라면???   CPU: 4개-> 4.00 = 100% 가 된다!! 즉, CPU 개수에 따라 100%는 다르다.

 

Q. 100%를 넘어도 되나요?

A : 네, 그렇지만 지연이 있겠죠?

 

 

'Linux' 카테고리의 다른 글

10. ACL(Access Control List, 접근제어목록)  (0) 2023.09.18
9. 아카이브(archive)와 압축  (0) 2023.09.18
7. 쉘 메타 문자와 히스토리, alias  (0) 2023.09.18
6. 사용자 및 그룹 관리  (0) 2023.09.18
5. Permission(권한)  (0) 2023.09.18