Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 순열
- 회사폐업
- 캡쳐링
- 부분합알고리즘
- 후니의쉽게쓴시스코네트워킹
- 전화영어
- 생애첫계약
- 정보처리기사개정
- 막대기자르기
- 정보
- 동적계획법
- 청년내일채움공제
- 네트워크
- IT기초
- 후니의쉽게쓴시스코라우팅
- 실업인정인터넷신청
- 프로그래머스
- C++
- HeadFirstDesignPatterns
- 자취준비
- 알고리즘
- 사회초년생
- 실업급여
- 튜터링
- 취업사실신고
- 모여봐요동물의숲
- 코딩테스트
- leetcode
- array
- 자료구조
Archives
- Today
- Total
따봉도치야 고마워
교착상태(DeadLock)란? 본문
교착상태(DeadLock)란?
*상호 배제에 의해 나타는 문제점. 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상
상호 배제(mutual exclusion) : 여러 프로세스가 공유자원을 동시에 사용하지 못하도록 사용하는 알고리즘
교착상태 발생의 조건
- 상호 배제(Mutual Exclusion) : 한 자원을 여러 프로세스가 동시 접근 불가
- 점유와 대기(Hold and Wait) : 자원을 가진 상태에서 다른 프로세스가 사용 중인 자원의 반납을 기다리는 것
- 비선점(Non Preemptive) : 다른 프로세스의 자원을 강제로 가져올 수 없음
- 환형 대기(Circle Wait) : 각 프로세스가 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있는 것
교착상태 해결 방법
1) 예방(Prevention) : 위 4가지 발생 조건 중 하나를 제거함
- 가장 자원 낭비가 심함
- 상호 배제 부정 : 한 번에 여러 개의 프로세스가 공유 자원 사용할 수 있도록
- 점유 및 대기 부정 : 프로세스가 실행되기 전 필요한 모든 자원 할당해 대기를 없애거나 자원이 점유되지 않은 상태에서만 요구하도록 함
- 비선점 부정 : 자원 점유하고 있는 프로세스가 다른 자원을 요구할 때 점유한 자원을 반남하고 기다리게 함
- 환형 대기 부정 : 자원을 순서대로 분류해 고유번호 할당, 각 프로세스는 현재 점유한 자원의 번호보다 앞/뒤 한 방향으로만 요구할 수 있도록
2) 회피(Avoidance) : 발생조건을 없애기보단 발생하지 않도록 알고리즘을 적용
- 은행원 알고리즘 (추후 포스팅 추가)
3) 탐지(Detection) : 교착상태가 발생하는 것을 막지 않고, 발생 이후 문제 해결
- 자원할당 그래프 (추후 포스팅 추가)
4) 회복(Recovery) : 교착상태 발견 후, 해당 프로세스를 종료시키거나, 할당된 자원을 선점해 회복
+ 내가 회사에서 실제로 경험했던건 환형 대기 부정방법인 것 같다 > 자원 사용에 순서를 매겨 사용했었음
'프로그래밍 > 공부' 카테고리의 다른 글
[네트워크 공부] 후니의 쉽게 쓴 네트워킹 1일차 - Part01, 02 (0) | 2020.03.09 |
---|---|
[디자인패턴] 디자인패턴이란? (2) | 2020.03.02 |
프로세스(Process)와 쓰레드(Thread)의 차이 (0) | 2020.02.26 |
[자료구조]해시테이블 (HashTable)이란? (0) | 2020.02.25 |
배열과 리스트의 차이 (2) | 2020.02.25 |
Comments