솜은 코튼

[OS] 프로세스 (프로세스 상태도) 본문

OS

[OS] 프로세스 (프로세스 상태도)

솜.코 2023. 5. 23. 14:46

 

 

프로세스의 개념

.

 

먼저 '프로그램'과 '프로세스'의 차이를 알아야 한다.

 

프로그램은 어떤 데이터를 사용하여 어떤 작업을 할지 절차를 적어놓은 것이고,

프로세스는 프로그램으로 작성된 작업 절차를 실행하는 것이다.

 

프로그램은 저장장치에 저장되어 있고,

프로세스는 실행을 위해 메모리로 올라온 상태이다.

 

 

일괄 작업 시스템의 경우 한 번에 하나의 작업만 처리하므로

프로세스를 생성하고 실행한 후 완료시키면 되지만

 

우리는 많은 작업을 한 번에 처리해야 한다.

 

 

 

 

여러 작업을 효율적으로 하기 위해 프로세스 상태 변화에 대해 알아보자.

 

 

프로그램을 실행하기 위해 메모리에 올릴 때 작업 관련 정보가 필요하다.

이 정보들은 프로세스 제어 블록(PCB)에 저장된다.

 

PCB는 생성 상태(new)에서 생성된다.

 

 

프로세스가 생성되면 CPU를 할당받기 위해 준비 상태로 이동한다.

이때 CPU 스케줄러가 준비 큐에 있는 프로세스 중 선택하여 실행 상태로 보낸다.

이 작업을 '디스패치(dispatch)'라고 한다.

 

 

프로세스들은 시분할 방식으로 처리된다.

이 말은 CPU를 할당받는 시간 즉, 타임 슬라이스 동안만 작업할 수 있다.

 

그 시간을 다 사용하면 타임아웃이 실행되고 준비 상태로 옮긴다.

 

 

프로세스가 실행되는 동안 사용자의 입력 등 종료 시간을 알 수 없는 작업이 들어올 때가 있다.

이 작업이 완료될 때까지 CPU가 기다리는 것은 효율적이지 않다.

하여 종료 시간을 알 수 없는 입출력 작업 등은 대기 상태로 이동된다.

 

입출력 작업이 완료되면 입출력 관리자로부터 인터럽트를 받는다.

이 프로세스는 실행 상태에서 왔지만 현재 실행 중인 프로세스를 종료시킬 수 없으므로

준비 상태로 보내야 한다.

 

 

완료 상태는 프로세스가 종료되는 상태로 PCB를 폐기한다.

 

대부분 프로세스는 생성, 준비, 실행, 대기, 완료 상태로 운영되며 이 상태들을 활성 상태라고 한다.

 

 

이 외의 상태 중 휴식 상태는 일시적으로 쉬고 있는 상태이다.

사용하던 데이터가 메모리에 그대로 있고 PCB도 유지되므로 멈춘 지점부터 재시작할 수 있다.

 

 

보류 상태는 메모리에서 잠시 쫓겨난 상태로

메모리가 꽉 차서 메모리 밖으로 보내거나 오류가 있어서 실행을 미루는 등의 상황이다.

 

즉, 컴퓨터의 성능을 떨어뜨리거나 실행을 미루어도 큰 지장이 없는 프로세스이다.

 

이 보류 상태에 들어간 프로세스는 스왑 영역으로 보내지며

휴식 상태는 메모리에 있으나 멈춘 상태이므로 차이가 있다.

 

 

 

 

 

 

 

 

* 해당 글은 '쉽게 배우는 운영체제'와 '운영체제' 책을 참고하여 작성하였습니다. 출처: 쉽게 배우는 운영체제 (조성호), 운영체제 10판 (Abraham Silberschatz)