• Nenhum resultado encontrado

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)