뭐든 즐기면서 ;)

프로세스 상태전이도(State Transition Diagram) 본문

IT정리/정보처리기사

프로세스 상태전이도(State Transition Diagram)

Tada.*+ 2023. 10. 11. 22:45
728x90

프로세스에의 5가지 상태

  • New : 프로그램이 메모리에 로드되어 프로세스가 생성된 상태
  • Ready : 프로세스가 CPU를 사용해 실행될 수 있는 상태. Process Status list 중 우선 순위대로 준비 리스트에 들어가 있음.
  • Running : 실행 중 상태
  • Waiting : 프로세스 진행 중에 I/O 또는 어떤 event를 진행하기 위해, Running 상태에서 잠시 대기 상태에 있는 것. Wait 상태에서 I/O 입출력 완료 등의 작업이 끝나면 다시 Ready상태로 돌아가고, 이때 Process Status list 중 블록 리스트에 들어가 있음.
    • 대기 상태에는 2가지 종류가 더 있음. 이 Suspend 상태는 제대로 CPU 할당을 받지 못한 채로 메모리 자원만 차지하고 있어, 커널에 의해 메모리를 회수 당하고 디스크로 Swap-out되는 상태를 뜻한다.
    • Suspended Block(지연 대기) 
    • Suspended Rready (지연 준비)
  • Termiated : 종료

위 상태별로 Flow를 그려보면 아래와 같다. 이것이 프로세스 상태전이도이다.

전이 상태

  • dispatch(ready > running) : 준비 큐에 있는 프로세스를 선택 후 CPU할당
  • interrupt(running > ready) : TimeRunout. CPU  사용 시간을 경과한 경우. ( CPU 독점 방지)
  • block(running > ready) : CPU를 할당 받은 프로세스가 I/O 등 다른 자원을 요구
  • wake-up(wait > ready) : 대기 중인 프로세스가 I/O 작업 또는 event 처리가 끝났을 때. 준비 리스트의 맨 뒤에 붙음.
  • swap-out(ready || wait > suspended) : 메모리 부족, 또는 준비 상태의 프로세스가 기억장치를 잃은 경우 커널에 의해 메모리를 회수당하고 디스크로 Swap-out됨.
  • swap-in(suspended > ready || wait) :  기억장치가 다시 할당되는 경우, 지연 준비 상태로 전이, 디스크에서 다시 활동 상태인 메모리 영역으로 Swap-in됨.
  • exit(running > terminated) : 프로세스의 정상/비정상 종료

* Context Switching(문맥 교환)은 dispacth, block, interrupt 시기에 발생. (이것에 대해서는 추후에 부가적으로 적겠음. 문맥 교환은 굉장히 복잡한 것이라.)

728x90
Comments