데드락
-
[운영체제]데드락을 회피할 수 있는 자원할당 그래프, 은행원 알고리즘ComputerScience/운영체제 2020. 6. 13. 17:28
자원할당 그래프 알고리즘(Resource-Allocation Graph Algorithm) 자원이 하나일 때 사용하는 알고리즘. 자원 할당 그래프에 요청 간선과 할당 간선에 추가하여, 예약간선이라는 새로운 유형의 간선을 도입한다. - 요청선 : 프로세스에서 자원으로 연결 된 섬 (나 저 자원 쓰고 싶다~라고 요청한다고 보면 됨) - 할당선 : 자원에서 프로세스로 연결 된 섬 (이 자원은 이 프로세서가 쓰고 있음을 나타냄) 교착상태 확인 방법 1. 자원할당 그래프의 사이클이 존재하는 지 확인 2. 사이클이 존재한다면 - 자원 유형에 하나의 사례만 있으면 교착상태 - 자원 유형에 여러 사례가 있으면 교착상태 가능성 교착상태가 있는 자원할당 그래프 예시 사이클은 있지만 교착상태가 아닌 예 프로세스 p1이 작업..
-
[운영체제] 데드락(Dead lock), 교착상태가 뭐지? + 해결방법ComputerScience/운영체제 2020. 6. 13. 17:27
데드락(Dead lock)이란? '교착 상태'라고 하며 한정된 자원을 여러 곳에서 사용하려고 할 때 발생할 수 있다. (DB의 트랜잭션들이 하나의 Table에 대해 연산을 시도할 때도 발생할 수 있다) 데드락 발생 요건 네 가지 조건을 모두 충족할 때 발생한다. 1. 상호배제(Mutal exclusion) 프로세스들이 필요로 하는 자원에 대해 배타적인 통제권을 요구한다. 2. 점유와 대기(Hold and Wait) 자원을 가지고 있는 상태에서 다른 프로세스가 사용하고 있는 자원의 반납을 기다리는 것. 3. 비선점(Non Preemptive) 다른 프로세스의 자원을 강제로 가져올 수 없음. 4. 환형대기(Circle wait) 각 프로세스가 순환적으로 다음 프로세스가 요구하는 자원을 갖고 있는 것 데드락 ..