이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 2259|회답: 0

공유 자물쇠 및 배타적 자물쇠 문제 분석

[링크 복사]
게시됨 2024. 11. 8. 오후 1:35:40 | | | |
다중 사용자 공유 시스템에서는 여러 사용자가 동일한 데이터를 조작하면 데이터 불일치가 발생할 수 있으므로, 동시 작업에서는 트랜잭션의 동시 실행을 제어하기 위해 잠금 작업이 필요합니다.

공유 잠금:이름에서 알 수 있듯이, 락은 공유할 수 있지만, 쓰기 작업은 공유되어서는 안 됩니다. 공유 데이터가 무작위로 쓰이면 '잠금'이 없으므로 공유 잠금은 읽기 연산 '공유'입니다. 즉, 이 잠금이 추가된 후에는 잠금을 더 이상 쓸 수 없지만 읽을 수 있으며, 읽기 전용 잠금이라고도 할 수 있습니다.
독점 자물쇠:독점적 잠금은 더 지배적입니다. 이 잠금장치를 추가하는 한 다른 작업은 수행할 수 없는데, 왜일까요? 제가 데이터를 수정하고 싶기 때문에, 다른 사람들이 다시 수정하지 못하게 해야 하고, 읽기 전용 락을 추가해서는 안 됩니다. 읽기 전용 락은 쓰기 작업을 할 수 없기 때문입니다.

예를 들어, 트랜잭션 T1이 데이터 D1에 공유 락을 추가하고, 트랜잭션 T2와 T3가 각각 데이터 D2와 D3에 배타적 락을 추가한다면, 트랜잭션 T1은 데이터에 공유 락을 추가합니다(51). 트랜잭션 T2 쌍 데이터 (52).

(51) 답변: D

A. D2와 D3, 그리고 잠금이 성공합니다
B. D2, D3 그리고 공유 잠금이 성공합니다
C. D2와 공유 잠금이 성공하고, D3가 추가하면 잠금이 실패합니다.
D. D2, D3 플러스틱 락과 공유 락 모두 실패합니다

(52) 답변: C

A. D1, D3, 그리고 공유 잠금장치 모두 실패했습니다
B. D1, D3 그리고 공유 잠금이 성공합니다
C. D1과 공유 잠금장치가 성공했고, D3가 추가 잠금장치 하나 실패
D. D1과 잠금이 성공했고, D3가 공유 잠금을 추가하지 못했다

공유 잠금장치가 있다면 공유 잠금을 추가할 수 있지만, 배타적 잠금은 추가할 수 없습니다. 독점 잠금이 존재한다면, 공유 잠금이나 독점 잠금을 추가할 수 없습니다.







이전의:컴퓨터의 중복 기술
다음:.NET/C#은 다각형의 면적을 계산합니다
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com