C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[12365] Re:운영체제의 데드락에서...
열씸! [cappuccino] 1980 읽음    2006-11-10 15:14
예>
자원A
자원B

프로세스1 - 자원 A와 자원 B를 요구한다. 두 자원의 처리 후 각자를 해제.
프로세스2 - 자원 B와 자원 A를 요구한다. (마찬가지)

이 두 프로세스가 동시 수행되었을 경우.

프로세스 1 - 자원 A를 갖고 자원 B를 요구한다.
프로세스 2 - 자원 B를 갖고 자원 A를 요구한다.

결과적으로 데드락 발생.

이 경우, 반드시 자원 A를 먼저 가지게끔 요구 순서를 변경(알파벳 순)하면 해결 되지만,
다음과 같은 문제가 있다.

자원A
자원B
자원C

프로세스1 - 자원 A와 자원 B를 요구.
프로세스2 - 자원 B와 자원 C를 요구.

즉, 서로 의존관계에 있을 수 있는 자원을 종류(유형)에 따라 권한으로 부여 하면 쉽게 해결된다.

권한1 - 자원 A, 자원, B, 자원 C를 접근할 수 있는 권한으로서의 자원.

프로세스1 - 권한1을 얻어 자원 A와 자원 B를 사용
프로세스2 - 권한1을 얻어 자원 B와 자원 C를 사용

따라서, 범주별 권한으로 자원을 encapsulation 한다는 슬픈 이야기.
(자원A,B 자원 B,C 자원 C,D를 한 범주로 묶으면 A,B와 C,D는 상관이 없으면서도 선점한쪽을 기다려야 하므로)
(어쨌든 데드락은 발생하지 않게 된다)
김상면 [windyboy]   2006-11-10 20:09 X
좋은 답변 감사합니다.
그럼

+ -

관련 글 리스트
12340 운영체제의 데드락에서... 김상면 2107 2006/11/04
12365     Re:운영체제의 데드락에서... 열씸! 1980 2006/11/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.