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
Posted by Sweetmeats_boy

블로그 이미지
Sweetmeats_boy

태그목록

Yesterday
Today
Total

달력

 « |  » 2024.11
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함