[운영체제] 프로세스, 프로세스 상태 전이, PCB(프로세스 제어 블록)

·2021년 4월 21일
0
post-custom-banner

프로세스의 정의

프로세스는 일반적으로 프로세서(CPU)에 의해 처리되는 실행중인 프로그램을 의미한다.
프로세스는 다음과 같은 여러 형태로 정의할 수 있다.

  • PCB를 가진 프로그램
  • 실기억장치에 저장된 프로그램
  • 프로세서가 할당되는 실체로, Dispatch(Ready State->Run State로 전이하는 과정)가 가능한 단위
  • 프로시저가 활동중인 것 (*프로시저: 분할된 작은 프로그램)
  • 비동기적 행위를 일으키는 주체 (*비동기적 행위: 다수의 프로세스가 독립적으로 실행되는 것)
  • 운영체제가 관리하는 실행 단위

PCB (Process Control Block, 프로세스 제어 블록)

PCB는 운영체제가 프로세스에 대한 정보를 저장해 놓는 곳이다.
각 프로세스가 생성될 때 마다 고유한 PCB가 생성되고, 프로세스가 완료되면 해당 PCB는 제거된다.

⭐PCB에 저장되는 정보는 다음과 같다.

  • 프로세스의 현재 상태
    준비, 대기, 실행 등의 상태 (하단 프로세스 상태 전이 표 참고)
  • 포인터
    • 부모 프로세스에 대한 포인터
    • 자식 프로세스에 대한 포인터
    • 프로세스가 위치한 주소에 대한 포인터
    • 프로세스에 할당된 자원들의 주소에 대한 포인터
  • 프로세스 고유 식별자
    프로세스를 식별할 수 있는 고유 번호
  • 스케줄링, 프로세스 우선순위
  • CPU 레지스터 정보
  • 주기억장치 관리 정보
  • I/O 상태 정보
  • 계정 정보
    CPU 사용 시간, 실제 사용 시간, 한정된 시간

프로세스 상태 전이

프로세스가 시스템 내에 존재하는 동안 프로세스의 상태는 변화한다.

프로세스의 상태

제출(Submit)

작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태

접수(Hold)

제출된 작업이 Spool 공간인 디스크의 할당 위치에 저장된 상태

준비(Ready)

프로세스가 CPU를 할당받기 위해 기다리는 상태
Ready Queue에서 실행을 준비함
접수상태에서 준비상태로의 전이는 Job Scheduler에 의해 수행됨

실행(Run)

준비상태에 있던 프로세스가 CPU를 할당받아 실행되는 상태
프로세스 수행이 완료되기 전에 할당 시간이 종료되면(Timer Run Out) 프로세스는 다시 준비 상태로 전이된다.
실행중인 프로세스에 I/O 처리가 필요하면 프로세스는 대기 상태로 전이된다. (I/O 처리가 끝날 때 까지)
준비상태에서 실행상태로의 전이는 CPU Schedular에 의해 수행됨 (Dispatch)

대기(Wait)

프로세스에 IO 처리가 필요하여, 실행을 중단하고 IO 처리가 끝날 때 까지 대기중인 상태
IO 처리가 완료되면 다시 준비상태로 전이된다. (Wake Up)

종료(Terminate/Exit)

프로세스의 실행이 끝나고 프로세스 할당이 해제된 상태

프로세스의 상태 전이 용어

Dispatch

준비상태 -> 실행상태로 전이되는 과정

Wake Up

대기상태 -> 준비상태로 전이되는 과정

Spooling

멀티태스킹 성능 향상을 위해서 입/출력할 데이터를 직접 입/출력 장치에 보내지 않고, 모아뒀다가 한꺼번에 입/출력하기 위해 디스크에 저장해놓는 과정

profile
튼튼
post-custom-banner

0개의 댓글