Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouGiovanni Cruz Alterado mais de 9 anos atrás
1
Finite State Process 1° Exercício – Controle de Estacionamento (carpark)- Um controlador é necessários para carpark, que só permite a entrada de carros quando o estacionamento (carpark) não está cheio e não permite a saída de carros quando o estacionamento está vazio. A chegada (Arrivals) e saídas (Departures) são modeladas po processos distintos.
2
Finite State Process 1° Exercício – Controle de Estacionamento (carpark)- Eventos ou ações de interesse? arrive e depart Identifique os processos. arrivals, departures e carpark control Defina cada processo e interações (estrutura). ARRIVALS CARPARK CONTROL DEPARTURES arrive depart CARPARK
3
Finite State Process 1° Exercício – Controle de Estacionamento - CARPARKCONTROL(N=4) = SPACES[N], SPACES[i:0..N] = (when(i>0) arrive->SPACES[i-1] |when(i SPACES[i+1] ). ARRIVALS = (arrive->ARRIVALS). DEPARTURES = (depart->DEPARTURES). ||CARPARK = (ARRIVALS||CARPARKCONTROL(4)||DEPARTURES). Analise o LTS associado a cada processo e ao processo global.
4
Finite State Process 2° Exercício – Uso de Recursos por Dois Usuários - A composição paralela de processos que interagem entre si pode levar a deadlock. Problema: dois usuários (p e q) usam concorrentemente dois recursos do sistema (scanner e printer). printer: RESOURCE get put SYS scanner: RESOURCE get put p:P printer scanner q:Q printer scanner
5
Finite State Process 2° Exercício – Uso de Recursos por Dois Usuários - 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 ). Há Deadlock ? Qual é o trace para Deadlock ?
6
Finite State Process 2° Exercício – Uso de Recursos por Dois Usuários - RESOURCE = (get -> put -> RESOURCE). P = (printer.get -> scanner.get -> copy -> printer.put -> scanner.put -> P). Q = (printer.get -> scanner.get -> copy -> printer.put -> scanner.put -> Q). ||SYS = (p:P || q:Q || {p,q}::printer:RESOURCE || {p,q}::scanner:RESOURCE ). Solicitação de recursos numa mesma ordem.
7
deadlock analysis - avoidance acquire resources in the same order? Timeout: P = (printer.get-> GETSCANNER), GETSCANNER = (scanner.get->copy->printer.put - >scanner.put->P |timeout -> printer.put->P ). Q = (scanner.get-> GETPRINTER), GETPRINTER = (printer.get->copy->printer.put - >scanner.put->Q |timeout -> scanner.put->Q ). Deadlock? Progress?
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.