# data[].attributes.body
No necesita que todos los procesos permitan el acceso, sólo basta un subconjunto de k procesos.
Cumple con la seguridad, pero no con la pervivencia, ya que puede producir interbloqueos.
Entrada:  raíz de N peticiones de entrada al SC, raíz de N concesiones.
El número de respuesta es igual.

# data[].attributes.body
Sea Vi para cada proceso pj con i diferente de j: i, j = 1, 2,..., n
pj pertenece a Vi. Vi y Vj no comparten elementos, el num de elementos en Vi = k

# data[].attributes.body
El token pasa sin un servidor.
Debe cumplir con la seguridad y la pervivencia y no considera el orden de los mensajes.
Entran de 0 a N mensajes y salen de 1 a N-1 mensajes.

# data[].attributes.body
No funciona como un cuello de botella.
Asegura la seguridad, la previvencia y el orden.
Sean N procesos p1, p2,...,pn los cuales se pueden comunicar entre si, además mantienen un reloj lógico de Lamport C
Solicitud de entrada: <Ci(t), pi>
Hay 3 variables para cada proceso: Liberada (fuera de SC), Buscada (fuera de SC, pero tratando de entrar) y Tomada (dentro de SC)

# data[].attributes.headline
Funcionamiento del Algoritmo con Servidor Central

# data[].attributes.subject
Funcionamiento del Algoritmo con Servidor Central

# data[].attributes.body
El servidor actúa como cuello de botella.
Entran 2 mensajes: 1 de petición y otro de concesión.
Respuestas: 2 mensajes, 1 de liberación y otro de nueva concesión.

# data[].attributes.body
Concede los permisos para acceder en la SC mediante tokens.
Necesita cumplir:
- Seguridad (Mediante tokens)
-Pervivencia (Las peticiones se registran en la cola)
-No considera el tiempo local de los mensajes.

# data[].attributes.body
Es una colección de procesos que comparten recursos. Previenen la interferencia al acceder a los archivos y aseguran la consistencia
Ninguno de los algoritmos descritos toleraría perder mensajes, si los canales no fueran confiables!