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 | 31 |
Tags
- 백준 1707번
- 백준 2812번
- 백준 2504번
- 트리(Tree)
- 분할 정복(Divide and Conquer)
- BFS(Breadth First Search)
- 백준 9012번
- 그래프(Graph)
- 백준 18352번
- 큐(Queue)
- 위상 정렬(Topological Sort)
- 백준 17608번
- 다익스트라 알고리즘(Dijkstra Algorithm)
- 백준 21606번
- BFS
- DFS
- 그리디 알고리즘(Greedy Algorithm)
- DFS & BFS
- DFS(Depth First Search)
- 백준 10000번
- 위상 정렬(Topology Sort)
- 플로이드 워셜 알고리즘(Floyd-Warshall Algorithm)
- 알고리즘 개념
- 동적 프로그래밍(Dynamic Programming)
- 백준 2493번
- 이분 탐색(Binary Search)
- 이분 그래프(Bipartite Graph)
- 백준 2261번
- 백준 1948번
- 스택(Stack)
Archives
- Today
- Total
Always Be Wise
데드락이란? 본문
728x90
데드락이란?
둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 서로 기다리며 아무것도 하지 못하는 상태를
의미합니다. 이는 멀티 프로그래밍 환경에서 한정된 자원을 사용하려고 하는 경쟁 상황에서 발생할 수 있습니다.
데드락 발생조건
- 상호 배제자원이 해제될 때까지 기다려야 한다.
- 한 번에 프로세스 하나만 해당 자원을 사용할 수 있다. 사용 중인 자원을 다른 프로세스가 사용하려면 요청한
- 점유 대기대기하는 프로세스가 존재해야 한다.
- 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 있는 자원을 추가로 점유하기 위해
- 비선점
- 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없다.
- 순환 대기대기하는 등 순환 형태로 자원을 대기하고 있어야 한다.
- 프로세스의 집합(ex P0, P1, ... PN)에서 P0은 P1가 점유한 자원을 대기하고, P1은 P2가 점유한 자원을
데드락 해결 방법
- 예방위해 한 번에 여러 프로세스가 공유 자원을 사용할 수 있게 한다. 그러나 동기화 관련 문제가 발생할 수 있다.점유하기 위해 대기하는 것을 방지한다. 이미 다른 프로세스에게 할당된 자원이 선점권이 없을 때 높은 우선할당하고 순서대로 자원을 요구하도록 한다.
- 순위의 프로세스가 해당 자원을 선점할 수 있도록 한다. 자원을 순환 형태로 대기하지 않도록 고유 번호를
- 프로세스 실행에 필요한 모든 자원을 한꺼번에 요구하고 허용할 때까지 작업을 보류해서 나중에 다른 자원을
- 데드락의 발생 조건 4가지 중 하나라도 발생하지 않게 하는 것을 의미한다. 자원의 상호 배제 조건을 방지하기
- 회피안정 상태면 자원을 할당하고 아니면 다른 프로세스들이 자원을 해제할 때까지 대기하여 데드락을 회피할 수
- 있다. 은행원 알고리즘이 대표적이다.
- 프로세스가 자원을 요구할 때 시스템은 자원을 할당한 후에도 안정 상태로 남아있게 되는지 사전에 검사하여,
- 탐지 및 회복그래프 등을 이용하여 탐지할 수 있다. 회복 관련하여서는 데드락 상태에 빠진 프로세스를 모두 중지하거나자원을 선점해 다른 프로세스에게 할당하거나, 우선 순위가 낮은 프로세스나 수행 횟수가 적은 프로세스해주는 방법이 있다.N명이 앉을 수 있는 테이블에 N-1명만 앉힌다.누군가는 왼쪽 젓가락을 먼저 집지 않고 오른쪽 젓가락을 먼저 집도록 허용한다.
- 한 철학자가 젓가락 두 개를 모두 집을 수 있는 상황에서만 젓가락을 집도록 허용한다.
- ex) 식사하는 철학자 문제
- 위주로 프로세스 자원을 선점할 수 있도록 하여 교착 상태를 해결할 때까지 그 자원을 다른 프로세스에 할당
- 데드락이 해제 될 때까지 프로세스를 하나 씩 중지할 수 있다. 혹은 데드락 상태의 프로세스가 점유하고 있는
- 데드락이 발생하는 것을 탐지하고 회복하는 알고리즘을 이용할 수 있다. 예를 들어, 탐지의 경우 자원 할당
'기술 관련 정리' 카테고리의 다른 글
정렬 알고리즘 - 선택 정렬(Selection Sort) (0) | 2022.04.09 |
---|---|
정렬 알고리즘 - 거품 정렬(Bubble Sort) (0) | 2022.04.09 |
가상메모리란? (0) | 2022.04.03 |
레드 블랙 트리(Red Black Tree)란? (0) | 2022.03.31 |
객체 지향 프로그래밍이란? (0) | 2022.03.29 |
Comments