728x90
728x90
프로세스가 공유자원을 동시에 할당하려고 할 때 무한정으로 대기하는 상태
언제 발생하는가?
다음과 같은 4가지 조건을 모두 만족하면 교착상태가 발생한다.
1. 상호배제 조건
하나의 프로세스나 스레드만 공유자원으로 가질 수 있다면 다른 자원은동시에 할당할 수 없어서 교착상태가 발생한다.
2. 점유대기 조건
한번 할당하고, 다른 자원을 할당하기 위해서 대기한다면 이때 무한정으로 대기할 수 있어서 교착상태가 발생한다.
3. 비선점 조건
한번 할당 하면, 중단되거나 취소할 수 없다면 다른 자원을 할당하기 위해 기다려야 해서 교착상태가 발생한다.
4. 순환대기 조건
다음 자원을 대기하는데 사이클이 존재한다면, 무한정으로 기다리는 교착상태가 발생한다.
그렇다면 어떻게 예방할수 있는가? 교착상태를 피하려면?
위와 같은 4가지 조건 중 한가지를 부정하면 된다.
1. 상호배제 조건을 부정하면
여러가지 공유자원을 동시에 할당할 수 있어서 교착상태를 예방할 수 있다.
2. 점유대기 조건을 부정하면
다른 자원을 할당할 동안 대기하지 않아서 교착상태를 예방할 수 있다.
3. 비선점 조건을 부정하면
자원이 선택되어도 중단될 수 있어서 교착상태를 예방할 수 있다.
4. 순환대기 조건을 부정하면
사이클에 할당 순서를 부여하여 교착상태를 예방할 수 있다.
728x90
반응형
'🌱 Computer Science > OS' 카테고리의 다른 글
[하드웨어기초] CPU와 메모리 (2) | 2020.04.15 |
---|---|
[Linux 명령어] free 명령어 : 메모리 상태확인 (/proc/meminfo) (0) | 2020.03.31 |
리눅스 명령어 정리2. 포트오픈/파일정보/네트워크 수 확인명령어(telent/lsof/netstat) (0) | 2020.03.30 |
리눅스 명령어 정리1. 서버접속/프로세스/네트워크 관련 명령어 (btmp/wtmp/utmp/ps명령어/ifconfig) (0) | 2020.03.30 |
[OS] 메모리구조 : 메소드, 힙, 스택 (0) | 2020.01.15 |
[OS] 스레드 vs 프로세스 차이점(+멀티스레드/멀티프로세스) (0) | 2020.01.14 |