프로그래밍[Univ]/Linux

[Linux] 프로세스

Cloud Travel 2009. 4. 5. 16:27
프로세스란 실행중인 프로그램을 말한다.

1. 프로세스의 작동단계(레벨)
 1) Runlevel
  > runlevel은 실행레벨로 부팅과 셧다운 되는 동안 어떤 프로세스가 시작될 지를 결정한다.
  ⓐ runlevel 0
   > 셧 운 절차에 대해서 책임.
   > 모든 프로세스들을 종료
   > 파일 시스템을 unmont로 지정
  ⓑ runlevel 1
   > 단일 사용자 모드
   > 관리자가 시스템에 특정 설정을 할 때 사용
   > 다른 사용자들은 로그인 불가능
 ⓒ runlevel 3
  > 대부분의 배포판에서 기본적으로 세팅된 runlevel
  > 대부분의 서비스들이 시작된다.
 ⓓ runlevel 4
  > 사용자 정의 레벨
 ⓔ runlevel 5
  > 그래픽 로그인 프롬프트를 띄우느 용도로 사용
  > level3과 시작되는 프로세스가 같다
 ⓕ runlevel 6
  > 재실행 모드

// su에서 /etc/init 에서 변경가능하다.
 
 2) 백그라운드/포그라운드 실행
  ⓐ 포그라운드(Foreground)
   > 키보드로 입력을 받을 수 있다.
   > 화면에 출력 해준다.
   > 쉘은 포그라운드에서 프로세스가 실행중인 동안 백그라운드에서 기다렸다가, 
      프로세스가 종료되면 명령대기 상태가 된다.
   > 대부분의 프로세스는 ctrl+c로 강제종류가 가능하다
  ⓑ 백그라운다(Background)
   > 메타문자'&'를 써주어 백그라운드로 실행이 가능하다.
   > 키보드 입력을 받을 수 없다.
   > 장시간 입력없이 프로세스가 실행될 경우에 사용한다.

2. 프로세스 상태보기
 > 명령에 pstree를 통하여 tree형태로 프로세스의 상태를 볼수 있다.
 > 명령어 ps를 통해 현재 실행 중인 프로세스들의 상태를 볼 수 있다.
   >> "ps -ef | grep 프로세스 이름"을 주로 사용한다.
 > 명령어 top으로 프로세스의 cpu점유율을 볼 수 있다.
 > 한 프로세스가 다른 프로세스를 만들어 낼 때 주체가 되는 프로세스가 부모 프로세스.
    만들어진 프로세스를 자식 프로세스라고 한다.
 > 모든 프로세스의 조상은 init이다.
 
3. Signal
 > 프로세스간의 통신 수단
 > Signal은 이름과 번호로 구분한다.

이름  번호     의미
HUP   1       로그 아웃하거나 인터넷이 끈겨 졌을때 보여준다. 
INT    2        Ctrl+C시 보여준다.
QUIT  3        Ctrl+\시 보여준다.
KILL   9        무조건 실행 종류
SEGV 11      메모리 침범
TERM 15      정상 종료
STOP 19      일시정지
TSTP  20     정지 후 ctrl+z가 누르기전까지 대기
CONT 18     다시 실행

 > kill -9는 가장 강력한 프로세스 종료이므로 사용시 각별히 유의 해야된다
 
4. 프로세스 실행 모드
 1) standalone
  > 외부의 클라이언트의 요청이 있을 시 신속한 답변을 제공하는 형태
  > 응답속도가 빨라야할 프로세스 실행 모드
 2) inetd
  > 가끔씩 들어오는 프로세스에 대해서 사용하기 효과적
  > 외부 클라이언트가 요청이 있으면 inetd라는 슈퍼 데몬을 통해 실행됨