봉황대 in CS

[Chapter 3. 프로세스] 프로세스의 상태 본문

Computer Science/Operating System

[Chapter 3. 프로세스] 프로세스의 상태

등 긁는 봉황대 2022. 7. 8. 12:00

* 본 글은 '운영체제(Operating System: Concepts) 9th edition'의 내용과 2021학년도 1학기에 수강한 '운영체제' 과목 강의 내용을 함께 정리하여 작성하였습니다.

 

 

프로세스는 실행되면서 그 상태가 변한다.

프로세스의 상태는 그 프로세스의 현재 활동에 따라서 정의된다.

 

프로세스 상태 천이도 (Process State Transition Diagram)

 

* 어느 한순간에 한 처리기 상에서는 오직 한 프로세스만이 실행된다.

* 준비 및 대기 상태에는 많은 프로세스가 해당 상태에 있을 수 있다.

 

생성 (new)

프로세스가 생성된 상태

즉, PCB와 메모리 상의 주소 공간(사용자 문맥)이 마련된 상태이다.

 

준비 (ready)

CPU의 배정을 기다리는 상태

스케줄링에 의하여 선택만 된다면 언제든지 실행이 될 수 있는 상태이며, 준비 리스트 또는 준비 큐에서 기다리고 있다.

 

준비 상태로 천이되어 오는 경우는 다음과 같다.

1. 프로세스 생성 후 선정되어 CPU 할당을 대기하는 경우

2. 프로세스 실행 도중 비자발적 문맥 교환이 일어난 경우

     (1) 타임 슬라이스 소진(할당 시간 경과)으로 인한 스케줄링

     (2) 인터럽트 발생

3. 대기하고 있던 입출력 또는 사건(시그널 등)이 완료된 경우

 

 

실행 (running)

프로세스가 CPU에 의해 실행되고 있는 상태

명령어들이 실행되고 있다.

 

프로세스의 실행 모드

1. 사용자 모드 실행 (User mode running)

     프로세스의 텍스트 영역(사용자나 라이브러리 코드)이 실행되고 있는 상태이다.

2. 커널 모드 실행 (Kernel mode running / System mode running)

     프로세스가 시스템 호출(트랩)을 하여 커널의 코드 부분이 실행되고 있는 상태이다.

 

실행 상태에 있는 프로세스는 CPU를 회수당하거나 반납할 때까지 실행 상태에 있게 된다.

1. 회수 당할 경우 (비자발적 문맥 교환) → 준비 상태로 천이

2. 반납할 경우 (자발적 문맥 교환) → 대기 상태로 천이

     (1) 프로세스 스스로의 입출력 요청

     (2) 다른 프로세스가 보낼 시그널에 대한 대기 요청

 

대기 (blocked)

프로세스가 어떤 사건(event)이 발생하기를 기다리고 있는 상태

이때 사건은 입출력의 완료 또는 시그널의 접수이다.

 

사용자 프로세스가 시스템 호출을 통한 입출력을 요구하였거나,

사건 발생을 대기하는 중에는 CPU에 의해 수행될 필요가 없으므로 CPU를 자진으로 반납한다.

 

CPU 반납 후 사건의 종류별로 구성된 대기 리스트 (wait queue 또는 sleep queue)로 이동하여 대기하였다가

사건 발생 시 준비 상태로 천이한다.

 

 

종료 (terminated)

프로세스가 종료된 상태

 

 

반응형
Comments