본문으로 바로가기

프로세스의 상태

 

1. Job vs Process

: Disk에 보관된 Job을 처리하기 위해 시스템에 실행 요청 >> Job이 시스템에 등록되어 메모리를 할당받은 상태를 Process라고 일컫음

Job Process
실행할 프로그램 + 데이터
컴퓨터 시스템에 실행 요청 전의 상태
실행을 위해 시스템(커널)에 등록된 작업
시스템 성능 향상을 위해 커널에 의해 관리 됨

 

🔻 프로세스의 정의

# 실행중인 프로그램

# 커널에 등록되어 커널 관리하에 있는 작업

# 프로세스 관리 블록(PCB)을 할당 받은 개체

# 능동적 개체 (실행 중 각종 자원을 요구, 할당, 반납)

 

🔻 자원 (Resource)

# 커널의 관리 하에 프로세스에게 할당/반답되는 수동적 개체

 

2. Process Control Block (PCB)

# OS가 프로세스 관리에 필요한 정보 저장

# 프로세스 생성 시, 생성됨

# PCB정보는 OS별로 상이

# PCB참조 및 갱신 속도OS의 성능에 큰 영향

 

🔻 PCB가 관리하는 정보

# PID (PRocess Identification Number)

# 스케줄링 정보

# 프로세스 상태

# 메모리 관리 정보

# 입출력 상태 정보

# 문맥 저장 영역

# 계정 정보

 

3. 프로세스 상태 (Process States)

# 프로세스와 자원 간 상호작용에 의해 결정

프로세스 상태 (Process State)
프로세스 상태 (Process State) 다이어그램


🔻 Created

# Job을 커널에 등록

# PCB할당 및 프로세스 생성

# 가용메모리 공간 체크 및 프로세스 상태 전이

메모리 공간 OK >> Ready

메모리 공간 NO >> Suspended Ready

 

 


🔻 Ready

# 프로세서 외에 다른 모든 자원을 할당 받은 상태 >> 즉 실행 가능 상태 / 프로세서(CPU) 할당 대기 상태

 

// Dispatch/Schedule (CPU 할당) :  Ready >> Running

 

 


🔻 Running

# 프로세서와 필요한 자원을 모두 할당 받은 상태

 

// Preemption : Running >> Ready

- CPU할당을 뺏김

 

// Block/Sleep : Running >> Asleep

- I/O등 자원 할당 요청


🔻 Blocked/Asleep

# 프로세서 외에 다른 자원을 기다리는 상태

# 자원 할당은 system call로

 

// Wake up : Blocked/Asleep >> Ready

이미 다른 프로세서가 CPU할당을 받아 Running 중이므로 바로 Running 하지 못하고 Ready 상태로 돌아가 대기


🔻 Suspended

# 메모리를 할당 받지 못한/빼앗긴 상태

# Memory imageSwap device에 보관

# 커널 또는 사용자에 의해 발생

 

// Memory image : 메모리 상태정보

// Swap device : 프로그램 정보 저장을 위한 특별한 파일 시스템 ( swap-in / swap-out )


🔻 Terminated/Zombie

# 프로세스 수행이 끝난 상태

# 모든 자원 반납, 커널 내에 일부 PCB정보만 남아 있음

(이후 프로세스 관리를 위해)


참고자료

HPC Lab. KOREATECH [OS} Lecture 3

https://www.youtube.com/watch?v=jZuTw2tRT7w&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=5&t=137s&ab_channel=HPCLab.KOREATECH

 

 

반응형