Upload
dahlia-rice
View
60
Download
0
Embed Size (px)
DESCRIPTION
Redes de Petri 1 ° Exercício. Modele dois processos concorrentes entre si. Cada processo é cíclico e compostos por apenas três atividades. Estes processos compartilham entre si dois recursos: { printer , scanner } - PowerPoint PPT Presentation
Citation preview
Redes de PetriRedes de Petri11° Exercício ° Exercício
Modele dois processos concorrentes Modele dois processos concorrentes entre si. entre si.
Cada processo é cíclico e compostos por Cada processo é cíclico e compostos por apenas três atividades.apenas três atividades.
Estes processos compartilham entre si Estes processos compartilham entre si dois recursos: {dois recursos: {printerprinter, , scannerscanner}}
Um modelo em redes de Petri para este Um modelo em redes de Petri para este problema é apresentado no próximo problema é apresentado no próximo slideslide..
Redes de PetriRedes de Petri11° Exercício° Exercício
Este modelo entra em Este modelo entra em DeadlockDeadlock. Onde?. Onde? Apresente sue modelo que evite esta Apresente sue modelo que evite esta
situação.situação. p0
t0
p1
t1
p2
t2
p3
t3
p4
t4
p5
t5
p6
p7
Proc1
Proc
2
printer
scanner
p.printer.get
p.printer.put
p.scanner.get
p.scanner.put
q.scanner.get
q.printer.get
q.scanner.put
q.printer.put
Redes de PetriRedes de Petri11° Exercício° Exercício
Uma soluçãoUma solução
p0
t0
p1
t1
p2
t2
p3
t3
p4
t4
p5
t5
p6
p7
Proc1
Proc
2
p.printer.get
p.scanner.get
p.scanner.putp.printer.put
q.printer.get
q.scanner.get
q.printer.putq.scanner.put
printer
scanner
Redes de PetriRedes de Petri11° Exercício° Exercício
RESOURCE = (get->put->RESOURCE).P = (printer.get->scanner.get
->copy ->printer.put->scanner.put
->P).Q = (scanner.get->printer.get
->copy ->scanner.put->printer.put
->Q).||SYS = (p:P||q:Q
||{p,q}::printer:RESOURCE ||{p,q}::scanner:RESOURCE ).
Considerando o analizado no modelo anterior, o que você alteraria naDescrição FSP para evitar o deadlock?
Redes de PetriRedes de Petri 22° Exercício° Exercício
MAKE_A = (makeA->ready->used->MAKE_A).MAKE_B = (makeB->ready->used->MAKE_B).ASSEMBLE = (ready->assemble->used->ASSEMBLE).
||FACTORY = (MAKE_A || MAKE_B || ASSEMBLE).
Traduza a descrição FSP para redes de Petri
makeA
ready
used
makeB
ready
used
ready
assemble
used
MakeA MakeB Assemble
Redes de PetriRedes de Petri 22° Exercício - Solução° Exercício - Solução
makeA
ready
makeB
used
assemble
MakeA MakeB Assemble
Redes de PetriRedes de Petri 22° Exercício - Solução° Exercício - Solução
Jantar dos FilósofosJantar dos Filósofos 33° Exercício ° Exercício
Cinco filósofos estão sentados em torno de uma mesa. Cada filósofo passa o tempo pensando, tendo fome e comendo. No centro da mesa há um prato de spaghetti. Cada filósofo precisa de dois garfos para comer e só podem utilizar os garfos imediatamente a sua direita e a sua esquerda. Um garfo é colocado entre cada par de filósofo.
•Para facilitar, gere a rede de Petri para apenas três filósofos.•Esta rede não deve entrar em bloqueio e deve possibilitar que todos os filósofos tenham a oportunidade de comer.
0
1
23
40
1
2
3
4
Jantar dos FilósofosJantar dos Filósofos 33° Exercício - Solução° Exercício - Solução
pensando pensando
pensando
com fome com fome
com fome
comendo comendo
comendo
começacomer
começacomer
começacomer
começapensar
começapensar
começapensar
começa ter fome
começa ter fome
começa ter fome
Filósofo 1
Filósofo 2
Filósofo 3
garfo 1
garfo 2
garfo 3