본문 바로가기
Computer Science/Operating System

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

by quessr 2025. 1. 24.

 

운영체제에서 프로세스(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)로 이동할 수 있습니다.
반응형