다음을 통해 공유


oplock 형식

이 문서에서는 oplock 유형에 대해 설명합니다.

  • 네 가지 oplock 형식이 현재입니다.
  • 네 가지 oplock 형식은 레거시로 간주됩니다.

레거시 oplocks

다음 네 개의 oplock은 Windows NT 3.1(수준 1, 수준 2, 일괄 처리) 및 Windows 2000(필터)에서 구현되었으며 "레거시 oplocks"로 간주됩니다.

  • 수준 1(배타적) oplock을 사용하면 클라이언트가 단독 액세스를 위해 스트림을 열고 임의의 버퍼링을 수행할 수 있습니다. 이 oplock은 클라이언트 읽기 캐싱 및 쓰기 캐싱을 지원합니다.

  • 수준 2(공유) oplock은 스트림의 판독기가 여러 대이고 기록기가 없음을 나타냅니다. 이 oplock은 클라이언트 읽기 캐싱을 지원합니다.

  • Batch oplock(배타적)을 사용하면 클라이언트 컴퓨터의 로컬 접근자가 스트림을 닫은 경우에도 클라이언트가 서버에서 스트림을 열어 둘 수 있습니다. 이 oplock은 일괄 처리 스크립트 실행 중과 같이 클라이언트가 동일한 파일을 반복적으로 열고 닫아야 하는 시나리오를 지원합니다. 클라이언트 읽기 캐싱, 쓰기 캐싱 및 캐싱 처리를 지원합니다.

  • 필터 oplock(배타적)을 사용하면 다른 애플리케이션, 클라이언트 또는 둘 다 동일한 스트림에 액세스하려고 할 때 스트림 데이터를 열고 읽는 애플리케이션 및 파일 시스템 필터 드라이버를 "백아웃"할 수 있습니다. 이 oplock은 클라이언트 읽기 캐싱 및 쓰기 캐싱을 지원합니다.

현재 "Windows 7" oplocks

다음 oplock이 Windows 7에 추가되었으므로 "Windows 7 oplocks"라고도 합니다.

  • 읽기(R) oplock(공유)은 스트림의 판독기가 여러개 있고 기록기가 없음을 나타냅니다. 이 oplock은 클라이언트 읽기 캐싱을 지원합니다.

  • RH( 읽기 핸들 ) oplock(공유)은 스트림의 판독기가 여러 개 있고 기록기가 없으며 클라이언트 컴퓨터의 로컬 접근자가 스트림을 닫은 경우에도 클라이언트가 서버에서 스트림을 열어 둘 수 있음을 나타냅니다. 이 oplock은 클라이언트 읽기 캐싱 및 핸들 캐싱을 지원합니다.

  • RW( 읽기-쓰기 ) oplock(배타적)을 사용하면 클라이언트가 단독 액세스를 위해 스트림을 열 수 있으며 클라이언트가 임의의 버퍼링을 수행할 수 있습니다. 이 oplock은 클라이언트 읽기 캐싱 및 쓰기 캐싱을 지원합니다.

  • RWH( Read-Write-Handle ) oplock(배타적)을 사용하면 클라이언트 컴퓨터의 로컬 접근자가 스트림을 닫은 경우에도 클라이언트가 서버에서 스트림을 열어 둘 수 있습니다. 이 oplock은 클라이언트 읽기 캐싱, 쓰기 캐싱 및 캐싱 처리를 지원합니다.

일부 레거시 oplock은 Windows 7 oplock과 유사하게 보일 수 있습니다. 특히 R은 수준 2와 비슷하고 RW는 수준 1과 유사하며 RWH는 Batch와 유사합니다. 그러나 그들은 실제로 다릅니다. Windows 7 oplocks가 다음 항목에 추가되었습니다.

  • 호출자가 캐싱 의도를 표현할 수 있는 더 큰 유연성을 제공합니다.
  • oplock 중단 및 업그레이드 허용; 즉, 한 수준에서 더 큰 캐싱 수준으로 oplock 상태를 수정할 수 있습니다(예: 읽기 연산을 Read-Write oplock으로 업그레이드).

이러한 유연성은 레거시 oplock으로 달성할 수 없습니다.