Process   프로세스

(2020-03-02)

PID, PPID, 프로세스 ID

1. 프로세스 (Process)

  ㅇ 실행중인 프로그램


2. 프로세스 특징

  ㅇ 시분할 작업의 단위
     - 시분할 시스템에서 볼 때, 분할 시간 마다 그 대상이 되는 작업 단위
  ㅇ 하나의 프로그램이 여러 프로세스를 만들 수 있음         ☞ fork 등 참조
     - (프로그램 : 실행시 프로세스에 관한 광범위한 정보를 갖는 파일)
     - 단일 프로그램이 여러 프로세스를 생성 가능
     - 즉, 여러 프로세스들이 동일 프로그램으로 실행 가능
  ㅇ 자원이 할당된 추상적인 존재
     - 운영체제커널 관점에서, 프로세스 구성은,
        . 프로그램의 실행 코드,변수,상수 등의 데이터를 담고있는 사용자 메모리 공간과,
        . 프로세스 상태 정보를 관리하는 커널 메모리 공간으로 구성됨
     - 프로세스메모리 격리
        . 프로세스는 타 프로세스,커널로부터 격리되어, 이들 메모리에 읽기/쓰기가 제한됨 
  ㅇ 병행 실행이 가능                                       ☞ 병행 프로세스 참조
     - 이때, 프로세스 간 통신 필요 ☞ IPC 참조


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

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

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

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

  ㅇ 커널에 의해 관리됨


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

      

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


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

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

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

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


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


[UNIX 프로세스] 1. 프로세스 2. 시스템 호출 3. init,exec,fork 4. 시그널 5. 좀비
  1.   기술공통
  2.   기초과학
  3.   진동/파동
  4.   방송/멀티미디어/정보이론
  5.   전기전자공학
  6.   통신/네트워킹
  7.   정보기술(IT)
        1. 정보기술
    1.   전산기초
    2.   컴퓨터구조
    3.   프로그래밍
    4.   데이터베이스
    5.   소프트웨어 공학
    6.   운영체제
      1.   운영체제(일반)
      2.   프로세스
      3.   윈도우즈
      4.   UNIX (LINUX)
        1.   UNIX 일반
        2.   UNIX 프로세스
          1.   1. 프로세스
              2. 시스템 호출
              3. init,exec,fork
              4. 시그널
              5. 좀비
        3.   메모리 관리
        4.   IPC
        5.   UNIX 장치
        6.   UNIX 파일시스템
        7.   UNIX 유틸리티
        8.   리눅스(Linux)
    7.   정보보호/보안
    8.   IT 기타기술
  8.   공업일반(기계,재료등)
  9.   표준/계측/품질
  10.   기술경영

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