A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

I={a1,a2,a3} O={d2,d1,p,s1,s2} ANDAR DESEJADO DIREÇÃO E NÚMERO DE ANDARES Finite State Process 1° Exercício E a1 a2 a3 Prédio.

Apresentações semelhantes


Apresentação em tema: "I={a1,a2,a3} O={d2,d1,p,s1,s2} ANDAR DESEJADO DIREÇÃO E NÚMERO DE ANDARES Finite State Process 1° Exercício E a1 a2 a3 Prédio."— Transcrição da apresentação:

1 I={a1,a2,a3} O={d2,d1,p,s1,s2} ANDAR DESEJADO DIREÇÃO E NÚMERO DE ANDARES Finite State Process 1° Exercício E a1 a2 a3 Prédio

2 Finite State Process 1° Exercício Escreva um modelo em FSP do seguinte problema: É dado um elevador que pode se deslocar ao máximo dois andares (para cima ou para baixo). Inicialmente, ele está no primeiro andar (um estado do modelo). Simular o deslocamento do elevador para os possíveis trechos. Estados: S1, S2, S3 Ações: a1, a2, a3 Processos: p, s1, s2, d1, d2 (onde p=parado, sx=subir x andares, dx=descer x andares).

3 Finite State Process Resolução 1° Exercício ELEVADOR = S1, S1 = (a1 -> p -> S1 | a2 -> s1 -> S2 | a3 -> s2 -> S3), S2 = (a1 -> d1 -> S1 | a2 -> p -> S2 | a3 -> s1 -> S3), S3 = (a1 -> d2 -> S1 | a2 -> d1 -> S2 | a3 -> p -> S3).

4 Finite State Process - 2° Exercício É dado um "countdown timer" que, uma vez iniciado, tem como saída: 01) um "tick sound" cada vez que "countdown timer" é decremetado; 02) um "beep sound" quando o contador chega a zero. O "countdown timer" pode ser abortado por uma ação "stop". Descreva o modelo FSP. Eis o automata que o descreve: start stop tick stop tick stop tick beep stop 012345

5 Finite State Process Resolução 2° Exercício COUNTDOWN (N=3) = (start->COUNTDOWN[N]), COUNTDOWN[i:0..N] = (when(i>0) tick->COUNTDOWN[i-1] |when(i==0)beep->STOP |stop->STOP ). start stop tick stop tick stop tick beep stop 012345

6 Concurrent programming - SE II6 Finite State Process 3° Exercício - Ciclo de vida de um thread em Java Uma visão geral do ciclo de vida de um thread através do automata CreatedAlive Terminated new Thread() start() stop(), ou run() returns stop() start() faz o thread chamar seu método run().

7 Concurrent programming - SE II7 Finite State Process 3° Exercício - thread no estado alive em Java Uma vez em started, um thread alive pode estar em um destes sub-estados: RunnableNon-Runnable suspend() resume() yield() Running dispatch suspend() start() stop(), ou run() wait() também faz um Thread Non-Runnable, e notify() Runnable (não considerrados aqui). sleep()

8 Finite State Process 3° Exercício - Ciclo de vida de um thread em Java - Especificação FSP THREAD = CREATED, CREATED = (start ->RUNNING |stop ->TERMINATED), RUNNING = ({suspend,sleep}->NON_RUNNABLE |yield ->RUNNABLE |{stop,end} ->TERMINATED |run ->RUNNING), RUNNABLE = (suspend ->NON_RUNNABLE |dispatch ->RUNNING |stop ->TERMINATED), NON_RUNNABLE = (resume ->RUNNABLE |stop ->TERMINATED), TERMINATED = STOP.

9 Java thread lifecycle - an FSP specification end, run, dispatch are not methods of class Thread. States 0 to 4 correspond to CREATED, TERMINATED, RUNNING, NON-RUNNABLE, and RUNNABLE respectively.


Carregar ppt "I={a1,a2,a3} O={d2,d1,p,s1,s2} ANDAR DESEJADO DIREÇÃO E NÚMERO DE ANDARES Finite State Process 1° Exercício E a1 a2 a3 Prédio."

Apresentações semelhantes


Anúncios Google