Vous êtes sur la page 1sur 62

Modelagem de Sistemas

Em muitas reas de estudo, um fenmeno no estudado diretamente,


mas atravs de um modelo. Um modelo uma representao,
freqentemente em termos matemticos, do que parecem ser as
principais caractersticas do objeto ou sistema sob estudo.
Exemplos:


Astronomia, onde modelos do nascimento, morte e interao


das estrelas permitem o estudo de teorias que consumiriam
muito tempo e uma grande quantidade de matria e energia;
Fsica nuclear, onde as partculas atmicas e subatmicas
radioativas sob estudo existem por perodos de tempo muito
curtos;

Controle de Processos por Computador

Profa.Luiza Mourelle

Sociologia, onde a manipulao direta de grupos de pessoas


para estudos poderia causar problemas ticos;
Biologia, onde modelos de sistemas biolgicos requerem
menos espao, tempo e energia para desenvolver.

As principais caractersticas de muitos fenmenos fsicos podem ser


descritas numericamente e as relaes entre essas caractersticas
podem ser descritas por equaes ou desigualdades.
Para utilizar o conceito de modelagem necessrio um conhecimento
tanto dos fenmenos modelados quanto das propriedades das
tcnicas de modelagem.
Clculo diferencial foi desenvolvido em resposta necessidade de um
meio de modelar propriedades que mudam continuamente, tais como
posio, velocidade e acelerao em Fsica.
Controle de Processos por Computador

Profa.Luiza Mourelle

possvel modelar sistemas cada vez mais complexos e maiores


representando-os por um modelo matemtico, convertendo o modelo
em instrues para um computador e executando-as.
Os computadores esto envolvidos em modelagem de duas formas:
como uma ferramenta computacional para modelagem e como um
objeto a ser modelado.
Sistemas computacionais so sistemas muito complexos e,
normalmente, grandes, consistindo em vrios componentes separados,
interativos.
Cada componente pode ser um sistema, mas seu comportamento pode
ser descrito, independentemente, por outros componentes do sistema,
exceto no caso de bem definidas interaes com outros componentes.
Controle de Processos por Computador

Profa.Luiza Mourelle

Cada componente tem o seu prprio estado de ser. O estado de um


componente uma abstrao da informao relevante necessria para
descrever suas aes. Normalmente, o estado de um componente
depende da histria passada do componente. Logo, o estado de um
componente pode mudar com o tempo.


Num modelo de fila de um banco, podem haver vrios caixas


e vrios clientes. Os caixas podem estar desocupados,
esperando por um cliente, ou ocupados, atendendo um cliente.
Similarmente, os clientes podem estar desocupados, esperando
por um caixa livre, ou podem estar ocupados, sendo atendidos
por um caixa.
Num modelo de um hospital, o estado de um paciente pode ser
crtico, srio, razovel, bom ou excelente.

Controle de Processos por Computador

Profa.Luiza Mourelle

Os componentes de um sistema apresentam concorrncia ou


paralelismo. Atividades de um componente podem ocorrer
simultaneamente com outras atividades de outros componentes. Num
sistema computacional, temos, por exemplo, os dispositivos perifricos,
que podem operar concorrentemente, sob controle do computador.
Uma vez que os componentes dos sistemas interagem, necessrio que
haja sincronizao. A transferncia de informao de um componente
para outro requer que as atividades dos componentes envolvidos sejam
sincronizadas, enquanto a interao estiver acontecendo. Isto pode
resultar em um componente ficar esperando pelo outro.
A temporizao das aes de diferentes componentes pode ser muito
complexa e as interaes resultantes entre componentes podem ser
difceis de descrever.
Controle de Processos por Computador

Profa.Luiza Mourelle

Redes de Petri
So uma ferramenta para a modelagem e projeto de sistemas,
utilizando uma representao matemtica do sistema, sendo uma
extenso das mquinas de estados finitos.
A anlise da rede de Petri permite avaliar a estrutura e o
comportamento dinmico do sistema modelado. O resultado desta
avaliao pode levar a melhorias ou mudanas no sistema.
Vamos considerar, inicialmente, o modelo de mquinas de estados
finitos, representado pelo seguinte diagrama:
A passagem de um estado para outro,
representada pelos arcos, determinada
pela ocorrncia de certos eventos.

estado
arco
3

Controle de Processos por Computador

Profa.Luiza Mourelle

Um primeiro passo para modificar o modelo de mquinas de estados


finitos suprimir as transies que no forem importantes para a
compreenso.
1

Em seguida, vamos condensar as condies que levam a uma mudana


de estado numa nica transio.
2

3
Controle de Processos por Computador

3
Profa.Luiza Mourelle

Uma rede de Petri C composta por quatro partes:




um conjunto de lugares P = {p1, p2, ..., pn};

um conjunto de transies T = {t1, t2, ..., tm};

uma funo de entrada I : T P;

um conjunto de sadas O : T P.
C = (P, T, I, O)

A funo de entrada I mapeia uma transio tj para uma coleo de


lugares I(tj), conhecida como lugares de entrada de uma transio.
A funo de sada O mapeia uma transio tj para uma coleo de
sadas O(tj), conhecida como lugares de sada de uma transio.
Controle de Processos por Computador

Profa.Luiza Mourelle

Considere a seguinte estrutura:


C = {P, T, I, O}
P = {p1, p2, p3, p4, p5}
T = {t1, t2, t3, t4}
I(t1) = {p1}
O(t1) = {p2, p3, p5}
I(t2) = {p2, p3, p5}
O(t2) = {p5}
I(t3) = {p3}
O(t3) = {p4}
I(t4) = {p4}
O(t4) = {p2, p3}
O grafo da rede de Petri tem dois tipos de ns: um crculo representa
um lugar e uma barra representa uma transio. Arcos direcionados
conectam lugares e transies.
Um arco direcionado de um lugar pi para uma transio tj define o lugar
como sendo uma entrada da transio.
Controle de Processos por Computador

Profa.Luiza Mourelle

Um arco direcionado de uma transio tj para um lugar pi define o lugar


como sendo uma sada da transio.
O grafo da rede de Petri definida pela estrutura anterior :
p2

p1

p5

t4
p4

t1

t2

p3
t3

Pode-se associar a cada arco um peso, que corresponde sua


multiplicidade.
Controle de Processos por Computador

Profa.Luiza Mourelle

Uma marcao uma atribuio de fichas aos lugares de uma rede


de Petri. Uma ficha um conceito primitivo para redes de Petri, da
mesma forma que lugares e transies.
O nmero e posio das fichas pode mudar durante a execuo de uma
rede de Petri. Dessa forma, as fichas so usadas para definir a execuo
de uma rede de Petri.
A marcao pode ser definida como sendo um vetor:
= (
1, 2, ..., n) | n = |P| e i N, i=1, ..., n
O nmero de fichas no lugar pi i, i = 1, ..., n. Assim sendo:
(p
( i) = i
Controle de Processos por Computador

Profa.Luiza Mourelle

Uma rede de Petri marcada pode ser definida como:


M = (P, T, I, O, )
Num grafo de rede de Petri, fichas so representadas por pontos dentro
dos crculos. No exemplo abaixo, tem-se:
= (1, 2, 0, 0, 1)
p2


p1

p5

t4
p4

t1

t2

p3
t3

Controle de Processos por Computador

Profa.Luiza Mourelle

Uma rede de Petri executa atravs do disparo de transies. Uma


transio dispara removendo fichas dos seus lugares de entrada e
criando novas fichas, que so distribudas nos seus lugares de sada.
Uma transio pode disparar se estiver habilitada. Uma transio est
habilitada se cada um dos seus lugares de entrada tem, pelo menos,
tantas fichas quanto arcos do lugar para a transio (peso).
O disparo de uma transio formado por duas operaes, instantneas
e indivisveis:


retira-se de cada lugar de entrada um nmero de fichas igual


ao peso do arco;
coloca-se em cada lugar de sada um nmero de fichas igual ao
peso do arco.

Controle de Processos por Computador

Profa.Luiza Mourelle




2
3

aps o disparo
3

2





2


O disparo de uma transio muda a marcao da rede de Petri para uma


nova marcao .
O disparado de transies continua enquanto existir, pelo menos, uma
transio habilitada. Quando no h transies habilitadas, a execuo
pra.

Controle de Processos por Computador

Profa.Luiza Mourelle

O estado de uma rede de Petri definido por sua marcao. Dada uma
rede de Petri C = {P, T, I, O} e uma marcao inicial 0, pode-se
executar a rede de Petri pelo disparo sucessivo de transies.
Duas seqncias resultam da execuo de uma rede de Petri: a seqncia
de marcaes (
0, 1, 2, ...) e a seqncia de transies (tj0, tj1, tj2, ...).
Para a rede de Petri abaixo e a marcao inicial 0 = (1,0,0), duas
marcaes so imediatamente alcanveis: (0,1,0) e (1,0,1). Da primeira
nenhuma marcao alcanvel. Da segunda pode-se chegar a (0,1,1) e
(1,0,2).

p3

t1

Controle de Processos por Computador

p1

t2
Profa.Luiza Mourelle

p2

Redes de Petri foram projetadas e so usadas principalmente para


modelagem.
Muitos sistemas, especialmente aqueles com componentes
independentes, podem ser modelados por uma rede de Petri. Exemplos:
hardware de computadores, software de computadores, sistemas
fsicos, sistemas sociais, etc... .
As redes de Petri so usadas para modelar a ocorrncia de diversos
eventos e atividades em um sistema. Em particular, as redes de Petri
podem modelar o fluxo de informao ou outros recursos dentro de
um sistema.

Controle de Processos por Computador

Profa.Luiza Mourelle

Eventos so aes que acontecem num sistema. A ocorrncia desses


eventos controlada pelo estado do sistema, descrito por um conjunto
de condies.
Uma condio um predicado ou descrio lgica do estado do
sistema. Dessa forma, uma condio pode ser verdadeira ou falsa.
Uma vez que eventos so aes, eles podem ocorrer. Para que um
evento ocorra, pode ser necessrio que certas condies sejam
verdadeiras. Estas so denominadas de pr-condies do evento.
A ocorrncia de um evento pode tornar as pr-condies falsas e pode
tornar outras condies verdadeiras, chamadas ps-condies.

Controle de Processos por Computador

Profa.Luiza Mourelle

Exemplo: Considere uma mquina que espera at que uma ordem surja
e, ento, prepara o pedido e o despacha.
As condies para o sistema so:
a - A mquina est esperando;
b - Uma ordem chega e est esperando ser atendida;
c - A mquina est executando a ordem;
d - A ordem completada.
Os eventos seriam:
1 - Um ordem chega;
2 - A mquina comea a executar a ordem;
3 - A mquina termina de executar a ordem;
4 - A ordem despachada.
Controle de Processos por Computador

Profa.Luiza Mourelle

O quadro abaixo resume os eventos e suas respectivas pr e


ps-condies:
evento

pr-condies

ps-condies

1
2
3
4

nenhuma
a, b
c
d

b
c
d, a
nenhuma

Condies so modeladas por lugares numa rede de Petri, e eventos


so modelados por transies.
As entradas de uma transio so as pr-condies do correspondente
evento. As sadas so as ps-condies. A ocorrncia de um evento
corresponde ao disparo da transio correspondente.
Controle de Processos por Computador

Profa.Luiza Mourelle

Uma condio verdadeira representada por uma ficha no lugar que


corresponde condio. Quando a transio dispara, ela remove as
fichas que representam as pr-condies verdadeiras e cria novas fichas
que representam a transformao das ps-condies correspondentes
em verdadeiras.
A rede de Petri abaixo um modelo da mquina citada anteriormente.
uma ordem
espera

uma ordem
chega

comea a
executar

execuo
completada

a ordem est
completada

a ordem est
sendo executada

mquina esperando
por uma ordem
Controle de Processos por Computador

Profa.Luiza Mourelle

a ordem
despachada

Exemplo: Considere um sistema computacional que processa programas


a partir de um dispositivo de entrada e emite resultados em um
dispositivo de sada.
As condies para o sistema so:
a - Um programa esta esperando pelo processador;
b - O processador esta livre;
c - Um programa esta sendo processado;
d - Um programa esta esperando para ser despachado.
Os eventos seriam:
1 - Um programa posto no dispositivo de entrada;
2 - Um programa comea a ser executado;
3 - O processador terminou de processar um programa;
4 - Um programa despachado.
Controle de Processos por Computador

Profa.Luiza Mourelle

O quadro abaixo resume os eventos e respectivas pr e ps-condies:


evento

pr-condies

ps-condies

1
2
3
4

nenhuma
a, b
c
d

a
c
d, b
nenhuma

um programa
espera para ser
executado

um programa
posto na fila de
entrada

um programa
comea a
ser executado

execuo um programa espera


completada para ser despachado

um programa est
sendo executado


processador est livre


Controle de Processos por Computador

Profa.Luiza Mourelle

um programa
despachado

No modelo de rede de Petri, dois eventos que so habilitados e no


interagem podem ocorrer independentemente. A isto chamamos
paralelismo ou concorrncia.
No h necessidade de sincronizar os eventos, a menos que seja
requerido pelo sistema sendo modelado. Dessa forma, redes de Petri
parecem ser ideais para modelar sistemas de controle distribudo, com
mltiplos processos executando concorrentemente no tempo.
No h medida de tempo ou fluxo de tempo numa rede de Petri, o que
define uma caracterstica assncrona. A nica propriedade importante do
tempo, de um ponto de vista lgico, est em definir uma ordem parcial
da ocorrncia de eventos.

Controle de Processos por Computador

Profa.Luiza Mourelle

Os eventos levam um tempo varivel para ocorrer e isto est refletido


no modelo de rede de Petri por no depender da noo de tempo para
controlar os eventos.
Uma execuo da rede de Petri vista como uma seqncia de eventos
discretos. A ordem de ocorrncia dos eventos uma dentre vrias
permitidas pela estrutura, o que leva a um aparente no-determinismo
na execuo da rede de Petri.
Se, em qualquer momento, mais de uma transio estiver habilitada,
ento qualquer uma dessas pode ser a prxima a ser disparada. A
escolha de qual transio ir disparar feita aleatoriamente.
Em situaes na vida real nas quais vrias coisas ocorrem
simultaneamente, a ordem aparente da ocorrncia dos eventos no
nica: qualquer conjunto de seqncias de eventos pode ocorrer.
Controle de Processos por Computador

Profa.Luiza Mourelle

Concorrncia ocorre quando duas transies habilitadas no afetam


uma a outra, de nenhuma forma, e as possveis seqncias de eventos
incluem algumas em que uma transio ocorre primeiro, e outras em
que a outra ocorre primeiro.

tj


tk

Controle de Processos por Computador

Profa.Luiza Mourelle

Conflito ocorre quando havendo transies habilitadas, somente uma


pode ser disparada, uma vez que o disparo de uma remove a ficha na
entrada compartilhada, desabilitando a outra transio.

pi

tj

tk

Controle de Processos por Computador

Profa.Luiza Mourelle

Modelagem de Hardware
O hardware pode ser dividido em vrios nveis e as redes de Petri
podem modelar cada um desses nveis:


em um nvel, computadores so construdos de memrias e portas;


em um nvel mais alto, os principais componentes so unidades
funcionais e registradores;
em um nvel ainda mais alto, os componentes de uma rede podem
ser sistemas computacionais inteiros.

Mquinas de estados finitos so comumente representadas por


diagrama de estados, em que os estados so representados por
crculos (ns do grafo) e as transies por arcos.
Controle de Processos por Computador

Profa.Luiza Mourelle

Um arco do estado qi para o estado qj, rotulado a/b, significa que no


estado qi, com entrada a, a mquina vai mudar para o estado qj, com
sada b.
Exemplo: Conversor serial de um nmero binrio em seu complemento
a 2, em que o LSB introduzido primeiro. O alfabeto de entrada e o de
sada consistem de trs smbolos: 0, 1 e R. A mquina comea no
estado q1. O smbolo de reset (R) indica o fim (ou comeo) de um
nmero e inicializa a mquina para o seu estado inicial. A sada da
mquina para o smbolo de reset simplesmente um eco do smbolo R.
0/0

1/1
q1

0/1
q2

R/R
R/R

Controle de Processos por Computador

1/0

Profa.Luiza Mourelle

Exemplo: Uma mquina de estados que computa serialmente a paridade


de um nmero binrio, utilizando as mesma entradas que o exemplo
anterior. A sada simplesmente copia a entrada at que o smbolo de
entrada um reset. A mquina comea no estado q1. A sada copia a
entrada at que o smbolo de entrada seja um reset (R). A sada para um
reset 0 para um nmero com paridade mpar e 1 para um nmero com
paridade par.

1/1

0/0
q1

0/0
q2

1/1
R/0
R/1

Controle de Processos por Computador

Profa.Luiza Mourelle

Vamos representar cada estado da mquina de estados por um lugar


na rede de Petri. O estado atual , ento, marcado por uma ficha e
todos os demais lugares esto vazios. A interao com o meio externo
feita atravs das entradas e sadas, que tambm sero representadas
por lugares.
Para cada par de estado e entrada, definimos uma transio cujos
lugares de entrada so os lugares correspondentes ao estado e
entrada, e cujos lugares de sada so os lugares correspondentes ao
prximo estado e sada.
Pode-se construir uma mquina composta que compute o
complemento a 2 de um nmero e sua paridade. Numa mquina de
estados, esta operao requer um estado composto com componentes
de ambas as sub-mquinas.
Controle de Processos por Computador

Profa.Luiza Mourelle

1/1

0/0
R/1

1/0

q11

q22
R/0
0/1
R/1
0/1
q21
1/0

Para uma mquina em rede de Petri, a composio feita sobrepondose os lugares de sada da primeira rede com os lugares de entrada
da segunda.
Se duplicarmos as fichas de entrada, alimentando ambas as submquinas da rede de Petri, teremos uma composio paralela,
permitindo que as sub-mquinas executem simultaneamente.
Controle de Processos por Computador

Profa.Luiza Mourelle

Pipeline
Sistemas computacionais so construdos de muitos componentes e
muitos projetos tentam aumentar a capacidade computacional atravs
da execuo paralela de funes. Isto torna as redes de Petri
particularmente apropriadas para representar estes sistemas.
Um pipeline composto por um nmero de estgios, que podem estar
em execuo simultaneamente. Quando o estgio k termina, ele
passa o resultado para o estgio k+1 e olha para o estgio k-1 para
nova tarefa.
Se cada estgio leva t unidades de tempo e h n estgios, ento a
operao completa para um operando levar nt unidades de tempo.
No entanto, mantendo-se o pipeline suprido com novos operandos,
ele poder fornecer resultados razo de um a cada t unidades de
tempo.
Controle de Processos por Computador

Profa.Luiza Mourelle

Exemplo: Considere a soma de dois nmeros em ponto flutuante. Os


passos seriam:


extrair os expoentes dos dois nmeros;

comparar os expoentes;

deslocar a menor frao para igualar os expoentes;

somar as fraes;

normalizar;

considerar overflow ou underflow do expoente e montar o


expoente e a frao do resultado.

Cada um desses passos pode ser implementado por uma unidade


funcional, com um operando prprio sendo passado de unidade para
unidade at a operao estar completa.
Controle de Processos por Computador

Profa.Luiza Mourelle

Podemos considerar, inicialmente, o controle sncrono do pipeline: o


tempo permitido para cada passo um tempo constante t. Isto pode
segurar desnecessariamente o processamento, uma vez que o tempo
necessrio pode variar de unidade para unidade, inclusive dentro da
prpria unidade, dependendo do operando.
Um pipeline assncrono pode acelerar o processo, em mdia,
sinalizando quando cada estgio est completo e pronto para passar o
resultado adiante e receber um novo operando. Deve haver um lugar
para armazenar as entradas e sadas, enquanto estiverem sendo usadas
ou geradas, o que implica no uso de registradores.

Controle de Processos por Computador

Profa.Luiza Mourelle

O controle para o estgio k precisa verificar as seguintes condies:




registrador de entrada cheio;

registrador de entrada vazio;

registrador de sada cheio;

registrador de sada vazio;

unidade ocupada;

unidade livre;

cpia sendo realizada.

unidade k-1
registrador de
sada k-1
registrador de
entrada k
unidade k
registrador de
sada k
registrador de
entrada k+1

Controle de Processos por Computador

Profa.Luiza Mourelle

Mltiplas unidades funcionais


O CDC6600 tem dez unidades funcionais:









uma unidade para desvios condicionais;


uma unidade para operaes lgicas;
uma unidade para deslocamentos;
uma unidade para soma em ponto flutuante;
uma unidade para soma em ponto fixo;
duas unidades para multiplicao;
uma unidade para diviso;
duas unidades para incremento.

Mltiplos registros so fornecidos para guardar as entradas e sadas


das unidades funcionais.
Controle de Processos por Computador

Profa.Luiza Mourelle

Uma possvel sequncia de instrues no CDC6600 seria:








multiplicar x1 por x1, dando x0;


multiplicar x3 por x1, dando x3;
somar x2 a x4, dando x4;
somar x0 a x3, dando x3;
dividir x0 por x4, dando x6.

Esse tipo de paralelismo deve ser controlado de forma que o resultado


obtido com e sem paralelismo seja o mesmo. Dessa forma, para duas
operaes a e b, tal que a precede b na precedncia linear do
programa:


b pode comear a ser executada antes de a se e somente se b no


precisa dos resultados de a como entradas;
os resultados de b no mudam nem as entradas nem os resultados de
a.
Controle de Processos por Computador

Profa.Luiza Mourelle

Uma tabela de reservas um mtodo de aplicar estas restries na


construo da unidade de controle que vai despachar instrues para as
unidades funcionais:


uma instruo para a unidade funcional u, usando registradores i, j e


k pode ser despachada somente se todos os quatro componentes no
esto reservados; quando a instruo despachada, todos os quatro
componentes se tornam reservados.

O modelo em rede de Petri do esquema acima consiste em alocar um


lugar para cada unidade funcional e cada registrador: se a unidade
funcional ou o registrador est livre, uma ficha posta no respectivo
lugar.
Mltiplas unidades funcionais idnticas podem ser indicadas por
mltiplas fichas nos lugares.
Controle de Processos por Computador

Profa.Luiza Mourelle

Parte de uma rede de Petri usada para modelar a execuo de uma


instruo usando a unidade u e os registradores i, j e k:
instruo usa unidade u
e registradores i, j, k

unidade u
livre

despacha
isntruo

pronto para decodificar


a prxima instruo

registrador i
livre

registrador j
livre

registrador k
livre

unidade u operando com


os registradores i, j, k
instruo
completada

Controle de Processos por Computador

Profa.Luiza Mourelle

Software
A modelagem de software tem se concentrado na anlise,
especificao e descrio de programas sequenciais. Pouco tem sido
feito no que diz respeito a sistemas compostos por processos
concorrentes. dentro deste contexto que as redes de Petri se mostram
adequadas para a modelagem do software.
A representao de um sistema composto por processos concorrentes
parte da combinao de redes de Petri que representem processos
simples.
Um processo simples descrito por um programa, que representa dois
aspectos separados do processo: computao e controle.

Controle de Processos por Computador

Profa.Luiza Mourelle

Computao trata das operaes lgicas e aritmticas, entrada e sada,


e manipulao de memria.
Controle trata da ordem com que as operaes so realizadas.
As redes de Petri so adequadas para modelar o sequenciamento das
instrues e o fluxo de informao e computao, mas no os valores
atuais da informao, propriamente ditos.
Um modelo de um sistema, por sua prpria natureza, uma abstrao
do sistema modelado, ignorando detalhes especficos tanto quanto
possvel.
Fluxogramas representam o fluxo de controle de um programa. Todo
programa sequencial pode ser representado por um fluxograma.
Controle de Processos por Computador

Profa.Luiza Mourelle

Considere o programa abaixo e o fluxograma correspondente.


a
incio
ler(y1);
ler(y2);
y3:=1;
enquanto y1>0 faa
incio
se mpar (y1)
ento incio
y3:=y3*y2;
y1:=y1-1;
fim;
y2:=y2*y2;
y1:=y1-2;
fim;
escreve(y3);
fim;
Controle de Processos por Computador

V
F

V
d

f
Profa.Luiza Mourelle

Uma interpretao das aes do fluxograma consiste em:


aes
a
b
c
d
e
f

interpretao
input(y1);input(y2);y3:=1;
y1 > 0?
odd(y1)?
y3:=y3*y2; y1:=y1-1;
y2:=y2*y2; y1:=y1/2;
output(y3);

Um fluxograma composto de ns e de arcos entre eles. Os ns so de


dois tipos: decises, representadas pelos losangos, e computaes,
representadas por retngulos.
No modelo de rede de Petri, as transies modelam aes, enquanto
que no modelo de fluxograma os ns modelam aes.
Controle de Processos por Computador

Profa.Luiza Mourelle

Assim sendo, a forma apropriada de traduzir um fluxograma em uma


rede de Petri consiste em:


substituir os ns do primeiro por transies no segundo (observando


que h dois tipos de ns);
substituir cada um dos arcos do primeiro por exatamente um lugar no
segundo.
ai
computation r

computation r
aj
aj

decision

F
aj

Controle de Processos por Computador

Profa.Luiza Mourelle

ak

(aqui entra o slide 45)

Controle de Processos por Computador

Profa.Luiza Mourelle

Considere o caso de dois processos concorrentes. Numa primeira


proposta, cada processo pode ser representado por uma rede de Petri.
A rede de Petri composta, que simplesmente a unio das redes de
Petri para cada um dos processos, pode representar a execuo
concorrente dos dois processos.
A marcao inicial da rede de Petri composta tem duas fichas, cada
uma no lugar representando o contador de programa inicial de um
processo.
Paralelismo pode ser introduzido em um processo atravs das
operaes FORK e JOIN.

Controle de Processos por Computador

Profa.Luiza Mourelle

pi

pi

pj

FORK
pj

JOIN

pk

pk

Outra proposta para introduzir paralelismo atravs das estruturas de


controle parbegin e parend.
S1
parend

parbegin

.
.
.

S2

.
.
.

Sn
Controle de Processos por Computador

Profa.Luiza Mourelle

Paralelismo introduzido na soluo de um problema somente se os


processos componentes podem cooperar na soluo do problema. Tal
cooperao requer o compartilhamento de informao e recursos entre
os processos.
Uma variedade de problemas tem sido proposta para ilustrar os tipos de
problemas que podem surgir entre processos cooperantes, dentre eles o
problema do produtor/consumidor, o problema dos filsofos e o
problema dos leitores/escritores.
Embora as redes de Petri sejam um esquema de modelagem, e no um
mecanismo de sincronizao, elas devem ser capazes de modelar
mecanismos de sincronizao que resolvam esses problemas.

Controle de Processos por Computador

Profa.Luiza Mourelle

Assuma que vrios processos compartilham uma varivel, registro,


arquivo ou outra tipo de dado. Esse dado compartilhado pode ser
usado de diferentes formas pelos processos, mas basicamente se
resumem a leitura ou escrita. Um problema surge quando dois
processos tentam atualizar o dado compartilhado.
Excluso mtua consiste em definir um cdigo de entrada e de sada,
de forma que somente um processo de cada vez tenha acesso ao dado
compartilhado.
O cdigo que tem acesso ao dado compartilhado e necessita proteo
contra interferncia de outros processos chamado regio crtica.

Controle de Processos por Computador

Profa.Luiza Mourelle

Na rede de Petri equivalente, o lugar m representa a permisso para


entrar na regio crtica. Para que um processo entre na regio crtica, ele
deve ter uma ficha em p1 ou p2, sinalizando que ele deseja entrar na
regio crtica, e deve haver uma ficha em m, sinalizando permisso para
entrar.
p1

regio
crtica

Controle de Processos por Computador

.
.

p2

regio
crtica

Profa.Luiza Mourelle

Se ambos os processos desejam entrar simultaneamente, ento as


transies t1 e t2 estaro em conflito e somente uma delas pode ser
disparada. Disparando t1 ir desabilitar a transio t2, fazendo com que
o processo p2 espere at que o primeiro processo saia de sua regio
crtica e ponha uma ficha de volta no lugar m.
O problema do produtor/consumidor tambm envolve dados
compartilhados, que neste caso consiste de um meio de armazenamento
temporrio (buffer). O produtor cria objetos que so postos no buffer; o
consumidor espera at que um objeto tenha sido posto no buffer, o
remove e o consome.
Um lugar b vai representar o buffer; cada ficha representa um item que
foi produzido, mas ainda no foi consumido.

Controle de Processos por Computador

Profa.Luiza Mourelle

.
remove
do buffer

produz
b

consome
coloca
no buffer

Uma variante desse problema o dos mltiplos produtores e mltiplos


consumidores. Os itens produzidos so colocados num buffer comum.
O lugar inicial do produtor vai conter tantas fichas quantos produtores.
O lugar inicial do consumidor vai conter tantas fichas quantos
consumidores.
Controle de Processos por Computador

Profa.Luiza Mourelle

Outra variante do problema do consumidor/produtor consiste do buffer


de tamanho limitado. Neste caso, o buffer entre produtor/consumidor
possui somente n posies.
Assim sendo, o produtor nem sempre poder produzir to rapidamente
quanto deseja, podendo ter que esperar caso o consumidor seja lento e o
buffer esteja cheio.
A soluo consiste em representar o buffer limitado por dois lugares: b,
representando o nmero de itens produzidos, mas ainda no
consumidos; e b, representando o nmero de posies vazias no buffer.
Dessa forma, se b contiver zero fichas, o buffer est cheio e o produtor
no poder produzir nenhum item a mais.

Controle de Processos por Computador

Profa.Luiza Mourelle

Anlise de uma Rede de Petri


So definidas as seguintes propriedades bsicas:


Rede de Petri limitada e segura;

Rede de Petri prpria (reinicializvel);

Rede de Petri viva.

A anlise destas trs propriedades feita atravs da construo da


rvore das marcaes alcanveis.
O nmero de marcaes alcanveis pode ser infinito. Logo, usa-se um
algoritmo de construo de uma rvore reduzida, que sempre finita.
Entretanto, pode haver o esgotamento de recursos computacionais.

Controle de Processos por Computador

Profa.Luiza Mourelle

Uma rede de Petri limitada se o nmero de fichas em todos os seus


lugares finito, para todas as marcaes alcanveis. Esta rede
segura caso este limite seja 1, ou seja o nmero de fichas em todos os
lugares nunca excede 1.

limitada e segura

ilimitada

Na modelagem de hardware, se um lugar seguro, o nmero de fichas


nele ser 0 ou 1. Logo, ele poder ser implementado por um flip-flop.
Controle de Processos por Computador

Profa.Luiza Mourelle

Uma rede de Petri prpria e reinicializvel se, a partir de qualquer


marcao alcanvel da marcao inicial, existe uma sequncia de
transies sucessivamente sensibilizadas que leva de volta marcao
inicial.
Exemplo:

.
1

Controle de Processos por Computador

prpria

no prpria

Profa.Luiza Mourelle

Uma rede de Petri viva se e somente se, para qualquer marcao


alcanvel a partir da inicial e para qualquer transio, existe uma
sequncia de transies sensibilizadas a partir desta marcao que inclui
aquela transio. O exemplo anterior tambm mostra uma rede viva e
no viva.
Uma rede de Petri possui bloqueio fatal (deadlock) quando uma dada
sequncia de disparos, a partir da marcao inicial, conduz a uma
situao em que no h qualquer transio sensibilizada.
rede sem bloqueio

t4

Exemplo:
t1

p2
2

t3

p1
t2

Controle de Processos por Computador

p3

rede com bloqueio


sequncia t1, t2, t3

Profa.Luiza Mourelle

Uma rede de Petri conservativa quando ela no cria e nem perde


fichas ao longo de suas marcaes acessveis.
Exemplo:

.
.

rede no conservativa

rede conservativa

.
2

2
Controle de Processos por Computador

Profa.Luiza Mourelle

rvore de Alcanabilidade
t1 (1,0,0)

p2

t1

t3

.
p1

p3
t2

t1
t1

(1,1,0) t
2

(1,2,0) t
2

(1,3,0)

(0,3,1)

t2
(0,1,1) t
3

(0,2,1) t
3

(0,0,1)

(0,1,1)

Os ns da rvore de alcanabilidade so classificados como: terminal,


fronteira, duplicado, interior.
N fronteira todo aquele que ainda no foi processado, vindo a ser
convertido em terminal, duplicado ou interior. N duplicado todo
aquele que corresponde a marcao j ocorrida. N terminal todo
aquele que no habilita transies.
Controle de Processos por Computador

Profa.Luiza Mourelle

Algoritmo para gerar a rvore de alcanabilidade reduzida:




Se y | classe(y) /= fronteira E [x] = [y],


entao classe(x) = duplicado;
Se nenhuma transio for habilitada por [x],
entao classe(x) = terminal;
V tj E T habilitada por [x] que cria um novo n z, temos:
se [x]i = w

=>

[z]i = w;

se y no caminho da raiz a x com [y] < [z], habilitando


mesma transio tj e ainda [y]i < [z]i => [z]i = w;
caso contrrio, [z]i = {[x]i com disparo de tj }.


O algoritmo pra aps todos os ns terem sido classificados


como terminal, duplicado ou interior.
Controle de Processos por Computador

Profa.Luiza Mourelle

Exemplo da aplicao do algoritmo de gerao da rvore de


alcanabilidade:
p2
t1

t3

.
p1

t2

p3

t1 (1,0,0)
t1

(1,w,0)

(1,w,0) t
2

t2
(0,1,1) t
3

(0,w,1) t
3
(0,w,1)

Controle de Processos por Computador

Profa.Luiza Mourelle

(0,0,1)

Outro exemplo:
p2
t2
p1

p4
t1

t3

p3

t1

(1,0,1,0)
t3
(1,0,0,1)
t2
(1,w,1,0)

(1,w,0,0)

Controle de Processos por Computador

Profa.Luiza Mourelle

t3

(1,w,0,1)
t2
(1,w,1,0)

Vous aimerez peut-être aussi