- 생성(New): 프로세스가 시스템에 생성되어 초기화되는 단계입니다. 이때 프로세스는 필요한 자원을 할당받기 위해 대기하며, 준비 상태로 이동하기 전의 초기 상태입니다.
- 준비(Ready): 프로세스가 CPU에서 실행될 준비가 완료된 상태입니다. 프로세스는 CPU 할당을 기다리며, 실행을 위한 대기열에 위치합니다. 준비 상태의 프로세스는 CPU가 이용 가능해지면 실행 상태로 전환될 수 있습니다.
- 실행(Running): 프로세스가 CPU를 할당받아 명령어를 실행하는 상태입니다. 프로세스는 이 상태에서 실제 작업을 수행합니다. 실행 중인 프로세스는 작업 완료, 입출력 요청, 인터럽트 발생 등의 이유로 다른 상태로 전환될 수 있습니다.
- 대기(Waiting): 프로세스가 입출력과 같은 이벤트의 완료 또는 특정 조건의 충족을 기다리는 상태입니다. 대기 상태의 프로세스는 필요한 조건이 만족되거나 대기 중인 이벤트가 완료되면 다시 준비 상태로 전환되어 CPU 할당을 기다립니다.
- 종료(Terminated): 프로세스가 실행을 완료하고 시스템에서 제거되는 상태입니다. 프로세스는 작업 완료, 사용자에 의한 종료, 오류 발생 등의 이유로 종료될 수 있습니다. 종료 상태에서 프로세스는 시스템에서 사용했던 모든 자원을 해제하고, 프로세스 제어 블록(PCB)이 삭제됩니다.
프로세스 상태 변화
프로세스의 상태 변화를 설명할 때 사용되는 용어들은 프로세스가 특정 상태로 전환될 때 발생하는 이벤트나 조건을 나타냅니다. 이러한 용어들은 프로세스의 생명 주기를 관리하고 이해하는 데 중요한 역할을 합니다. 여기 몇 가지 주요 용어들과 그 의미를 설명합니다:
- Dispatch (디스패치): 준비 상태에 있는 프로세스를 실행 상태로 전환시키는 과정입니다. 운영체제의 스케줄러가 이 작업을 수행하여, CPU가 다음에 실행할 프로세스를 결정하고, 해당 프로세스를 실행 상태로 전환시킵니다.
- Time-out (타임아웃): 실행 상태에 있는 프로세스가 할당받은 시간(타임 슬라이스)을 모두 사용하고, 다시 준비 상태로 전환되는 것을 말합니다. 이는 시분할 시스템에서 프로세스들에게 CPU 사용 시간을 공정하게 분배하기 위해 사용됩니다. 시분할 시스템에서 시간 할당량은 운영체제의 목적 또는 프로세스의 종류에 따라 다르겠지만 대략 수 ms에서 수십 ms 정도의 시간이 부여됩니다.
- Wake-up (웨이크업): 대기 상태에 있는 프로세스가 대기하고 있던 이벤트가 발생하거나 조건이 충족되어 다시 준비 상태로 전환되는 과정입니다. 예를 들어, I/O 작업이 완료되어 해당 작업을 기다리던 프로세스가 다시 CPU 할당을 기다릴 수 있도록 준비 상태로 바뀌는 것입니다.
- Block (블록) 또는 Sleep (슬립): 실행 상태에 있는 프로세스가 I/O 요청과 같은 비동기적인 이벤트를 기다려야 할 때, 자발적으로 CPU를 반납하고 대기 상태로 전환되는 과정입니다. 이를 통해 CPU는 다른 준비 상태의 프로세스를 실행할 수 있게 됩니다.
- Terminate (종료): 프로세스가 작업을 완료하거나 오류 등의 이유로 더 이상 실행될 수 없을 때, 시스템에서 제거되는 과정입니다. 이 과정에서 프로세스는 사용했던 모든 자원을 운영체제에 반환하고, 프로세스의 상태가 종료 상태로 변경됩니다.
- Preemption (선점): 실행 중인 프로세스가 높은 우선순위의 프로세스에 의해 CPU를 강제로 빼앗기고, 준비 상태로 전환되는 과정입니다. 이는 선점형 스케줄링에서 사용되며, 시스템의 반응 시간을 개선하기 위해 중요한 작업을 빠르게 처리할 수 있도록 합니다.
'운영체제' 카테고리의 다른 글
[OS] 프로세스 스케줄링 (0) | 2024.08.29 |
---|---|
[OS] 시스템 콜(System Call) (0) | 2024.08.24 |
[OS] 문맥 교환(Context Switch), PCB (0) | 2024.08.24 |
[OS] 프로세스 (0) | 2024.08.24 |