티스토리 뷰
- 교착상태 회피
- 프로세스의 자원 사용에 대한 사전 정보를 활용하여 교착상태가 발생하지 않는 상태에 머물도록 하는 방법
- 사전 정보: 현재 할당된 자원, 가용상태의 자원, 프로세스들의 최대 요구량
- 프로세스의 상태 영역
- 안전상태
- 교착상태를 회피하면서 각 프로세스에게 그들의 최대 요구량까지 빠짐없이 자원을 할당할 수 있는 상태
- 안전 순서열이 존재
- 불안전상태
- 교착상태
- 안전 순서열이 존재하지 않음
- 안전상태
- 안전 순서열
- 순서 있는 프로세스의 집합<p1, p2, ..., pn>
- 각 pi에 대해 pi가 추가로 요구할 수 있는 자원 소요량이 현재 가용 상태이거나 혹은 현재 가용인 자원에 pj(단, j<i)에 할당된 자원까지 포함하여 할당 가능한 경우
- 교착상태는 불안전상태에서 발생
- 불안전상태: 할당 과정에 따라 교착상태가 될 수도 있는 상태
- 프로세스가 가용상태의 자원을 요구하더라도 상전상태를 유지하기 위해 프로세스는 대기상태가 될 수 있음
- 교착상태 회피 알고리즘
- 각 자원 유형의 단위자원이 여러 개일 경우
- 은행원 알고리즘
- 자원을 요청받으면 그 자원을 할당해주고 난 후의 상태를 계산해서 그것이 안전상태가 보장되는 경우에만 자원을 할당
- AVAIL: 가용자원
- MAXi: pi의 최대요구
- ALLOC: pi의 할당자원
- NEEDi: pi의 추가요구
- 시간복잡도: O(mn^2)
- 자원을 요청받으면 그 자원을 할당해주고 난 후의 상태를 계산해서 그것이 안전상태가 보장되는 경우에만 자원을 할당
- 은행원 알고리즘
- 각 자원 유형의 단위자원이 여러 개일 경우
- 프로세스의 자원 사용에 대한 사전 정보를 활용하여 교착상태가 발생하지 않는 상태에 머물도록 하는 방법
-
- 각 자원 유형의 단위자원이 하나밖에 없는 경우
- 변형된 자원할당 그래프
- 할당간선(rj, pj): 자원 rj가 프로세스 pj에 할당됨
- 요구간선(pi, rj): 프로세스 pi가 자원 rj를 요구함
- 선언간선(pi, rj): 앞으로 프로세스 pi가 자원 rj를 요구하게 될 것임
- 자원을 요청받으면 그 요구간선을 할당간선으로 변환하여도 사이클이 발생되지 않는 경우에만 자원을 할당
- 변형된 자원할당 그래프
- 각 자원 유형의 단위자원이 하나밖에 없는 경우
- 교착상태 탐지 및 복구
- 교착상태 탐지
- 시스템의 교착상태 여부를 탐지하기 위해 주기적으로 상태 조사 알고리즘을 수행
- Shoshani와 Coffman 알고리즘
- 알고리즘 수행시점
- 즉시 받아들일 수 없는 할당요구가 있을 때
- 정해진 시간간격 또는 CPU효율이 일정수준 이하로 떨어질 때
- 알고리즘 수행시점
- 교착상태 탐지
-
- 교착상태 복구
- 교착상태가 탐지된 경우 복구조치에 들어감
- 복구의 주체
- 오퍼레이터: 교착상태 발생을 알려주면 수작업으로 복구
- 시스템: 자동적으로 복구
- 복구의 방법
- 교착상태 프로세스를 종료
- 교착상태 프로세스로부터 자원을 회수
- 프로세스 종료
- 모든 교착상태 프로세스를 종료
- 단점: 그동안 진행했던 내용들에 대한 복원 비용이 큼
- 사이클이 제거될 때까지 프로세스를 하나씩 종료
- 단점: 종료 대상을 선택하기 위한 비용, 매번 교착상태 재확인을 위한 비용
- 모든 교착상태 프로세스를 종료
- 자원 회수
- 사이클이 제거될 때까지 자원을 단계적으로 선점하여 다른 프로세스들에 할당
- 고려사항: 희생자 선택, 복귀, 기아상태
- 교착상태 복구
- 복합적 접근방법
- 방지, 회피, 탐지 및 복구를 복합적으로 사용
- 자원을 유형에 따라 계층적으로 분류
- 각 계층에 대하여 자원순서를 부여
- 각 계층별로 방지, 회피, 탐지 및 복구 중 적절한 방법을 적용
- 방지, 회피, 탐지 및 복구를 복합적으로 사용
'운영체제' 카테고리의 다른 글
[운영체제] 가상메모리 (0) | 2021.05.03 |
---|---|
[운영체제] 메모리 관리 (0) | 2021.05.01 |
[운영체제] 교착상태 (0) | 2021.04.07 |
[운영체제] 병행프로세스 (2) (0) | 2021.04.02 |
[운영체제] 병행프로세스 (0) | 2021.03.30 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 알고리즘
- client side rendering
- 자료구조
- BFS
- 병행프로세스
- 최단경로
- C
- dfs
- 세마포어
- 인접리스트
- stackframe
- server side rendering
- 재귀함수
- 클래스
- 동적프로그래밍
- Java
- 인접행렬
- 퀵정렬
- 배열
- react
- C++
- 교착상태
- 스텍
- 구조체
- javascript
- 이진탐색
- Stack
- 소프트웨어
- 입출력장치
- 운영체제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함