CPU의 Blocked(wait, sleep) 상태와 Suspend 상태란??!?!
2024. 12. 15. 21:20ㆍ컴퓨터 구조
Five-State Process Model
- 기본적인 프로세스 상태를 5개의 상태로 표현한 모델
프로세스 상태 | 설명 |
New | 프로그램이 실행되어 프로세스를 생성하는 중. -> 프로세스 생성된게 아닌 '생성 중'이라고 하는 이유는 프로세스가 만들어지면 메모리 할당과 PCB 할당 등이 필요하기 때문. 즉, 아직 New 상태는 프로세스가 메모리에 올라가지 않은 상태 |
Ready | Ready 상태는 메모리에 올라가 cpu를 할당받기를 기다리는 상태 -> Queue의 형태로 먼저 들어온 프로세스 순서로 실행될 수 있도록 POP 해줌. |
Running | Ready Queue에서 POP된 프로세스가 CPU를 할당받아 작업을 진행하고 있는 상태 -> 여기서 작업이란, 데이터와 명령어를 처리하고 있는 것임 |
Blocked(wait, sleep) | 현재 실행중인 프로세스가 시간이 오래걸리는 I/O 작업 혹은 OS의 요청 사항이 처리가 덜 되서 cpu를 할당받았음에도 cpu를 사용하기 어려워서 반납한 상태 -> 처리가 완료되면 Ready Queue로 들어가서 다시 cpu 할당받기를 기다림 |
Terminate | 프로세스가 작업이 끝나면, 할당 받았던 자원을 반납함. |
Seven-State Process Model
- 더 복잡한 프로세스 관리와 메모리 최적화가 필요한 경우를 표현한 모델
- Five-State의 과정에 ready/suspend 상태와 blocked/suspend 상태가 추가된 것
- suspend 상태가 필요한 이유
- 앞서 설명한 Blocked 상태는 cpu의 할당을 포기하고 메모리 내에서 외부 이벤트 작업이 끝나기를 기다리는 중을 뜻함.
- 만약, 메모리에 올라간 모든 프로세스들이 blocked 상태라면?
- cpu는 놀고 있는 상태가 됨. 그걸 방지하기 위해 메모리에 있는 모든 프로세스들을 디스크로 swapping 해버림. 그리고 디스크에 있는 프로세스들이 메모리에 올라올 수 있게 함.
- Swapping 이란?
- 메모리의 크기는 한정적이기 때문에 들어올 수 있는 프로세스의 수가 정해져 있음. 올라온 프로세스들이 모두 blocked 된 상태라면, cpu가 놀게 되니까 디스크에 대기 중인 프로세스들을 메모리에 올리고 기존 메모리에 있던 프로세스들은 디스크로 내리는 것을 뜻함.
- Blocked와 Suspend의 차이
- Blocked는 자신이 요청한 event가 완료되면 ready
- Suspend는 외부에서 resume 해주어야 다시 active
프로세스 상태 | 설명 |
New | 프로그램이 실행되어 프로세스를 생성하는 중. -> 프로세스 생성된게 아닌 '생성 중'이라고 하는 이유는 프로세스가 만들어지면 메모리 할당과 PCB 할당 등이 필요하기 때문. 즉, 아직 New 상태는 프로세스가 메모리에 올라가지 않은 상태 |
Ready | Ready 상태는 메모리에 올라가 cpu를 할당받기를 기다리는 상태 -> Queue의 형태로 먼저 들어온 프로세스 순서로 실행될 수 있도록 POP 해줌. |
Running | Ready Queue에서 POP된 프로세스가 CPU를 할당받아 작업을 진행하고 있는 상태 -> 여기서 작업이란, 데이터와 명령어를 처리하고 있는 것임 |
Blocked(wait, sleep) | 현재 실행중인 프로세스가 시간이 오래걸리는 I/O 작업 혹은 OS의 요청 사항이 처리가 덜 되서 cpu를 할당받았음에도 cpu를 사용하기 어려워서 반납한 상태 -> 처리가 완료되면 Ready Queue로 들어가서 다시 cpu 할당받기를 기다림 |
Terminate | 프로세스가 작업이 끝나면, 할당 받았던 자원을 반납함. |
ready / suspend | I/O 작업이나 요청한 작업이 끝났지만 메모리에 자리가 없어 여전히 하드디스크에 있는 상태 |
blocked / suspend | 요청한 작업이 끝나지 않았고, 메모리에 있던 프로세스들이 Swaping으로 인해 하드디스크의 swapped area로 옮겨진 상태 |
프로세스 모델 이미지 참고
https://www.tutorialspoint.com/differentiate-between-5-state-and-7-state-process-models
'컴퓨터 구조' 카테고리의 다른 글
process & program 바로 구분 가능하게 해줄게 (0) | 2023.03.27 |
---|