교착 상태 조건 ( 다음 4가지 조건을 동시에 필요 충분조건으로 만족해야 교착 발생)
종류 :
1. 상호 배제 ( Mutual Exclusion )
: 적어도 하나의 자원은 반드시 비 공유 되는 상태에서 점유 ( 나혼자 )
2. 점유와 대기 ( hold and Wait )
: 적어도 하나의 자원을 점유하면서 , 다른 프로세스에 의해 점유된 다른 자원을 요구하고 할당받기를 기다려야함
3. 비 선점 ( No preemption )
: 작업의 수행이 끝날 때까지 해당자원을 반환x
4. 환형 대기 ( Circular Wait )
: 각 프로세스는 환형 내의 이전 프로세스가 요청하는 자원을 점유와 요청 ( 원형 )
자원 할당 그래프
프로세스 :
4개의 인스턴스를 가진 자원 :
Pi는 Rj의 하나의 인스턴스를 요청
Pi는 Rj의 하나의 인스턴스를 점유
자원 할당 그래프 예제
Dead lock 발생 x
이유 :
1. p3이 끝나면 p2가 끝나고 p1이 끝
2. p3의 요청이 없다
3. 자원이 두개 일 때 자원을 따라가다 보면 원형 발생x
교착 상태인 자원 할당 그래프
Dead lock 발생
이유 :
1. 자원을 따라 가다 보면 원형 모양이 생김.
2. 프로세스 실행 순서가 생김.
교착 상태예방 ( Deadlock Prevention )
정의 :
1. 사전에 교착 상태 발생 가능성을 제거
2. 점유와 대기조건 방지
: 요구한 자원을 전부 할당 or 하나라도 부족하면 할당x
: 한꺼번에 원하는 자원을 제공할 수 없는 경우에는 무한 연기
: “처음에 싹 다 가지고 시작해라”
3. 비 선점 조건 방지
: 추가 자원에 대한 요구가 거절당했다면 그 프로세스는 자원을 전부 반납
: 문제점 – 무한 연기가 발생할 가능성
: “뺏을수 없을 때 다 놓고해라”
4. 환형 대기조건 방지
: 모든 자원에게 고유번호 매기기
: 현재 가지고 있는 자원보다 더 큰 번호를 가진 자원만 요청하도록 제한
: 문제점 – 새로운 자원이 추가되면 재작성해야함
교착상태 회피 (Deadlock Avoidance)
정의 :
1. Ex) ( 1,0,2 ) 요청 à P1할당 à Avail ( 1,0,2 )
è 자원을 요청했을 때 dead lock 이 발생하는지 안하는지??
è 문제점 : 자원이 얼마나 사용될 것인가 ?? Maxim값 여부를 알 수 없다 .
2. 뱅커 알고리즘
교착상태 탐지 (Deadlock detection)
정의 :
1. 뱅커 알고리즘
2. 현재 상황이 dead lock인가 ??
3. Safe sequence 가 존재하면 Safe
4. Safe sequence 가 존재하지 않으면 unSafe
5. Unsafe != deadlock
교착상태 회복 (Deadlock Recovery)
정의 :
1. 누구를 희생시킬 것인가?? ( 무엇을 중심으로 희생시킬 것인가??)
2. 어떤 시점에 저장을 시켜야 한다 ( 포맷 , 콜밴 포인트 )
3. 어떤 실행 부분으로 되돌리는 것은 굉장히 어렵다
ㄱ. 특정한 부분
ㄴ. Kill
ㄷ. Call back .
s
'학부공부 > 운영체제' 카테고리의 다른 글
개요 ( 병행처리 , 상호 배제 알고리즘 , 하드웨어에 의한 동기화 , 세마포 , 모니터 ) (0) | 2018.07.24 |
---|---|
정보보호 ( 정의 , 접근 제어 정책 및 기법 ) (0) | 2018.06.11 |
교착상태 회피 ( 은행가 알고리즘 Ex문제풀이 ) (0) | 2018.06.01 |
교착상태 회피( 은행가 알고리즘 ) (0) | 2018.06.01 |
파일시스템(정의,특징,기능,종류) (0) | 2018.05.30 |
#IT #먹방 #전자기기 #일상
#개발 #일상