Skip to Content
공부운영체제프로세스프로세스 상태도

프로세스 상태도

프로세스는 실행 중 다양한 상태를 거친다:

New (생성)

프로세스가 막 생성된 상태다. 프로그램이 실행 명령을 받으면 운영체제는 새로운 프로세스를 생성하고, 필요한 자원과 메모리 공간을 할당한다. 이 상태에서는 아직 실행 준비가 완료되지 않았다.

Ready (준비)

프로세스가 실행 준비를 마치고 CPU 할당을 기다리는 상태다. 메모리 할당이 완료되어 언제든 실행될 수 있지만, CPU를 사용할 차례를 기다리고 있다. 여러 프로세스가 동시에 Ready 상태에 있을 수 있으며, 스케줄러가 우선순위에 따라 CPU를 할당한다.

Running (실행)

프로세스가 CPU를 할당받아 실제로 실행되는 상태다. 단일 코어 기준으로는 한 번에 하나의 프로세스(또는 스레드)만 실행할 수 있지만, 멀티코어 환경에서는 서로 다른 코어가 각자 프로세스를 실행하므로 여러 프로세스가 동시에 Running 상태일 수 있다.

이 상태에서 프로세스는 세 가지 상태로 전환될 수 있다.

  1. 할당된 시간이 초과되어 인터럽트가 발생하면, 프로세스는 다시 Ready 상태로 돌아가 CPU 할당을 기다린다.
  2. 프로세스가 I/O 작업을 요청하면, CPU 사용을 중단하고 Waiting 상태로 전환된다.
  3. 프로세스가 모든 작업을 완료하면, Terminated 상태로 전환되어 종료된다.

Waiting (대기)

프로세스가 I/O 작업 완료를 기다리는 상태다. 파일 읽기/쓰기, 네트워크 통신, 사용자 입력 등 I/O 작업은 CPU에 비해 매우 느리므로, 운영체제는 I/O 대기 중인 프로세스를 Waiting 상태로 전환하고 CPU를 다른 프로세스에게 할당한다.

I/O 작업이 완료되면 프로세스는 다시 Ready 상태로 전환되어 CPU 할당을 기다린다.

Terminated (종료)

프로세스의 실행이 완전히 종료된 상태다. 운영체제는 프로세스에게 할당했던 메모리와 자원을 회수하여 다른 프로세스가 사용할 수 있도록 한다. 이후 프로세스는 시스템에서 제거된다.

Last updated on