2021. 6. 20. 22:15 용어 관련
DeadLock, Live Lock
반응형
동기화 기법과 관련하여 Thread가 Lock이 걸리는 경우는 두가지가 존재한다.
Dead lock과 Live lock 두가지이다.
Dead lock [ Process 간에도 발생 가능. ]
- Thread A가 A Resource를 획득 후 Thread B가 B Resource 를 획득.
- 그 후 Thread A가 B Resource를 요청
- 그 후 Thread B가 B Resource 해제를 하기전에 A Resource를 요청
- 서로 물고 물리는 광계가 되며 Thread A, B 모두 Resource를 얻지 못한다.
- 두 Thread가 Lock 경쟁을 하므로 다음 작업 진행 불가.
Live lock [ Process 간에도 발생 가능. ]
-Thread A가 Resource A를 획득
- Thread A가 Resource A를 획득한 후 시간이 오래걸리는 작업을 진행
- 혹은 Thread A가 작업 종료 시 Resource A를 반환하지 않은 경우
- Thread B가 Resource A에 대하여 요청을 한 후 계속 대기하는 경우가 발생한다.
Dead lock 방지
- Resource의 할당과 해제순서를 잘 지킨다.
- 주기적으로 Deadlock 상태를 확인한다.
Live lock 방지
- Resource 점유에 대한 시간 제한을 둔다.
- 가능한 임계영역을 작게 구성한다.
반응형
'용어 관련' 카테고리의 다른 글
Process에 대해서 (0) | 2023.12.13 |
---|---|
proxy server , reverse proxy server (0) | 2021.07.18 |
Zero Trust Model (0) | 2021.07.18 |
SPOF란 (0) | 2021.06.20 |
데드 레커닝[Dead reckoning] 이란? (0) | 2019.08.30 |