프로세스란?

IT노트/Linux 2015. 2. 16. 00:19

프로세스란? 

 

컴퓨터 안의 실행되는 프로그램, 메모리에 상주된 프로그램을 의미함

 

 

 

 

 

 

 

프로세스의 종류

 

- 대화형

프로세스 종류의 대부분을 차지함

내가 실행을 해야 작동하는 일반적인 프로세스

 

- 배치

컴퓨터를 키자마자 자동으로 실행되는 프로세스

ex) 네이트온 등 윈도우 실행시 자동으로 실행되는 프로세스

 

* 윈도우에서는 cmd창에 'msconfig' → 시작프로그램 탭에서 이러한 배치형 프로세스 확인이 가능하다.

* 악성코드는 어떤 컴퓨터 안으로 침투하면 자동으로 악성코드를 작동시키기 위해서 먼저 이 시작프로그램의 등록한다.

 

- 데몬

윈도우의 '서비스'기능 == 리눅스의 '데몬'

'background' 형태로 실행되는 모습이 눈에 보이지 않는 프로세스

 

ex) 플러그인 : usb를 연결하면 '띠딩' 소리와 함께 자동으로 연결됨

    윈도우의 '도움말'

 

 

 

 

 

 

 

프로세스의 실행방식

-Foreground

-Background

 

ex) 인터넷을 하다가 노래를 듣다가 그 두 개를 작동시킨 상태에서 게임을 킨다면

Foreground는 게임, Background는 인터넷, 음악 플레이어가 된다.

 

윈도우에서는 alt+tab 키를 이용하여 이렇게 멀티태스킹(다중 작업)이 가능하다.

리눅스에서도 명령어를 통해 이러한 멀티태스킹이 가능

 

 

 

 

 

 

리눅스의 멀티태스킹 방법

 

실행 중인 Foreground 작업을 Background 작업으로 전환 : ctrl + z

[1]로 일시정지 된 것을 볼 수 있다.

 

 

 

실행 중인 Foreground 작업 취소 : ctrl + c

 

 

 

Background 작업 취소를 하려면 먼저, 'jobs' 명령어를 이용해 중지할 background 번호를 확인한다.

그 후 fg %작업번호를 눌러서 Foreground로 전환한 뒤 ctrl + c

 

 

 

실행 시간이 오래 걸리는 프로세스를 뒤로 보낼 때 명령어 뒤에 '&'를 붙여서 실행하면 background로 실행

'ping 명령어'가 실행되는 와중에 'ls' 명령어가 실행되는 것을 볼 수 있다.

명령이 그만하려면 'fg %작업번호'로 다시 작업을 foreground로 불러와 ctrl + c로 종료

 

 

 

 

 

 

 

프로세스 명령어 

 

- ps

: 현 프로세스 조회 명령어

 

ps -a : 현재 실행 중인 모든 프로세스 출력

ps -ef : 현재 실행 중인 프로세스를 간단히 출력

ps -aux : 현재 실행 중인 프로세스를 자세히 출력

ps -u : 사용자와 프로세스 시간 출력

ps -x : 히든 프로세스 출력

 

 

* 현재 실행 중인 프로세스가 너무 많아서 찾고자 하는 프로세스를 찾기 힘들 때는

'ps -ef | grep ____'를 이용해서 ____가 포함한 프로세스를 모두 출력할 수 있다.

 

 

 

 

pid는 프로세스의 파일 번호로 순서일 뿐 계속 바뀌게된다.

ppid는 그 pid의 부모 프로세스로 그 pid를 실행시키기 위한 프로세스 번호이다.

(부모 프로세스가 실행되어야 자식 프로세스도 실행된다.)

 

TTY에 '?'표시가 된 것은 사용자가 킨 프로세스가 아니라 리눅스가 실행시킨 프로세스를 의미한다.

 

 

 

 

 

'ps au 명령어'

%cpu, %mem은 최근 1분간 프로세스가 사용한 CPU, 메모리 백분율을 나타낸다.

STAT은 프로세스의 상태를 나타내며

R : runable : 실행 대기

D : indisk wait : 입출력 대기

S : Sleep : 자는 상태

T : Zombie : 부모 프로세스가 죽어서 제대로 실행되지도 않는데 죽지 않은 상태

 

 

 

 

 

 

 

- kill

프로세스 종료 명령어

 

'kill -9 PID' : 프로세스 강제 종료 명령어

대부분 종료가 안되기 때문에 강제 종료가 필요한 것이기 때문에 'kill -9 PID' 명령어를 사용하게 된다.

 

pkill : PID 말고 이름으로 프로세스를 종료시키는 명령어

 

 

 

 

 

 

 

- uname -p

CPU 정보를 알려줌

i686은 펜티엄 4를 의미

 

 

 

 

 

 

- free

Mem(메모리)과 Swap(가상 메모리)의 free한 상태를 보여주는 명령어

 

 

free -m을 입력하면 MB 단위로 출력해준다.

현재 메모리는 1000MB 중 984MB가 사용되었고 22MB가 남아있는 상태이다.

 

 

* idle(아이들) : 프로세스가 한가한 정도를 나타낸다.

 

 

 

 

 

 

- ps auxw | grep httpd

프로세스의 정보를 나타냄

 

 

 

- pstree

부모, 자식 관계를 나타내는 트리를 출력

 

 

 

 

 

 

 

 

 

- top

 

프로세스별 CPU와 메모리 점유율을 나타낸다.

시스템이 갑자기 느려졌을 경우 사용한다.

윈도우의 'alt+ctrl+del'과 가장 비슷하다.


Posted by wychoi
,