Computer Science/Operating System

프로세스 상태 전이 다이어그램(Process State Transition Diagram)

quessr 2025. 1. 24. 09:41

 

운영체제에서 프로세스(Process)는 실행 중인 프로그램을 의미합니다. 하지만 하나의 프로그램이 항상 실행 상태에 있는 것은 아닙니다. 프로세스는 실행을 준비하거나, 대기하거나, 종료되는 등 다양한 상태를 거칩니다. 이러한 상태를 시각적으로 나타낸 것이 Process State Transition Diagram입니다. 이번 글에서는 프로세스의 상태와 전이 과정을 쉽게 이해할 수 있도록 정리해 보겠습니다.


프로세스의 주요 상태

  1. Created (생성 상태)
    •    프로세스가 막 생성된 초기 상태입니다.
    •    아직 CPU를 할당받지 않았으며 실행 준비 중입니다.
    •    다음 상태: Ready 상태로 전환.
  2. Ready (준비 상태)
    •    프로세스가 실행 준비를 마친 상태로, CPU를 할당받기 위해 대기합니다.
    •    CPU 스케줄러에 의해 선택되면 Running 상태로 전환됩니다.
    •    특징: 메모리와 필요한 자원이 할당된 상태지만 아직 실행 중은 아님.
  3. Running (실행 상태)
    •    프로세스가 CPU를 할당받아 실행 중인 상태입니다.
    •    이 상태에서 실제 작업(명령어 실행)을 수행합니다.
    •    다음 상태:
      •    작업이 완료되면 Terminated로 전환.
      •    I/O 요청 등으로 대기 상태가 필요하면 Asleep으로 전환.
      •    선점형 스케줄러에 의해 CPU가 다른 프로세스로 넘어가면 다시 Ready로 전환.
  4. Asleep (차단 상태)
    •    프로세스가 I/O 작업이나 자원 대기로 인해 실행을 멈춘 상태입니다.
    •    예: 파일 읽기, 네트워크 응답 대기 등.
    •    I/O 작업이 완료되면 Ready 상태로 전환되어 다시 실행 준비를 합니다.
  5. Suspended Ready (준비 상태에서 일시 중단)
    •    Ready 상태의 프로세스가 메모리 부족 등으로 디스크로 스왑 아웃된 상태입니다.
    •    다음 상태: 스왑 인 후 Ready로 복귀.
  6. Suspended Blocked (차단 상태에서 일시 중단)
    •    Asleep 상태에서 메모리 부족으로 인해 스왑 아웃된 상태입니다.
    •    다음 상태: 스왑 인 후 Asleep으로 복귀.
  7. Terminated (종료 상태)
    •    프로세스가 모든 작업을 완료한 상태입니다.
    •    CPU와 메모리 등 자원이 해제되며, 더 이상 실행되지 않습니다.

상태 간 전이 과정 (프로세스가 프로세서를 할당받는 경우 포함)

  1. Created → Ready:
    •    프로세스가 생성되고 실행 준비를 마친 상태입니다.
    •    이 시점에서 CPU는 아직 할당되지 않았습니다.
  2. Ready → Running:
    •    CPU 스케줄러에 의해 선택된 프로세스가 CPU를 할당받으면 실행 상태로 전환됩니다.
    •    이 전이는 운영체제의 스케줄링 정책에 따라 결정됩니다(예: 우선순위, 타임슬라이스 등).
  3. Running → Ready:
    •    프로세스가 실행 도중 타임아웃(타임 슬라이스 종료)되거나, 선점형 스케줄러에 의해 CPU를 다른 프로세스에 넘기게 되면 다시 준비 상태로 돌아갑니다.
  4. Running → Asleep:
    •    실행 중인 프로세스가 I/O 작업을 요청하거나 자원을 기다리게 되면 Asleep 상태로 전환됩니다.
    •    예: 디스크에서 파일 읽기 요청, 네트워크 데이터 대기.
  5. Asleep → Ready:
    •    대기하던 작업(I/O 등)이 완료되면 다시 준비 상태로 돌아옵니다.
    •    이때, CPU는 여전히 다른 프로세스가 사용 중일 수 있습니다.
  6. Running → Terminated:
    •    작업을 모두 완료한 프로세스는 종료 상태로 전환됩니다.
    •    CPU와 메모리 등 모든 자원이 해제됩니다.
  7. Ready ↔ Suspended Ready:
    •    준비 상태의 프로세스가 메모리 부족으로 일시 중단되거나, 다시 활성화되면 전환됩니다.
  8. Asleep ↔ Suspended Blocked:
    •    차단 상태의 프로세스가 메모리 부족으로 일시 중단되거나 복구됩니다.

CPU와 자원의 관점에서 본 상태 이해

  • CPU 할당:
    프로세스가 Ready 상태에서 Running으로 전환되려면 반드시 CPU를 할당받아야 합니다.
    이 과정은 스케줄러가 우선순위, 실행 시간 등을 고려해 결정합니다.
  • 자원 요청:
    프로세스가 실행 중에 I/O 작업이나 자원을 요청하면 Asleep 상태로 전환됩니다.
    작업이 완료되면 Ready 상태로 복귀하여 다시 CPU 할당을 기다립니다.
  • 메모리 부족:
    운영체제는 메모리 부족 시 프로세스를 디스크로 스왑 아웃(Swap Out)하여 Suspended 상태로 전환합니다.
    스왑 인(Swap In)되면 다시 활성화됩니다.

핵심 요약

  • 프로세스는 생성 → 준비 → 실행 → 대기/종료의 상태 전이를 거칩니다.
  • 실행 상태(Running)로 전환되려면 CPU를 할당받아야 하며, 이는 스케줄러가 결정합니다.
  • 자원 요청이나 메모리 부족 등으로 인해 차단 상태(Asleep)나 일시 중단 상태(Suspended)로 이동할 수 있습니다.
반응형