Server/Linux

Linux // 프로세스

깨래 2018. 2. 9. 15:52

프로세스 (Process)

1) 커널의 관리하에 현재 시스템에서 동작중인 프로그램

2) 커널은 프로세스 관리를 위해 각 프로세스에게 PCB 할당

3) init 프로세스는 부팅 시 가장 먼저 실행되어 시스템의 전반적인 설정을 하는 초기화 프로세스

   

1. PCB (Process Control Block)

1) 프로세스 고유 번호 (PID)

2) 우선 순위 (Priority)

3) 현재 상태 (Current Status)

2. 프로세스 종류

1) 데몬 (daemon) 프로세스

#사용자에게 특정 기능이나 서비스를 제공하는 프로세스이다.

 2) 부모 (Parent) 프로세스

# 부모 프로세스는 다른 프로세스를 만들며, init을 제외한 모든 프로세스는

# 부모 프로세스를 가지고 있다.

 3) 자식 (Child) 프로세스

# 부모 프로세스에 의해 만들어지는 프로세스이다.

# 자식 프로세스는 종료시 부모 프로세스에게 결과를 전달하고 종료된다.

 4) 고아 (Orphan) 프로세스

# 자식 프로세스보다 부모 프로세스가 먼저 종료가 됬을때 자식 프로세스는

# 고아 프로세스가되어 init 프로세스가 관리를 한다.

 5) 좀비 (Zombie) 프로세스

# 자식 프로세스의 종료 신호를 부모 프로세스가 처리하지 못할 경우,

# 자식 프로세스는 좀비 프로세스가 된다.

ps (Process Status) - 시스템 동작중인 프로세스 확인

#ps

1)현재 접속한 터미널에서 실행되고 있는 프로세스에대한 간단한 정보만 출력

옵션

-e 모든 프로세스에 대한 리스트 출력

-f  full format 으로 출력

-a 다른 사용자들의 프로세스도 출력

-u 사용자 이름, 시간 등 상세한 정보 출력

-x 현재 실행되고 있는 모든 프로세스를 출력



 

 #ps -ef

UID - 프로세스를 실행 시킨 프로세스의 소유자를 의미

PID - 실행된 프로세스 부여된 숫자를 의미

PPID - Parent Process ID, 프로세스를 생성한 부모 프로세의 PID

C     - 스케줄링 관련 필드, 현재는 사용안함 

STIME - 프로세스가 시작된 시간

TTY     - 프로세스가 연결된 터미널

TIME   - 프로세스에 의해 사용된 CPU 사용한 시간

CMD   - 실행된 프로세스명 (실행한 명령)



  #ps -aux

%CPU - 사용된 CPU의 측정량

%MEM - 사용된 메모리의 측정량

STAT - 프로세스의 상태

R : 실행 중 (Running)

S : 대기 상태 (Sleep)

T : 작업 제어에 의해 정지된 상태 (Stop)

Z : 좀비 프로세스 (defunct)

3.  프로세스 동작 형태 ( 상태 ) 

- 포어 그라운드 (Foreground Process) 

커맨드 라인에서 입력하는 대부분의 멸령어는 포어 그라운드로 동작

# 명령어 실행과정이나 결과를 화면 출력


- 백 그라운드 ( Background Process)

# 프로세스 종료 여부에 관계 없이 즉시 명령 대기 상태가 되어 다른 명령어를 사용 할 수 있다.
# 백 그라운드로 실행 시키기 위해 "&" (Ampersand)를 붙여 사용한다.
# 장시간 동작하는 작업에 유용함

<< 백 그라운드 동작 명령어 실행 결과 >>

[작업번호] [PID]

jobs - 백 그라운드로 동작하는 프로세스(작업)을 확인하는 명령어
ex)

fg - 백 그라운드 작업을 포어 그라운드로 변경
#fg %[작업번호]
ex)

bg - 포어 그라운드 작업을 백 그라운드로 변경
#bg%[작업번호]
ex)