You are on page 1of 3

SINCRONIZACIN DE PROCESOS EN ACL

ORDENES PEND Y POST


SINTAXIS: PEND <VAR1> FROM <VAR2>
Variable compartida

POST <VAR3> TO <VAR2>

DESCRIPCIN: Cuando se ejecuta una instruccin pueden ocurrir dos situaciones:


PEND <VAR1> FROM <VAR2>

Si <var2> = 0, se suspende la ejecucin del proceso hasta que se ejecute la instruccin POST <VAR3> TO <VAR2> en otro proceso que consiste en poner un valor distinto de cero en <var2> Si <var2> 0, entonces o <var1> =<var2> o <var2> = 0 EJEMPLO 1: SINCRONIZACIN DE PROCESOS GLOBAL BLOQ ; Variable 2 para bloquear y desbloquear PROGRAM DOS post 1 to bloq end

PROGRAM UNO set bloq =0 pend var1 from bloq run pieza end

La ejecucin del programa UNO se suspende hasta que se ejecute el programa DOS, asignando el valor 1 a BLOQ

SINCRONIZACIN DE PROCESOS EN ACL


EJEMPLO 2: COMPARTIR EL RECURSO ROBOT

Proceso 1

Proceso 2 CONTROLADOR

PROCESO UNO . wait (bloq) <seccin crtica uno> signal (bloq) end

PROCESO DOS . wait (bloq) <seccin crtica dos> signal (bloq) end

EN ACL: GLOBAL BLOQ


PROCESO UNO . define var1 label 1 pend var 1 from bloq <seccin crtica uno> post 1 to bloq goto 1 end

; Variable 2 para bloquear y desbloquear


PROCESO DOS . define var3 label 2 pend var 3 from bloq <seccin crtica dos> post 1 to bloq goto 2 end

ORDENES QPEND Y QPOST


SINTAXIS: QPEND <VAR1> FROM <VAR2> QPOST <VAR3> TO <VAR2>
COLA

DESCRIPCIN: QPOST QPEND Pone en cola los valores a procesar Toma los valores de la cola

Si se acaba la cola, QPEND suspende la ejecucin hasta que otra orden QPOST introduce un valor Si la cola est llena, QPOST suspende la ejecucin del programa hasta que otra orden QPEND saque un valor. El tamao de la cola es igual a la dimensin del vector <var2> y debe inicializarse a cero antes de utilizarla

EJEMPLO 1: SINCRONIZACIN DE PROCESOS DIMG COLA[10] ; Declaracin de cola PROGRAM DOS qpost 1 to cola end

PROGRAM UNO define valor label 1 qpend valor from cola run pieza goto 1 end

El programa pieza se ejecutar cuando el programa DOS enve un valor a la cola. Si la cola est vaca, el programa UNO se suspender.