이 문서에서는 oplock 유형에 대해 설명합니다.
- 네 가지 oplock 형식이 현재입니다.
- 네 가지 oplock 타입은 레거시로 간주됩니다.
레거시 oplocks
다음 네 개의 oplock은 Windows NT 3.1(수준 1, 수준 2, Batch) 및 Windows 2000(필터)에서 구현되었으며 "레거시 oplocks"로 간주됩니다.
수준 1(배타적) oplock을 사용하면 클라이언트가 단독 액세스를 위해 스트림을 열고 임의의 버퍼링을 수행할 수 있습니다. 이 oplock은 클라이언트 읽기 캐싱 및 쓰기 캐싱을 지원합니다.
수준 2(공유) oplock은 여러 사용자가 스트림을 읽고 있지만, 작성자는 없음을 나타냅니다. 이 oplock은 클라이언트 읽기 캐싱을 지원합니다.
Batch oplock(배타적)을 사용하면 클라이언트 컴퓨터의 로컬 접근자가 스트림을 닫아도 클라이언트가 서버에서 스트림을 열어 둘 수 있습니다. 이 oplock은 일괄 처리 스크립트 실행 중과 같이 클라이언트가 동일한 파일을 반복적으로 열고 닫아야 하는 시나리오를 지원합니다. 클라이언트 읽기 캐싱, 쓰기 캐싱 및 캐싱 처리를 지원합니다.
필터 oplock(배타적)을 사용하면 다른 애플리케이션, 클라이언트 또는 둘 다 동일한 스트림에 액세스하려고 할 때 스트림 데이터를 열고 읽는 애플리케이션 및 파일 시스템 필터 드라이버를 "백아웃"할 수 있습니다. 이 oplock은 클라이언트 읽기 캐싱 및 쓰기 캐싱을 지원합니다.
"현재 'Windows 7'의 oplocks"
Windows 7에서 다음 oplock이 추가되었으므로 "Windows 7 oplocks"라고도 합니다.
읽기 (R) oplock (공유)는 스트림에 여러 판독기가 있고 기록기가 없음을 나타냅니다. 이 oplock은 클라이언트 읽기 캐싱을 지원합니다.
RH( Read-Handle ) oplock(공유)은 스트림의 판독기가 여러 개 있고 기록기가 없음을 나타내며 클라이언트 컴퓨터의 로컬 접근자가 스트림을 닫은 경우에도 클라이언트가 서버에서 스트림을 열어 둘 수 있음을 나타냅니다. 이 oplock은 클라이언트 읽기 캐싱 및 핸들 캐싱을 지원합니다.
RW( 읽기-쓰기 ) oplock(배타적)을 사용하면 클라이언트가 단독 액세스를 위해 스트림을 열 수 있으며 클라이언트가 임의의 버퍼링을 수행할 수 있습니다. 이 oplock은 클라이언트 읽기 캐싱 및 쓰기 캐싱을 지원합니다.
RWH(읽기-쓰기-핸들) 배타적 oplock을 사용하면 클라이언트가 클라이언트 컴퓨터의 로컬 접근자가 스트림을 닫았더라도 서버에서 스트림을 계속 열어둘 수 있습니다. 이 oplock은 클라이언트 읽기 캐싱, 쓰기 캐싱 및 핸들 캐싱을 지원합니다.
일부 레거시 oplock은 Windows 7 oplock과 유사하게 보일 수 있습니다. 특히 R은 수준 2와 비슷하고 RW는 수준 1과 유사하며 RWH는 Batch와 유사합니다. 그러나 그들은 참으로 다릅니다. Windows 7 oplocks가 추가된 위치는 다음과 같습니다:
- 호출자가 캐싱 의도를 표현할 수 있는 더 큰 유연성을 제공합니다.
- oplock 중단 및 업그레이드 허용; 즉, oplock 상태를 한 수준에서 더 큰 캐싱 수준으로 수정할 수 있도록 합니다(예: 읽기 oplock을 Read-Write oplock으로 업그레이드).
이러한 유연성은 레거시 oplock으로 달성할 수 없습니다.