티스토리 뷰
교착상태란?
2개 이상의 작업이 서로 끝나기만을 기다리고 있기 때문에 어느것도 실행되지 않는 상태를 말한다.
다중 프로그래밍 환경에서 자주 발생하며, 이를 해결하기 위한 일반적인 해결방안은 아직 존재하지 않는다.
교착상태의 조건
- 상호배제(Mutual Exclusion) : 프로세스들이 원하는 자원에 대해 상호 배타적인 통제권을 요구한다.
- 점유대기(Hold and Wait) : 프로세스가 할당된 자원을 점유하고 있는 상태에서 다른 자원을 기다린다.
- 비선점(Non-Preemptive) : 프로세스가 점유권을 넘겨주기 전까지 점유권을 빼앗을 수 없다.
- 순환대기(Circular Wait) : 프로세스는 순환적으로 다음 프로세스가 원하는 자원을 가지고 있다.
위 4가지 조건을 모두 충족해야만 교착상태가 발생한다.(ex : 식사하는 철학자)
교착상태 해결 방법 :
예방
상호배제 조건 제거 : 비공유 자원
점유대기 조건 제거 : 프로세스가 자원을 요구할 때 자원을 점유하지 않도록 한다.
비선점 조건 제거 : 비선점 프로세스에 대해 선점 가능한 프로토콜을 만들어준다.
순환대기 조건 제거 : 자원 종류 순서대로 요청하게 한다.
예방의 단점 : 장치 사용율, 시스템 처리율이 떨어진다.
회피
동적으로 자원 할당 상태를 조사하여 교착상태를 피한다.
미래의 자원 할당 해지를 감지.
안전한 상태(safe state) 1를 유지할 수 있는 자원 요구만 들어준다.(자원 이용율이 낮아지는 단점)
종류별 자원이 여러개 : 은행원 알고리즘
탐지
교착상태 탐지 알고리즘과 회복 알고리즘이 필요하다.
회복
수동 : operator가 처리
자동 : 교착상태에 있는 프로세스를 종료(전부 다 종료시키는 방법과 하나씩 종료시키는 방법이 있다.)
무시
unix/windows : 1년에 한번 사용자가 재부팅
jvm : 응용 개발자에게 맡김
- 일련의 순서대로 자원을 할당해도 교착상태가 일어나지 않는 상태 [본문으로]
- 자원 할당 그래프 + 예약 간선 프로세스가 자원을 요청하면 예약간선이 요청간선으로 바뀐다. [본문으로]
- 교착상태인지 탐지할 수 있는 그래프 cycle이 있으면 교착상태에 있다. os는 대기그래프를 유지하며 주기적으로 cycle이 있는지 탐지하는 알고리즘을 수행한다. [본문으로]
- 프로세스가 자원을 요구할 때 시스템은 자원을 요구해도 교착상태가 일어나지 않는지를 미리 검사한 후 자원을 할당하는 알고리즘 각 프로세스는 실행하기 전에 필요한 자원 형태의 최대수를 선언 시스템은 자원을 할당한 뒤에도 안전한 상태에 있는지를 검사하여 안전한 상태에 있으면 할당하고 아니면 대기시킨다. 은행원 알고리즘의 한계 할당할 수 있는 자원이 일정해야한다. 일정한 사용자수에서만 사용 가능 알고리즘을 유한시간 내에 수행해야 한다. 유한시간 내에 자원을 되돌려 받아야 한다. 최대 자원을 미리 등록해야 한다. -> 제한적인 상황에서만 사용할 수 있다. [본문으로]
'Non-Programming > Computer' 카테고리의 다른 글
오류 검출 코드 - 해밍코드(Hamming Code) (16) | 2017.02.19 |
---|---|
IOCP의 기본 동작 원리 (0) | 2017.02.10 |
OS : 가상 메모리(virtual memory) (0) | 2015.06.15 |
OS : 기억장치 관리(memory management) (0) | 2015.06.14 |
OS : 프로세스 동기화(process syncronization) (0) | 2015.06.14 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- C++
- SwiftUI
- Git
- SOCKET
- 드라마
- rxswift
- swift
- 수학
- winsock
- 자료구조
- 데이터베이스
- Java
- 운영체제
- OS
- Cocos2d-x
- mongoDB
- Spring
- 알고리즘
- JSP
- ue4
- SHADER
- game
- machine learing
- scala
- C/C++
- C
- 국내여행
- DesignPattern
- database
- ios
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함