운영체제OS

프로세스 상태

강강강 2022. 11. 26. 18:09

생성상태 create

: 프로세스가 생성된 상태 fork(), exec() 함수를 통해 생성한다. 이때 PCB가 할당됨.

- fork() : 부모 프로세스의 주소 공간을 그대로 복사해 새로운 자식 프로세스를 생성하는 함수다. 주소 공간만 복사할 뿐이지 부모 프로세스의 비동기 작업 등은 상속하지 않아@

- exec() : 새롭게 프로세스를 생성하는 함수.

 

대기상태 ready

: 메모리 공간이 충분하면 메모리를 할당받고 아니면 아닌 상태로 대기하고 있으며 CPU 스케줄러로부터 CPU 소유권이 넘어오기를 기다리는 상태다.

 

실행 상태 running

: CPU 소유권과 메모리를 할당받고 인스트럭션을 수행 중인 상태를 의미한다.

 

중단 상태 blocked 

: 어떤 이벤트가 발생한 이후 기다리며 프로세스가 차단된 상태다. I/O 디바이스에 의한 인터럽트로 이런 현상이 많이 발생하기도 함.

예를들어서 인쇄버튼을 눌렀을 때 프로세스가 잠깐 멈춘듯 할 때?? 바로 그 상태다

 

종료상태 terminated 

: 메모리와 CPU 소유권을 모두 놓고 가는 상태를 말한다. 종료는 자연스럽게 종료되는 것도 있지만, 부모 프로세스가 자식 프로세스를 강제 종료시키는 비자발적인 종료(abort) 도 있다. 

자식 프로세스에 할당된 자원의 한계치를 넘어서거나 부모 프로세스가 종료되거나 사용자가 process.kill 등 여러 명령어로 프로세스를 종료할 때 발생한다.