생성 상태
•
프로세스가 생성되어 시스템에 등록되는 초기 단계
•
fork() 또는 exec() 함수를 통해 생성
fork()
exec()
•
운영체제는 필요한 자원과 메모리 공간을 할당
•
PCB가 할당됨
PCB
대기 상태
•
CPU를 할당 받기 위해 기다리고 있는 상태. CPU만 주어지면 바로 실행할 준비가 된 상태
대기 중단 상태
•
생성된 프로세스가 바로 메모리를 받지 못할 때, 준비 또는 실행 상태에서 메모리를 잃게 될 때
•
충분한 메모리 공간의 확보를 위해 준비 상태의 프로세스를 보류시키는 경우
•
메모리 부족으로 일시 중단된 상태
실행 상태
•
CPU 소유권과 메모리를 할당받고 인스트럭션을 수행 중인 상태(CPU burst)
중단 상태
•
프로세스가 실행되다가 입출력 처리를 요청하거나, 바로 확보될 수 없는 자원을 요청하면
CPU를 양도하고 요청한 일이 완료되기를 기다리며 프로세스가 차단된 상태
일시 중단 상태
•
중단된 상태에서 프로세스가 실행되려고 했지만 메모리 부족으로 일시 중단된 상태
•
대기 중단 상태와 유사
종료 상태
•
메모리와 CPU 소유권을 모두 놓고 가는 상태
•
부모 프로세스가 자식 프로세스를 강제시키는 비자발적 종료(abort)로 종료되는 경우도 있음
자식 프로세스에 할당된 자원의 한계치를 넘어서거나 부모 프로세스가 종료되거나 사용자가 process.kill 등 여러 명령어로 프로세스를 종료할 때 발생함
참고자료