프로세스 상태 전이
기술노트
🔄 프로세스 상태 전이
운영체제(OS)에서 프로세스는 생성되어 실행을 완료하기까지 여러 가지 상태를 거치며 변화합니다. 이러한 상태 변화를 '프로세스 상태 전이(Process State Transition)'라고 합니다. 운영체제는 프로세스의 상태를 관리하며 CPU 자원을 효율적으로 분배합니다.
📚 프로세스의 주요 상태
- 생성 (New / Created) : 프로세스가 생성되어 메모리에 적재되었지만, 아직 CPU를 할당받지 못한 초기 상태입니다.
- 준비 (Ready) : CPU를 할당받을 준비가 되어, CPU 스케줄러로부터 CPU 할당을 기다리는 상태입니다. (Ready Queue에 대기)
- 실행 (Running) : CPU를 할당받아 실제로 명령어를 실행하고 있는 상태입니다. 한 순간에 하나의 프로세스만 실행 상태에 있을 수 있습니다.
- 대기 (Waiting / Blocked) : 입출력(I/O) 작업 완료, 특정 이벤트 발생 등 어떤 사건이 일어나기를 기다리는 상태입니다. (Waiting Queue에 대기)
- 종료 (Terminated / Exit) : 프로세스의 실행이 완료되거나, 오류로 인해 중단된 상태입니다.
⚙️ 프로세스 상태 전이
프로세스는 다음과 같은 원인에 의해 상태가 변화합니다.
- 생성 → 준비 : 프로세스가 생성되어 준비 큐에 삽입됩니다.
- 준비 → 실행 : CPU 스케줄러에 의해 CPU를 할당받습니다. (디스패치, Dispatch)
- 실행 → 준비 : 할당된 CPU 시간을 모두 사용했거나(타임 슬라이스 만료), 더 높은 우선순위의 프로세스가 나타나 CPU를 빼앗기는 경우(선점, Preemption)에 발생합니다.
- 실행 → 대기 : 입출력(I/O) 작업 요청, 파일 열기, 사용자 입력 대기 등 어떤 사건이 완료되기를 기다려야 할 때 발생합니다.
- 대기 → 준비 : 기다리던 사건(I/O 완료 등)이 발생하면, 다시 CPU를 할당받을 준비 상태로 돌아갑니다.
- 실행 → 종료 : 프로세스의 실행이 완료되거나, 오류로 인해 강제 종료됩니다.
💡 정보처리기사 핵심 Point
- 프로세스 상태 전이는 운영체제가 프로세스를 어떻게 관리하고 CPU 자원을 분배하는지 이해하는 데 매우 중요한 개념입니다.
- 정보처리기사 시험에서는 각 프로세스 상태의 의미와 상태 전이를 유발하는 원인을 묻는 문제가 자주 출제됩니다.
- 특히 '실행 → 준비'로 전이되는 선점(Preemption) 상황과, '실행 → 대기'로 전이되는 블록(Block) 상황을 명확히 구분해야 합니다.