본문 바로가기
프로그래밍/CS

운영체제(7/11) - Deadlock 1,2

by 숙님 2023. 1. 31.
728x90

Deadlock

- 교착상태 

- 일련의 프로세스들이 서로가 가진 자원을 기다리며  block된 상태 

 

데드락 발생의 조건 (4가지)

- mutual exclusion: 상호배제, 매 순간 하나의 프로세스만이 자원을 사용 가능 

- no preemption: 비선점, 프로세스는 자원을 스스로 내어놓을 뿐 강제로 빼앗기지 않음  

- hold and wait: 보유 대기, 자원을 가진 프로세스가 다른 자원을 기다릴 때 보유 자원을 놓지 않고 계속 가지고 있음 

- circular wait: 자원을 기다리는 프로세스 간에 사이클이 형성되어야 함 

 

데드락 처리 방법 

- Deadlock prevention(방지): 4가지 발생 조건을 차단 

- Deadlock avoidance(방지): 데드락으로부터 안전한지 동적으로 조사 후 할당 

동적조사 의 예: 뱅커스 알고리즘

- Deadlock detection and recovery: 데드락 발생은 허용하되 그에 대한 detection루틴을 두어 데드락 발견시 없애는 것(모두 한꺼번에 없애는 방법과 1개씩 없애는 방법이 있음)

- Deadlock ignorance: 데드락을 시스템이 책임을 지지 않음, unix를 포함한 대부분의 os가 채택 

일어나지 않는다는 가정으로 아무런 조치도 취하지 않음(os: "사용자가 알아서 처리하겠지~")

 

댓글