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: "사용자가 알아서 처리하겠지~")
'프로그래밍 > CS' 카테고리의 다른 글
운영체제(9/11) - Virtual Memory 1,2 (0) | 2023.02.02 |
---|---|
운영체제(8/11) - Memory Management 1~4 (2) | 2023.02.01 |
운영체제(6/11) - Process Synchronization 1,2,3,4 (0) | 2023.01.30 |
운영체제(5/11) - CPU Scheduling 1, 2 (0) | 2023.01.29 |
운영체제(4/11) - Process Management 1,2 (0) | 2023.01.28 |
댓글