티스토리 뷰
1. 교착상태란 무엇인가를 설명한 후,
교착상태 발생 조건 4가지에 대하여
충분히 설명하세요.
2. 교착상태 해 회피 기법인
은행가 알고리즘에 대하여 설명하세요.
3. 기아상태를 설명하는
'식사하는 철학자 문제'에 대하여 설명하세요.
- 교착상태란 무엇인가를 설명한 후,
교착상태 발생 조건 4가지에 대하여
충분히 설명하세요.
교착 상태 : 절대 발생 하지 않을 사건을 기다
리는 상황으로 서로 다른 둘 이상의 프로세스
들이 상태 프로세스가 차지하고 있는 자원을
기다리는 무한 대기 상태.
교착 상태 발생 조건 :
1. 상호배제(Mutual Exclusion) : 한 프로세스
가 공유메모리 혹은 공유자원을 사용하고
있을 때 다른 프로세스들은 이 메모리 혹은
자원을 사용하지 못하게 배제시키는
제어기법.
2. 점유와 대기(Wait) : 프로세스가 다른 자원
을 요구하면서 자신에게 할당된 자원을
해제하지 않고 기다리는 상태 제어 기법.
3. 비중단(비선점) 조건(Non-Preemption) :
프로세스에 할당된 자원을 끝날때까지
해제할 수 없는 상태 제어 기법.
4. 순환대기(Circular wait) :
프로세스들이 순환 사슬(원형)이 존재하며
이를 구성하는 각 프로세스는 순환 내의
이전 프로세스가 요청하는 자원을 점유하고
다음 프로세스가 점유하고 있는 자원을
요청하는 상태 제어 기법.
순환대기는 점유대기, 비선점, 상호배제 조건
을 만족해야 가능.
- 교착상태 해 회피 기법인
은행가 알고리즘에 대하여 설명하세요.
1. 정의 :
프로세스가 자원을 요구할 때
시스템은 자원을 할당한 후에도 안정 상태로
남아있게되는 지를 사전에 검사하여
교착상태의 발생을 회피하는 기법.
자원 유형에 다수개의 자원을 가진 시스템에서 사용.
각 프로세스는 실행되기 전에 필요로 하는
모든 자원 형태들의 최대수를 선언.
프로세스가 자원을 요구할 때 시스템은 자원을
할당한 후에도 안정 상태로 남아있게
되는지를 검사함.
안정 상태에 있으면 자원을 할당하고
그렇지 않으면 다른 프로세스들이 자원을
해제할 때까지 대기함
- 참고
은행가 알고리즘의 자료 구조
- n = 프로세스의 개수, m = 자원 유형의 개수
- 기아상태를 설명하는
'식사하는 철학자 문제'에 대하여 설명하세요.
1. 정의: 동시성과 교착 상태를 설명하는
문제로, 많은 부류의 병행 제어문제의 예를
예시로 들며 여러 프로세스가 동시에
돌아갈 때 교착상태가 나타나는
원인을 보여줌.
그림 설명
1. N명의 철학자들이 원형 테이블에
둘러앉아있다.
2. 테이블의 가운데에는 스파게티가 담긴
접시가 하나 있다.
3. N명의 철학자의 양 옆에는 포크가
하나씩 있다.
4. 식사를 할 때에는 양 옆의 2 포크
모두를 사용하여야한다.
5. 한 번에 한 명의 철학자만 식사를
할 수 있다.
여기서 식사하는 철학자 문제는
전형적인 동기화 문제이다.
철학자들이 모두 식사를 하려면...
1. 기아상태에 빠지면 안된다.
( 다들 한 번 이상씩은 식사를 해야한다.
계속 굶은 철학자가 있으면 안된다.)
2. 교착상태에 빠지면 안된다.
( 즉, 한 번에 한 명은 반드시 식사를
해야 한다.)
3. 임계영역은 반드시 지켜져야 한다.
(즉, 두 명의 철학자가 동시에 같은 포크를
사용할 수 없다.)
**임계영역이란? 공유하는 자원을 의미한다.