System Model
프로세스는 자원을
- 요청
- 사용
- 해제
Deadlock 발생 조건
- Deadlock : 두개 이상의 스레드가 절대 일어나지 않을 이벤트를 기다리는 상황
- 동시에 실행하는 스레드의 개수가 많을수록 발생 가능성이 높아진다.
- Mutual exclusion (상호 배제) : 동시에 임계 영역에 진입하는 것 방지
- Hold-and-Wait : 하나를 가지고 있으면서 자원을 기다리고 있는 것
- No preemption for resource : 비선점
- Circular wait : 환형 대기
Deadlock Prevention
circular wait 해소 : 자원 할당 등수를 정하자 → 효율 떨어짐
Deadlock Avoidance
교착상태가 발생할 것 같은지 Dynamic하게 조사해야 한다.
- safe state → 교착상태 X
- unsafe state → 교착상태 가능성이 있다.
- 회피 → 시스템이 절대로 unsafe 상태에 들어가지 않도록 한다.
Banker’s Algorithm
- Available : 어떤 유형의 자원의 사용 가능한 인스턴스 개수
- Max : 한 스레드에서 작업을 끝내기 위해 필요한 자원의 개수
- Allocation : 할당된 자원의 개수
- Need : 필요한 자원의 개수
→ 안정상태인지 불안정상태인지 판단
Deadlock Detection
- 이전의 상태로 되돌아가는 것 등
- 지속해서 현재 상태를 검사하며 또한 프로세스를 종료시킨 후 다시 시작해야 하는 등 많은 비용이 듬 → 비효율
'CS지식 > 운영체제' 카테고리의 다른 글
운영체제 : 가상 메모리 (Virtual Memory) (0) | 2023.09.23 |
---|---|
운영체제 : Main Memory (0) | 2023.09.23 |
운영체제 : Synchronization (0) | 2023.09.23 |
운영체제 : CPU 스케줄링 간단 정리 (0) | 2023.09.23 |
운영체제 : Thread 란? (0) | 2023.09.23 |