DeadLock의 특징
- Mutual Exclusion
- Hold and Wait
- No Preemption
- Circular Waiting
자원과 프로세스간의 그래프에서...
싸이클이 없으면 -> no deadlock
싸이클이 있으면 -> 자원의 개체가 1개씩이면 deadlock 여러개식있으면 deadlock아닐수도..
deadlock을 처리할수있는 방법
- 절때 deadlock에 안들어가게 확신한다.
- deadlock에 들어간후 회복시킨다.
deadlock 막는법
- Mutual Exclusion...어쩔수 없음
- Hold and Wait...원하는 자원이 다 있을때 비로소 자원을 받는다. 낮은 효율로 starvation가능
- No Preemption...
ㅁ 자원 요청이 지연되면 모든 리소스들은 풀려난다.
ㅁ 기다리는 프로세스를 위해 독점된 자원은 자원의 리스트에 추가된다.
ㅁ 자신의 예전 자원을 받은 프로세스는 다시 시작되고 요청한녀석도 시작된다.
- Circualr Waiting
ㅁ 총 자원들의 타입의 순서들을 알아두고 각 프로세스가 요청한 자원들은 요구한다 순서를 증가시키면서
deadlock 회피 - 제약을 두어 교착상태에 필요한 조건이 발생하지 않도록 한다.
- 장치이용률 저하, 시스템처리율(throughput)감소, 프로세스 starvation 발생가능
Safe State - 프로세스가 요구하는 자원을 즉시 줄수있을때. 없으면 생성시 까지 기다린다.
Banker's Algorithm
ㅁ n을 프로세스 갯수, m을 자원타입의 갯수
ㅁ Available : 각 자원타입의 자원수
ㅁ Max : n X m 시스템의 총 자원
ㅁ Allocation : n X m Pn이 m을 k개 할당받음
ㅁ Need : n X m Pn이 m을 k개 원함
Safety Algorithm
1. Work Finish는 mxn. Work:=Available초기화 Finish[]=False초기화
2. Finish[i] = False이고 Need <= Work인것을 찾는다. 못찾으면 4번
3. Work에 i에 배치

Comments List
醫