Process   프로세스

(2020-02-15)

PID, PPID, 프로세스 ID

1. 프로세스 (Process)

  ㅇ 실행중인 프로그램
  ㅇ 시분할 시스템에서 작업의 단위
  ㅇ 하나의 프로그램이 여러 프로세스를 만들 수 있음         ☞ fork 등 참조
  ㅇ 병행 실행이 가능                                       ☞ 병행 프로세스 참조
  ㅇ 자원이 할당된 추상적인 존재


2. [Unix/Linux]  프로세스의 특징

  ㅇ 부모 프로세스가 있게됨
     - 자식 프로세스가 종료되면, 그 사실이 부모 프로세스에게 알려지게됨
     - 한편, 커널은, 스스로가 자신의 부모 프로세스임

  ㅇ 소유자가 있음
     - 특정 사용자 권한으로 실행되고,
     - 취급 파일에 대한 퍼미션(접근권한)에 따라 읽기,쓰기 등 권한을 달리함

  ㅇ 프로세스별 식별을 위해 16 비트 PID를 사용  ☞ 아래 4.항 참조

  ㅇ 커널에 의해 관리됨


3. [Unix/Linux]  개별 프로세스의 메모리 구성텍스트 섹션
     - 적재된 프로그램 코드
     - 여러 프로세스가 동일 프로그램으로 실행 가능하므로,
       텍스트 섹션은 공유될 수 있음
  ㅇ 데이터 섹션
     - 전역 변수, 정적 변수프로세스  섹션
     - 함수 매개변수, 복귀 주소, 지역변수와 같은 임시 자료
  ㅇ 프로세스 스택 섹션
     - 동적인 메모리 할당영역

      

  ※ 한편, 각 프로세스가 자신 만의 주소공간을 갖음
     - 따라서, 그에 상응하는 메모리를 필요로 함  ☞ 가상 메모리 참조


4. [Unix/Linux]  개별 프로세스 ID

  ㅇ (Process ID, PID)
     - 프로세스 식별용 ID
     - 양의 정수 (16 비트, 최대 216)
        .  1 ~ 32,767 (기본 상한, 조정 가능)
     - 시스템호출 에서,
        .  프로세스 식별용 숫자로써, 인자,리턴값으로 사용됨

  ㅇ (Parent Process ID, PPID)
     - init 프로세스를 제외한 모든 프로세스는,
     - 부모 프로세스를 갖으며, 이의 식별용 ID 를 갖음

  ㅇ [참고]
     - pid 확인용 시스템호출 : getpid(), getppid()
     - 응용 프로그램 내 pid 참조 방법 : sys/types.h 내 정의된 pid_t(typedef 별칭)를 이용하면 됨
     - 현재 에서 프로세스 확인 명령어 : ps


5. [Unix/Linux]  개별 프로세스의 복제 (시스템콜)forkexec
  ㅇ spawn


[UNIX 프로세스] 1. 프로세스 2. 시스템 호출 3. init,exec,fork 4. 시그널 5. 좀비

 
        최근수정     요약목록     참고문헌