09. 기술면접 - 운영체제 - 교착상태의 개념과 조건
공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다
교착상태(데드락, Deadlock) 란
- 첫 번째 스레드는 두 번쨰 스레드가 들고 있는 객체의 락(lock)이 풀리기 기다리고 있고,
두 번째 스레드 역시 첫 번째 스레드가 들고있는 객체의 락(lock)이 풀리기를 기다리고 있는 상황을 일컷는다
- 모든 스레드가 락이 풀리기를 기다리고 있기 때문에, 무한 대기 상태에 빠지게 된다. 이런 스레드를 교착상태에 빠졌다고 한다
교착 상태가 되는 4가지 조건
- 상호배체 (mutual exclusion)
- 한 번에 한 프로세스만 공유 자원을 사용할 수 있다
- 점유대기 (hold and wait) = 들고 기다리기
- 공유 자원에 대한 접근 권한을 갖고 있는 프로세스가, 그 접근 권한을 양보하지 않은 상태에서 다른 자원에 대한 접근
권한을 요구할 수 있다
- 비선점형 = 선취=선점 (preemption) 불가능
- 한 프로세스가 다른 프로세스의 자원 접근 권한을 강제로 취소할 수 없다
- 순환대기 = 대기 상태의 사이클 (circular wait)
- 두 개 이상의 프로세스가 자원 접근을 기다리는 데, 그 관계에서 사이클이 존재한다
교착 상태(데드락) 방지
- 위 4가지 조건 중 1개만 제거하면 된다
- 공유 자원 중 많은 경우가 한 번에 한 프로세스만 사용할 수 있기 때문에 (예를들어, 프린트) 1번 조건은 제거하기 어렵다 - 동기화를 하기 위해서는 필연적인 방법인 것 이다
- 대부분의 교착상태 방지 알고리즘은 4번 조건, 즉 대기 상태의 사이클이 발생하는 일을 막는 데 초점이 맞춰진다
'∞. 기술 면접 > 3. 운영체제' 카테고리의 다른 글
11. 기술면접 - 운영체제 - 외부 단편화와 내부 단편화 (0) | 2021.10.06 |
---|---|
10. 기술면접 - 운영체제 - 사용자 수준 스레드와 커널 수준 스레드 (0) | 2021.10.06 |
06. 기술면접 - 운영체제 - 메모리 관리 전략 (0) | 2021.10.06 |
05. 기술면접 - 운영체제 - 프로세스 동기화 (0) | 2021.10.06 |
04. 기술면접 - 운영체제 - 동기와 비동기 (0) | 2021.10.06 |
댓글
이 글 공유하기
다른 글
-
11. 기술면접 - 운영체제 - 외부 단편화와 내부 단편화
11. 기술면접 - 운영체제 - 외부 단편화와 내부 단편화
2021.10.06 -
10. 기술면접 - 운영체제 - 사용자 수준 스레드와 커널 수준 스레드
10. 기술면접 - 운영체제 - 사용자 수준 스레드와 커널 수준 스레드
2021.10.06 -
06. 기술면접 - 운영체제 - 메모리 관리 전략
06. 기술면접 - 운영체제 - 메모리 관리 전략
2021.10.06 -
05. 기술면접 - 운영체제 - 프로세스 동기화
05. 기술면접 - 운영체제 - 프로세스 동기화
2021.10.06