Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
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 31
Tags
more
Archives
Today
Total
관리 메뉴

Skipalong's tistory

240328 TIL - DeadLock(교착상태) 본문

TIL

240328 TIL - DeadLock(교착상태)

Skipalong 2024. 3. 29. 01:54

오늘은 면접 스터디에서 DeadLock(교착상태)에 대해 공부해보았다. 

 

데드락

데드락이란 두 개 이상의 프로세스(또는 스레드)들이 서로가 가진 자원을 기다리며 중단된 상태를 말합니다.

데드락상태가 되려면 네가지 조건모두 만족해야합니다.

  • 상호배제 : 한 프로세스가 자원을 독점, 다른 프로세스들은 접근이 불가
  • 점유대기 : 특정프로세스가 점유한 자원을 다른 프로세스가 요청하는 상태
  • 비선점 : 다른 프로세스의 자원을 강제적으로 가져올 수 없음
  • 순환대기 : 프로세스 집합이 서로가 서로의 자원을 요구하는 순환적인 대기관계가 존재

해결법

  • 예방 : 데드락의 발생조건을 성립하지 않도록 설계
  • 회피 : 교착상태 가능성이 없을 때만 자원을 할당, 프로세스당 요청할 자원들의 최대치를 통해 자원 할당 가능 여부를 파악하는 은행원 알고리즘 사용
  • 탐지 및 복구 : 시스템이 교착 상태에 빠졌는지를 주기적으로 검사하고, 교착 상태를 탐지한 경우 이를 해결하기 위해 프로세스를 종료하거나 점유하고 있는 자원을 강제로 회수
  • 무시 : 무시는 데드락이 발생할 가능성이 낮은 시스템에서 데드락이 발생해도 아무런 조치를 취하지 않고 무시하는 방법이 방법은 시스템 성능 저하가 없다는 장점

이렇게 데드락에 대해 간단하게 알아보았는데 현대 시스템에서는 데드락 상태가 잘 발생하지 않기 때문에 성능저하가 없는 무시 방법이 많이 사용된다고 한다. 현대 시스템에서는 데드락 상태에 걸리지 않게 여러 장치가 설계되어있다고 한다. 

예전에 동시성 문제를 공부할 때 데드락에 대해 공부를 해보았는데 이번에 다시 리마인드 하게 되어 좋은 경험이었던 것 같다. 그리고 다음에 데드락 문제가 생길 시 해결법도 공부를 해 다음에 적용해볼 수도 있을 것 같다. 

내일이면 커리어톤도 마무리인데 서류들을 한 번 정리해보는 시간을 가지는 것도 좋을 것 같다. 

'TIL' 카테고리의 다른 글

240329 TIL - 멀티프로세스와 멀티스레드  (0) 2024.03.30
240327 TIL - 에라토스테네스의 체  (1) 2024.03.28
240326 TIL - Map  (0) 2024.03.27
240325 TIL - 그래프  (2) 2024.03.26
240322 TIL - 취업준비  (0) 2024.03.23