교착상태 편집하기
IT위키
편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
1번째 줄: | 1번째 줄: | ||
== 개요 == | == 개요 == | ||
* 교착상태: Deadlock | * 교착상태 : Deadlock | ||
* | * 두개 이상의 프로세스가 서로의 작업이 끝나기만을 기다리고 있어 둘다 영원히 끝나지 않는 상황을 가리킨다. | ||
== 예시 == | == 예시 == | ||
17번째 줄: | 17번째 줄: | ||
== 교착상태의 4가지 필요조건 == | == 교착상태의 4가지 필요조건 == | ||
* 아래 4가지 조건<ref>순서나 우선순위는 없다.</ref>이 모두 | * 아래 4가지 조건<ref>순서나 우선순위는 없다.</ref>이 모두 만족하면 데드락이 '''발생할 가능성'''이 있다. | ||
* 하나라도 만족하지 않으면 절대 발생하지 않는다. | * 하나라도 만족하지 않으면 절대 발생하지 않는다. | ||
# '''상호 배제(Mutual exclusion)''' | # '''상호 배제(Mutual exclusion)''' | ||
#* 한 리소스는 | #* 한 리소스는 한번에 한 프로세스만이 사용 할 수 있음 | ||
# '''점유와 대기(Hold and wait)''' | # '''점유와 대기(Hold and wait)''' | ||
#* 어떤 프로세스가 하나 이상의 리소스를 점유하고 있으면서 다른 프로세스가 가지고 있는 리소스를 기다리고 있음 | #* 어떤 프로세스가 하나 이상의 리소스를 점유하고 있으면서 다른 프로세스가 가지고 있는 리소스를 기다리고 있음 | ||
# '''비선점(No preemption)''' | # '''비선점(No preemption)''' | ||
#* 프로세스가 | #* 프로세스가 테스크를 마친 후 리소스를 자발적으로 반환할 때 까지 기다림 (강제로 빼앗지 않는다) | ||
# '''환형 대기(Circular wait)''' | # '''환형 대기(Circular wait)''' | ||
#* Hold and | #* Hold and wait관계의 프로세스들이 서로를 기다림 | ||
== 교착상태의 방지법 == | == 교착상태의 방지법 == | ||
* 사전에 교착상태가 발생하지 않도록 조치하거나, 발생한 뒤에 고치는 방법이 있다. 대표적으로 아래 | * 사전에 교착상태가 발생하지 않도록 조치하거나, 발생한 뒤에 고치는 방법이 있다. 대표적으로 아래 세가지로 나눈다. | ||
# '''방지(Prevention)''' | # '''방지(Prevention)''' | ||
#* 할당 구조 측면에서, 교착상태가 발생할 수 있는 요구조건을 만족시키지 않게 함으로써 교착상태를 방지한다. | #* 할당 구조 측면에서, 교착상태가 발생할 수 있는 요구조건을 만족시키지 않게 함으로써 교착상태를 방지한다. | ||
36번째 줄: | 36번째 줄: | ||
#* 대표적으로 [[은행원 알고리즘]], [[자원 할당 그래프]]가 있다. | #* 대표적으로 [[은행원 알고리즘]], [[자원 할당 그래프]]가 있다. | ||
# '''탐지 및 회복(Detection and Recovery)''' | # '''탐지 및 회복(Detection and Recovery)''' | ||
#* 교착상태가 | #* 교착상태가 발생 할 수 있도록 놔 두고 교착상태가 발생 할 경우 찾아내어 고친다. | ||
== 참고 == | == 참고 == | ||
* 초기 원문 출처: [http://raisonde.tistory.com/entry/Deadlock의-발생-조건과-해결법 [지식잡식 블로그]] | * 초기 원문 출처 : [http://raisonde.tistory.com/entry/Deadlock의-발생-조건과-해결법 [지식잡식 블로그]] | ||
[[분류:운영체제]] | [[분류:운영체제]] | ||
[[분류:정보처리기사]] | [[분류:정보처리기사]] |