04. 프로세스 관리

정혜지·2022년 7월 20일
0

CS /Linux

목록 보기
8/13
post-custom-banner

TUX



프로세스 (Process)


프로세스 의미

컴퓨터의 CPU에서 실행되는 모든 프로그램


프로세스 status

process status

이미지출처 - https://media.geeksforgeeks.org/


프로세스 관리

  • 생성(create) : 프로세스가 생성되는 상태
  • 실행(runnin) : 프로세스가 CPU를 차지하여 명령어들이 실행되고 있는 상태
  • 준비(ready) : 프로세스가 CPU를 언제든지 사용할 수 있는 상태로 CPU 할당 대기
  • 대기(waiting) : 보류(block)라고도 불림, 프로세스가 어떠한 사건을 기다리는 상태
  • 종료(terminated) : 프로세스 실행 종료


프로세스 실행 방식

프로세스의 실행 방식은 크게 포그라운드와 백그라운드가 있다.

포그라운드 프로세스
화면에서 프로그램 실행이 눈으로 직접 확인할 수 있는 상태의 프로세스 구동
사용자와 상호작업으로 작업수행

백그라운드 프로세스
프로세스가 실행되었지만 직접 눈으로 확인할 수 없는 상태로 작업수행
ex) 백신 프로그램, 서버 데몬 등

프로세스 번호

CPU에서 처리하고자 하는 작업 구분을 위한 고유 식별방법
처리해야할 프로세스 순서를 결정

작업 번호

현재 실행되는 백그라운드 프로세스가 CPU를 점유하여 작업을 수행할때의 순차번호

부모 프로세스와 자식 프로세스

프로세스는 하나의 독립된 프로세스만이 구동되는 것은 아님
먼저 실행한 메인 프로그램을 부모 프로세스, 나중에 메뉴에서 선택하여 실행한 프로그램을 자식 프로세스라고 한다.
부모 프로세스는 PPID(Parent Process ID)를 가지며, 자식 프로세스는 PID(Process ID)를 가지고있다.
자식 프로세스가 종료되기 전에 부모 프로세스가 종료되면 자식 프로세는 강제종료된다.

좀비프로세스

순차적으로 종료되지 않고, 부모 프로세스를 종료할 경우 자식 프로세스는 강제종료된다.
이러한 상황일때 자식 프로세스는 종료되었음에도 불구하고 PCB 목록에 남아있어 살아있는 프로세스로 간주되는 것
순차적 실행 : 부모 프로세스 -> 자식 프로세스
순차적 종료 : 자식 프로세스 -> 부모 프로세스





📌 프로세스 관련 명령어

ps : process의 약어, 현재 실행 중인 프로세스의 상태확인

-ef,  -eux 옵션 많이 사용
-eux 옵션 출력시 확인가능한 정보
vsz 가상메모리크기
rss 물리적 메모리 크기
ty 프로세스 시작되고잇는 터미널
stat 프로세스 현재상태	-> 찾아보기
start 프로세스 시작 시각
time 현재까지 사용된 cpu 시간
command 프로세스가 실행한 명령행

pgrep : grep 명령으로 특정 프로세스 정보 검색
ps -fp $(pgrep -x bash) : 시스템에 접속된 모든 사용자 검색
ps -fp $(pgrep -x cskisa bash) : cskisa 계정 검색

kill : 프로세스 종료를 위해 지정한 시그널을 해당 프로세스에 전달
kill [시그널] pid

시그널의미
-2인터럽트 시그널 전송, (ctrl + r)과 동일
-9프로세스 강제종료
-15프로세스가 관련 파일을 정리 후 종료
-15 시그널을 사용하더라도 종료되지 않는 프로세스도 있다.

sleep : 지정한 시간동안 멈출 수 있다. 일시 정지

top : 프로세스 모니터 도구
NI : nice 프로세스의 우선순위(-20 ~ 19, default 10) ⭐
: -20이 우선순위가 가장 높음
: 일반 사용자는 우선 순위값을 낮출 수 없음
: ex) nice -n -20 ps -l
: ex) renice -n nice값 PI //해당하는 우선순위로 값이 변경

pstree : 프로세스간의 계층 구조를 출력하는 명령어
-p : 각 프로세스의 PID를 함께 출력

free : 시스템의 메모리 정보를 출력하는 명령어
- -m : mb (b/k/m/g)
- -s{초} : 입력한 시간마다 free 실행(모니터링)



📌 포그라운드 & 백그라운드 관련 명령어

jobs : 백그라운드 프로세스의 목록 확인(작업 번호) 명령어
fg 작업번호 : 백그라운드로 실행되고 있는 프로세스를 -> 포그라운드 방식으로 전환 명령어
bg 작업번호 : 수행이 멈추었던 백그라운드 프로세스를 다시 백그라운드 방식으로 실행 명령어




profile
오히려 좋아
post-custom-banner

0개의 댓글