Todas las lecciones Read in English

Seguridad a fondo · Unidad 20 · Lección 25 de 27

Comprobar y actualizar deben concordar

Lee la secuencia de dos procesos y protege la última plaza disponible.

4 minlistaLección breve

Para prepararteAplicaciones web

Ver todas las lecciones de este tema

Después de esta lección puedes

  • Formular una condición de capacidad e identificar la transición que debe imponerla.

Dos decisiones razonables por separado pueden producir un resultado conjunto imposible.

Nombrar la regla que debe mantenerse

Un invariante es una condición que debe seguir siendo cierta en cada transición permitida. Para un taller de una plaza, la regla es: como máximo una reserva activa. Comprobar disponibilidad solo sirve si la confirmación posterior conserva esa regla pese al trabajo concurrente.

Supón dos procesos de aplicación con una base de datos compartida. Ambas personas están autorizadas y solicitan una plaza. Ninguna repite una operación anterior. Existe un problema de concurrencia aunque los datos sean válidos y las personas actúen normalmente.

Leer condición → Cambio concurrente → Transición protegidaLeer condiciónCambio concurrenteTransición protegida
Una condición leída puede cambiar antes de confirmar. La transición protegida es la corrección necesaria; la secuencia T3 proporcionada no dispone de ella.

Secuencia ficticia

  • T1: El proceso A lee cero reservas y concluye que queda una plaza.
  • T2: Antes de que A confirme, B también lee cero y obtiene la misma conclusión.
  • T3: A confirma una reserva. B confirma otra usando su observación anterior. El resultado es dos reservas para una plaza.

Proteger la transición

T1 y T2 pueden ser correctas al observarse. T3 demuestra el incumplimiento en este registro. Comprobar de nuevo solo en el navegador no coordina los procesos.

El diseño necesita una transición condicional atómica, restricciones apropiadas en la base de datos o aislamiento y bloqueos que preserven esa capacidad. La etiqueta «transacción» no demuestra la garantía. Un bloqueo limitado a un proceso dejaría al otro fuera de su protección.

Define el resultado que no confirma: como máximo un intento consigue la plaza; el otro recibe indisponibilidad o una decisión controlada de reintento según el estado actual. Gestiona conflictos sin mostrar éxito antes de confirmar la reserva.

Entregable: Nombrar el invariante e indicar qué límite compartido lo impone cuando se solapan las observaciones.

Términos que viste

Invariante

Compruébate

Sin reloj ni penalizaciones. Lee cada explicación y vuelve a intentarlo cuando quieras.

  1. ¿Qué requisito resuelve T1-T3 para ambos procesos?

    Ver la respuesta

    Respuesta correcta: Coordinar la decisión de disponibilidad y la confirmación para preservar el límite de una plaza. La protección debe cubrir ambos procesos y toda la transición relevante; el intento que no confirma necesita un resultado definido.

Pruébalo

  • EscribeRedacta cuatro líneas: invariante de capacidad, observaciones que entran en conflicto, transición protegida y resultado que debe recibir la segunda persona.
Referencias