Process   프로세스

(2023-11-22)

1. 프로세스 (Process)

  ㅇ 실행중인 프로그램
     - 메모리에 올려져, 실행중인 프로그램운영체제 커널이 정의하는 추상적인 존재
     - 실행중인 프로그램 다수가 동시 운용될 때, 
     - 이들 간을 개념적으로 분리 취급할 수 있게 하고,
     - 그 각각에 컴퓨팅 자원을 할당코자 정의되는 추상적인 존재


2. 프로세스, 프로그램 차이프로그램 : 저장장치파일로 존재하는 정적,수동적 개체
     - 실행시 프로세스에 관한 광범위한 정보를 갖으며, 디스크에 저장된 수동적인 파일프로세스 : 동작중인 능동적인 개체
     - 프로그램 카운터 같은 관련 자원의 조합을 갖는 능동적인 존재
     - 운영체제로부터 추가적인 자원 할당을 받을 수 있음


3. 프로세스의 특징

  ㅇ 시분할 작업의 단위
     - 시분할 시스템에서 볼 때, 분할 시간 마다 그 처리 대상이 되는 작업 단위

  ㅇ 자신의 일을 수행키 위해, 자원을 필요로 함
     - CPU 시간, 메모리, 입출력 장치 등
     - 프로세스 종료시, 운영체제는 재사용 가능 자원을 회수하게 됨

  ㅇ 프로세스별로 메모리 공간이 격리됨
     - 각 프로세스가 독립된 메모리 공간을 가지도록 보장되야 함
        . 즉, 프로세스는 타 프로세스,커널로부터 격리되어, 이들 메모리에 읽기/쓰기가 제한됨
     - 통상, 2개 레지스터(base,limit)를 사용

  ㅇ 하나의 프로그램이 여러 프로세스를 만들 수 있고, 제어권 전달 등이 있게됨  
     - 단일 프로그램이 여러 프로세스를 생성 가능                  ☞ fork 시스템호출 참조
        . 즉, 여러 프로세스들이 동일 프로그램으로 실행 가능

  ㅇ 병행 실행이 가능                                       ☞ 병행 프로세스 참조
     - 이때, 프로세스 간 통신 필요                           ☞ IPC 참조

  ㅇ 프로세스스레드
     - 현대 운영체제는, 단일 프로세스가 다수 실행 스레드들을 갖도록 허용


4. 프로세스의 구성 및 표현프로세스의 구성 
     - 저마다 분리된 메모리 공간으로 구성됨
        . 크게, 사용자 메모리 공간커널 메모리 공간으로 구분됨

     - 사용자 메모리 공간
        . 프로그램의 실행 코드,변수,상수 등의 데이터를 담고있는 과,
     - 커널 메모리 공간
        . 프로세스 상태 정보의 관리

  ㅇ 프로세스의 표현 : 프로세스 제어 블록 (Process Control Block)
     - 프로세스 상태 : new, ready, running, waiting, halting 등
     - 프로그램 카운터 : 다음 실행할 명령어 주소
     - 레지스터들
     - 스케줄링 정보
     - 메모리 관리 정보5. 프로세스스케줄링운영체제는,
     - 한 프로세스를 실행 가능할 때까지 실행하고,
     - I/O 작업 처럼 CPU 자원을 필요로 하지 않을 때는, 다른 프로세스를 실행케 하여,
     - CPU 사용 효율을 높이게 함             ☞ 다중 프로세스 환경 참조

  ㅇ 어느 한 순간에, 다수의 프로세스들이 메모리 내에 유지되면서 병행 실행됨


6. 개별 프로세스의 특징

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

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

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

  ㅇ 커널에 의해 관리됨


7. 개별 프로세스의 관리를 위한 정보프로세스 연관 각종 ID들
  ㅇ 가상 메모리 테이블
  ㅇ 열린 파일 디스크립터 테이블
  ㅇ 시그널 전달/처리 정보프로세스 자원 사용량 및 한도
  ㅇ 현재 작업 디렉토리8. 개별 프로세스의 메모리 구성

  ※ ☞ 프로세스 메모리 참조
     - 텍스트 영역, 데이터 영역,  영역, 스택 영역 등


9. [Unix/Linux]  개별 프로세스의 식별 및 복제

  ㅇ (식별)  ☞ 프로세스 식별 ID 참조
     - (Process ID, PID), (Parent Process ID, PPID)
  
  ㅇ (복제)  개별 프로세스의 복제 (시스템콜에 의함)
     - fork, exec, spawn

프로세스
   1. 프로세스   2. 선점형   3. 병행 프로세스   4. 멀티 태스킹   5. 스레드   6. 런타임 메모리  
Unix/Linux 프로세스
   1. 프로세스   2. PID, PPID   3. 시스템 호출   4. init,exec,fork   5. 시그널   6. 좀비  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"