본문 바로가기

리눅스/강의

[15. 프로세스]

프로세스 (Process)


설명

하드디스크에 저장된 실행코드(프로그램)가 메모리에 로딩되어 활성화 된 것.

메모리에 있는 실행파일을 인스턴스(객체,프로세스,데스크)라 하고 이 프로세스에 대한 

구분이 필요하기 떄문에 PID 라는 것을 사용한다.

프로세스의 정보는 /proc 디렉터리에 존재


종류

1) 대화형

- 프로세스 종류의 대부분을 차지한다.

- 사용자가 실행을 해야 작동하는 일반적인 프로세스.


2) 배치

- 컴퓨터를 부팅하면 자동으로 실행되는 프로세스. (시작프로그램)

- 윈도우에서의 msconfing에 올라가는 부팅프로그램과 동일하다.


3) 데몬

- 윈도우의 서비스 = 리눅스의 데몬.

- 시스템에 관련된 작업을 백그라운드로 실행하는 프로그램.


프로세스 상태

1) Running

- 현재 실행 중에 있거나 언제든지 실행할 준비가 되어있는 상태.


2) Waiting 

- 실행 대기 중에 있는 것으로 자원이 할당되기를 기다리는 상태.


3) Stopped

- 요청 또는 기타 원인에 의해 중단된 상태.


4) Zombie

- 프로세스가 완전히 중단되어 사용할 수 없는 상태.

- 죽어있는 프로세스지만 자원은 계속 공유하게 된다. 


실행 방식

1) Foreground

- 사용자에 눈에 보이는 프로세스. (게임을 실행시 보이는 화면이 프로세스)

- pwd , cd , mkdir 등등 과 같이 눈에 보이는 명령어들도 이에 해당한다.

- 명령어로 bg가 있다.


2) Background

- 사용자에 눈에 보이지 않고 뒤에서 실행되는 프로세스. 

(게임과 음악을 켜놓고 게임을 하고 있어도 음악이 재생되는데 ,

이 떄 음악이 백그라운드 프로세스)

- 명령어로 nohup , fg등이 있다.


관련 명령어

1) ps [옵션]

- 현재 동작중인 process들을 출력하는 명령어.


2) top [옵션]

- 프로세스의 CPU , MEMORY 사용량등 시스템의 전반적인 상황을 실시간으로 화면에 출력.

- 옵션없이 실행 시 , 5초마다 refresh 한다.


3) pstree [옵션]

- 현재 프로세스 상태를 계층적으로 출력해주는 명령어. (ps -f 와 비슷하다)


4) kill [옵션]

- 프로세스를 죽이는 명령어.


관련 파일

1) /proc/uptime

- 시스템 가동시간에 대한 정보를 기록하고 있다.

18079.06 17919.47


2) /proc/meminfo
- 물리적인 메모리 및 스왑 메모리 정보가 들어 있는 파일이다.
MemTotal:        1004413 kB
MemFree:          391948 kB
- 생략 -
Slab:              91704 kB
SReclaimable:      30200 kB
SUnreclaim:        61504 kB

3) /proc/cmdline
- 부팅 시에 실행되는 커널 관련 옵션에 대한 정보를 담고있다.
ro root=UUID=1f8d6c2c-f7b2-4294-9857-fc3bbebd0167 rd_NO_LUKS LANG=ko_KR.UTF-8 rd_NO_MD   KEYBOARDTYPE=pc KEYTABLE=us rd_NO_LVM rd_NO_DM rhgb quiet

4) /proc/loadavg
- 최근 1분 , 5분 , 15분 동안의 평균 부하율을 기록하는 파일이다.
0.00 0.00 0.00 1/254 4412


'리눅스 > 강의' 카테고리의 다른 글

[17. 모듈]  (0) 2017.11.09
[16. RPM]  (0) 2017.11.08
[14. LVM]  (0) 2017.11.05
[13. 스케쥴러]  (0) 2017.11.03
[12. 마운트]  (0) 2017.11.02