728x90
반응형
15. 데드락이 무엇이고, 해결방법에 대해 설명해 보세요
데드락(Deadlock)
프로세스가 자원을 얻지 못해 다음 처리를 하지 못하는 상태를 데드락(교착 상태)라 부릅니다.
이는 시스템 적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생됩니다.
발생 4가지 조건
- 4가지가 동시에 성립될 때 발생됩니다.
- 하나라도 성립이 되지 않는 경우 해결 가능 합니다.
- 상호 배제
- 자원은 한 번에 한 프로세스만
- 점유 대기
- 프로세스가 할당된 자원을 가진 상태에서 다른 자원을 기다림
- 비선점
- 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제적으로 강탈 불가
- 순환 대기
- 프로세스의 자원 점유 및 점유된 자원의 요구 관계가 원형을 이루면서 대기하는 조건
- 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있음
데드락 해결
1. 예방
- 교착 상태 발생 조건 중 하나를 제거
- 단점 : 자원 낭비가 심하다
- 상호 배제 부정 : 여러 개의 프로세스가 공유 자원을 사용 가능하도록 한다.
- 점유 대기 부정 : 프로세스가 실행되기 전 필요한 모든 자원을 할당한다.
- 비선점 부정 : 모든 자원에 대한 선점을 허용
- 순환 대기 부정 : 자원에 고유한 번호를 할당하고 번호 순서대로 자원을 요구하도록 한다.
2. 회피
- 교착 상태 발생 시 피해 가는 방법
- 은행원 알고리즘 :안정 상태면 자원 할당하고 아닌 경우 다른 프로세스들이 자원을 해지하기까지 대기합니다.
- 프로세스가 자원을 요구할 때 시스템은 자원을 할당한 후에도 안정 상태로 남아있게 되는지 사전에 검사해서 교착 상태를 회피합니다.
3. 탐지
- 시스템에 데드락이 발생했는지에 대한 여부를 탐색하고 회복 기법 알고리즘에 활용하는 것을 의미합니다.
- 교착상태가 탐지되었다면 회복기법을 통해 교착상태를 복구합니다.
- 단점 : 자원 요청 시 탐지 알고리즘을 실행시켜 그에 대한 오버헤드가 발생됩니다.
4. 회복
- 교착 상태를 일으킨 프로세스를 종료하거나 할당된 자원을 해제시켜 회복시키는 방법입니다.
- 프로세스 종료
- 교착 상태의 프로세스를 모두 중지
- 교착 상태가 제거될 때까지 하나씩 프로세스 중지
- 자원 선점 방법
- 교착 상태의 프로세스가 점유하고 있는 자원을 선점해 다른 프로세스에게 할당
- 우선순위가 낮은 프로세스, 수행 횟수 적은 프로세스 위주로 자원 선점
- 프로세스 종료
728x90
반응형
'백수 > 컴퓨터구조' 카테고리의 다른 글
프로세스, 스레드 (0) | 2023.07.20 |
---|---|
일반PC, 서버 구분 (0) | 2023.07.06 |
컴퓨터 구조 기초 1 (0) | 2023.06.26 |
HTTP (0) | 2023.06.12 |
컴퓨터 기초 13 (0) | 2023.01.18 |