컴퓨터과학/운영체제

[운영체제]프로세스(Process) 상태 전이도

PureStack 2021. 10. 29. 00:45

프로세스는 실행의 흐름에 따라 상태가 바뀐다. 일반적으로 프로그램의 실행 흐름은 5가지의 상태를 지닌다.


프로세스의 5가지 상태

  1. 생성(New): 프로세스 생성 상태
  2. 준비(Ready): 프로세스가 CPU에 할당받기를 기다리는 상태
  3. 실행(Running): 프로세스가 CPU에 할당받아서 실행 중인 상태
  4. 대기(Waiting): 프로세스가 입출력이나 이벤트를 기다리는 상태
  5. 종료(Terminated): 프로세스가 실행일 끝내고 종료한 상태

프로세스의 상태 전이

  1. admitted: 프로세스 생성을 승인받음
  2. dispatch: 준비 상태에 있는 여러 프로세스들 중 하나가 스케줄러에 의해 실행되는 상태
  3. Interrupt: Timeout, 입출력 등이 발생하여 현재 실행 중인 프로세스를 준비 상태로 전환하고, 해당 작업을 먼저 처리(preemption)
  4. I/O or event wait: 실행 중인 프로세스가 입출력이나 이벤트를 처리해야 하는 경우, 입출력이나 이벤트가 끝날 때까지 대기 상태로 전환
  5. I/O or event completion: 입출력이나 이벤트가 모두 끝난 프로세스를 다시 준비 상태로 만들어 스케줄러에 의해 선택될 수 있는 상태로 전환

Timeout이란?

프로세스가 제한된 시간을 다 소비하여 CPU 점유 상태를 뺏기는 상태. 예를 들어, 한 프로세스에 주어진 시간이 3초일때, 3초 안에 작업을 다 처리하지 못하면 그 프로세스는 강제로 준비상태로 이동하게 된다. CPU 독점 방지 등에 유용하다.