210 likes | 538 Views
제 07 강 : 교착상태 (Deadlock). 교착상태 (Deadlock). Resource-Allocation Graph. Process Resource Type j (with 4 instances ) P i requests an instance of R j P i is holding an instance of R j. R j. P i. R j. P i. R j. 교착상태 (Deadlock) 의 정의. 안일어날 event 를 기다리며 영원히 block 된 상태 예 :
E N D
제07강 : 교착상태(Deadlock) 교착상태(Deadlock)
Resource-Allocation Graph • Process • Resource Type j (with 4 instances) • Pirequests an instance of Rj • Pi is holding an instance of Rj Rj Pi Rj Pi Rj
교착상태(Deadlock)의 정의 • 안일어날 event를 기다리며 영원히 block 된 상태 • 예: • 시스템은 2대의 tape drive (A & B) 보유 • 두개의 병렬 프로세스 P0 P1 Req Tape Req Tape Req Tape Req Tape Copy Tape Copy Tape Rel Tape Rel Tape Rel Tape Rel Tape P0 P1 A B Tape
교착상태(Deadlock)의 정의 • 안일어날 event를 기다리며 영원히 block 된 상태 • 예: • 시스템은 2대의 tape drive (A & B) 보유 • 두개의 병렬 프로세스 • P0 P1 • Req Tape Req Tape • Req Tape Req Tape • Copy Tape Copy Tape • Rel Tape Rel Tape • Rel Tape Rel Tape P0 P1 Tape
교착상태(Deadlock)의 정의 • 안일어날 event를 기다리며 영원히 block 된 상태 • 예: • 시스템은 2대의 tape drive (A & B) 보유 • 두개의 병렬 프로세스 • P0 P1 • Req Tape Req Tape • Req Tape Req Tape • Copy Tape Copy Tape • Rel Tape Rel Tape • Rel Tape Rel Tape P0 P1 Tape
교착상태(Deadlock)의 정의 • 안일어날 event를 기다리며 영원히 block 된 상태 • 예: • 시스템은 2대의 tape drive (A & B) 보유 • 두개의 병렬 프로세스 • P0 P1 • Req Tape Req Tape • Req Tape Req Tape • Copy Tape Copy Tape • Rel Tape Rel Tape • Rel Tape Rel Tape P0 P1 Tape
교착상태(Deadlock)의 정의 • 안일어날 event를 기다리며 영원히 block 된 상태 • 예: • 시스템은 2대의 tape drive (A & B) 보유 • 두개의 병렬 프로세스 • P0 P1 • Req Tape Req Tape • Req Tape Req Tape • Copy Tape Copy Tape • Rel Tape Rel Tape • Rel Tape Rel Tape P0 P1 Tape
P0 P1 • Req Tape Req Tape • Req Tape Req Tape • Copy Tape Copy Tape • Rel Tape Rel Tape • Rel Tape Rel Tape 교착 상태가 일어나기 위한 네 가지 조건(동시 만족되야 교착상태) ① 상호 배제(Mutual exclusion)조건 자원은 한번에는 한 프로세스만 사용해야 한다. ② 점유 및 대기(Hold and Wait)조건 각 프로세스가 이미 자원을 갖고 있으면서 다른 자원을 더 요구하고 있다. ③ 비선점(Non- preemption)조건 프로세스에 할당된 자원은 스스로 반납하기 전에는 빼앗지 못한다. ④ 환형 대기(Circular wait)조건 프로세스 간의 자원 요구 형태를 추적해보면 결국 자기 자신에게로 되돌아 온다. P0 P1 Tape
P0 P1 • Req Tape Req Tape • Req Tape Req Tape • Copy Tape Copy Tape • Rel Tape Rel Tape • Rel Tape Rel Tape 운영체제의 기능 • 자원의 할당 • CPU, memory 스케줄링 등 • 편리한 인터페이스 • 사용자 인터페이스 • 입출력 device driver • 제어 • 여러 프로그램들이 자원을 공유할때 • 발생하는 문제 제어
교착상태(Deadlock)세가지 대처방법 • 예방(Prevent) • 회피(Avoid) • 탐지및 복구 • (Detect & Recovery)
교착상태(Deadlock)세가지 대처방법 • 예방(Prevent) 무균실 • 회피(Avoid) 예방주사, 여행자제 • 탐지및 복구 병 걸리면 치료 • (Detect & Recovery)
교착상태(Deadlock)세가지 대처방법 • 예방(Prevent) • 회피(Avoid) • 탐지및 복구 • (Detect & Recovery)
교착 상태 예방(Prevention)(네 조건 중 하나라도 못 일어나게) ① 상호 배제(Mutual exclusion) 조건 자원은 한번에는 한 프로세스만 사용해야 한다. ② 점유 및 대기(Hold and Wait) 조건 각 프로세스가 이미 자원을 갖고 있으면서 다른 자원을 더 요구하고 있다. ③ 비선점(Non- preemption) 조건 프로세스에 할당된 자원은 스스로 반납하기 전에는 빼앗지 못한다. ④ 환형 대기(Circular wait) 조건 프로세스 간의 자원 요구 형태를 추적해보면 결국 자기 자신에게로 되돌아 온다. P0 P1 Tape
① 점유 및 대기(hold-and-wait) 조건의 방지 • 프로세스는 모든 자원을 한꺼번에 요구해야 • 대기 조건이 형성 안됨 -- 교착 상태 예방 • 단점 : 필요하지도 않은 시점에서 자원을 미리 확보하도록 함. 자원 효율의 저하 초래. Process Request All ..… ….. Release All P0 P1 Tape
P0 P1 • Req Tape Req Tape • Req Tape Req Tape • Copy Tape Copy Tape • Rel Tape Rel Tape • Rel Tape Rel Tape ② 비선점(nonpreemption) 조건의 방지 • 자원 A에 대한 요구가 block 되면, • 자신이 이미 가지고 있던 자원 모두 반납 (roll back) • 즉 자원의 선점을 스스로 허용 • 교착 상태를 예방. • 단점 : 선점해도 되는 자원에만 사용 예: 메모리 공간 많은 자원들이 선점될 수 없다. (프린터를 중간에서 뺏을 수는 없다) Roll back 처음부터 다시 시작 자원 효율의 저하 초래 P0 P1 Tape
③ 환형 대기(circular-wait) 조건의 방지 • 모든 자원들에 일련번호 (linear ordering) 부여 • 모든 프로세스는 오름차순으로만 자원을 요구 • (1 -> 2 -> 3 ..) • 모든 프로세스는 내림차순으로만 자원을 반납 • (3 -> 2 -> 1 ..) • 환형 대기(circular-wait) 조건이 형성되지 않음. • 단점: • 필요하지도 않은 시점에서 자원을 미리 확보해야함 • 자원 효율의 저하 초래. 1 1 P0 P1 2 2 Tape
③ 환형 대기(circular-wait) 조건의 방지 • 모든 자원들에 일련번호 (linear ordering) 부여 • 모든 프로세스는 오름차순으로만 자원을 요구 • (1 -> 2 -> 3 ..) • 모든 프로세스는 내림차순으로만 자원을 반납 • (3 -> 2 -> 1 ..) • 환형 대기(circular-wait) 조건이 형성되지 않음. • 단점: • 필요하지도 않은 시점에서 자원을 미리 확보해야함\ • 자원 효율의 저하 초래. 1 1 P0 P1 2 2 Tape
상호 배제(Mutual Exclusion) 조건의 방지? • Tape drive를 두 프로세스가 같이 사용? • Sharable 자원 교착상태가 안일어 난다 • 예: 읽기전용 CD-ROM drive Note 교착상태 예방은 자원의 낭비가 가장 심하다. (비싸짐) 교착상태가 원천적으로 봉쇄되야하는 응용에 사용 예: 중환자실, 747 제어 등
교착상태(Deadlock)세가지 대처방법 • 예방(Prevent) • 회피(Avoid) • 탐지및 복구 • (Detect & Recovery)
교착 상태 회피(Avoidance) 교착 상태의 예방(원천봉쇄)는 자원을 너무 낭비 운영하며 적절히 피해가도록 하는 방법. • 프로세스는 각 자원의 Maximum Claim을 미리 선언 • OS(resource allocator)에게 자원 요청/허가 • OS는 교착상태 가능성을 사전 점검 • 교착상태 가능성이 없으면 (safe) 자원을 허가. 교착 상태 가능성이 있으면 (unsafe) block 시킴 *** unsafe하다고 반드시 교착상태는 아니다. P: 모든 프로세스가 R: Maximum Claim 요구를 unsafe의 판단근거 t: 동시에 요청할때 (5) 최악에 대비하는 방법이므로 자원의 낭비가 따른다. 참조 - 은행원 알고리즘