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

 

Differentiate between 5 state and 7 state process models.

Differentiate between 5 state and 7 state process models - A process is a program in execution and it is more than a program code called as text section and this concept works under all the operating system because all the task perform by the operating sys

www.tutorialspoint.com

 

'컴퓨터 구조' 카테고리의 다른 글

process & program 바로 구분 가능하게 해줄게  (0) 2023.03.27