Anexo - zimmcl/Programacion-Concurrente GitHub Wiki

Prevención de interbloqueo

El algoritmo empleado a continuación es sólo para RdP reversibles o parcialmente reversible. Como primer paso se calcula el árbol de alcanzabilidad, para luego ser analizado en busca de estados (marcados) muertos (con interbloqueo). Una vez hallados los estados muertos se analizan todos los sifones mínimos críticos y se le adicionan plazas de control que son conectadas a las transiciones asociadas a las plazas de los sifones.

A partir de los resultados provistos del análisis de estados realizado mediante el software PIPE, se obtuvieron 12 estados (marcados) con interbloqueo: M219, M386, M392, M554, M566, M567, M677, M805, M806, M807, M848 y M849, cuyos análisis se presentan a continuación.

Marcado 219

Se produce interbloqueo ya que: 1. Para disparar t10 se necesita de r1, actualmente ocupado con el transporte de Pieza A. 2. Para disparar t11 se necesita de m1, actualmente ocupada en el procesamiento de otra pieza A en alternativa 1. 3. Para disparar t12 se necesita de m3, actualmente ocupada en el procesamiento de otra pieza A en alternativa 2. 4. Para disparar t13 se necesita de r2, actualmente ocupado con el transporte de Pieza C. 5. Para disparar t14 se necesita de r2, actualmente ocupado con el transporte de Pieza C. 6. Para disparar t15 se necesita de pieza A en alternativa 1 preprocesada, imposibilitado debido al no disparo de 4). 7. Para disparar t16 se necesita de pieza A en alternativa 2 preprocesada, imposibilitado debido al no disparo de 5). 8. Para disparar t17 se necesita de pieza A procesada, imposibilitado debido al no disparo de 6). 9. Para disparar t18 se necesita de pieza A procesada, imposibilitado debido al no disparo de 7). 10. Para disparar t21 se necesita de r2, actualmente ocupado con el transporte de pieza C. 11. Para disparar t22 se necesita de pieza B en línea de producción, inexistente debido al no disparo de 10). 12. Para disparar t31 se necesita de pieza C, actualmente línea de producción ocupada. 13. Para disparar t32 se necesita de pieza C en línea de producción, inexistente debido a 12). 14. Para disparar t34 se necesita de m3, actualmente ocupado en producción de pieza A mediante alternativa 2.

--

Marcado 386

Se produce interbloqueo ya que: 1. Para disparar t10 se necesita de r1 actualmente ocupado con transporte de Pieza A. 2. Para disparar t11 se necesita de m1, actualmente ocupada con el procesamiento de otra pieza A en alternativa 1. 3. Para disparar t12 se necesita de m3, actualmente ocupada en el procesamiento de otra pieza A en alternativa 2. 4. Para disparar t13 se necesita de r2 actualmente ocupado con transporte de Pieza C. 5. Para disparar t14 se necesita de r2 actualmente ocupado con transporte de Pieza C. 6. Para disparar t16 se necesita de pieza A en alternativa 2 preprocesada, imposibilitado debido al no disparo de e). 7. Para disparar t18 se necesita de pieza A procesada, imposibilitado debido al no disparo de f). 8. Para disparar t23 se necesita de r2 actualmente ocupado con transporte de Pieza C. 9. Para disparar t31 se necesita de pieza C, actualmente línea de producción ocupada. 10. Para disparar t32 se necesita de pieza C en línea de producción, inexistente debido a i). 11. Para disparar t34 se necesita de m3, actualmente ocupada en el procesamiento de Pieza A en alternativa 2.

--

Marcado 392

Se produce interbloqueo ya que: 1. Para disparar t10 se necesita de r1 actualmente ocupado con transporte de Pieza A. 2. Para disparar t11 se necesita de m1, actualmente ocupada con el procesamiento de otra pieza A en alternativa 1. 3. Para disparar t12 se necesita de m3, actualmente ocupada en el procesamiento de otra pieza A en alternativa 2. 4. Para disparar t13 se necesita de r2 actualmente ocupado con transporte de Pieza A en alternativa 2. 5. Para disparar t14 se necesita de r2 actualmente ocupado con transporte de Pieza A en alternativa 2. En adición a que cada plaza salvo p10 pueden contener como máximo 1 token. 6. Para disparar t15 se necesita de pieza A en alternativa 1 preprocesada, imposibilitado debido al no disparo de d). 7. Para disparar t16 se necesita de m4, actualmente ocupada con el procesamiento de Pieza C. 8. Para disparar t17 se necesita de pieza A procesada, imposibilitado debido al no disparo de f). 9. Para disparar t18 se necesita de pieza A procesada, imposibilitado debido al no disparo de g). 10. Para disparar t21 se necesita de r2 actualmente ocupado con transporte de pieza A en alternativa 2. 11. Para disparar t22 se necesita de pieza B en línea de producción, inexistente debido al no disparo de j). 12. Para disparar t31 se necesita de pieza C, actualmente línea de producción ocupada. 13. Para disparar t33 se necesita de r2 actualmente ocupado con transporte de Pieza A en alternativa 2.

--

Marcado 554

Se produce interbloqueo ya que: 1. Para disparar t10 se necesita de r1 actualmente ocupado con transporte de Pieza A. 2. Para disparar t11 se necesita de m1, actualmente ocupada con el procesamiento de otra pieza A en alternativa 1. En adición a que cada plaza salvo p10 pueden contener como máximo 1 token. 3. Para disparar t12 se necesita de m3, actualmente ocupada en el procesamiento de Pieza C. 4. Para disparar t13 se necesita de r2 actualmente ocupado con transporte de otra Pieza A en alternativa 1. 5. Para disparar t15 se necesita de m2, actualmente ocupada en el procesamiento de Pieza B. 6. Para disparar t16 se necesita de pieza A en alternativa 2 preprocesada, imposibilitado debido al no disparo de c). 7. Para disparar t18 se necesita de pieza A procesada, imposibilitado debido al no disparo de f). 8. Para disparar t23 se necesita de r2 actualmente ocupado con transporte de Pieza A en alternativa 1. 9. Para disparar t31 se necesita de pieza C, actualmente línea de producción ocupada. 10. Para disparar t32 se necesita de pieza C en línea de producción, inexistente debido a i). 11. Para disparar t35 se necesita de r1 actualmente ocupada con transporte de Pieza A.

--

Marcado 556

Se produce interbloqueo ya que: 1. ara disparar t10 se necesita de r1 actualmente ocupado con transporte de Pieza A. 2. Para disparar t11 se necesita de m1, actualmente ocupada con el procesamiento de otra pieza A en alternativa 1. En adición a que cada plaza salvo p10 pueden contener como máximo 1 token. 3. Para disparar t12 se necesita de m3, actualmente ocupada en el procesamiento de otra Pieza A en alternativa 2. 4. Para disparar t13 se necesita de r2 actualmente ocupado con transporte de otra Pieza A en alternativa 2. 5. Para disparar t16 se necesita de m4, actualmente ocupada con el procesamiento de Pieza C. 6. Para disparar t18 se necesita de pieza A procesada, imposibilitado debido al no disparo de e). 7. Para disparar t23 se necesita de r2 actualmente ocupado con transporte de Pieza A en alternativa 2. 8. Para disparar t31 se necesita de pieza C, actualmente línea de producción ocupada. 9. Para disparar t33 se necesita de r2 actualmente ocupado con transporte de Pieza A en alternativa 2.

--

Marcado 567

Se produce interbloqueo ya que: 1. Para disparar t10 se necesita de r1 actualmente ocupado con transporte de Pieza A. 2. Para disparar t11 se necesita de m1, actualmente ocupada con el procesamiento de otra pieza A en alternativa 1. En adición a que cada plaza salvo p10 pueden contener como máximo 1 token. 3. Para disparar t12 se necesita de m3, actualmente ocupada en el procesamiento de otra Pieza A en alternativa 2. 4. Para disparar t13 se necesita de r2 actualmente ocupado con transporte de otra Pieza A en alternativa 1. 5. Para disparar t14 se necesita r2 actualmente ocupado con transporte de otra Pieza A en alternativa 1. 6. Para disparar t15 se necesita m2 actualmente ocupada con en el procesamiento de Pieza B. 7. Para disparar t17 se necesita de pieza A procesada, imposibilitado debido al no disparo de f). 8. Para disparar t18 se necesita de pieza A procesada, imposibilitado debido al no disparo de e). 9. Para disparar t23 se necesita de r2 actualmente ocupado con transporte de Pieza A en alternativa 1. 10. Para disparar t31 se necesita de pieza C, actualmente línea de producción ocupada. 11. Para disparar t33 se necesita de r2 actualmente ocupado con transporte de Pieza A en alternativa 1.

--

Marcado 677

Se produce interbloqueo ya que: 1. Para disparar t11 se necesita de m1, actualmente ocupada con el procesamiento de otra pieza A en alternativa 1. En adición a que cada plaza salvo p10 pueden contener como máximo 1 token. 2. Para disparar t12 se necesita de m3, actualmente ocupada en el procesamiento de otra Pieza A en alternativa 2. 3. Para disparar t13 se necesita de r2 actualmente ocupado con transporte de otra Pieza A en alternativa 2. 4. Para disparar t14 se necesita r2 actualmente ocupado con transporte de otra Pieza A en alternativa 2. 5. Para disparar t15 se necesita de pieza A en alternativa 1 preprocesada, imposibilitado debido al no disparo de c). 6. Para disparar t16 se necesita de m4, actualmente ocupada con el procesamiento de otra Pieza A. 7. Para disparar t18 se necesita de r3 actualmente ocupado con el transporte de Pieza C. 8. Para disparar t21 se necesita de r2 actualmente ocupado con transporte de pieza A en alternativa 2. 9. Para disparar t22 se necesita de pieza B en línea de producción, inexistente debido al no disparo de h). 10. Para disparar t32 se necesita de m4, actualmente ocupada con el procesamiento de Pieza A en alternativa 2.

--

Marcado 805

Se produce interbloqueo ya que: 1. Para disparar t11 se necesita de m1, actualmente ocupada con el procesamiento de otra pieza A en alternativa 1. En adición a que cada plaza salvo p10 pueden contener como máximo 1 token. 2. Para disparar t12 se necesita de m3, actualmente ocupada en el procesamiento de otra Pieza A en alternativa 2. 3. Para disparar t13 se necesita de r2 actualmente ocupado con transporte de otra Pieza A en alternativa 2. 4. Para disparar t14 se necesita r2 actualmente ocupado con transporte de otra Pieza A en alternativa 2. 5. Para disparar t16 se necesita de m4, actualmente ocupada con el procesamiento de otra Pieza A. 6. Para disparar t18 se necesita de r3 actualmente ocupado con el transporte de Pieza C. 7. Para disparar t22 se necesita de m2, actualmente ocupada con el procesamiento de otra Pieza B. 8. Para disparar t23 se necesita de r2 actualmente ocupado con transporte Pieza A en alternativa 2. 9. Para disparar t32 se necesita de m4, actualmente ocupada con el procesamiento de Pieza A en alternativa 2.

--

Marcado 806

Se produce interbloqueo ya que: 1. Para disparar t11 se necesita de m1, actualmente ocupada con el procesamiento de otra pieza A en alternativa 1. En adición a que cada plaza salvo p10 pueden contener como máximo 1 token. 2. Para disparar t12 se necesita de m3, actualmente ocupada en el procesamiento de otra Pieza A en alternativa 2. 3. Para disparar t13 se necesita de r2 actualmente ocupado con transporte de otra Pieza A en alternativa 1. 4. Para disparar t14 se necesita r2 actualmente ocupado con transporte de otra Pieza A en alternativa 1. 5. Para disparar t15 se necesita m2 actualmente ocupada con en el procesamiento de Pieza B. 6. Para disparar t18 se necesita de r3 actualmente ocupado con el transporte de Pieza C. 7. Para disparar t23 se necesita de r2 actualmente ocupado con transporte Pieza A en alternativa 1. 8. Para disparar t32 se necesita de m4, actualmente ocupada con el procesamiento de Pieza A en alternativa 2.

--

Marcado 807

Se produce interbloqueo ya que: 1. Para disparar t11 se necesita de m1, actualmente ocupada con el procesamiento de otra pieza A en alternativa 1. En adición a que cada plaza salvo p10 pueden contener como máximo 1 token. 2. Para disparar t12 se necesita de m3, actualmente ocupada en el procesamiento de otra Pieza A en alternativa 2. 3. Para disparar t13 se necesita de r2 actualmente ocupado con transporte de Pieza B. 4. Para disparar t14 se necesita de r2 actualmente ocupado con transporte de Pieza B. 5. Para disparar t17 se necesita de r3 actualmente ocupado con transporte de Pieza C. 6. Para disparar t18 se necesita de r3 actualmente ocupado con el transporte de Pieza C. 7. Para disparar t22 se necesita de m2 actualmente ocupada en el procesamiento de Pieza A en alternativa 1. 8. Para disparar t32 se necesita de m4, actualmente ocupada con el procesamiento de Pieza A en alternativa 2.

--

Marcado 848

Se produce interbloqueo ya que: 1. Para disparar t10 se necesito que alguna pieza salga de la línea de producción 2. Para disparar t11 se necesita de m1, actualmente ocupada con el procesamiento de otra pieza A en alternativa 1. En adición a que cada plaza salvo p10 pueden contener como máximo 1 token. 3. Para disparar t12 se necesita de m3, actualmente ocupada en el procesamiento de otra Pieza A en alternativa 2. 4. Para disparar t13 se necesita de r2 actualmente ocupado con transporte de Pieza A en alternativa 2. 5. Para disparar t14 se necesita de r2 actualmente ocupado con transporte de Pieza A en alternativa 2. 6. Para disparar t16 se necesita de m4, actualmente ocupada con el procesamiento de otra Pieza A. 7. Para disparar t17 se necesita de r3 actualmente ocupado con el transporte de Pieza C. 8. Para disparar t18 se necesita de r3 actualmente ocupado con el transporte de Pieza C. 9. Para disparar t21 se necesita de r2 actualmente ocupado con transporte de pieza A en alternativa 2. 10. Para disparar t32 se necesita de m4, actualmente ocupada con el procesamiento de Pieza A en alternativa 2.

--

Marcado 849

Se produce interbloqueo ya que: 1. Para disparar t10 se necesito que alguna pieza salga de la línea de producción 2. Para disparar t11 se necesita de m1, actualmente ocupada con el procesamiento de otra pieza A en alternativa 1. En adición a que cada plaza salvo p10 pueden contener como máximo 1 token. 3. Para disparar t12 se necesita de m3, actualmente ocupada en el procesamiento de otra Pieza A en alternativa 2. 4. Para disparar t13 se necesita de r2 actualmente ocupado con transporte de Pieza A en alternativa 1. 5. Para disparar t14 se necesita de r2 actualmente ocupado con transporte de Pieza A en alternativa 1. 6. Para disparar t15 se necesita m2 actualmente ocupada con en el procesamiento de otra Pieza A en alternativa 1. 7. Para disparar t17 se necesita de r3 actualmente ocupado con el transporte de Pieza C. 8. Para disparar t18 se necesita de r3 actualmente ocupado con el transporte de Pieza C. 9. Para disparar t21 se necesita de r2 actualmente ocupado con transporte de pieza A en alternativa 1. 10. Para disparar t32 se necesita de m4, actualmente ocupada con el procesamiento de Pieza A en alternativa 2.

Una vez obtenidos los estados muertos de la RdP del sistema propuesto, se obtuvieron los sifones mínimos que presenta la red nuevamente con la herramienta PIPE y se los analizó asociándolos con los marcados que provocan interbloque en la red. Esto es que marcado provocan el vaciado del sifón. La siguiente tabla muestra lo antes expuesto.

Sifón Marcado
{P18, P31, r3 } No aplica marcado. Es un P-Invariante
{P14, P15, P21, P23, P33, r2 } No aplica marcado. Es un P-Invariante
{P11, P35, r1 } No aplica marcado. Es un P-Invariante
{m1, m2, m3, P15, P16, P23, P35, r1, r2 } M386
{m2, P15, P16, P23, P33, r2 } M554
{P20, P21, P22, P23 } No aplica marcado. Es un P-Invariante
{m3, P13, P34 } No aplica marcado. Es un P-Invariante
{m4, P17, P32 } No aplica marcado. Es un P-Invariante
{P30, P31, P32, P33, P34, P35 } No aplica marcado. Es un P-Invariante
{m2, m4, P16, P17, P23, P33, r2 } M556
{m2, P16, P22 } No aplica marcado. Es un P-Invariante
{m2, m3, m4, P16, P17, P23, P34, r2 } M567
{m2, m3, P15, P16, P23, P34, r2 } M
{m1, P12 } No aplica marcado. Es un P-Invariante
p23 Pieza B procesada en posesión de R2
p30 Pieza C esperando en deposito de entrada I3 | Pieza C procesada en deposito de salida O3
p31 Pieza C en posesión de R3
p32 Pieza C en máquina M4 en Procesamiento 1
p33 Pieza C procesada en posesión de R2
p34 Pieza C en máquina M3 en Procesamiento 2
p35 Pieza C procesada en posesión de R1
⚠️ **GitHub.com Fallback** ⚠️