Caso II: Necessidade de um controlador simples Este caso ocorre em três situações: II.1) Quando o número de unidades lógico-aritméticas é menor do que o número
C APÍTULO 11: R EDE DE P ETRI PARA S ISTEMAS D IGITAIS (RPSD)
11.2. EXTENSÃO RPSD
11.2.1. DESCRIÇÃO FUNCIONAL
11.2.1.1.1. TIPO I: ESTADO LOCAL
Lugares do tipo I são utilizados para indicar que um ou mais componentes do sistema (representados por tokens) de um mesmo tipo (por exemplo, processos, unidades funcionais, de armazenamento ou de comunicação), encontram-se num dado estado local.
A figura 11.2 mostra um lugar funcional capaz de modelar o estado de espera de até 4 processos, representados pelos tokens p1, p2, p3 e p4. Este lugar faz parte de uma RPSD maior, a qual poderia modelar, por exemplo, processos numa fila de espera, aguardando para entrar em execução. Na marcação (estado) da figura, estão aguardando para entrar em execução, pela ordem de inserção no lugar (veja adiante), os processos p3, p1 e p2.
Figura 11.2. Componentes de um lugar tipo I – Estado Local.
Três parâmetros compõem um lugar do tipo I (figura 11.2):
P1. Identificador (Id): Seqüência de caracteres finita e única que denomina o lugar;
P2. Domínio (DS): Conjunto finito não-nulo, delimitando os valores de tokens que podem ser
inseridos no lugar. DS pertence à classe anotações (An – descrita adiante) da RPSD
portadora do lugar; e
P3. Repositório (RS): Subconjunto ordenado (pela ordem de inserção de tokens no lugar) do
domínio DS, indicando quais tokens estão presentes no lugar em um dado momento da
rede. Corresponde à marcação do lugar. Não são permitidas múltiplas cópias de um
token de mesmo valor. O conteúdo inicialmente atribuído a RS (na definição do lugar)
corresponde à marcação inicial M0 do lugar.
Dos parâmetros acima descritos, apenas RS é dinâmico, isto é, pode ser alterado ao
longo da execução da rede.
Observe a forma de representação de um lugar do tipo I na figura 11.2. Nela, pode-se ver que lugares deste tipo são divididos em duas partes, por uma linha tracejada. Na parte superiordolugarencontram-sedescritosseusidentificadoredomínio(DS).Naparte inferior,
Waiting { p1, p2, p3, p4 } [ p3, p1, p2 ] Identificador (Id) Repositório (RS) Domínio (DS)
o repositório (RS) do lugar é descrito por uma lista entre colchetes, a qual é cronologicamente
ordenada pela ordem de inserção de tokens no lugar.
Duas operações são permitidas para lugares do tipo I:
O1. Inserção de tokens: Realizada com o auxílio de um ramo de saída comum, com origem em uma transição e término no lugar. Este ramo é rotulado com uma função de inserção, a qual determina qual conjunto de tokens (subconjunto de DS) deve ser inserido no lugar
pelo disparo da transição relacionada. Ramos de saída comuns são tratados adiante; O2. Remoção de tokens: Realizada com o auxílio de um ramo de entrada comum ou
conjugado, com origem no lugar e término em uma transição. Ramos de entrada comuns permitem a remoção de um conjunto de tokens de cardinalidade variável (dentro de limites mínimo e máximo permitidos). Pode-se determinar se os tokens deste conjunto serão removidos sem qualquer critério ou em ordem cronológica, seguindo-se o princípio FIFO (First in First Out), razão pela qual o repositório RS é descrito, na
representação gráfica do lugar, por uma lista entre colchetes (fila), ordenada cronologicamente. Ramos de entrada conjugados removem, aleatoriamente, um mesmo conjunto de tokens de cada um dos lugares ligados às suas origens, também dentro de limites mínimo e máximo permitidos. Ambos tipos de ramos são discutidos mais adiante.
O conjunto de tokens T a ser inserido num lugar p do tipo I, conectado a uma transição por um ramo de saída comum, deve ser compatível com o domínio desse lugar, além de ser nula a intersecção do mesmo com o conjunto de tokens presentes neste lugar, isto é,
T⊆DS(p) ∧ T∩RS(p) = ∅.
A figura 11.3 mostra um trecho de modelo RPSD possuidor de dois lugares do tipo I (Waiting e Processing) e de uma transição (process), conectados por ramos de entrada e de saída comuns. O disparo da transição process corresponde ao evento de submissão de um processo para sua execução. A figura mostra duas seqüências de disparo da transição process (veja na seção 11.2.1.3 as regras de habilitação e disparo de uma transição). Na parte a), a ordem de retirada dos tokens é cronológica (veja na seção 11.2.1.2 a descrição do ramo de entrada comum). Assim, o primeiro token removido é p3 (mais antigo), seguido da remoção de p1 e de p2. Por outro lado, na parte b), não há rótulos nos ramos de entrada, denotando que a ordem de retirada de tokens é aleatória, razão pela qual os mesmos foram removidos de forma não-determinística. Esta opção na remoção de tokens permite que RPSD represente tanto comportamentos determinísticos como não-determinísticos.
Figura 11.3. Seqüências de disparo de process: a) Cronologicamente; b) Aleatoriamente. < 1,1,C > waiting { p1,p2,p3 } [ p1 ] processing { p1,p2,p3 } [ p2, p3 ] process a) waiting { p1, p2, p3 } [ p3, p1, p2 ] processing { p1,p2,p3 } [ ] process < 1,1,C > waiting { p1,p2,p3 } [ p1, p2 ] processing { p1,p2,p3 } [ p3 ] process waiting { p1,p2,p3 } [ p2 ] processing { p1,p2,p3 } [ p3, p1 ] process < 1,1,C > waiting { p1,p2,p3 } [ ] processing { p1,p2,p3 } [ p3, p1, p2 ] process < 1,1,C > b) waiting { p1, p2, p3 } [ p3, p1, p2 ] processing { p1,p2,p3 } [ ] process waiting { p1,p2,p3 } [ p3, p1 ] processing { p1,p2,p3 } [ p2 ] process waiting { p1,p2,p3 } [ ] processing { p1,p2,p3 } [ p2, p3, p1 ] process
11.2.1.1.2. TIPO II: ARMAZENAMENTO
Lugares deste tipo são utilizados para representar componentes de armazenamento do sistema (tais como registradores e memórias), nos quais operações de leitura/escrita de dados (tokens) podem ser feitas.
A figura 11.4 mostra um lugar de armazenamento representando um banco de 4 registradores (Reg. File), quais sejam, A, B, C e D. Cada registrador armazena um valor (token) hexadecimal de 2 dígitos. Tanto operações de leitura quanto de escrita, em qualquer um dos registradores, são concretizadas 5 unidades de tempo após sua solicitação.
Figura 11.4. Componentes de um lugar tipo II – Armazenamento.
Um lugar do tipo II é definido por 6 parâmetros (figura 11.4):
P1. Identificador (Id): Seqüência de caracteres finita e única que denomina o lugar;
P2. Domínio (DM): Conjunto finito não-nulo, delimitando os valores de tokens que podem ser
armazenados no lugar. DM pertence à classe anotações (An) da RPSD portadora do lugar;
P3. Espaço de endereçamento (A): Conjunto ordenado finito delimitando a faixa de endereçamento. Pertencente à classe anotações (An) da RPSD portadora do lugar, A pode
ser omitido na representação gráfica do lugar, ficando implícita a existência de uma única posição de armazenamento. Rótulos alfanuméricos podem ser utilizados para designar um endereço, ao invés de números;
P4. Vetor conteúdo (C): Vetor com número de entradas (posições) igual à cardinalidade do espaço de endereçamento (A) do lugar. Os valores inicialmente atribuídos às suas entradas correspondem à marcação inicial M0 do lugar (na classe inicial C0). Entradas
não inicializadas correspondem ao valor default do domínio DM do lugar. A atribuição de
nulo (∅) indica valores inicialmente indeterminados (aleatórios).
P5. Latência de escrita (LW): Número natural (eventualmente nulo) representando quantas
unidades de tempo são necessárias para que um dado (token) seja atualizado no lugar, isto é, o tempo gasto numa operação de escrita;
P6. Latência de leitura (LR): Número natural (eventualmente nulo) representando quantas
unidades de tempo são necessárias para que um dado (token) possa ser utilizado pela transição que o solicitou, isto é, o tempo gasto numa operação de leitura.
Reg. File 2-hexa LR = 5; LW = 5 A B C D 1F 55 AF 15 Domínio (DM)
Latência de leitura (LR) Latência de escrita (LW)
Vetor conteúdo (C) Espaço de endereçamento (A)