100 likes | 294 Views
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 }
E N D
Redes de Petri1° 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} • Um modelo em redes de Petri para este problema é apresentado no próximo slide.
Redes de Petri1° Exercício • Este modelo entra em Deadlock. Onde? • Apresente sue modelo que evite esta situação. p3 t3 p4 t4 p5 t5 p0 t0 p1 t1 p2 t2 Proc1 p.printer.get printer q.scanner.get Proc 2 p6 q.printer.get q.scanner.put p.printer.put p.scanner.get scanner p7 p.scanner.put q.printer.put
Redes de Petri1° Exercício • Uma solução p3 t3 p4 t4 p5 t5 p0 t0 p1 t1 p2 t2 Proc1 p.printer.get printer q.printer.get Proc 2 p.scanner.get p6 q.scanner.get scanner p7 q.printer.put q.scanner.put p.scanner.put p.printer.put
Redes de Petri1° Exercício Considerando o analizado no modelo anterior, o que você alteraria na Descrição FSP para evitar o deadlock? 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 ).
Redes de Petri2° Exercício Traduza a descrição FSP para redes de Petri 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).
Redes de Petri2° Exercício - Solução MakeA MakeB Assemble makeA ready used makeB ready used ready assemble used
Redes de Petri2° Exercício - Solução MakeA MakeB Assemble makeA ready makeB used assemble
3 2 2 1 3 4 1 4 0 0 Jantar dos Filósofos3° 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.
começa pensar começa pensar Jantar dos Filósofos3° Exercício - Solução pensando pensando começa ter fome garfo 2 com fome com fome Filósofo 3 começa ter fome começa comer começa comer comendo comendo Filósofo 2 comendo começa comer garfo 3 com fome garfo 1 começa ter fome pensando começa pensar Filósofo 1