프로세스의 상태
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)
# 프로세스와 자원 간 상호작용에 의해 결정
🔻 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 image를 Swap 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
'ComputerScience > OS' 카테고리의 다른 글
운영체제 작업수행방식 - 일괄처리/시분할/분산처리/병렬처리/실시간 시스템 (0) | 2021.07.07 |
---|---|
컴퓨터 시스템 - 운영체제와 하드웨어 (0) | 2021.07.07 |