📌blocked/asleep state
- 프로세스가 특정 이벤트를 기다리는 상태
- 프로세스가 필요한 자원을 기다리는 상태
📌Deadlock state
- 프로세스가 발생 가능성이 없는 이벤트를 기다리는 경우
- 시스템내의 deadlock에 빠진 프로세스가 있는 경우
starvation 과 deadlock
- deadlock : 불가능한 이벤트를 대기(가능성 0)
- starvation : cpu할당을 대기(오래 기다리는 것 가능성이 0은 아님)
📌자원의 분류
📖선점 가능 여부에 따른 분류
- preemptible resources
- 선점 당한 후 돌아와도 문제가 없는 자원
- CPU, 메모리 등
- cpu의 context saving, restoring을 하기 때문
- non-preemptible resources
- 선점 당한 후 문제가 발생하는 자원
- 디스크
- usb에 복사중에 뺏기면 오류남
📖할당 단위에 따른 분류
- total allocation resources
- 자원 전체를 프로세스에게 할당
- CPU(single core기준), disk
- partitioned allocation resources
- 하나의 자원을 여러 조각으로 나누어 프로세스에 할당
- 메모리
📖동시 사용 가능 여부에 따른 분류
- exclusive allocation resources
- 한 순간에 한 프로세스만 사용 가능한 자원
- CPU, 메모리, 디스크
- shared allocation resources
- 여러 프로세스가 동시에 사용 가능한 자원
- 프로그램(sw), shared data
📖재사용 가능 여부에 따른 분류
- SR(serially-reusable Resources)
- 시스템 내에 항상 존재하는 자원
- 사용이 끝나면 다른 프로세스가 사용 가능
- CPU, 메모리, 디스크, 프로그램
- CR(consumable Resources)
- 한 프로세스가 사용한 후에 사라지는 자원
- signal, message
deadlock을 발생시킬 수 있는 자원의 종류
- non-preemptible resources
- exclusive allocation resources
- serially-reusable resources
- consumable resources