운영체제에 관련된 프로세스 상태변화에 대해서 탐구함.
해당 내용을 공부하는 이유는 개발자가 프로세스 상태를 이해함으로써, 한정된 시스템 자원을 효율적으로 할당하고 관리할 수 있다. 또한 멀티태스킹과 병렬 처리, 최적화 등의 깊은 이해를 도울 수 있다.
해당 내용을 탐색하기 전 간단한 용어 설명
- 프로세스 : 프로그램을 실행하는 순간 해당 파일은 컴퓨터 메모리에 올라가게 되고, 이 상태를 동적인 상태라고 하며 이 상태의 프로그램을 프로세스라고 한다.
프로세스 상태변화에는 크게 5가지로 분류된다. 운영체제에서 프로세스의 상태 변화는 프로세스가 생명주기를 겪는 동안 여러 단계를 의미한다.
- New : 프로세스가 생성되고 초기화되는 단계이다. 이 단계에서 프로세스는 운영체제로부터 필요한 자원을 할당받아 실행을 위한 준비를 한다.
- Ready: 프로세스가 CPU 에서 실행될 준비가 완료된 상태이다. 준비 완료 큐에 위치하며 CPU 할당을 기다린다.
- Running: 프로세스가 CPU를 할당받아 명령어들이 실행되는 단계이다. 프로세스가 실제로 작업을 수행하고 있는 상태이다.
- Waiting 또는 Blocked : 프로세스가 특정 이벤트가 발생하기를 대기하는 상태. 이 상태에서는 CPU를 할당받지 않고, 필요한 이벤트가 발생하길 기다린다.
- Terminated 또는 Exit : 프로세스의 실행이 완료되어 운영체제가 프로세스를 종료시키는 단계이다.