교착상태를 가진 자원할당 그래프

Download Report

Transcript 교착상태를 가진 자원할당 그래프

Ch. 8 교착상태 (Deadlocks)
30-Oct-15
8.1 시스템 모델

교착상태 예제
 Traffic jam
 징검다리 건너기




step – 자원 할당
leave – 자원 회수
동일한 징검다리 밟을 때 - deadlock
되돌아오기 - rollback
 Loop
Allocate
R1
PA
Request
Operating System
Request
PB
R2
Allocate
8.1 시스템 모델

자원 사용 순서
 요청

요청이 즉시 허용되지 않으면 요청 프로세스는 자원을 얻을
때까지 대기해야 한다.
 사용

프로세스는 자원에 대해 작업을 수행할 수 있다.
 해제


프로세스가 자원을 해제한다.
무기한 연기(Indefinite postponement)
 무기한 연기를 실행하는 프로세스 스케줄링의 경우

이유 : 자원 스케줄링 정책
 Aging


우선순위가 낮은 프로세스의 무한 블로킹 문제
시스템에서 오랫동안 기다린 프로세스의 우선순위를
점진적으로 높여줌
Operating System
8.2 교착상태 특징

필요 조건들

교착상태는 한 시스템에 다음의 네가지 조건이 동시에 성립할
때 발생할 수 있다.
 상호 배제(mutual exclusion)

최소한 하나의 자원이 독점적으로 점유한다.
 점유대기(hold and wait)

최소한 하나의 자원을 점유한 채, 다른 프로세스에 의해 점유된
자원을 추가로 얻기 위해 대기하고 있는 프로세스가 반드시
있어야 한다.
 비선점(nopreemption)

자원들을 선점할 수 없어야 한다.
 순환 대기(circular wait)
R2
P2
R3
P3
P3
P1
R1
Operating System
R3
Pn
Rn
Pn-1
8.2 교착상태 특징
 Ex) 징검다리를 건널 때

상호 배제(Mutual exclusion )
– 한사람만이 징검다리 하나를 밟을 수 있다.

점유/대기(Hold/Wait)
– 한사람이 징검다리를 밟고 다른 징검다리를 요청한다.

비선점(No-preemption)
– 한사람이 다른 사람의 징검다리를 뺏을 수 없다.

순환 대기(Circular wait )
– 한사람이 다른 사람의 징검다리를 얻기 위하여 기다린다.
Operating System
8.2 교착상태 특징

자원 할당 그래프
R1
R2
R1
R2




P1
P2
P3
P1
P2
P3










R3
R4
R3
R4
그림 8.1 자원 할당 그래프
Operating System
그림 8.2 교착상태를 갖는 자원할당그래프
8.2 교착상태 특징

자원 할당 그래프
P2
R1


P3
P1
R2


P4
그림 8.3 사이클이 있으면서 교착상태가 아닌 자원할당그래프
Operating System
8.3 교착상태 처리 방법

교착상태 처리 방법
 시스템이 교착상태가 되지 않도록 보장하는 프로토콜을 사용
 교착상태가 되도록 허용한 다음 회복
 교착상태를 무시

Detailed algorithms
 교착상태 예방(Prevention)

필요 조건들 중 하나가 성립하지 않도록 보장
 교착상태 회피(Avoidance)

프로세스가 요청/사용할 자원의 정보를 미리 제공할 것을 요구
 교착상태 검출(Detection)
 회복(Recovery)
Operating System
8.4 교착상태 예방

상호 배제(Mutual Exclusion)

점유/대기(Hold & Wait)
 프로세스 Pi가 필요한 자원을 한꺼번에 모두 할당하거나
불가능하면 전혀 할당하지 않음
 단점


자원 활용률이 낮음
starvation  무기한 연기
Operating System
8.4 교착상태 예방

비선점(No Preemption)
 request additional resources

if it is rejected
– these resources are released implicitly  request all resources after
 단점


오버헤드 (abort all jobs untile now as resources are released)
순환 대기(circular Wait)
 자원들에게 전체 순서를 부여
 열거된 순서대로 자원을 요청하도록 요구
 단점

낮은 자원이용률
( As Pi need only a resource of high number )
Operating System
8.5 교착상태 회피
 각 프로세스는 자신이 필요한 자원의 최대 수를 선언하도록
요구

Safe State
P0
P1
P2
Maximum Needs
10
4
9
Current Needs
5
2
2
unsafe
deadlock
safe
Safe, unsafe, and deadlock state spaces.
Operating System
8.5 교착상태 회피

은행가 알고리즘(Banker’s Algorithm)
 maintain sharing the same resources with users fairly

자원할당그래프 알고리즘
R1
R1
P1
P2
R2
예약간선
교착상태 회피를 위한 자원할당 그래프
Operating System
P1
P2
R2
불안전 상태의 자원할당 그래프
8.6 교착상태 검출


정기적으로 검사
복구
Detect with Resource Allocation Graph
R1
P1
R1
R3
P2
R2
자원 할당 그래프
Operating System
P3
R4
P1
R3
P2
R2
P3
R4
교착상태를 가진 자원할당 그래프
8.6 교착상태 검출
R1
P2
P3
P1
R2
P4
Resource-allocation graph with a cycle but no deadlock
Operating System
8.6 교착상태 검출
R1
P1
P2
R2
교착상태 회피를 위한 자원할당 그래프
R1
P1
P2
R2
불안정 상태의 자원할당 그래프
Operating System
8.6 교착상태 검출
P5
P5
R1
R3
R4
P1
P2
P3
R2
P4
R5
(a) 자원할당 그래프
Operating System
P1
P2
P3
P4
(b) 대기 그래프(wait-for graph)
8.7 교착상태로부터의 회복

프로세스 종료 : 강제로 프로세스를 종료시킴
 자원 회수
 교착상태 프로세스를 모두 중지
 교착상태가 제거될 때까지 한 프로세스씩 중지

자원 선점 : victim processes 선택
 Take resource by force
 문제점

희생자의 선택
Process’s precedence
Process’s processing time requirement
Process’s resource requirement


Rollback time  Total Rollback Time
Starvation : 일부 프로세스의 계속적인 희생자 선택 가능성이
있음.
Operating System