next up previous
Next: ENDSIMUL ends the simulation Up: PROCEDURES Previous: DEACT deactivates a node

DEBLOCK suppresses blocking of node

Syntax:

    DEBLOCK(<node name>);
It is used to finish the block state of a node (inhibition of sending messages). Its action consists in suppressing the suspended state of the next event activation of the node and to execute the event at the actual time. If the node were not blocked nothing is done.

This procedure can be used in nodes of any type.

Example:

    Inc ::     IT := EXPO(1.0); SENDTO(FirstProc);
                 IF LL(EL_FirstProc) >= 4 THEN BLOCK(Inc);
    FirstProc (R) :: RELEASE
                            BEGIN SENDTO(SecProc);
                            IF LL(EL_SecProc) >= 5 THEN BLOCK(FirstProc);
                            END;
                            STAY := EXPO(5, 2);
                            IF LL(EL_FirstProc) < 4 THEN DEBLOCK(Inc);
    SecProc (R) ::  STAY := 1.8;
                            IF LL(EL_SecProc) < 3 THEN DEBLOCK(FirstProc);
    Exit ::
    INIT TSIM := 25.0; ACT(INC, 0);
                       FirstProc := 7;
                       IF (LL(EL_FirstProc) > 4 THEN DEBLOCK(FirstProc);
Messages (objects) arrive the at Inc. They must undergo a process in parallel (7 at most) and then a sequential process. The queues before these processes have a limited capacity and the movement of the messages must be blocked upstream when this quantity is reached. Arrivals at Inc are stopped when the queue at FirstProc (capacity 7) is equal to 4. After certain time in FirstProc messages pass to SecProc to be processed one by one. The queue in SecProc is limited to 5. When it contains 5 messages, the SecProc in FirstProc is stopped. See that the node Inc can block itself after it has sent the message to FirstProc, checking the following queue. The node FirstProc also can block itself after sending the message to SecProc. Each node can deblock the former when it scan its EL to extract (if possible) one message.



domingo c
Mon Mar 20 17:37:52 PST 2000