728x90
데드락을 해결하기 위한 방법은 크게 3가지로 구분된다.
예방 , 회피 , 탐지와 회복 의 3가지 주제로 설명하며 탐지와 회복은 하나의 주제로 묶인다.
예방은 데드락의 4가지 발생조건을 하나라도 발생하지 않게 하는 방법을 말한다.
상호배제,점유대기,비선점,순환대기 중 한개라도 예방할 수 있다면 데드락을 해결할 수 있다.
상호배제의 예방 : 프로세스들이 동시에 공유자원을 사용할 수 있게 한다.
점유대기 예방 : 프로세스가 자원을 점유하고 있으면 다른 자원을 기다리지 않게 만든다.
비선점 예방 : 우선순위 별로 프로세스끼리 자원을 빼앗아 올 수 있게 만든다.
순환대기 예방 : 프로세스가 자원을 순환 형태로 대기하게 하지 않고 그냥 프로세스를 일렬로 세워서
한 방향으로만 자원을 요구할 수 있게 한다.
회피는 프로세스에 자원을 할당하기 전에 어느수준이상의 자원을 나누어 주게 되면 데드락이 발생하는지
미리 파악해 그 수준 이하로만 자원을 할당하게 하는것을 말한다. 이를 구현한 알고리즘으로 은행원 알고리즘
이 있는데 추가적으로 포스팅할 예정이다.
탐지와 회복은 운영체제가 프로세스 작업을 계속 관찰하면서 데드락 발생 여부를 탐지하고 데드락이 처리된
프로세스 모두를 직접 종료하거나 우선순위가 낮은 프로그램을 종료하는등의 조치를 하는것을 말한다.
'Computer Science > 운영체제' 카테고리의 다른 글
[운영체제] 데드락(교착상태) 의 개념과 4가지 발생 조건 (0) | 2021.06.30 |
---|---|
[운영체제] 멀티프로세스 대신 멀티 스레드를 사용하는 이유 (0) | 2021.06.30 |
[운영체제] PCB가 무엇인가? (0) | 2021.06.30 |
[운영체제] 프로세스와 스레드의 개념과 차이점 (0) | 2021.06.30 |