[CS] 교착상태에 대한 나름의 이해

2023. 10. 14. 01:22CS

교착상태(Deadlock)는 4가지 조건이 갖추어지면 발생한다.

1. 상호배제: 하나의 프로세스만 공유자원에 접근할 수 있다. 락킹 메커니즘과 같다. 그러니까 나 말고 다른 애는 못들어오는 거다(상호배제)

2. 점유와 대기: 하나를 점유하고 있는 프로세스가 다른 하나의 프로세스를 대기하고 있는 것이다.

3. 비선점: 프로세스가 강제로 다른 프로세스로부터 공유 자원을 뺏을 수 없다.

4. 환형대기: 프로세스가 자신의 자원을 점유하면서 앞 또는 뒤로 자원을 대기한다. 식사하는 철학자 문제

 

위의 네 가지가 충족되면 교착상태가 발생하고 하나라도 충족이 되지 않으면 발생하지 않는다. 각각에 대한 해결책은 다음과 같다.

1. 상호배제 부정: 세마포어 등과 같이 여러 개의 프로세스가 접근할 수 있도록 한다.

2. 점유와 대기 부정: 하나를 점유하고 다른 하나를 대기하는 상황을 없앤다. 예를 들어, 한꺼번에 모든 자원을 부여하든지 점유하지 않는 상태에서만 요구할 수 있게 한다.

3. 비선점 부정: 프로세스가 강제로 다른 프로세스로부터 공유 자원을 뺏을 수 있게 한다.

4. 환형대기 부정: 일정한 순서를 정해 그에 따라서만 자원에 접근하도록 한다.

 

Reference


https://www.yes24.com/Product/Goods/121769526 

 

기술 면접 대비 CS 전공 핵심요약집 - 예스24

1분 1초가 아쉬운 취업/이직 준비생을 위해기술 면접에 필요한 CS 전공의 핵심 내용만 간추렸다!비전공자는 물론 IT 전공자라도 광범위한 CS 전공 중에 어떤 내용이 출제될지 감을 잡기 어렵다. 서

www.yes24.com