본문 바로가기

COMPUTER SCIENCE/운영체제

프로세스의 상태

프로세스에는 기본적으로 다섯 가지 상태가 있다. 이것을 활성 상태(ACTIVE STATUS)라고 한다.

1. 생성 상태(create status)

설명 작업
프로그램을 메모리에 가져와 실행 준비가 완료된 상태이다. 메모리 할당, 프로세스 제어 블록 생성

2. 준비 상태(ready status)

설명 작업
실행을 기다리는 모든 프로세스가 자기 차례를 기다리는 상태이다. 실행될 프로세스를 CPU 스케줄러가 선택한다. DISPATCH(PID): 준비상태의 프로세스를 실행상태의 프로세스로 만들어준다.

3. 실행 상태(running status)

설명 작업
선택된 프로세스가 타임 슬라이스를 얻어 CPU를 사용하는 상태이다. 프로세스 사이의 문맥 교환이 일어난다. TIMEOUT(PID): 실행상태의 프로세스를 준비상태로 만든다.
EXIT(PID): 실행상태의 프로세스를 완료상태로 만든다.
BLOCK(PID): 실행상태의 프로세스를 대기상태로 만든다.

4. 대기 상태(blocking status)

설명 작업
실행 상태의 프로세스가 입출력을 요청하면 입출력이 완료될 때 까지 기다리는 상태이다. 입출력이 완료되면 준비상태로 간다. WAKEUP(PID): 대기상태의 프로세스를 준비상태로 만든다.

5. 완료 상태(terminate status)

설명 작업
프로세스가 종료된 상태이다. 사용하던 모든 데이터가 정리되고 정상 종료인 EXIT과 비정상 종료인 ABORT가 있다. 메모리 삭제, 프로세스 제어 블록 삭제

 

5가지 상태를 제외하고 조금 특별한 상태가 있다. 보류 상태라고 하는데 보류 상태는 일시 정지 상태라고도 불린다.

다음은 프로세스가 보류상태가 되는 이유이다.

1. 메모리가 꽉 차서 일부 프로세스를 메모리 밖으로 내보낼 때

2. 프로그램에 오류가 있어서 실행을 미루어야 할 때

3. 바이러스와 같이 악의적인 공격을 하는 프로세스라고 판단될 때

4. 매우 긴 주기로 반복되는 프로세스라 메모리 밖으로 쫓아내도 큰 문제가 없을 때

5. 입출력을 기다리는 프로세스의 입출력이 계속 지연될 때

 

보류 상태에 들어간 프로세스는 메모리 밖으로 쫓겨나 스왑 영역(SWAP AREA)에 보관된다. 스왑 영역은 메모리에서 쫓겨난 데이터가 임시로 보관되는 곳이다.

보류 상태는 대기 상태에서 옮겨진 보류대기 상태와 준비상태에서 옮겨진 보류준비 상태로 구분된다.

각 상태에서 재시작하면 원래의 활성 상태로 들어간다. 보류 대기 상태에서 입출력이 완료되면 활성 상태가 아닌 보류 준비 상태로 옮겨진다.

'COMPUTER SCIENCE > 운영체제' 카테고리의 다른 글

스레드  (0) 2023.12.29
프로세스 제어 블록과 문맥 교환  (1) 2023.12.23