반응형
- hang : 프로그램이 수행 중 멈춰서 작동하지 않는 것을 지칭하는 용어. 예로 '고장났다', '먹통이다'와 같이 포괄적인 뜻의 용어이다.
- deadlock : 전산에서 많이 연구된 전문용어이며, 둘 이상의 프로세스가 한정된 자원을 요청하느라 프로세스가 진행되지 않고 대기하는 상태를 지칭하는 용어이다.
즉, deadlock 상태를 hang이라고 할 수 있지만, hang 상태를 deadlock이라고 보기엔 어렵다.
위의 deadlock이 발생하기 위한 조건은 아래와 같다.
1. 상호배제(Mutual Exclusion) – 특정 자원은 하나의 프로세스 밖에 못 가지고, 다른 사람이 가지려고 하면 그 자원이 해제될때까지 기다려야 한다. (배타적통제권을 의미함)
2. 점유와대기(Hold and Wait) – 프로세스가 자원을 가지고 있으면서 다른 자원을 요청.
3. 비선점(No Preemption – 다른 사람이 강제로 그 자원을 뺐을 수 없다.
4. 순환대기(Circular Wait) – 각각의 프로세스는 다음 프로세스가 요구하는 자원을 가지고 있으며 이는 원의 형태이다. (A 프로세스 -> B 프로세스 -> C 프로세스 -> A 프로세스)
위의 4가지 조건 중에서 한가지라도 만족하지 않으면 deadlock은 발생하지 않음.
추가) 병목현상 : 특정한 한 자원을 두 프로세스가 요청하여 한 프로세스가 자원을 사용하고, 나머지 한 프로세스는 대기하여 처리 속도가 지연되는 현상
반응형
'etc' 카테고리의 다른 글
[서버 관리] Oracle 서버의 CPU가 급작스레 높아진 경우 (0) | 2021.06.29 |
---|---|
[오류 해결] Script5009:FormData가 정의되지 않았습니다 (0) | 2021.06.23 |
[가상머신] 윈도우와 복사 붙여넣기 설정 방법 (1) | 2021.05.17 |
[오류 해결]org.apache.el.parser.ParseException 오류 해결 방법 (0) | 2021.05.12 |
[BurpSuite] 웹 취약점 점검 툴 BurpSuite 사용방법 (0) | 2021.04.14 |