Tipos de interbloqueos
En este artículo se describen los tipos de interbloqueos.
- Hay cuatro tipos de interbloqueo actuales.
- Cuatro tipos de interbloqueo se consideran heredados.
Interbloqueos heredados
Los cuatro interbloqueos siguientes se implementaron en Windows NT 3.1 (nivel 1, nivel 2, lote) y Windows 2000 (filtro) y se consideran "interbloqueos heredados":
Un interbloqueo de nivel 1 (exclusivo) permite a un cliente abrir una secuencia para el acceso exclusivo y realizar un almacenamiento en búfer arbitrario. Este oplock admite el almacenamiento en caché de lectura del cliente y el almacenamiento en caché de escritura.
Un interbloqueo de nivel 2 (compartido) indica que hay varios lectores de una secuencia y ningún escritor. Este oplock admite el almacenamiento en caché de lectura del cliente.
Un interbloqueo de Batch (exclusivo) permite a un cliente mantener abierta una secuencia en el servidor aunque el descriptor de acceso local en el equipo cliente haya cerrado la secuencia. Este interbloqueo admite escenarios en los que el cliente necesita abrir y cerrar repetidamente el mismo archivo, como durante la ejecución del script por lotes. Admite el almacenamiento en caché de lectura del cliente, el almacenamiento en caché de escritura y el almacenamiento en caché.
Un interbloqueo de filtro de filtro (exclusivo) permite a las aplicaciones y controladores de filtro del sistema de archivos que abren y leen datos de flujo una manera de "volver a salir" cuando otras aplicaciones, clientes o ambos intentan acceder a la misma secuencia. Este oplock admite el almacenamiento en caché de lectura del cliente y el almacenamiento en caché de escritura.
Interbloqueos actuales de "Windows 7"
Los siguientes interbloqueos se agregaron en Windows 7, por lo que se conocen colectivamente como "interbloqueos de Windows 7":
Un oplock de lectura (R) (compartido) indica que hay varios lectores de una secuencia y ningún escritor. Este oplock admite el almacenamiento en caché de lectura del cliente.
Un oplock de identificador de lectura (RH) (compartido) indica que hay varios lectores de una secuencia, ningún escritor y que un cliente puede mantener abierta una secuencia en el servidor aunque el descriptor de acceso local del equipo cliente haya cerrado la secuencia. Este interbloqueo admite el almacenamiento en caché de lectura del cliente y el almacenamiento en caché.
Un interbloqueo de lectura y escritura (RW) (exclusivo) permite a un cliente abrir una secuencia para el acceso exclusivo y permite al cliente realizar un almacenamiento en búfer arbitrario. Este oplock admite el almacenamiento en caché de lectura del cliente y el almacenamiento en caché de escritura.
Un oplock de identificador de escritura de lectura (RWH) (exclusivo) permite a un cliente mantener una secuencia abierta en el servidor aunque el descriptor de acceso local en el equipo cliente haya cerrado la secuencia. Este interbloqueo admite el almacenamiento en caché de lectura del cliente, el almacenamiento en caché de escritura y el almacenamiento en caché.
Algunos interbloqueos heredados pueden parecer similares a los interbloqueos de Windows 7. En concreto, R parece similar al nivel 2, RW parece similar al nivel 1 y RWH parece similar a Batch. Pero son realmente diferentes. Los interbloqueos de Windows 7 se agregaron a:
- Proporciona mayor flexibilidad para que el autor de la llamada exprese intenciones de almacenamiento en caché.
- Permitir interrupciones y actualizaciones de oplock; es decir, para permitir la modificación del estado de interbloqueo de un nivel a un nivel de almacenamiento en caché mayor (por ejemplo, actualizar un interbloqueo de lectura a un oplock de Read-Write).
Esta flexibilidad no es factible con los interbloqueos heredados.