학부공부/운영체제

교착상태 회피( 은행가 알고리즘 )

IT grow. 2018. 6. 1. 19:56
반응형

교창상태 회피


Dijkstra가 제시한 은행가 알고리즘 이용


정의 :

1.     불안정상태 or 교착상태를 피할 수 있는 자원 할당 알고리즘


안전 (Safety)알고리즘


시스템이 안전 상태인지를 발견하는 알고리즘은 다음과 같다.


1.     WorkFinish를 각각의 값이 m n인 벡터라고 하면, Work = Available, Finish[i] = false I = 1,2,3, … , n으로 초기화한다. Work에 남아 있는 자원 수는 Available의 임시변수이다.


2.     다음과 같이 되는 i 값을 찾는다

ㄱ.   Finish[i] = false

ㄴ.   Need[i] <= Work

ㄷ.   이러한 i값이 있으면 3단계로 가고 , 없으면 4단계로 간다.


3.     자원을 할당한 후 , 해제한다

ㄱ.   Work[i] = Work[i] + Allocation[i];

ㄴ.   Finish[i] = true;

ㄷ.   2단계로 간다.


4.     모든 i에 대하여 Finish[i] = true 이면 , 이 시스템은 안정 상태이다



Ex)


안전한 수행 순서 : <p4,p2,p5,p3,p1>


은행가 알고리즘의 단점


1.     사용 가능한 일정량의 자원이 미리 존재하도록 요구된다

2.     남아 있는 사용자의 수가 수시로 변경됨

3.     모든 요청에 대하여 주어진 시간 내에서 자원을 할당할 수 있도록 강한 보장이 필요하다

4.     사전에 자기가 필요한 자원의 최대량을 제시 해야 된다.


반응형