임계영역 문제를 공부하다가 궁금한게 생겼어요!!
글쓴이: gyunn / 작성시간: 금, 2014/06/13 - 8:38오후
Operating System Concept 8th 번역서를 보면..
" 자기의 임계 영역에서 실행중인 프로세스가 없고, 자신의 임계영역으로 진입하려고 하는 프로세스들이 있다면,
**나머지 영역**에서 실행중이지 않은 프로세스들만 임계 영역으로 진입할 프로세스를 결졍하는데 참여할 수 있고, 이 선택은 무기한 연기될 수 없다. "
라고 나옵니다.
여기서 나머지 영역이 remained section을 가리키는거 같은데..
critical section을 실행중인 프로세스도 아니고 remained section에서 실행중인 프로세스라면
critical section에 진입하는데엔 상관 없지 않나요?
Forums:
...
Remainder section에 있는 프로세스가 락을 걸고 싶으면 먼저 entry section에 들어와야 하는데, 그러면 더 이상 remainder section에 있는 프로세스가 아니지요.
위의 제한 조건이 있는 이유는 예를 들자면, 아주 변태적인 락 알고리즘을 만들어서 프로세스 1번이 "내가 다음번에 critical section에 또 들어올 테니까 니들은 아무도 들어오지 말고 기다리고 있어!" 한 다음에 remainder section으로 들어가 버리면 다른 프로세스들은 모두 손가락 빨면서 기다리고 있어야 할까요? 위의 제한 조건에 따르면 이런 알고리즘은 mutual exclusion의 정의에 부합하지 않으므로 제대로 된 알고리즘이라 할 수 없습니다.
하지만 이 제한 조건을 없애버리면 remainder section에 있는 1번 프로세스가 "임계 영역으로 진입할 프로세스를 결정하는데 참여중"인 게 허용되므로 이런 알고리즘도 가능하게 되죠.
감사합니다~
크아
remainder section에 있는 놈들은 결정에 참여할 수 없군요..
감사합니다!