더북(TheBook)

총 다섯 가지 상태가 있습니다. 하나씩 알아봅시다.

1| 생성(Created) 프로그램을 더블클릭했을 때 프로세스가 생성되면서 실행 가능 상태가 됩니다. 곧바로 실행 상태가 되는 것이 아니라, 우선 실행 가능 상태가 되어 실행 중인 프로세스와 우선순위를 비교한 다음 우선순위가 높으면 실행하고 아니면 실행 가능 상태에서 순서를 기다리는 식입니다.

2| 실행 가능(Waiting) 실행 가능 상태의 프로세스는 언제든지 실행될 준비가 되어 있습니다. 운영체제는 인터럽트가 발생했을 때 실행 가능 상태의 프로세스 중 다음으로 CPU를 할당받아 실행될 프로세스를 결정한 후 실행 중인 프로세스와 교체합니다. 이때 다음으로 실행될 프로세스에 CPU를 할당하는 것을 디스패치(dispatch)라고 하고, 실행 중이던 프로세스에서 CPU를 해제하는 것을 프리엠션(preemption)이라고 합니다.

3| 실행(Running) 프로세스가 운영체제로부터 CPU를 할당받아 실행되고 있는 상태입니다.

4| 보류(Blocked) 프로세스가 I/O(입출력) 작업을 하면 CPU를 해제하고 보류 상태로 변경됩니다. 이때 실행 가능 상태의 프로세스 중 하나가 CPU를 할당받습니다. 보류 상태에 들어간 프로세스는 I/O 작업이 모두 끝나면 실행 가능 상태로 변경됩니다. 중요한 점은 I/O 작업이 완료된 다음 바로 실행 상태로 변경되는 것이 아니라, 실행 가능 상태가 되어 실행되기를 기다린다는 점입니다. 또한 실행 대기 상태(Waiting)와 보류(Blocked) 상태를 구분할 수 있어야 합니다. 실행 대기 상태는 언제든지 다시 실행될 수 있는 상태를 말하지만 보류 상태는 I/O 작업이 끝나기 전에는 실행이 불가능한 상태입니다.

5| 소멸(Terminated) 프로세스 실행이 완료되어 메인 메모리에서 사라집니다.


다음 장에서는 실행 가능 상태와 실행 상태 사이에서 디스패치(dispatch)와 프리엠션(preemption)이 일어날 때 운영체제가 어떤 프로세스에게 CPU를 할당하는지 알아보겠습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.